Kako napraviti monitor temperature Raspberry Pi: 9 koraka
Kako napraviti monitor temperature Raspberry Pi: 9 koraka
Anonim
Kako napraviti monitor temperature Raspberry Pi
Kako napraviti monitor temperature Raspberry Pi

Temperatura i vlažnost vitalni su podaci u današnjem industrijskom svijetu. Nadgledanje podataka o okolišu za poslužiteljske prostorije, komercijalne zamrzivače i proizvodne linije potrebno je kako bi stvari nesmetano funkcionirale. Postoji mnogo rješenja u rasponu od osnovnih do složenih i može se činiti neodoljivim o tome šta vašem poslu treba i odakle započeti.

Proći ćemo kroz kako pratiti temperaturu pomoću Raspberry Pi -a i različitih temperaturnih senzora koje možete koristiti. Ovo je dobro mjesto za početak jer su ova rješenja jeftina, laka za izvođenje i daju vam osnovu za nadogradnju na drugi monitoring okoliša.

Supplies

  • Raspberry Pi (3, 4 ili nula WH)
  • Senzor temperature (DHT2, DSB18B20, BME280 ili Sense HAT)
  • 6 "40-pinski IDE produžni kabel muški na ženski (Sense HAT rješenje)
  • 10K otpornik, pločica, 40-pinska prekidna ploča + vrpčani kabel, žice (za rješenje DSB18B20)

Korak 1: Raspberry Pi

Raspberry Pi je jeftin single board računar koji će vam omogućiti povezivanje sa senzorom temperature i strujanje podataka u softver za vizualizaciju podataka. Raspberry Pi su započeli kao alat za učenje, a evoluirali su do alata za industrijsko radno mjesto. Jednostavnost upotrebe i mogućnost kodiranja s Pythonom, najbrže rastućim programskim jezikom, učinili su da se ide na rješenje.

Želite Raspberry Pi sa ugrađenim WiFi -om, bilo koji model 3, 4 i nula W/WH. Između onih koje možete birati na temelju cijene i mogućnosti. Zero W/WH je najjeftiniji, ali ako vam je potrebno više funkcija, možete birati između 3 i 4. Možete kupiti samo jedan Zero W/WH odjednom zbog ograničenja Raspberry Pi Foundation. Koji god Pi odaberete, obavezno kupite punjač jer ćete tako napajati Pi i SD karticu pomoću Raspbiana kako bi instalacija operativnog sistema bila što lakša.

Postoje i drugi single board računari koji takođe mogu raditi, ali to je za neko drugo vrijeme i drugi članak.

Korak 2: Senzori

Preporučujemo korištenje tri senzora jer su jeftini, lako se povezuju i daju točna očitanja; DSB18B20, DHT22 i Raspberry Pi Sense HAT.

DHT22 - Ovaj senzor temperature i vlažnosti ima temperaturnu tačnost od +/- 0,5 C i raspon vlažnosti od 0 do 100 posto. Lako je spojiti na Raspberry Pi i ne zahtijevaju nikakve otpornike.

DSB18B20 - Ovaj temperaturni senzor ima digitalni izlaz, koji dobro funkcionira s Raspberry Pi. Ima tri žice i za povezivanje je potrebna ploča i otpornik.

BME280 - Ovaj senzor mjeri temperaturu, vlažnost i barometarski pritisak. Može se koristiti i u SPI i u I2C.

Sense HAT - Ovo je dodatak za Raspberry Pi koji ima LED diode, senzore i mali džojstik. Povezuje se izravno s GPIO -om na Raspberry Pi -u, ali pomoću vrpčnog kabela dobivate preciznija očitanja temperature.

Korak 3: Postavljanje Raspberry Pi

Ako je ovo prvi put da postavljate svoj Raspberry Pi, morat ćete instalirati Raspbian operativni sistem i povezati svoj Pi na WiFi. Ovo će zahtijevati monitor i tastaturu za povezivanje sa Pi -om. Kada ga pokrenete i povežete na WiFI, vaš Pi je spreman za rad.

Korak 4: Početni državni račun

Početni državni račun
Početni državni račun
Početni državni račun
Početni državni račun

Morat ćete negdje poslati svoje podatke kako biste vodili povijesni dnevnik i pregledavali tok podataka u stvarnom vremenu, pa ćemo koristiti početno stanje. Idite na https://iot.app.initialstate.com i kreirajte novi račun ili se prijavite na svoj postojeći račun.

Zatim moramo instalirati Python modul početnog stanja na vaš Pi. U naredbenom retku (ne zaboravite prvo unijeti SSH u svoj Pi), pokrenite sljedeću naredbu:

$ cd/home/pi/

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

Nakon što unesete naredbu curl u naredbeni redak, na ekranu ćete vidjeti nešto slično sljedećem izlazu:

pi@raspberrypi ~

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash Lozinka: Počinje ISStreamer Python Laka instalacija! Ovo može potrajati nekoliko minuta da se instalira, popijete kafu:) Ali ne zaboravite da se vratite, ja ću imati pitanja kasnije! Pronađeno easy_install: setuptools 1.1.6 Pronađeno pip: pip 1.5.6 iz /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) glavna verzija pipa: 1 pip minor verzija: 5 ISStreamer je pronađen, ažurira se … Zahtev je već ažuriran: ISStreamer u /Library/Python/2.7/site-packages Cleaning… Želite li automatski da dobijete primer skripte? [y/N] Gdje želite spremiti primjer? [zadano:./is_example.py] Molimo odaberite aplikaciju početnog stanja koju koristite: 1. app.initialstate.com 2. [NOVO!] iot.app.initialstate.com Unesite izbor 1 ili 2: Unesite iot.app.initialstate.com korisničko ime: Unesite lozinku iot.app.initialstate.com:

Kada se od vas zatraži da automatski nabavite primjer skripte, upišite y. Ovo će stvoriti testnu skriptu koju možemo pokrenuti kako bismo osigurali da možemo prenositi podatke u početno stanje. Sljedeći upit će vas upitati gdje želite spremiti datoteku primjera. Možete unijeti prilagođenu lokalnu putanju ili pritisnuti enter da biste prihvatili zadanu lokaciju. Na kraju će vas pitati koju aplikaciju Initial State koristite. Ako ste nedavno stvorili račun, odaberite opciju 2, unesite svoje korisničko ime i lozinku. Nakon toga instalacija će biti dovršena.

Pogledajmo primjer skripte koja je stvorena.

$ nano is_example.py

Na 15. retku vidjet ćete redak koji počinje sa streamer = Streamer (bucket_…. Ove linije stvaraju novu podatkovnu gomilu pod nazivom „Primjer Python Stream -a“i povezane su s vašim računom. Do ove asocijacije dolazi zbog access_key =”…“parametar na istoj liniji. Taj dugi niz slova i brojeva vaš je ključ za pristup računu početnog stanja. Ako u svom web pregledniku otvorite svoj račun početnog stanja, kliknite na svoje korisničko ime u gornjem desnom kutu, a zatim idite na "moje postavke", isti pristupni ključ ćete pronaći ovdje pod “Pristupni ključevi za prijenos podataka”.

Svaki put kada kreirate tok podataka, taj pristupni ključ će usmjeriti taj tok podataka na vaš račun (zato ne dijelite ključ ni sa kim).

Pokrenite testnu skriptu kako biste bili sigurni da možemo stvoriti tok podataka na vašem računu početnog stanja. Pokrenite sljedeće:

$ python is_example.py

Vratite se na svoj račun početnog stanja u svom web pregledniku. Nova korpa podataka pod nazivom „Primjer Python Stream -a“trebala se pojaviti s lijeve strane na polici vašeg dnevnika (možda ćete morati osvježiti stranicu). Kliknite na ovu kantu, a zatim kliknite na ikonu Waves (Talasi) za pregled podataka o testiranju

Ako koristite Python 3, možete instalirati početni modul streamera koji možete instalirati pomoću sljedeće naredbe:

pip3 instalirajte ISStreamer

Sada smo spremni za postavljanje temperaturnog senzora sa Pi za prebacivanje temperature na nadzornu ploču.

Korak 5: DHT22 rješenje

DHT22 rešenje
DHT22 rešenje

DHT22 će imati tri pina - 5V, Gnd i data. Na DHT22 bi trebala biti oznaka pin -a za napajanje (npr. ‘+’ Ili ‘5V’). Spojite ovo na pin 2 (gornji desni pin, 5V) na Pi. Gnd pin će imati oznaku '-' ili 'Gnd' ili nešto ekvivalentno. Spojite ovo na pin 6 Gnd (dva pina ispod pina 5V) na Pi. Preostali pin na DHT22 je pin podataka i bit će označen kao 'out' ili 's' ili 'data'. Spojite ovo na jedan od GPIO pinova na Pi -u, poput GPIO4 (pin 7). Kada se ovo poveže, uključite svoj Pi.

Instalirajte Adafruit DHT Python modul u naredbeni redak kako biste učinili čitanje podataka senzora DHT22 super lakim:

$ sudo pip install Adafruit_DHT

S instaliranim operativnim sistemom i naša dva Python modula za čitanje podataka senzora i slanje podataka u početno stanje, spremni smo za pisanje naše Python skripte. Sljedeća skripta će kreirati/dodati u početnu državu podataka, pročitati podatke senzora DHT22 i poslati te podatke na nadzornu ploču u stvarnom vremenu. Sve što trebate učiniti je izmijeniti redove 6-11.

uvoz Adafruit_DHT

iz ISStreamer. Streamer importa Streamer import vrijeme uvoza# --------- Korisničke postavke --------- SENSOR_LOCATION_NAME = "Ured" BUCKET_NAME = ": djelomično_sunčan: Temperature u prostoriji" BUCKET_KEY = "rt0129" ACCESS_KEY = "OVDJE KLJUČITE SVOJ POČETNI DRŽAVNI PRISTUP" MINUTES_BETWEEN_READS = 10METRIC_UNITS = Netačno # --------------------------------- streamer = Niz (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) dok je True: vlažnost, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) ako je METRIC_UNITS: streamer.log (SENSOR_, Temp. "SOC"): temp_f = format (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Temperatura (F)", temp_f) vlažnost = format (vlažnost, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Vlažnost (%)", vlažnost) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • Linija 6 - Ova vrijednost bi trebala biti jedinstvena za svaki čvor/senzor temperature. To može biti naziv sobe vašeg čvora senzora, fizička lokacija, jedinstveni identifikator ili bilo što drugo. Samo provjerite je li jedinstven za svaki čvor kako biste bili sigurni da podaci iz ovog čvora idu u vlastiti tok podataka na vašoj nadzornoj ploči.
  • Red 7 - Ovo je naziv segmenta podataka. Ovo se može promijeniti u bilo kojem trenutku u korisničkom sučelju početnog stanja.
  • Red 8 - Ovo je vaš ključ kante. To mora biti isti ključ za svaki čvor koji želite prikazati na istoj nadzornoj ploči.
  • Red 9 - Ovo je ključ za pristup vašem računu početnog stanja. Kopirajte i zalijepite ovaj ključ sa svog računa početnog stanja.
  • Red 10 - Ovo je vrijeme između očitavanja senzora. U skladu s tim promenite.
  • Red 11 - Možete odrediti metričke ili imperijalne jedinice u retku 11.

Nakon što ste postavili retke 6-11 u vašoj Python skripti na svom Pi, spremite i izađite iz uređivača teksta. Pokrenite skriptu sa sljedećom naredbom:

$ python tempsensor.py

Sada ćete slati podatke na nadzornu ploču početnog stanja. Idite na posljednji odjeljak ovog članka za detalje o tome kako prilagoditi svoju nadzornu ploču.

Korak 6: Rješenje DSB18B20

Rješenje DSB18B20
Rješenje DSB18B20
Rješenje DSB18B20
Rješenje DSB18B20

Vrpčasti kabel povezuje se s GPIO pinovima na Pi -u. DS18B20 ima tri žice. Crvena žica spaja se na 3.3V. Plava/crna žica spaja se na masu. Žuta žica povezuje se sa otpornikom na izvlačenje/iglom 4. Kada se ovo poveže, uključite Pi.

Najnovija verzija Raspbiana (kernel 3.18) zahtijeva dodatak vašoj /boot/config.txt datoteci kako bi Pi mogao komunicirati s DS18B20. Pokrenite sljedeće za uređivanje ove datoteke:

$ sudo nano /boot/config.txt

Ako sljedeći red već nije u ovoj datoteci (ako jeste, vjerovatno je na dnu datoteke), dodajte je i spremite datoteku.

dtoverlay = w1-gpio, gpiopin = 4

Ponovo pokrenite Pi da bi promjene stupile na snagu.

$ sudo ponovno pokretanje

Za pokretanje sučelja za čitanje senzora temperature potrebno je pokrenuti dvije naredbe. Idite na komandnu liniju na svom Pi ili SSH u svom Pi. Upišite sljedeće naredbe:

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

Izlaz vašeg senzora temperature sada se zapisuje u datoteku na vašem Pi. Da biste pronašli tu datoteku:

$ cd/sys/bus/w1/devices

U ovom direktoriju će se nalaziti poddirektorijum koji počinje sa „28-“. Nakon “28-” dolazi serijski broj vašeg senzora. cd u taj direktorij. Unutar ovog direktorija datoteka sa imenom w1_slave sadrži izlaz vašeg senzora. Koristite nano za pregled sadržaja datoteke. Nakon što unesete datoteku, ona će izgledati otprilike ovako:

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

Broj iza “t =” je broj koji želimo. Ovo je temperatura u 1/1000 stepeni Celzijusa (u gornjem primjeru temperatura je 26.125 C). Treba nam samo jednostavan program koji čita ovu datoteku i raščlanjuje taj broj. Doći ćemo do toga za samo sekundu.

Sada je sve spremno za početak prijenosa podataka. Da biste otvorili uređivač teksta, u naredbeni redak upišite sljedeće:

$ nano temperature.py

Kopirajte i zalijepite donji kod u uređivač teksta.

import os

import glob uvoz iz ISStreamer. Streamer import Streamerstreamer = Streamer (bucket_name = "Temperaturni tok", bucket_key = "piot_temp_stream031815", access_key = "PUT_YOUR_ACCESS_KEY_HERE") os.system ('modprobe w1-gpys' -therm ') base_dir ='/sys/bus/w1/devices/'device_folder = glob.glob (base_dir + '28*') [0] device_file = device_folder + '/w1_slave' def read_temp_raw (): f = open (device_file, 'r') lines = f.readlines () f.close () povratne linije def read_temp (): lines = read_temp_raw () dok su linije [0].strip () [-3:]! = 'YES': time.sleep (0.2) retci = read_temp_raw () equals_pos = lines [1].find ('t =') if equals_pos! = -1: temp_string = lines [1] [equals_pos+2:] temp_c = float (temp_string) / 1000.0 vraćanje temp_c dok je True: temp_c = read_temp () temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log ("temperatura (C)", temp_c) streamer.log ("temperatura (F)", temp_f) time.sleep (.5)

Ključ za pristup početnom stanju morate staviti u red 6 umjesto PUT_YOUR_ACCESS_KEY_HERE (kopirajte ključ za prijenos u međuspremnik iz 'Moj račun' i zalijepite ga u kod u nano na vašem terminalu).

Red 6 će stvoriti kantu pod nazivom „Temperaturni tok“na vašem računu početnog stanja (pod pretpostavkom da ste ispravno naveli pristupni ključ na ovoj istoj liniji). Redovi 8 do 30 ove skripte jednostavno se povezuju sa senzorom DS18B20 kako bi očitali njenu temperaturu iz datoteke w1_slave o kojoj smo ranije govorili. Funkcija read_temp_raw () u retku 15 čita neobrađenu datoteku w1_slave. Funkcija read_temp () u retku 21 raščlanjuje temperaturu iz te datoteke. Linija 34 poziva ove funkcije kako bi se dobila trenutna temperatura. Linija 35 pretvara temperaturu iz Celzijusa u Fahrenheit. Redovi 35 i 36 prenose temperaturu na vaš račun početnog stanja. Red 37 pauzira skriptu na 0,5 sekundi, postavljajući koliko često će se senzor temperature čitati i prenositi.

Spremni smo za početak streaminga. Pokrenite sljedeću naredbu:

$ sudo python temperature.py

Vratite se na početno stanje računa u svom web pregledniku i potražite novu kantu podataka pod nazivom Temperature Stream. Trebali biste vidjeti prijenos podataka o temperaturi uživo. Promijenite temperaturu senzora držeći ga u ruci ili stavljajući u čašu leda.

Sada ćete slati podatke na nadzornu ploču početnog stanja. Idite na posljednji odjeljak ovog članka za detalje o tome kako prilagoditi svoju nadzornu ploču.

Korak 7: Rješenje BME280

Za izradu ovog rješenja trebat će vam sljedeće:

-BME280 Senzor pritiska, temperature i vlažnosti

Ovaj senzor dolazi s pinovima koje ćete morati lemiti na senzoru. Preporučujem upotrebu matične ploče s dugim iglama prema dolje u matičnu ploču radi lakšeg lemljenja. Nakon što ovo dovršite, moramo spojiti senzor na Pi.

Spojite VIN pin na senzoru na 3.3V pin 1 na Pi. Priključite pin GND na senzor uzemljenje 6 na Pi. Spojite SCK pin na senzoru na SCL pin 5 na Pi. Spojite SDI pin na senzoru na SDA pin 3 na Pi. Za ovo rješenje morate koristiti Python 3 i instalirati modul Initial State Streamer koristeći pip3 instalacijsku metodu.

Također ćete morati instalirati nekoliko Adafruit Python biblioteka.

pip3 instaliraj adafruit-blinkapip3 instaliraj pureio pip3 instaliraj spidev pip3 instaliraj adafruit-GPIO pip3 instaliraj adafruit-circuitpython-bme280

Za korištenje senzora moramo omogućiti I2C na Pi.

sudo raspi-config

Ovo će otvoriti alat za konfiguraciju softvera Raspberry Pi. Idite na opciju 5 Opcije povezivanja. Odavde idite na I2C. Upitaće vas da li želite da omogućite I2C, izaberite Da i završi. Sada imate omogućen I2C za komunikaciju sa senzorom.

Ovo možemo testirati pokretanjem sljedećeg:

sudo i2cdetect -y 1

Ovo će potvrditi da vaš Pi vidi senzor. Način na koji je spojen, trebao bi prikazati senzor na adresi 77. Ako ne otkrijete senzor, ponovo pokrenite Pi, ponovo omogućite opciju sučelja I2C na vašem Pi i pokušajte ponovo. Nakon što je vaš senzor otkriven, vrijeme je za pokretanje našeg glavnog koda koji će slati podatke u početno stanje. Kreirao je datoteku pod nazivom bme280sensor.py s nano naredbom. Kopirajte i zalijepite kôd iz suštine u uređivač teksta. Morat ćete promijeniti redove 12-19.

vreme uvoza

import board import busio import adafruit_bme280 iz ISStreamer. Streamer import Streamer # Kreirajte objekt biblioteke koristeći našu sabirnicu I2C porti2c = busio. I2C (board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C (i2c) # ------- -Korisničke postavke --------- SENSOR_LOCATION_NAME = "Ured" BUCKET_NAME = ": djelomično_sunčano: Sobna temperatura" BUCKET_KEY = "temp1" ACCESS_KEY = "VAŠ KLJUČ ZA PRISTUP" # promijenite ovo tako da odgovara pritisku lokacije (hPa) na nivou mora bme280.sea_level_pressure = 1013,25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = Netačno # --------------------------------- # ILI kreirajte objekt biblioteke koristeći naš SPI port sabirnice #spi = busio. SPI (board. SCK, board. MOSI, board. MISO) #bme_cs = digitalio. DigitalInOut (board. D10) #bme280 = adafruit_bme280. Adafruit_BME280_SPI (spi, bme_cs) streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) dok je True: vlažnost = format (bme280.humidity, ".1f") pressure = format (bme280.pressure, ".1f") temp_c = bme280.temperatu re if METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "Temperatura (C)", temp_c) drugo: temp_f = format (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "Temperatura (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + "Vlažnost (%)", vlažnost) streamer.log (SENSOR_LOCATION_NAME + "Pritisak (hPA)", pritisak) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • Red 12- Ova vrijednost treba biti jedinstvena za svaki čvor/senzor temperature. To može biti naziv sobe vašeg čvora senzora, fizička lokacija, jedinstveni identifikator ili bilo što drugo. Samo provjerite je li jedinstven za svaki čvor kako biste bili sigurni da podaci iz ovog čvora idu u vlastiti tok podataka na vašoj nadzornoj ploči.
  • Linija 13- Ovo je naziv segmenta podataka. Ovo se može promijeniti u bilo kojem trenutku u korisničkom sučelju početnog stanja.
  • Red 14- Ovo je vaš ključ. To mora biti isti ključ za svaki čvor koji želite prikazati na istoj nadzornoj ploči.
  • Red 15- Ovo je ključ za pristup vašem računu za početno stanje. Kopirajte i zalijepite ovaj ključ sa svog računa početnog stanja.
  • Linija 17- Ovo je tlak vaše lokacije (hPa) na razini mora. Ove informacije možete pronaći na većini vremenskih web stranica.
  • Red 18 - Ovo je vrijeme između očitavanja senzora. Promijenite u skladu s tim. Red 19- Ovdje možete odrediti metričke ili imperijalne jedinice.

Nakon što ste postavili redove 12–19 u Python skripti na svom Pi Zero WH, spremite i izađite iz uređivača teksta. Pokrenite skriptu sa sljedećom naredbom:

$ python3 bme280sensor.py

Sada ćete slati podatke na nadzornu ploču početnog stanja. Idite na posljednji odjeljak ovog članka za detalje o tome kako prilagoditi svoju nadzornu ploču.

Korak 8: Sense HAT

Sense HAT
Sense HAT
Sense HAT
Sense HAT

Prvi korak u korištenju Sense HAT -a je da ga fizički instalirate na svoj Pi. Kada je Pi isključen, pričvrstite HAT kao što je prikazano na slici.

Ako odlučite koristiti rješenje kako je gore prikazano, možda ćete primijetiti da će očitanja temperature vašeg Sense HAT -a biti malo visoka - to je zato što jesu. Krivac je toplina generirana iz Pi -jevog CPU -a koji zagrijava zrak oko Sense HAT -a dok sjedi na vrhu Pi -a. Da bi senzor temperature bio koristan, moramo ili odvojiti HAT od Pi ili pokušati kalibrirati očitanje osjetnika temperature. Dobro rješenje za odvajanje senzora od Pi -a je kabel koji omogućuje Sense HAT -u da visi od Pi -a. 6 , 40-pinski IDE kabel produžnog kabela s muškim na ženski spoj će uspjeti.

Kad se odlučite za dvije opcije, uključite svoj Pi. Moramo instalirati Python biblioteku kako bismo olakšali čitanje vrijednosti senzora iz Sense HAT -a. Prvo ćete morati osigurati da je sve ažurirano na vašoj verziji Raspbiana:

$ sudo apt-get update

Zatim instalirajte biblioteku Sense HAT Python:

$ sudo apt-get install sense-hat

Ponovo pokrenite Pi. Spremni smo za testiranje Sense HAT -a čitanjem podataka senzora s njega i slanjem tih podataka u početno stanje.

Napravite datoteku sensehat i otvorite je u uređivaču teksta unosom sljedećeg u naredbeni redak:

$ nano sensehat.py

Kopirajte i zalijepite donji kod u uređivač teksta.

from sense_hat import SenseHat

uvoz vrijeme uvoza sys iz ISStreamer. Streamer uvoz Streamer # --------- Korisničke postavke --------- BUCKET_NAME = "Vrijeme u uredu" BUCKET_KEY = "sensehat" ACCESS_KEY = "Vaš_Access_Key" SENSOR_LOCATION_NAME = " Ured "MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # --------------------------------- streamer = Streamer (ime korpe = BUCKET_NAME, ključ_kante = BUCKET_KEY, access_key = ACCESS_KEY) sense = SenseHat () while True: # Pročitajte senzore temp_c = sense.get_temperature () vlažnost = sense.get_humidity () pressure_mb = sense.get_pressure () # Formatirajte podatke temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = plovak ("{0:.2f}". Format (temp_f)) vlažnost = plovak ("{0:.2f}". Format (vlažnost)) pressure_in = 0.03937008*(pressure_mb) pressure_in = float ("{ 0:.2f} ". Format (pressure_in)) # Odštampajte i štampajte štampanje SENSOR_LOCATION_NAME +" Temperatura (F): " + str (temp_f) štampanje SENSOR_LOCATION_NAME +" Vlažnost (%): " + str (vlažnost) štampa SENSOR_LOCATION_NAME +" Pritisak (IN): " + str (pressure_in) streamer.log (": sunny: " + SEN SOR_LOCATION_NAME + "Temperatura (F)", temp_f) streamer.log (": sweat_drops:" + SENSOR_LOCATION_NAME + "Vlažnost (%)", vlažnost) streamer.log (": cloud:" + SENSOR_LOCATION_NAME + "Pritisak (IN)", pressure_in) streamer.flush () time.sleep (60*MINUTES_BETWEEN_SENSEHAT_READS)

Primijetite u prvom retku da uvozimo biblioteku SenseHat u skriptu. Prije nego pokrenete ovu skriptu, moramo postaviti naše korisničke parametre.

# --------- Korisničke postavke ---------

BUCKET_NAME = "Vrijeme u uredu" BUCKET_KEY = "sensehat" ACCESS_KEY = "Vaš_Access_Key" SENSOR_LOCATION_NAME = "Ured" MINUTES_BETWEEN_SENSEHAT_READS = 0.1# ------------------------- --------

Konkretno, morate postaviti svoj ACCESS_KEY na ključ za pristup računu početnog stanja. Možete promijeniti BUCKET_NAME i SENSOR_LOCATION_NAME na stvarnu lokaciju senzora. Spremite i izađite iz uređivača teksta.

U komandnoj liniji na vašem Pi pokrenite skriptu:

$ sudo python sensehat.py

Sada ćete slati podatke na nadzornu ploču početnog stanja. Idite na posljednji odjeljak ovog članka za detalje o tome kako prilagoditi svoju nadzornu ploču.

Korak 9: Prilagodite početnu nadzornu ploču stanja

Prilagodite svoju početnu nadzornu ploču stanja
Prilagodite svoju početnu nadzornu ploču stanja

Idite na svoj račun početnog stanja i pogledajte svoje podatke. Možete desnom tipkom miša kliknuti na pločicu da biste promijenili vrstu grafikona, a zatim kliknite Uredi pločice za promjenu veličine i pomicanje pločica. Preporučio bih korištenje termostata za mjerenje temperature i razine tekućine za mjerenje vlažnosti. Možete stvoriti linijske grafikone za temperaturu i vlažnost kako biste vidjeli promjene s vremenom. Takođe možete dodati pozadinsku sliku na svoju kontrolnu tablu.

Možete postaviti upozorenja okidača tako da možete dobiti SMS ili e -poruku ako temperatura padne ispod ili pređe određeni prag. Idite u svoju korpu podataka i kliknite na postavke. Odatle idite na karticu Okidači. Unesite ključ prijenosa koji želite nadzirati, operatora kojeg želite koristiti i vrijednost praga. Pritisnite znak plus da biste dodali okidač. Zatim ćete unijeti svoju e -adresu ili telefonski broj na koji ćete dobiti upozorenje i kliknuti znak plus. Nakon što postavite sve okidače, kliknite gumb Gotovo pri dnu.

Sada kada ste stvorili monitor temperature pomoću senzora temperature i Raspberry Pi, možete početi razmišljati o tome koje druge podatke o okolišu možete sljedeće pratiti.