Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Lämpötila ja kosteus ovat tärkeitä tietopisteitä nykymaailmassa. Palvelinhuoneiden, kaupallisten pakastimien ja tuotantolinjojen ympäristötietojen seuranta on välttämätöntä, jotta asiat toimivat sujuvasti. On olemassa monia ratkaisuja, jotka vaihtelevat perustason monimutkaisista, ja se voi tuntua ylivoimaiselta sen suhteen, mitä yrityksesi tarvitsee ja mistä aloittaa.
Käymme läpi kuinka seurata lämpötilaa Raspberry Pi: n ja eri lämpötila -antureiden avulla. Tämä on hyvä paikka aloittaa, koska nämä ratkaisut ovat halpoja, helppoja tehdä ja antavat perustan muulle ympäristön seurannalle.
Tarvikkeet
- Raspberry Pi (3, 4 tai Zero WH)
- Lämpötila -anturi (DHT2, DSB18B20, BME280 tai Sense HAT)
- 6 "40-nastainen IDE uros-naaras jatkojohto (Sense HAT -ratkaisu)
- 10K vastus, leipälevy, 40-nastainen katkaisulauta + nauhakaapeli, johdot (DSB18B20-ratkaisulle)
Vaihe 1: Raspberry Pi
Raspberry Pi on edullinen yhden levyn tietokone, jonka avulla voit muodostaa yhteyden lämpötila -anturiin ja suoratoistaa tiedot datan visualisointiohjelmistoon. Raspberry Pi aloitti oppimistyökaluna ja on kehittynyt teolliseksi työvälineeksi. Helppokäyttöisyys ja kyky koodata Pythonilla, nopeimmin kasvavalla ohjelmointikielellä, ovat tehneet niistä ratkaisun.
Haluat Raspberry Pi: n, jossa on sisäänrakennettu WiFi, jotka ovat mitä tahansa mallia 3, 4 ja nolla W/WH. Niiden välillä voit valita hinnoittelun ja ominaisuuksien perusteella. Zero W/WH on halvin, mutta jos tarvitset enemmän toimintoja, voit valita 3 ja 4 välillä. Voit ostaa vain yhden Zero W/WH kerrallaan Raspberry Pi -säätiön rajoitusten vuoksi. Riippumatta valitsemastasi Pi: stä, osta laturi, sillä näin käytät Pi: tä ja SD -korttia Raspbianin kanssa, jotta käyttöjärjestelmän asennus olisi mahdollisimman helppoa.
On myös muita yhden kortin tietokoneita, jotka voivat toimia, mutta se on toista kertaa ja toinen artikkeli.
Vaihe 2: Anturit
Suosittelemme käyttämään kolme anturia, koska ne ovat halpoja, helppoja liittää ja antavat tarkkoja lukemia. DSB18B20, DHT22 ja Raspberry Pi Sense HAT.
DHT22 - Tämän lämpötila- ja kosteusanturin lämpötilan tarkkuus on +/- 0,5 C ja kosteusalue 0-100 prosenttia. Se on helppo kytkeä Raspberry Pi -johtoon, eikä se vaadi vetovoimia.
DSB18B20 - Tässä lämpötila -anturissa on digitaalinen lähtö, joka toimii hyvin Raspberry Pi: n kanssa. Siinä on kolme johtoa ja liitäntä vaatii leipälevyn ja vastuksen.
BME280 - Tämä anturi mittaa lämpötilan, kosteuden ja ilmanpaineen. Sitä voidaan käyttää sekä SPI: ssä että I2C: ssä.
Sense HAT - Tämä lisäosa Raspberry Pi: lle, jossa on LED -valot, anturit ja pieni ohjaussauva. Se kytkeytyy suoraan Raspberry Pi: n GPIO -laitteeseen, mutta nauhakaapelin avulla saat tarkemmat lämpötilalukemat.
Vaihe 3: Raspberry Pi -asennus
Jos tämä on ensimmäinen kerta, kun asennat Raspberry Pi -laitteesi, sinun on asennettava Raspbian -käyttöjärjestelmä ja liitettävä Pi WiFi -verkkoon. Tämä vaatii näytön ja näppäimistön yhteyden muodostamiseen Pi -laitteeseen. Kun olet ottanut sen käyttöön ja muodostanut yhteyden WiFI: hen, Pi on käyttövalmis.
Vaihe 4: Valtion alkuperäinen tili
Sinun on lähetettävä tietosi jonnekin, jotta voit pitää historiallista lokia ja tarkastella reaaliaikaista tietovirtaa, joten käytämme alkuperäistä tilaa. Siirry osoitteeseen https://iot.app.initialstate.com ja luo uusi tili tai kirjaudu olemassa olevaan tiliisi.
Seuraavaksi meidän on asennettava Initial State Python -moduuli Pi -laitteeseesi. Suorita seuraava komento komentokehotteessa (älä unohda SSH: ta Pi: hen).
$ cd/home/pi/
$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
Kun olet kirjoittanut curl -komennon komentokehotteeseen, näet jotain seuraavan kaltaista tulosta näytölle:
pi@raspberrypi ~
$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash Salasana: ISStreamer Python Helppo asennus! Asentaminen voi kestää muutaman minuutin, nappaa kahvia:) Mutta älä unohda palata, minulla on kysymyksiä myöhemmin! Löytyi easy_install: setuptools 1.1.6 Löytyi pip: pip 1.5.6 /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pääversio: 1 pip vähäinen versio: 5 ISStreamer löytyi, päivitetään… Vaatimus on jo ajan tasalla: ISStreamer /Library/Python/2.7/site-packages Siivotaan… Haluatko automaattisesti saada esimerkkikomentosarjan? [y/N] Minne haluat tallentaa esimerkin? [oletus:./is_example.py] Valitse alkuperäinen tila, jota käytät: 1. app.initialstate.com 2. [UUSI!] iot.app.initialstate.com Anna vaihtoehto 1 tai 2: Kirjoita iot.app.initialstate.com -käyttäjänimi: Anna iot.app.initialstate.com -salasana:
Kun sinua kehotetaan hakemaan automaattisesti esimerkkikomentosarja, kirjoita y. Tämä luo testikomentosarjan, jonka voimme suorittaa varmistaaksemme, että voimme suoratoistaa tietoja alkuperäiseen tilaan. Seuraava kehote kysyy minne haluat tallentaa esimerkkitiedoston. Voit joko kirjoittaa mukautetun paikallisen polun tai painaa Enter hyväksyäksesi oletussijainnin. Lopuksi sinulta kysytään, mitä alkuperäisen valtion sovellusta käytät. Jos olet äskettäin luonut tilin, valitse vaihtoehto 2, kirjoita käyttäjänimesi ja salasanasi. Tämän jälkeen asennus on valmis.
Katsotaanpa esimerkkiä, joka luotiin.
$ nano on_esimerkki.py
Rivillä 15 näet rivin, joka alkaa streamer = Streamer (bucket_…. Tämä rivi luo uuden dataluokan nimeltä "Python Stream Example" ja liittyy tiliisi. Tämä yhteys tapahtuu access_key = "…" parametri samalla rivillä. Tämä pitkä kirjainten ja numeroiden sarja on alkuperäisen valtion tilin käyttöavain. Jos siirryt alkuperäisen valtion tilillesi verkkoselaimessasi, napsauta oikeassa yläkulmassa olevaa käyttäjänimeäsi ja siirry sitten "omat asetukset", löydät saman käyttöavaimen täältä "Streaming Access Keys" -kohdasta.
Joka kerta, kun luot tietovirran, kyseinen käyttöavain ohjaa kyseisen tietovirran tilillesi (joten älä jaa avainta kenellekään).
Suorita testikomentosarja varmistaaksesi, että voimme luoda tietovirran alkuperäisen valtion tilillesi. Suorita seuraava:
$ python on_esimerkki.py
Palaa alkuperäisen valtion tilillesi verkkoselaimellasi. Python Stream -esimerkiksi kutsutun uuden tietoryhmän olisi pitänyt näkyä lokihyllyn vasemmalla puolella (sivu on ehkä päivitettävä). Napsauta tätä kauhaa ja napsauta sitten Waves -kuvaketta tarkastellaksesi testitietoja
Jos käytät Python 3: ta, voit asentaa Initial State Streamer Module -moduulin, jonka voit asentaa seuraavan komennon avulla:
pip3 asenna ISStreamer
Nyt olemme valmiit asentamaan lämpötila -anturin Pi: n avulla virtaamaan lämpötilan kojelautaan.
Vaihe 5: DHT22 -ratkaisu
DHT22: ssa on kolme nastaa - 5 V, Gnd ja data. DHT22: n virtalähteessä on oltava nastatarra (esim. "+" Tai "5V"). Liitä tämä Pi: n nastaan 2 (oikea yläreuna, 5 V). Gnd-nasta on merkitty "-" tai "Gnd" tai jotain vastaavaa. Liitä tämä Pi: n nastaan 6 Gnd (kaksi nastaa 5 V: n nastan alapuolelle). DHT22: n jäljellä oleva nasta on datatappi, ja se merkitään "ulos" tai "s" tai "data". Liitä tämä johonkin Pi: n GPIO -nastaan, kuten GPIO4 (nasta 7). Kun tämä on kytketty, käynnistä Pi.
Asenna Adafruit DHT Python -moduuli komentokehotteeseen, jotta DHT22 -anturitietojen lukeminen on erittäin helppoa:
$ sudo pip asenna Adafruit_DHT
Kun käyttöjärjestelmämme on asennettu yhdessä kahden Python -moduulin kanssa anturitietojen lukemiseen ja tietojen lähettämiseen alkuperäiseen tilaan, olemme valmiita kirjoittamaan Python -skriptimme. Seuraava komentosarja luo/liittää alkutilan datasäilöön, lukee DHT22-anturitiedot ja lähettää tiedot reaaliaikaiseen kojelautaan. Sinun tarvitsee vain muokata rivejä 6–11.
Tuo Adafruit_DHT
käyttäjältä ISStreamer. Streamer Import Streamer Import time# --------- User Settings --------- SENSOR_LOCATION_NAME = "Office" BUCKET_NAME = ": semi_sunny: Room Temperatures" BUCKET_KEY = "rt0129" ACCESS_KEY = "Sijoita ALKUPERÄINEN TILANNEEN PÄÄSYN AVAIN TÄSTÄ" MINUTES_BETWEEN_READS = 10METRIC_UNITS = False # --------------------------------- streamer = Streamer (kauhan_nimi = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) kun taas True: kosteus, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4), jos METRIC_UNITS: streamer.log (SENSOR_LÄMPÖTILA): temp_f = muoto (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Lämpötila (F)", temp_f) kosteus = muoto (kosteus,.2f ") streamer.log (SENSOR_LOCATION_NAME + "Kosteus (%)", kosteus) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)
- Rivi 6 - Tämän arvon tulee olla yksilöllinen jokaiselle solmulle/lämpötila -anturille. Tämä voi olla anturisolmun huoneen nimi, fyysinen sijainti, yksilöllinen tunniste tai mikä tahansa. Varmista vain, että jokaiselle solmulle on ainutlaatuista varmistaa, että tämän solmun tiedot menevät omaan tietovirtaan koontinäytössäsi.
- Rivi 7 - Tämä on tietoryhmän nimi. Tätä voidaan muuttaa milloin tahansa alkuperäisen tilan käyttöliittymässä.
- Rivi 8 - Tämä on ämpäriavaimesi. Sen on oltava sama ämpäriavain jokaiselle solmulle, jonka haluat näkyvän samassa kojelaudassa.
- Rivi 9 - Tämä on alkuperäisen tilisi käyttöavain. Kopioi ja liitä tämä avain alkuperäisen valtion tililtäsi.
- Rivi 10 - Tämä on aika anturilukemien välillä. Muuta vastaavasti.
- Rivi 11 - Voit määrittää metriset tai keisarilliset yksiköt rivillä 11.
Kun olet asettanut rivit 6–11 Pi -laitteesi Python -komentosarjaan, tallenna ja sulje tekstieditori. Suorita komentosarja seuraavalla komennolla:
$ python tempsensor.py
Nyt voit lähettää tietoja alkuperäisen tilan hallintapaneeliin. Siirry tämän artikkelin viimeiseen osaan saadaksesi tietoja koontinäytön mukauttamisesta.
Vaihe 6: DSB18B20 -ratkaisu
Nauhakaapeli liitetään Pi: n GPIO -nastoihin. DS18B20: ssa on kolme johtoa. Punainen johto kytketään 3.3V jännitteeseen. Sininen/musta johto kytketään maahan. Keltainen johto kytketään vetovastaukseen/nastaan 4. Kun tämä on kytketty, käynnistä Pi.
Uusin Raspbian -versio (ydin 3.18) vaatii /boot/config.txt -tiedoston lisäyksen, jotta Pi kommunikoi DS18B20: n kanssa. Muokkaa tätä tiedostoa suorittamalla seuraava:
$ sudo nano /boot/config.txt
Jos seuraava rivi ei ole jo tässä tiedostossa (jos on, se on todennäköisesti tiedoston alareunassa), lisää se ja tallenna tiedosto.
dtoverlay = w1-gpio, gpiopin = 4
Käynnistä Pi uudelleen, jotta muutokset tulevat voimaan.
$ sudo uudelleenkäynnistys
Lämpötila -anturin lukuliittymän käynnistämiseksi meidän on suoritettava kaksi komentoa. Siirry Pi- tai SSH -komentokehotteeseen Pi -laitteeseesi. Kirjoita seuraavat komennot:
$ sudo modprobe w1-gpio $ sudo modprobe w1-therm
Lämpötila -anturin ulostulo kirjoitetaan nyt Pi -laitteesi tiedostoon. Tiedoston löytäminen:
$ cd/sys/bus/w1/devices
Tässä hakemistossa on alihakemisto, joka alkaa “28-”.”28-” jälkeen tulee anturin sarjanumero. cd kyseiseen hakemistoon. Tämän hakemiston sisällä tiedosto nimeltä w1_slave sisältää anturin lähdön. Tarkastele tiedoston sisältöä nanolla. Kun olet syöttänyt tiedoston, se näyttää tältä:
a2 01 4b 46 7f ff 0e 10 d8: crc = d8 YESa2 01 4b 46 7f ff 0e 10 d8 t = 26125
Numero "t =" jälkeen on haluamamme luku. Tämä on lämpötila 1/1000 celsiusastetta (yllä olevassa esimerkissä lämpötila on 26,125 C). Tarvitsemme vain yksinkertaisen ohjelman, joka lukee tämän tiedoston ja jäsentää sen numeron. Pääsemme siihen vain sekunnissa.
Kaikki on nyt valmis, jotta voimme aloittaa datan suoratoiston. Avaa tekstieditori kirjoittamalla seuraava komentokehotteeseen:
$ nano lämpötila.py
Kopioi ja liitä alla oleva koodi tekstieditoriin.
tuonti
tuoda globaali tuontiaika ISStreamerista. -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 = auki (laitteen_tiedosto, r time.sleep (0.2) lines = 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 palauttaa temp_c kun tosi: temp_c = read_temp () temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log ("lämpötila (C)", temp_c) streamer.log ("lämpötila (F)", temp_f) time.sleep (.5)
Sinun on asetettava alkuperäisen tila -avaimesi riville 6 PUT_YOUR_ACCESS_KEY_HERE -sivun tilalle (kopioi suoratoistoavain leikepöydälle Oma tili -kohdasta ja liitä se päätelaitteesi nano -koodiin).
Rivi 6 luo alkuperäisen tilisi ryhmään nimeltä "Lämpötilavirta" (olettaen, että olet määrittänyt access_ -avaimesi oikein tällä rivillä). Tämän komentosarjan rivit 8-30 yhdistyvät yksinkertaisesti DS18B20 -anturiin ja lukevat sen lämpötilan aiemmin keskustellusta w1_slave -tiedostosta. Read_temp_raw () -funktio rivillä 15 lukee raa'an w1_slave -tiedoston. Read_temp () -funktio rivillä 21 jäsentää lämpötilan kyseisestä tiedostosta. Linja 34 kutsuu näitä toimintoja saadakseen nykyisen lämpötilan. Linja 35 muuntaa lämpötilan Celsius -asteesta Fahrenheit -asteeseen. Rivit 35 ja 36 välittävät lämpötilan alkuperäiseen tilillesi. Rivi 37 keskeyttää komentosarjan 0,5 sekunniksi ja asettaa kuinka usein lämpötila -anturi luetaan ja lähetetään.
Olemme valmiita aloittamaan suoratoiston. Suorita seuraava komento:
$ sudo python temperature.py
Palaa Web -selaimesi alkuperäisen valtion tilillesi ja etsi uusi tietoryhmä nimeltä Temperature Stream. Sinun pitäisi nähdä lämpötilatiedot suoratoistona. Vaihtele anturin lämpötilaa pitämällä sitä kädessäsi tai asettamalla se jäälasiin.
Nyt voit lähettää tietoja alkuperäisen tilan hallintapaneeliin. Siirry tämän artikkelin viimeiseen osaan saadaksesi tietoja koontinäytön mukauttamisesta.
Vaihe 7: BME280 -ratkaisu
Tämän ratkaisun rakentamiseen tarvitset seuraavat:
-BME280 Paine-, lämpötila- ja kosteusanturi
Tämän anturin mukana tulee nastat, jotka sinun on juotettava anturiin. Suosittelen käyttämään leipälautaa, jonka tapit ovat pitkä puoli alaspäin leipälautaan, jotta juottaminen olisi helpompaa. Kun olet suorittanut tämän, meidän on kytkettävä anturi Pi: hen.
Liitä anturin VIN -nasta Pi: n 3.3 V: n napaan 1. Liitä anturin GND -nasta Pi: n maadoitusnasta 6. Liitä anturin SCK -nasta Pi: n SCL -nastaan 5. Liitä anturin SDI -nasta Pi: n SDA -nastaan 3. Sinun on käytettävä Python 3 -ratkaisua tähän ratkaisuun ja asennettava Initial State Streamer -moduuli pip3 -asennusmenetelmällä.
Sinun on myös asennettava muutama Adafruit Python -kirjasto.
pip3 asenna adafruit-blinkapip3 asenna pureio pip3 asenna spidev pip3 asenna adafruit-GPIO pip3 asenna adafruit-circuitpython-bme280
Jotta voimme käyttää anturia, meidän on otettava I2C käyttöön Pi: ssä.
sudo raspi-config
Tämä avaa Raspberry Pi -ohjelmiston määritystyökalun. Siirry vaihtoehtoon 5 Liitäntävaihtoehdot. Siirry täältä I2C: hen. Se kysyy sinulta, haluatko ottaa I2C: n käyttöön, valitse Kyllä ja Valmis. Nyt sinulla on I2C käytössä kommunikoidaksesi anturin kanssa.
Voimme testata tämän suorittamalla seuraavat:
sudo i2cdetect -y 1
Tämä varmistaa, että Pi näkee anturin. Yhteyden muodostamisen tavoin sen pitäisi näyttää anturi osoitteessa 77. Jos et havaitse anturia, käynnistä Pi uudelleen, ota I: n I2C -liitäntävaihtoehto uudelleen käyttöön Pi -laitteessa ja yritä uudelleen. ajaa pääkoodimme, joka lähettää tiedot alkuperäiseen tilaan. Luo tiedoston nimeltä bme280sensor.py nano -komennolla. Kopioi ja liitä koodi ytimestä tekstieditoriin. Sinun on tehtävä muutoksia riveihin 12–19.
tuonnin aika
tuontilevy tuonti busio tuonti adafruit_bme280 ISStreamerista. Streamer tuonti Streamer # Luo kirjasto-objekti Bus I2C: n avulla porti2c = busio. I2C (board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C (i2c) # ------- -Käyttäjäasetukset --------- SENSOR_LOCATION_NAME = "Toimisto" BUCKET_NAME = ": osittain_sunny: Huonelämpötila" BUCKET_KEY = "temp1" ACCESS_KEY = "OMA PÄÄSYNÄPPÄ TÄSTÄ" # muuta tämä vastaamaan sijainnin painetta (hPa) merenpinnan tasolla bme280.sea_level_pressure = 1013,25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = False # --------------------------------- # TAI luo kirjasto -objekti Bus SPI -portin avulla #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 (kauhan_nimi = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) kun True: kosteus = muoto (bme280.humidity, ".1f") pressure = format (bme280.pressure, ".1f") temp_c = bme280.temperatu re if METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "Lämpötila (C)", temp_c) else: temp_f = format (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "Lämpötila (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + "Kosteus (%)", kosteus) streamer.log (SENSOR_LOCATION_NAME + "Paine (hPA)", paine) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)
- Rivi 12- Tämän arvon tulee olla yksilöllinen jokaiselle solmulle/lämpötila-anturille. Tämä voi olla anturisolmun huoneen nimi, fyysinen sijainti, yksilöllinen tunniste tai mikä tahansa. Varmista vain, että jokaiselle solmulle on ainutlaatuista varmistaa, että tämän solmun tiedot menevät omaan tietovirtaan koontinäytössäsi.
- Rivi 13- Tämä on tietoryhmän nimi. Tätä voidaan muuttaa milloin tahansa alkuperäisen tilan käyttöliittymässä.
- Rivi 14- Tämä on ämpäriavaimesi. Sen on oltava sama ämpäriavain jokaiselle solmulle, jonka haluat näkyvän samassa kojelaudassa.
- Rivi 15- Tämä on alkuperäisen valtion tilisi käyttöavain. Kopioi ja liitä tämä avain alkuperäisen valtion tililtäsi.
- Linja 17- Tämä on sijaintisi paine (hPa) merenpinnan tasolla. Löydät nämä tiedot useimmista sääsivustoista.
- Rivi 18 - Tämä on aika anturilukemien välillä. Rivi 19- Tässä voit määrittää metriset tai keisarilliset yksiköt.
Kun olet asettanut rivit 12–19 Python -skriptisi Pi Zero WH -laitteeseen, tallenna ja sulje tekstieditori. Suorita komentosarja seuraavalla komennolla:
$ python3 bme280sensor.py
Nyt voit lähettää tietoja alkuperäisen tilan hallintapaneeliin. Siirry tämän artikkelin viimeiseen osaan saadaksesi tietoja koontinäytön mukauttamisesta.
Vaihe 8: Tunnista hattu
Ensimmäinen askel Sense HATin käytössä on asentaa se fyysisesti Pi -laitteeseesi. Kun Pi on sammutettu, kiinnitä hattu kuvan osoittamalla tavalla.
Jos päätät käyttää yllä kuvattua ratkaisua, saatat huomata, että Sense HAT -laitteesi lämpötila -arvot ovat hieman korkeita - siksi, että ne ovat. Syyllinen on Pi: n suorittimen tuottama lämpö, joka lämmittää ilmaa Sense HATin ympärille, kun se istuu Pi: n päällä. Jotta lämpötila -anturista olisi hyötyä, meidän on joko saatettava HAT pois Pi: stä tai yritettävä kalibroida lämpötila -anturin lukema. Hyvä ratkaisu anturin saamiseksi pois Pi: stä on kaapeli, jonka avulla Sense HAT voi riippua Pi: stä. 6 tuuman, 40-nastainen IDE-uros-naaras jatkokaapeli tekee tempun.
Kun olet päättänyt kahdesta vaihtoehdosta, käynnistä Pi. Meidän on asennettava Python -kirjasto, jotta anturien arvojen lukeminen Sense HATista on helppoa. Ensinnäkin sinun on varmistettava, että kaikki Raspbian-versiosi on ajan tasalla:
$ sudo apt-get päivitys
Asenna seuraavaksi Sense HAT Python -kirjasto:
$ sudo apt-get install sense-hat
Käynnistä Pi uudelleen. Olemme valmiita testaamaan Sense HAT -sovelluksen lukemalla sen anturitiedot ja lähettämällä ne alkutilaan.
Luo sensehat -tiedosto ja avaa se tekstieditorissa kirjoittamalla seuraava komentokehotteeseen:
$ nano sensehat.py
Kopioi ja liitä alla oleva koodi tekstieditoriin.
sense_hat -tuonnista SenseHat
tuontiajan tuontijärjestelmä ISStreamerista. Toimisto "MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # --------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY), access_key = ACCESS_KEY) sense = SenseHat () kun taas True: # Lue anturit temp_c = sense.get_temperature () kosteus = sense.get_humidity () pressure_mb = sense.get_pressure () # Muotoile tiedot temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = float ("{0:.2f}". Format (temp_f)) kosteus = float ("{0:.2f}". Format (kosteus)) pressure_in = 0,03937008*(pressure_mb) pressure_in = float ("{ 0:.2f} ". Format (pressure_in)) # Tulosta ja suoratoista tulostus SENSOR_LOCATION_NAME +" Lämpötila (F): " + str (temp_f) print SENSOR_LOCATION_NAME +" Kosteus (%): " + str (kosteus) tulosta SENSOR_LOCATION_NAME +" Paine (IN): " + str (paine_in) streamer.log (": aurinkoinen: " + SEN SOR_LOCATION_NAME + "Lämpötila (F)", temp_f) streamer.log (": swe_drops:" + SENSOR_LOCATION_NAME + "Kosteus (%)", kosteus) streamer.log (": cloud:" + SENSOR_LOCATION_NAME + "Paine (IN)", paine_in) streamer.flush () time.sleep (60*MINUTES_BETWEEN_SENSEHAT_READS)
Huomaa ensimmäisellä rivillä, että tuomme SenseHat -kirjaston komentosarjaan. Ennen kuin suoritat tämän komentosarjan, meidän on määritettävä käyttäjäparametrit.
# --------- Käyttäjäasetukset ---------
BUCKET_NAME = "Toimiston sää" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = "Toimisto" MINUTES_BETWEEN_SENSEHAT_READS = 0.1# ------------------------- --------
Erityisesti sinun on asetettava ACCESS_KEY alkuperäisen tilisi käyttöavaimeesi. Voit vaihtaa BUCKET_NAME ja SENSOR_LOCATION_NAME anturin todellisen sijainnin. Tallenna ja sulje tekstieditori.
Suorita Pi -komentokehotteessa komentosarja:
$ sudo python sensehat.py
Nyt voit lähettää tietoja alkuperäisen tilan hallintapaneeliin. Siirry tämän artikkelin viimeiseen osaan saadaksesi tietoja koontinäytön mukauttamisesta.
Vaihe 9: Muokkaa alkuperäisen tilan hallintapaneelia
Siirry alkuperäisen valtion tilillesi ja katso tietosi. Voit muuttaa kaaviotyyppiä napsauttamalla ruutua hiiren kakkospainikkeella ja napsauttamalla Muokkaa laattoja, jos haluat muuttaa laattojen kokoa ja siirtää niitä. Suosittelen käyttämään mittaria termostaatilla lämpötilan ja mittarin nesteen tason kosteuden suhteen. Voit luoda viivakaavioita sekä lämpötilalle että kosteudelle nähdäksesi muutokset ajan mittaan. Voit myös lisätä taustakuvan hallintapaneeliin.
Voit asettaa Trigger -hälytykset, jotta saat tekstiviestin tai sähköpostin, jos lämpötila laskee tai ylittää tietyn kynnyksen. Siirry datasäilöön ja napsauta asetuksia. Siirry sieltä Liipaisimet -välilehdelle. Syötä seurattava stream -avain, käytettävä operaattori ja kynnysarvo. Lisää liipaisin napsauttamalla plusmerkkiä. Kirjoita sitten sähköpostiosoitteesi tai puhelinnumerosi, johon haluat saada ilmoituksen, ja napsauta plusmerkkiä. Kun olet asettanut kaikki laukaisimet, napsauta alareunassa olevaa Valmis -painiketta.
Nyt kun olet luonut lämpötilamittarin käyttämällä lämpötila -anturia ja Raspberry Pi -laitetta, voit alkaa miettiä, mitä muita ympäristötietoja voit seurata seuraavaksi.