Sisällysluettelo:

Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla: 6 vaihetta (kuvilla)
Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla: 6 vaihetta (kuvilla)

Video: Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla: 6 vaihetta (kuvilla)

Video: Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla: 6 vaihetta (kuvilla)
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #6 2024, Heinäkuu
Anonim
Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla
Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla
Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla
Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla

Kesä on tulossa, ja niiden, joilla ei ole ilmastointilaitetta, tulisi olla valmiita hallitsemaan sisäilmaa manuaalisesti. Tässä viestissä kuvailen nykyaikaista tapaa mitata ihmisen mukavuuden kannalta tärkeimmät parametrit: lämpötila ja kosteus. Tämä kerätty data lähetetään pilveen ja käsitellään siellä.

Käytän Raspberry Pi 1 -levyä ja DHT22 -anturia. Voit tehdä saman millä tahansa tietokoneella, jossa on Internet, GPIO ja Python. Halvempi DHT11 -anturi toimii myös hyvin.

Vaihe 1: Laitteiston valmistelu

Laitteiston valmistelu
Laitteiston valmistelu
Laitteiston valmistelu
Laitteiston valmistelu

Aloitetaan alusta, koska en käyttänyt Raspberry Pi -laitettani pitkään aikaan.

Tarvitsemme:

  • Raspberry Pi -levy (tai muu IoT-suuntautunut alusta).
  • SD- tai microSD -kortti (alustasta riippuen).
  • 5V/1A micro-USB: n kautta.
  • LAN -kaapeli, joka tarjoaa Internet -yhteyden.
  • HDMI -näyttö, RCA -näyttö tai UART -portti (ottaa SSH käyttöön).

Ensimmäinen askel on ladata Raspbian. Olen valinnut Lite -version, koska aion käyttää SSH: ta näytön sijasta..

Kun kuvan polttaminen oli valmis, laitoin SD -kortin Pi -laitteeseeni, liitin lähiverkko- ja virtakaapelit ja hetken kuluttua reitittimeni rekisteröi uuden laitteen.

Vaihe 2: SSH: n käyttöönotto

SSH: n käyttöönotto
SSH: n käyttöönotto
SSH: n käyttöönotto
SSH: n käyttöönotto
SSH: n käyttöönotto
SSH: n käyttöönotto

SSH on oletusarvoisesti poissa käytöstä. Voin käyttää joko UART-USB-muunninta tai kytkeä vain näytön päästäksesi kuoreen ja ottamaan SSH käyttöön.

Uudelleenkäynnistyksen jälkeen olen vihdoin mukana. Päivitämme ensin:

sudo apt päivitys && sudo apt päivitys -y

Kytketään nyt tämä uusi laite pilveen.

Vaihe 3: Cloud4RPi: n asennus

Cloud4RPi: n asentaminen
Cloud4RPi: n asentaminen

Päätin kokeilla Cloud4RPi -nimistä pilvialustaa, joka on suunniteltu IoT: lle.

Asiakirjojen mukaan tarvitsemme seuraavat paketit käynnistääksemme sen:

sudo apt asentaa git python python -pip -y

Asiakaskirjasto voidaan asentaa yhdellä komennolla:

sudo pip asenna cloud4rpi

Nyt tarvitsemme esimerkkikoodin sen varmistamiseksi.

git-klooni https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git-klooni https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal && rmdir -re

Päätin ajaa minimal.py, mutta en pidä väärennetyistä tiedoista. Onneksi huomasin helpon tavan tehdä diagnostiikkatiedot todellisiksi tässä esimerkissä. Lisää vielä yksi tuonti tuontiosioon:

RPI -tuonnista *

Poista sitten nämä toiminnot, jotka tarjoavat vääriä tietoja (rpi.py määrittelee ne nyt):

def cpu_temp ():

return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): palauta 'osx'

Nyt tarvitsemme tunnuksen, jonka avulla Cloud4RPi voi yhdistää laitteet tileihin. Luo tili luomalla cloud4rpi.io ja napsauttamalla tällä sivulla olevaa Uusi laite -painiketta. Korvaa _YOUR_DEVICE_TOKEN_ -merkkijono minimal.py -tiedostossa laitteen tunnuksella ja tallenna tiedosto. Nyt olemme valmiita ensimmäiseen lanseeraukseen.

python minimal.py

Avaa laitteen sivu ja tarkista, että tiedot ovat siellä.

Siirrytään nyt todellisiin tietoihin.

Vaihe 4: Liitä anturi

Anturin liittäminen
Anturin liittäminen

Tarvitsemme:

  • DHT22- tai DHT11 -kosteusanturi
  • Pull-up vastus (5-10 KΩ)
  • Johdot

DHT22 -anturi mittaa lämpötilaa ja kosteutta samanaikaisesti. Tietoliikenneprotokolla ei ole standardoitu, joten meidän ei tarvitse ottaa sitä käyttöön raspi -configissa - yksinkertainen GPIO -nasta riittää.

Tietojen hankkimiseen käytän Adafruitin suurta DHT -antureiden kirjastoa, mutta se ei ehkä toimi niin kuin on. Löysin kerran outon jatkuvan viiveen koodissa, joka ei toiminut laitteistolleni, ja kahden vuoden kuluttua vetopyyntöni on edelleen vireillä. Olen myös muuttanut levyn tunnistusvakioita, koska Raspberry Pi 1, jossa oli BCM2835, havaittiin yllättäen nimellä Raspberry Pi 3. Toivon, että se olisi totta … Siksi suosittelen haarukan käyttöä. Jos sinulla on ongelmia sen kanssa, kokeile alkuperäistä arkistoa, ehkä se toimii jollekin, mutta en ole yksi heistä.

git -klooni https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

Koska kirjasto on kirjoitettu C-kielellä, se vaatii kääntämisen, joten tarvitset build-essential- ja python-dev-paketit.

sudo apt install build-essential python-dev -ysudo python setup.py install

Kun paketit asennetaan, liitä DHT22 kuvan mukaisesti.

Ja testaa:

cd ~ python -c "tuo Adafruit_DHT muodossa d; tulosta d.read_retry (d. DHT22, 4)"

Jos näet jotain (39.20000076293945, 22.600000381469727), sinun pitäisi tietää, että tämä on kosteus prosentteina ja lämpötila celsiusasteina.

Kootaan nyt kaikki yhdessä!

Vaihe 5: Anturilukemien lähettäminen pilveen

Anturilukemien lähettäminen pilveen
Anturilukemien lähettäminen pilveen

Käytän minimal.py: tä pohjana ja lisään siihen DHT22 -vuorovaikutuksen.

cd cloud4rpi-vadelmapi-python

cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py

Koska DHT22 palauttaa sekä lämpötilan että kosteuden yhdellä puhelulla, tallennan ne maailmanlaajuisesti ja päivitän vain kerran pyynnöstä olettaen, että niiden välinen viive on yli 10 sekuntia. Harkitse seuraavaa koodia, joka kerää DHT22 -tiedot:

Tuo Adafruit_DHT

temp, hum = Ei mitään, ei last_update = time.time () - 20 def update_data (): global last_update, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time () def get_t (): update_data () paluu kierros (temp, 2) jos lämpötila ei ole Ei mitään muuta def def_ (): update_data () paluu kierros (hum, 2) jos hum ei ole Ei kukaan muu Ei mitään

Lisää tämä koodi nykyisen tuonnin jälkeen ja muokkaa muuttujat -osaa niin, että se käyttää uusia toimintoja:

muuttujat = {

'DHT22 Temp': {'type': 'numeerinen', 'bind': get_t}, 'DHT22 -kosteus': {'type': 'numeerinen', 'bind': get_h}, 'CPU Temp': {'type ':' numeerinen ',' sitoa ': cpu_temp}}

Aloita tiedonsiirto painamalla punaista painiketta:

python cloud_dht22.py

Sitten voit tarkistaa laitteen sivun.

Voit jättää sen sellaisenaan, mutta mieluummin saan palvelun kaikkeen. Tämä varmistaa, että komentosarja on aina käynnissä. Palvelun luominen täysin automatisoidulla komentosarjalla:

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

Palvelun aloittaminen:

sudo -palvelu cloud4rpi käynnistyy

Ja tarkistaa:

pi@raspberrypi: ~ $ sudo service cloud4rpi status -l

● cloud4rpi.service-Cloud4RPi-daemon Ladattu: ladattu (/lib/systemd/system/cloud4rpi.service; käytössä) Aktiivinen: aktiivinen (käynnissä) ke 2017-05-17 20:22:48 UTC; 1 minuutti sitten PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyToukokuu 17 20:22:51 raspberrypi python [560]: Julkaisu -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17. toukokuuta 20:22:53 raspberrypi python [560]: Julkaiseminen iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. toukokuuta 20:22:53 raspberrypi python [560]: Iot-hubin/viestien julkaiseminen: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Jos kaikki toimii odotetulla tavalla, voimme jatkaa ja käyttää Cloud4RPi -alustan ominaisuuksia tietojen käsittelyyn.

Vaihe 6: Kaaviot ja hälytykset

Kaaviot ja hälytykset
Kaaviot ja hälytykset
Kaaviot ja hälytykset
Kaaviot ja hälytykset
Kaaviot ja hälytykset
Kaaviot ja hälytykset

Piirrä ensin muuttujat nähdäksesi kuinka ne muuttuvat. Tämä voidaan tehdä lisäämällä uusi ohjauspaneeli ja asettamalla siihen tarvittavat kaaviot.

Toinen asia, jonka voimme tehdä täällä, on hälytyksen asettaminen. Tämän ominaisuuden avulla voit määrittää muuttujan turva -alueen. Heti kun alue on ylitetty, se lähettää sähköposti -ilmoituksen. Ohjauspaneelin muokkaussivulla voit vaihtaa hälytyksiin ja määrittää ne.

Heti sen jälkeen huoneeni kosteus alkoi laskea nopeasti ilman havaittavaa syytä, ja hälytys seurasi pian.

Voit käyttää Cloud4RPi -laitetta ilmaiseksi minkä tahansa laitteiston kanssa, joka pystyy suorittamaan Python -ohjelman. Olen valmis helteeseen! Tervetuloa kesä!

Suositeltava: