Sådan opbygges en Raspberry Pi temperaturmonitor

temperatur og fugtighed er vigtige datapunkter i nutidens industrielle verden. Overvågning af miljødata for serverrum, kommercielle frysere og produktionslinjer er nødvendig for at holde tingene kørende. Der er masser af løsninger derude, der spænder fra grundlæggende til komplekse, og det kan virke overvældende på, hvad din virksomhed har brug for, og hvor du skal starte.

Vi gennemgår, hvordan man bygger og bruger en Raspberry Pi-temperatursensor med forskellige temperatursensorer. Dette er et godt sted at starte, da disse løsninger er billige, nemme at gøre og giver dig et fundament at bygge ud af til anden miljøovervågning.

en Raspberry Pi er en billig enkeltkortcomputer, der giver dig mulighed for at oprette forbindelse til en temperatursensor og streame dataene til et datavisualiseringsprogram. Raspberry Pi startede som et læringsværktøj og har udviklet sig til et industrielt arbejdspladsværktøj. Brugervenligheden og evnen til at kode med Python, det hurtigst voksende programmeringssprog, har gjort dem til en løsning.

du vil have en Raspberry Pi, der er indbygget, som er enhver model 3, 4 og nul M/H. Mellem dem kan du vælge baseret på priser og funktioner. Nul M / H er den billigste, men hvis du har brug for mere funktionalitet, kan du vælge mellem 3 og 4. Du kan kun købe en nul M/H ad gangen på grund af begrænsninger fra Raspberry Pi Foundation. Uanset hvilken Pi du vælger, skal du sørge for at købe en oplader, da det er sådan, Du får strøm til Pi og et SD-kort med Raspbian for at gøre installationen af operativsystemet så let som muligt.

der er andre enkeltkortcomputere, der også kan fungere, men det er for en anden gang og en anden artikel.

sensorer

der er fire sensorer, Vi anbefaler at bruge, fordi de er billige, nemme at tilslutte og giver nøjagtige aflæsninger; DSB18B20, DHT22, BME280 og Raspberry Pi Sense HAT.

DHT22-denne temperatur-og fugtighedsføler har temperaturnøjagtighed på + / – 0,5 C og et fugtighedsinterval fra 0 til 100 procent. Det er nemt at koble op til Raspberry Pi og kræver ingen pull up modstande.

DSB18B20 — denne temperatursensor har en digital udgang, som fungerer godt med Raspberry Pi. Det har tre ledninger og kræver en breadboard og modstand for forbindelsen.

BME280 — denne sensor måler temperatur, fugtighed og barometertryk. Det kan bruges i både SPI og I2C.

Sense HAT — dette er en tilføjelse om bord til Raspberry Pi, der har lysdioder, sensorer og en lille joystick. Det forbinder direkte til GPIO på Raspberry Pi, men ved hjælp af et båndkabel giver du mere nøjagtige temperaturaflæsninger.

Raspberry Pi Setup

hvis det er første gang, du opretter din Raspberry Pi, skal du installere Raspbian-operativsystemet og tilslutte din Pi til trådløst internet. Dette kræver en skærm og et tastatur for at oprette forbindelse til Pi. Når du har det i gang og tilsluttet trådløst internet, er din Pi klar til at gå.

Startstatskonto

du skal bruge et sted til at sende dine data for at føre en historisk log og se datastrømmen i realtid, så vi bruger starttilstand. Gå til https://iot.app.initialstate.com og opret en ny konto, eller log ind på din eksisterende konto.

Dernæst skal vi installere det oprindelige tilstand Python-modul på din Pi. Kør følgende kommando ved en kommandoprompt (glem ikke at SSH ind i din Pi først):

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

når du har indtastet curl-kommandoen i kommandoprompten, vil du se noget, der ligner følgende output til skærmen:

når du bliver bedt om automatisk at få et eksempel script, skal du skrive y. dette opretter et testscript, som vi kan køre for at sikre, at vi kan streame data til starttilstand. Den næste prompt spørger, hvor du vil gemme eksempelfilen. Du kan enten skrive en brugerdefineret lokal sti eller trykke på enter for at acceptere standardplaceringen. Endelig bliver du spurgt, hvilken indledende Tilstandsapp du bruger. Hvis du for nylig har oprettet en konto, skal du vælge valgmulighed 2, indtaste dit brugernavn og din adgangskode. Derefter vil installationen være færdig.

lad os tage et kig på eksemplet script, der blev oprettet.

$ nano is_example.py

på linje 15 vil du se en linje, der starter med streamer = Streamer(bucket_ .... Disse linjer opretter en ny data bucket med navnet” Python Stream eksempel ” og er knyttet til din konto. Denne tilknytning sker på grund af parameteren access_key="..." på den samme linje. Den lange række bogstaver og tal er din oprindelige tilstandskontoadgangsnøgle. Hvis du går til din oprindelige Tilstandskonto, skal du klikke på dit brugernavn øverst til højre og derefter gå til “mine indstillinger”, du finder den samme adgangsnøgle her under “Streaming adgangstaster”.

indledende Tilstandsstrøm Adgangsnøgler

hver gang du opretter en datastrøm, dirigerer denne adgangsnøgle denne datastrøm til din konto (så del ikke din nøgle med nogen).

Kør testscriptet for at sikre, at vi kan oprette en datastrøm til din oprindelige Tilstandskonto. Kør følgende:

$ python is_example.py

gå tilbage til din oprindelige Tilstandskonto i din internetsøgemaskine. En ny data bucket kaldet” Python Stream eksempel ” skulle have vist sig til venstre i din log hylde (du skal muligvis opdatere siden). Klik på denne spand, og klik derefter på Bølgeikonet for at se testdataene.

indledende tilstand Python Stream eksempel dashboard

hvis du bruger Python 3, kan du installere det oprindelige Tilstandsstreamermodul, du kan installere ved hjælp af følgende kommando:

pip3 install ISStreamer

nu er vi klar til at opsætte temperatursensoren med Pi for at streame temperaturen til et instrumentbræt.

DHT22 Solution

du skal bruge følgende elementer til at opbygge denne løsning:
– DHT22 temperatur og fugtighed Sensor

DHT22 vil have tre ben-5V, Gnd og data. Der skal være en pin-etiket til strøm på DHT22 (f.eks. ‘ + ‘ eller ‘5V’). Tilslut dette til pin 2 (den øverste højre pin, 5V) på Pi. GND pin vil blive mærket ‘ – ‘eller’ Gnd ‘ eller noget tilsvarende. Tilslut dette til pin 6 Gnd (to ben under 5V pin) på Pi. Den resterende pin på DHT22 er data pin og vil blive mærket ‘out’ eller ‘s’eller ‘ data’. Tilslut dette til en af GPIO-stifterne på Pi, såsom GPIO4 (pin 7). Når dette er tilsluttet, tænd din Pi.

til denne løsning skal vi bruge Python 3 og CircuitPython-biblioteket, da Adafruit har forældet DHT Python-biblioteket.

installer CircuitPython-DHT Python-modulet ved en kommandoprompt for at gøre læsning af DHT22 sensordata super let:

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

med vores operativsystem installeret sammen med vores to Python-moduler til læsning af sensordata og afsendelse af data til starttilstand, er vi klar til at skrive vores Python-script. Følgende script vil oprette / tilføje til en indledende tilstand data spand, læse DHT22 sensor data, og sende disse data til en real-time dashboard. Alt du skal gøre er at ændre linjer 6-11.

  • linje 7 – Denne værdi skal være unik for hver node/temperatursensor. Dette kan være din sensornodes rumnavn, fysiske placering, unik identifikator eller hvad som helst. Bare sørg for, at det er unikt for hver node for at sikre, at dataene fra denne node går til sin egen datastrøm i dit dashboard.
  • linje 8— Dette er navnet på data bucket. Dette kan ændres til enhver tid i den oprindelige tilstand UI.
  • linje 9— Dette er din bucket nøgle. Det skal være den samme bucket-nøgle for hver node, du vil have vist i det samme dashboard.
  • linje 10— Dette er din oprindelige tilstandskonto adgangsnøgle. Kopier og indsæt denne nøgle fra din oprindelige Tilstandskonto.
  • linje 11— Dette er tiden mellem sensorlæsning. Skift i overensstemmelse hermed.
  • linje 12-Du kan angive metriske eller kejserlige enheder på linje 11.

når du har angivet linjer 7-12 i dit Python-script på din Pi, skal du gemme og afslutte teksteditoren. Kør scriptet med følgende kommando:

$ python3 tempsensor.py
her er et eksempel på at bruge DHT22-sensoren med Raspberry Pi

nu har du data, der sendes til et indledende tilstandsdashboard. Gå til det sidste afsnit i denne artikel for detaljer om, hvordan du tilpasser dit dashboard.

Dsb18b20 Solution

du skal bruge følgende elementer til at bygge denne løsning:
– Dsb18b20 temperatursensor
– 10k modstand
– Breadboard
– 40-Pin Breakout Board + båndkabel
– ledninger

båndkablet forbindes til GPIO-stifterne på Pi. DS18B20 har tre ledninger. Den røde ledning forbinder til 3,3 V. Den blå / sorte ledning forbinder til jorden. Den gule ledning tilsluttes en pull-up modstand / pin 4. Når dette er tilsluttet, tænd din Pi.

den nyeste version af Raspbian (kernel 3.18) kræver en tilføjelse til din /boot/config.tekstfil for Pi til at kommunikere med DS18B20. Kør følgende for at redigere denne fil:

$ sudo nano /boot/config.txt

hvis følgende linje ikke allerede er i denne fil (hvis den er, er den sandsynligvis i bunden af filen), skal du tilføje den og gemme filen.

dtoverlay=w1-gpio,gpiopin=4

genstart din Pi, så ændringerne træder i kraft.

$ sudo reboot

for at starte temperatursensorens læsningsgrænseflade skal vi køre to kommandoer. Gå til en kommandoprompt på din Pi eller SSH i din Pi. Skriv følgende kommandoer:

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

udgangen af din temperatursensor skrives Nu til en fil på din Pi. For at finde den fil:

$ cd /sys/bus/w1/devices

i denne mappe vil der være en underkatalog, der starter med “28 -“. Hvad der kommer efter “28-” er serienummeret på din sensor. cd i denne mappe. Inde i denne mappe indeholder en fil med navnet v1_slave output fra din sensor. Brug nano til at se indholdet af filen. Når du har indtastet filen, vil den se sådan ud:

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

nummeret efter” t= ” er det nummer, vi ønsker. Dette er temperaturen i 1/1000 grader Celsius (i eksemplet ovenfor er temperaturen 26.125 C). Vi har bare brug for et simpelt program, der læser denne fil og analyserer det nummer. Vi kommer til det på bare et sekund.

alt er nu klar til at starte streaming af data. For at åbne teksteditoren skal du skrive følgende i kommandoprompten:

$ nano temperature.py

Kopier og indsæt koden nedenfor i teksteditoren.

du skal sætte din oprindelige Tilstandsadgangstast på linje 6 i stedet for PUT_YOUR_ACCESS_KEY_HERE (kopier streamingnøglen til dit udklipsholder fra ‘min konto’ og indsæt den i koden i nano i din terminal).

linje 6 opretter en spand med navnet” Temperaturstrøm ” på din oprindelige Tilstandskonto (forudsat at du korrekt har angivet din access_key på samme linje). Linjer 8 til 30 i dette script skal blot interface med DS18b20-sensoren for at læse dens temperatur fra den h1_slave-fil, vi diskuterede tidligere. Funktionen read_temp_rave () på linje 15 læser den rå v1_slave-fil. Funktionen read_temp () på linje 21 analyserer temperaturen fra den pågældende fil. Linje 34 kalder disse funktioner for at få den aktuelle temperatur. Linje 35 konverterer temperaturen fra Celsius til Fahrenheit. Linje 35 og 36 streamer temperaturen til din oprindelige Tilstandskonto. Linje 37 sætter scriptet på pause i 0,5 sekunder og indstiller, hvor ofte temperatursensoren læses og streames.

vi er klar til at starte streaming. Kør følgende kommando:

$ sudo python temperature.py

gå tilbage til din oprindelige Tilstandskonto i din netsøgemaskine, og kig efter en ny data spand kaldet temperatur Stream. Du bør se temperatur data streaming i live. Varier sensorens temperatur ved at holde den i hånden eller lægge den i et glas is.

nu har du data, der sendes til et indledende tilstandsdashboard. Gå til det sidste afsnit i denne artikel for detaljer om, hvordan du tilpasser dit dashboard.

BME280 løsning

du skal bruge følgende build denne løsning:
-BME280 tryk, temperatur, & fugtighedsføler

hvis du bruger en BME280, der ikke er fra Adafruit, vil din opsætning og kode være anderledes. Du kan finde et eksempel på, hvordan du bruger den BME280-sensor i denne artikel om overvågning af fugtighed i krybepladsen.

denne sensor leveres med stifter, som du skal lodde på sensoren. Jeg anbefaler at bruge et brødbræt med stifterne langsiden ned i brødbrættet for at gøre lodning lettere. Når du har afsluttet dette, skal vi forbinde sensoren til Pi.

Tilslut vin-stiften på sensoren til 3,3 V-stiften 1 på Pi. Tilslut GND-stiften på sensoren jordstiften 6 på Pi. Tilslut SCK-stiften på sensoren til SCL-stiften 5 på Pi. Tilslut SDI-stiften på sensoren til SDA-stiften 3 på Pi.

du skal bruge Python 3 til denne løsning og installere det oprindelige Tilstandsstreamermodul ved hjælp af pip3-installationsmetoden. Du skal også installere et par Adafruit Python-biblioteker.

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

for at bruge sensoren skal vi aktivere I2C på Pi.

sudo raspi-config

dette åbner Raspberry Pi-konfigurationsværktøjet. Gå til Mulighed 5 grænsefladeindstillinger. Herfra gå til I2C. det vil bede om at spørge dig, om du vil aktivere I2C, Vælg Ja og afslut. Nu har du I2C aktiveret til at kommunikere med sensoren.

vi kan teste dette ved at køre følgende:

sudo i2cdetect -y 1

dette vil kontrollere, at din Pi ser sensoren. På den måde, den er tilsluttet, skal den vise sensoren på adresse 77. Hvis du ikke registrerer sensoren, skal du genstarte din Pi, genaktivere I2C-interface-indstillingen på din Pi og prøve igen.

når din sensor er registreret, er det tid til at køre vores Hovedkode, der sender data til den oprindelige tilstand. Oprettet en fil kaldet bme280sensor.py med nano-kommandoen. Kopier og indsæt koden fra kernen i teksteditoren. Du bliver nødt til at foretage ændringer i linje 12-19.

  • linje 12-Denne værdi skal være unik for hver node/temperatursensor. Dette kan være din sensornodes rumnavn, fysiske placering, unik identifikator eller hvad som helst. Bare sørg for, at det er unikt for hver node for at sikre, at dataene fra denne node går til sin egen datastrøm i dit dashboard.
  • linje 13 — Dette er navnet på data bucket. Dette kan ændres til enhver tid i den oprindelige tilstand UI.
  • linje 14 — dette er din bucket nøgle. Det skal være den samme bucket-nøgle for hver node, du vil have vist i det samme dashboard.
  • linje 15 — Dette er din oprindelige tilstandskonto adgangsnøgle. Kopier og indsæt denne nøgle fra din oprindelige Tilstandskonto.
  • linje 17 — Dette er din placerings tryk (hPa) ved havoverfladen. Du kan finde disse oplysninger på de fleste vejr hjemmesider.
  • linje 18 — Dette er tiden mellem sensorlæsninger. Skift i overensstemmelse hermed.
  • linje 19 — her kan du angive metriske eller kejserlige enheder.

når du har angivet linjer 12-19 i dit Python-script på din Pi, skal du gemme og afslutte teksteditoren. Kør scriptet med følgende kommando:

$ python3 bme280sensor.py

nu har du data, der sendes til et indledende tilstandsdashboard. Gå til det sidste afsnit i denne artikel for detaljer om, hvordan du tilpasser dit dashboard.

Sense HAT Solution

du skal bruge følgende elementer til at opbygge denne løsning:
-Raspberry Pi Sense HAT
-6″ 40-Pin IDE mand til kvinde forlængerkabel (valgfrit for temperaturnøjagtighed)

det første trin i at bruge Sense HAT er at fysisk installere det på din Pi. Med Pi drevet ned, fastgjort hatten som vist nedenfor.

Sense HAT forbindelse til Raspberry Pi

hvis du beslutter dig for at bruge løsningen som vist ovenfor, kan du bemærke, at din Sense HAT ‘ s temperaturaflæsninger vil være lidt høje — det er fordi de er. Synderen er den varme, der genereres fra Pi ‘ s CPU, der opvarmer luften omkring Sense HAT, når den sidder oven på Pi. For at gøre temperatursensoren nyttig skal vi enten få hatten væk fra Pi eller forsøge at kalibrere temperatursensorens læsning. En god løsning til at få sensoren væk fra Pi er et kabel, der lader Sense HAT Dingle væk fra Pi. Et 6″, 40-pin IDE mand til kvinde forlængerkabel kabel vil gøre tricket.

Raspberry Pi i et tilfælde med forlængerkabel, der forbinder til Sense HAT

når du har valgt de to muligheder, skal du tænde for din Pi. Vi skal installere Python-biblioteket for at gøre det nemt at læse sensorværdierne fra Sense HAT. Først skal du sikre dig, at alt er opdateret på din version af Raspbian:

$ sudo apt-get update

installer derefter Sense HAT Python-biblioteket:

$ sudo apt-get install sense-hat

genstart din Pi. Vi er klar til at teste Sense HAT ved at læse sensordata fra den og sende disse data til den oprindelige tilstand.

Opret en fil kaldet sensehat og åbn den i teksteditoren ved at indtaste følgende i kommandoprompten:

$ nano sensehat.py

Kopier og indsæt koden nedenfor i teksteditoren.

Bemærk På den første linje, at vi importerer SenseHat-biblioteket til scriptet. Før du kører dette script, skal vi konfigurere vores brugerparametre.

specifikt skal du indstille din ACCESS_KEY til din oprindelige tilstandskontoadgangsnøgle. Du kan ændre BUCKET_NAME og SENSOR_LOCATION_NAME til den aktuelle sensorplacering. Gem og afslut teksteditoren.

Kør scriptet ved en kommandoprompt på din Pi:

$ sudo python sensehat.py

nu har du data, der sendes til et indledende tilstandsdashboard. Gå til det sidste afsnit i denne artikel for detaljer om, hvordan du tilpasser dit dashboard.

Tilpas dit oprindelige Tilstandsdashboard

med din Raspberry Pi temperatursensor bygget kan du nu gå til din oprindelige Tilstandskonto og se på dine data. Du kan højreklikke på en flise for at ændre diagramtypen og klikke på Rediger fliser for at ændre størrelsen og flytte dine fliser rundt. Jeg vil anbefale at bruge måletermostaten til temperatur og målevæskeniveauet for fugtighed. Du kan oprette linjegrafer for både temperatur og fugtighed for at se ændringer over tid. Du kan også tilføje et baggrundsbillede til dit dashboard.

du kan indstille Triggeralarmer, så du kan få en SMS eller e-mail, hvis temperaturen falder under eller går over en bestemt tærskel. Gå til din data spand og klik på Indstillinger. Derfra gå til fanen udløsere. Indtast den Strømnøgle, du vil overvåge, den operatør, du vil bruge, og tærskelværdien. Klik på plustegnet for at tilføje udløseren. Derefter indtaster du din e-mail eller telefonnummer for at modtage advarslen på og klikker på plustegnet. Når du har indstillet alle dine udløsere, skal du klikke på knappen Udført i bunden.

starttilstand temperatur dashboard

nu hvor du har oprettet en Raspberry Pi temperatursensor ved hjælp af en sensor og en Raspberry Pi, kan du begynde at tænke på, hvilke andre miljødata du kan overvåge næste.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

Previous post Master Gardener: Cassia træer er nemme at dyrke
Next post Adaptiv læring