hur man bygger en Raspberry Pi Temperaturmonitor

temperatur och fuktighet är viktiga datapunkter i dagens industrivärld. Övervakning av miljödata för serverrum, kommersiella frysar och produktionslinjer är nödvändigt för att hålla saker och ting smidigt. Det finns massor av lösningar där ute som sträcker sig från grundläggande till komplexa och det kan verka överväldigande på vad ditt företag behöver och var du ska börja.

vi går igenom hur man bygger och använder en Raspberry Pi-temperatursensor med olika temperatursensorer. Det här är ett bra ställe att börja eftersom dessa lösningar är billiga, lätta att göra och ger dig en grund att bygga på för annan miljöövervakning.

en Raspberry Pi är en billig enkortsdator som gör att du kan ansluta till en temperatursensor och strömma data till en datavisualiseringsprogramvara. Raspberry Pi började som ett inlärningsverktyg och har utvecklats till ett industriellt arbetsplatsverktyg. Användarvänligheten och möjligheten att koda med Python, det snabbast växande programmeringsspråket, har gjort dem till en lösning.

du vill ha en Raspberry Pi som har WiFi inbyggd, som är någon modell 3, 4 och noll W/WH. Mellan dem kan du välja baserat på prissättning och funktioner. Noll W / WH är det billigaste men om du behöver mer funktionalitet kan du välja mellan 3 och 4. Du kan bara köpa en noll W/WH åt gången på grund av begränsningar från Raspberry Pi Foundation. Oavsett Pi du väljer, se till att köpa en laddare eftersom det är hur du ska driva Pi och ett SD-kort med Raspbian för att göra installationen av operativsystemet så enkelt som möjligt.

det finns andra enstaka dator som kan fungera också, men det är för en annan tid och en annan artikel.

sensorer

det finns fyra sensorer som vi rekommenderar att du använder eftersom de är billiga, enkla att ansluta och ger exakta avläsningar; DSB18B20, DHT22, BME280 och Raspberry Pi Sense HAT.

DHT22 – denna temperatur-och fuktighetssensor har temperaturnoggrannhet på + / – 0,5 C och ett fuktighetsområde från 0 till 100 procent. Det är enkelt att ansluta till Raspberry Pi och kräver inga dragmotstånd.

DSB18B20 — denna temperatursensor har en digital utgång, som fungerar bra med Raspberry Pi. Den har tre ledningar och kräver en brödbräda och motstånd för anslutningen.

BME280-denna sensor mäter temperatur, fuktighet och barometertryck. Den kan användas i både SPI och I2C.

Sense HAT — Detta är ett tillägg ombord för Raspberry Pi som har lysdioder, sensorer och en liten joystick. Den ansluts direkt till GPIO på Raspberry Pi men med en bandkabel ger du mer exakta temperaturavläsningar.

Raspberry Pi Setup

om det här är första gången du ställer in din Raspberry Pi måste du installera Raspbian-operativsystemet och ansluta din Pi till WiFi. Detta kräver en bildskärm och ett tangentbord för att ansluta till Pi. När du har den igång och ansluten till WiFI är din Pi redo att gå.

Initial State Account

du behöver någonstans att skicka dina data för att hålla en historisk logg och visa dataströmmen i realtid så att vi kommer att använda Initial State. Gå till https://iot.app.initialstate.com och skapa ett nytt konto eller logga in på ditt befintliga konto.

Därefter måste vi installera den ursprungliga Python-modulen på din Pi. Vid en kommandotolk (glöm inte att SSH i din Pi först), kör följande kommando:

$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

när du har angett curl-kommandot i kommandotolken ser du något som liknar följande utdata till skärmen:

när du uppmanas att automatiskt få ett exempelskript skriver du y. detta skapar ett testskript som vi kan köra för att säkerställa att vi kan strömma data till initialt tillstånd. Nästa fråga kommer att fråga var du vill spara exempelfilen. Du kan antingen skriva en anpassad lokal sökväg eller trycka på enter för att acceptera standardplatsen. Slutligen kommer du att bli frågad vilken Initial State-app du använder. Om du nyligen har skapat ett konto väljer du alternativ 2, anger ditt användarnamn och lösenord. Därefter kommer installationen att vara klar.

Låt oss ta en titt på exempelskriptet som skapades.

$ nano is_example.py

på rad 15 ser du en rad som börjar med streamer = Streamer(bucket_ .... Dessa rader skapar en ny datahink med namnet ”Python Stream Example” och är associerad med ditt konto. Denna förening händer på grund av parametern access_key="..." på samma rad. Den långa serien av bokstäver och siffror är din ursprungliga Tillståndsåtkomstnyckel. Om du går till ditt ursprungliga Tillståndskonto i din webbläsare klickar du på ditt användarnamn längst upp till höger och går sedan till ”Mina inställningar”, du hittar samma åtkomstnyckel här under ”Streaming Access Keys”.

initialtillstånd Strömåtkomsttangenter

varje gång du skapar en dataström, kommer att åtkomstnyckeln styra dataströmmen till ditt konto (så inte dela din nyckel med någon).

kör testskriptet för att se till att vi kan skapa en dataström till ditt ursprungliga Statskonto. Kör följande:

$ python is_example.py

gå tillbaka till ditt ursprungliga Tillståndskonto i din webbläsare. En ny datahink som heter ”Python Stream Example” borde ha dykt upp till vänster i din logghylla (du kan behöva uppdatera sidan). Klicka på den här hinken och klicka sedan på Vågikonen för att se testdata.

Initial State Python Stream exempel dashboard

om du använder Python 3 kan du installera Initial State Streamer modul du kan installera med följande kommando:

pip3 install ISStreamer

nu är vi redo att ställa in temperatursensorn med Pi för att strömma temperaturen till en instrumentpanel.

DHT22-lösning

du behöver följande artiklar för att bygga denna lösning:
– DHT22 temperatur-och fuktighetssensor

DHT22 kommer att ha tre stift-5V, Gnd och data. Det bör finnas en pin-etikett för ström på DHT22 (t.ex. ’ + ’ eller ’5V’). Anslut detta till stift 2 (den övre högra stiftet, 5V) på Pi. Gnd-stiftet kommer att märkas ’ – ’eller’ Gnd ’ eller något motsvarande. Anslut detta till stift 6 Gnd (två stift under 5V-stiftet) på Pi. Den återstående stiftet på DHT22 är datastiftet och kommer att märkas ’out’ eller ’S’ eller ’data’. Anslut detta till en av GPIO-stiften på Pi, t.ex. GPIO4 (stift 7). När detta är anslutet, slå på din Pi.

för den här lösningen måste vi använda Python 3 och CircuitPython-biblioteket eftersom Adafruit har föråldrat DHT Python-biblioteket.

installera CircuitPython-DHT Python-modulen vid en kommandotolk för att göra läsning DHT22 sensordata super lätt:

$ pip3 install adafruit-circuitpython-dht
$ sudo apt-get install libgpiod2

med vårt operativsystem installerat tillsammans med våra två Python-moduler för att läsa sensordata och skicka data till initialt tillstånd är vi redo att skriva vårt Python-skript. Följande skript kommer att skapa / lägga till en Initial State data hink, läsa DHT22 sensordata, och skicka dessa data till en realtid instrumentpanelen. Allt du behöver göra är att ändra raderna 6-11.

  • linje 7-Detta värde ska vara unikt för varje nod/temperatursensor. Detta kan vara din sensornods rumsnamn, fysiska plats, unik identifierare eller vad som helst. Se bara till att det är unikt för varje nod för att säkerställa att data från denna nod går till sin egen dataström i instrumentpanelen.
  • Linje 8-Detta är namnet på datahinken. Detta kan ändras när som helst i det ursprungliga TILLSTÅNDSGRÄNSSNITTET.
  • Linje 9-det här är din skopnyckel. Det måste vara samma hinknyckel för varje nod du vill visas i samma instrumentpanel.
  • linje 10— Detta är din ursprungliga Tillståndsåtkomstnyckel. Kopiera och klistra in den här nyckeln från ditt ursprungliga Tillståndskonto.
  • linje 11— Detta är tiden mellan sensorn läser. Ändra därefter.
  • Linje 12 – Du kan ange metriska eller kejserliga enheter på rad 11.

när du har ställt in raderna 7-12 i ditt Python-skript på din Pi, spara och avsluta textredigeraren. Kör skriptet med följande kommando:

$ python3 tempsensor.py
här är ett exempel på att använda DHT22-sensorn med Raspberry Pi

nu kommer du att skicka data till en Initial state dashboard. Gå till det sista avsnittet i den här artikeln för mer information om hur du anpassar din instrumentpanel.

Dsb18b20 lösning

du behöver följande för att bygga denna lösning:
-Dsb18b20 temperatursensor
-10k motstånd
-Breadboard
– 40-Pin Breakout Board + bandkabel
– ledningar

bandkabeln ansluts till GPIO-stiften på Pi. DS18B20 har tre ledningar. Den röda ledningen ansluts till 3,3 V. Den blå / svarta ledningen ansluts till marken. Den gula ledningen ansluts till ett dragmotstånd/stift 4. När detta är anslutet, slå på din Pi.

den senaste versionen av Raspbian (kernel 3.18) kräver ett tillägg till din /boot/config.txt-fil för Pi att kommunicera med DS18B20. Kör följande för att redigera den här filen:

$ sudo nano /boot/config.txt

om följande rad inte redan finns i den här filen (om den är, är den troligen längst ner i filen), Lägg till den och spara filen.

dtoverlay=w1-gpio,gpiopin=4

starta om din Pi för att ändringarna ska träda i kraft.

$ sudo reboot

för att starta temperatursensorns läsgränssnitt måste vi köra två kommandon. Gå till en kommandotolk på din Pi eller SSH i din Pi. Skriv följande kommandon:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

utgången från din temperatursensor skrivs nu till en fil på din Pi. För att hitta den filen:

$ cd /sys/bus/w1/devices

i den här katalogen kommer det att finnas en underkatalog som börjar med ”28 -”. Det som kommer efter ”28-” är serienumret på din sensor. cd i den katalogen. Inuti den här katalogen innehåller en fil med namnet w1_slave utgången från din sensor. Använd nano för att visa innehållet i filen. När du har angett i filen, det kommer att se ut så här:

a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

numret efter ”t=” är det nummer vi vill ha. Detta är temperaturen i 1/1000 grader Celsius (i exemplet ovan är temperaturen 26,125 C). Vi behöver bara ett enkelt program som läser den här filen och analyserar det numret. Vi kommer till det på bara en sekund.

allt är nu klart för oss att börja strömma data. För att öppna textredigeraren skriver du följande i kommandotolken:

$ nano temperature.py

kopiera och klistra in koden nedan i textredigeraren.

du måste sätta din ursprungliga Tillståndsåtkomstnyckel på rad 6 i stället för PUT_YOUR_ACCESS_KEY_HERE (kopiera strömningsnyckeln till ditt urklipp från ’Mitt Konto’ och klistra in den i koden i nano i din terminal).

linje 6 skapar en hink med namnet” Temperaturström ” i ditt ursprungliga Tillståndskonto (förutsatt att du korrekt angav din access_key på samma rad). Linjerna 8 till 30 i detta skript gränssnitt helt enkelt med DS18B20-sensorn för att läsa temperaturen från w1_slave-filen som vi diskuterade tidigare. Funktionen read_temp_raw () på rad 15 läser raw w1_slave-filen. Funktionen read_temp () på rad 21 tolkar temperaturen från den filen. Linje 34 kallar dessa funktioner för att få den aktuella temperaturen. Linje 35 omvandlar temperaturen från Celsius till Fahrenheit. Linjer 35 och 36 strömmar temperaturen till ditt ursprungliga Tillståndskonto. Linje 37 pausar skriptet i 0,5 sekunder och ställer in hur ofta temperatursensorn ska läsas och streamas.

vi är redo att börja strömma. Kör följande kommando:

$ sudo python temperature.py

gå tillbaka till ditt ursprungliga Tillståndskonto i din webbläsare och leta efter en ny datahink som heter Temperaturström. Du bör se temperaturdata streaming i live. Variera sensorns temperatur genom att hålla den i handen eller lägga den i ett glas is.

nu kommer du att ha data som skickas till en Initial state dashboard. Gå till det sista avsnittet i den här artikeln för mer information om hur du anpassar din instrumentpanel.

BME280 lösning

du behöver följande bygga denna lösning:
-BME280 tryck, temperatur, & Fuktighetssensor

om du använder en BME280 som inte är från Adafruit kommer din inställning och kod att vara annorlunda. Du kan hitta ett exempel på hur du använder den BME280-sensorn i den här artikeln om övervakning av krypfuktighet.

denna sensor levereras med stift som du behöver löda på sensorn. Jag rekommenderar att du använder en brödbräda med stiften långsidan ner i brödbrädet för att underlätta lödningen. När du har slutfört detta måste vi koppla sensorn till Pi.

Anslut VIN-stiftet på sensorn till 3,3 V-stift 1 på Pi. Anslut GND-stiftet på sensorn jordstiftet 6 på Pi. Anslut SCK-stiftet på sensorn till SCL-stiftet 5 på Pi. Anslut SDI-stiftet på sensorn till SDA-stift 3 på Pi.

du måste använda Python 3 för den här lösningen och installera den ursprungliga State Streamer-modulen med pip3-installationsmetoden. Du måste också installera några Adafruit Python-bibliotek.

pip3 install adafruit-blinka
pip3 install pureio
pip3 install spidev
pip3 install adafruit-GPIO
pip3 install adafruit-circuitpython-bme280

för att använda sensorn måste vi aktivera I2C på Pi.

sudo raspi-config

detta öppnar Raspberry Pi Software Configuration Tool. Gå till alternativ 5 gränssnittsalternativ. Härifrån går du till I2C. det kommer att fråga dig om du vill aktivera I2C, Välj Ja och slutför. Nu har du I2C aktiverat för att kommunicera med sensorn.

vi kan testa detta genom att köra följande:

sudo i2cdetect -y 1

detta kommer att verifiera att din Pi ser sensorn. På det sätt som den är ansluten ska den visa sensorn på adress 77. Om du inte upptäcker sensorn startar du om din Pi, aktiverar I2C-gränssnittsalternativet på din Pi och försöker igen.

när din sensor har upptäckts är det dags att köra vår huvudkod som skickar data till initialt tillstånd. Skapat en fil som heter bme280sensor.py med nano-kommandot. Kopiera och klistra in koden från kärnan i textredigeraren. Du måste göra ändringar i raderna 12-19.

  • Linje 12-Detta värde ska vara unikt för varje nod/temperatursensor. Detta kan vara din sensornods rumsnamn, fysiska plats, unik identifierare eller vad som helst. Se bara till att det är unikt för varje nod för att säkerställa att data från denna nod går till sin egen dataström i instrumentpanelen.
  • linje 13-Detta är namnet på datahinken. Detta kan ändras när som helst i det ursprungliga TILLSTÅNDSGRÄNSSNITTET.
  • linje 14-Det här är din skopnyckel. Det måste vara samma hinknyckel för varje nod du vill visas i samma instrumentpanel.
  • Linje 15 — Detta är din ursprungliga Tillståndsåtkomstnyckel. Kopiera och klistra in den här nyckeln från ditt ursprungliga Tillståndskonto.
  • linje 17 — Det här är din platstryck (hPa) vid havsnivå. Du hittar den här informationen på de flesta väderwebbplatser.
  • Linje 18 — Detta är tiden mellan sensorn läser. Ändra därefter.
  • linje 19-Här kan du ange metriska eller kejserliga enheter.

när du har ställt in raderna 12-19 i ditt Python-skript på din Pi, spara och avsluta textredigeraren. Kör skriptet med följande kommando:

$ python3 bme280sensor.py

nu kommer du att ha data som skickas till en Initial state dashboard. Gå till det sista avsnittet i den här artikeln för mer information om hur du anpassar din instrumentpanel.

Sense HAT Solution

du behöver följande för att bygga denna lösning:
-Raspberry Pi Sense HAT
-6″ 40-Pin IDE hane till hona förlängningskabel (tillval för temperaturnoggrannhet)

det första steget i att använda Sense HAT är att fysiskt installera den på din Pi. Med Pi avstängd, fäst hatten som visas nedan.

Sense HAT anslutning till Raspberry Pi

om du väljer att använda lösningen som visas ovan kanske du märker att din Sense HAT temperaturavläsningar blir lite höga — det beror på att de är. Den skyldige är värmen som genereras från Pi: s CPU som värmer upp luften runt Sense HAT när den sitter ovanpå Pi. För att göra temperatursensorn användbar måste vi antingen ta bort hatten från Pi eller försöka kalibrera temperatursensoravläsningen. En bra lösning för att få sensorn bort från Pi är en kabel som låter Sense HAT Dingla bort från Pi. En 6″, 40-stifts IDE hane till hona förlängningskabel kabel kommer att göra susen.

Raspberry Pi i ett fall med förlängningskabel som ansluter till Sense HAT

när du bestämmer dig för de två alternativen, slå på din Pi. Vi måste installera Python-biblioteket för att göra det enkelt att läsa sensorvärdena från Sense HAT. Först, måste du se till att allt är up-to-date på din version av Raspbian:

$ sudo apt-get update

installera sedan Sense HAT Python-biblioteket:

$ sudo apt-get install sense-hat

starta om din Pi. Vi är redo att testa Sense HAT genom att läsa sensordata från den och skicka dessa data till initialtillstånd.

skapa en fil som heter sensehat och öppna den i textredigeraren genom att ange följande i kommandotolken:

$ nano sensehat.py

kopiera och klistra in koden nedan i textredigeraren.

Lägg märke till på första raden att vi importerar sensehat-biblioteket till manuset. Innan du kör det här skriptet måste vi ställa in våra användarparametrar.

specifikt måste du ställa in din ACCESS_KEY till din ursprungliga tillståndsåtkomstnyckel. Du kan ändra BUCKET_NAME och SENSOR_LOCATION_NAME till den faktiska sensorplatsen. Spara och avsluta textredigeraren.

kör skriptet vid en kommandotolk på din Pi:

$ sudo python sensehat.py

nu kommer du att ha data som skickas till en Initial state dashboard. Gå till det sista avsnittet i den här artikeln för mer information om hur du anpassar din instrumentpanel.

anpassa din ursprungliga Tillståndspanel

med din Raspberry Pi-temperatursensor byggd kan du nu gå till ditt ursprungliga Tillståndskonto och titta på dina data. Du kan högerklicka på en bricka för att ändra diagramtyp och klicka på Redigera brickor för att ändra storlek och flytta dina brickor runt. Jag skulle rekommendera att använda mätaren termostat för temperatur och mätaren vätskenivån för fuktighet. Du kan skapa linjediagram för både temperatur och fuktighet för att se förändringar över tiden. Du kan också lägga till en bakgrundsbild i instrumentpanelen.

du kan ställa in Utlösningsvarningar så att du kan få ett SMS eller e-post om temperaturen sjunker under eller går över en viss tröskel. Gå till din data hink och klicka på Inställningar. Därifrån går du till fliken Triggers. Ange strömknappen du vill övervaka, operatören du vill använda och tröskelvärdet. Klicka på plustecknet för att lägga till utlösaren. Då anger du ditt e-postmeddelande eller telefonnummer för att få varningen på och klickar på plustecknet. När du har ställt in alla dina Triggers klickar du på knappen Klar längst ner.

Initial State temperatur dashboard

nu när du har skapat en Raspberry Pi temperatursensor med en sensor och en Raspberry Pi, kan du börja tänka på vilka andra miljödata du kan övervaka nästa.

Lämna ett svar

Din e-postadress kommer inte publiceras.

Previous post Master Gardener: Cassia träd är lätta att växa
Next post Adaptivt lärande