Obsah:

Monitorovanie teploty a vlhkosti pomocou Raspberry Pi: 6 krokov (s obrázkami)
Monitorovanie teploty a vlhkosti pomocou Raspberry Pi: 6 krokov (s obrázkami)

Video: Monitorovanie teploty a vlhkosti pomocou Raspberry Pi: 6 krokov (s obrázkami)

Video: Monitorovanie teploty a vlhkosti pomocou Raspberry Pi: 6 krokov (s obrázkami)
Video: Как штукатурить откосы на окнах СВОИМИ РУКАМИ 2024, Júl
Anonim
Monitorovanie teploty a vlhkosti pomocou Raspberry Pi
Monitorovanie teploty a vlhkosti pomocou Raspberry Pi
Monitorovanie teploty a vlhkosti pomocou Raspberry Pi
Monitorovanie teploty a vlhkosti pomocou Raspberry Pi

Blíži sa leto a tí, ktorí nemajú klimatizáciu, by mali byť pripravení ovládať atmosféru v interiéri ručne. V tomto príspevku popisujem moderný spôsob merania najdôležitejších parametrov pohodlia človeka: teploty a vlhkosti. Tieto zozbierané údaje sú odoslané do cloudu a tam spracované.

Používam dosku Raspberry Pi 1 a snímač DHT22. To isté môžete urobiť na akomkoľvek počítači s internetom, GPIO a Pythonom. Dobre funguje aj lacnejší snímač DHT11.

Krok 1: Príprava hardvéru

Príprava hardvéru
Príprava hardvéru
Príprava hardvéru
Príprava hardvéru

Začnime úplne od začiatku, pretože som svoj Raspberry Pi dlho nepoužíval.

Budeme potrebovať:

  • Doska Raspberry Pi (alebo iná platforma orientovaná na IoT).
  • Karta SD alebo microSD (v závislosti od platformy).
  • 5V/1A cez micro-USB.
  • LAN kábel, ktorý poskytuje internetové pripojenie.
  • HDMI displej, RCA displej alebo UART port (na povolenie SSH).

Úplne prvým krokom je stiahnutie Raspbianu. Vybral som si Lite verziu, pretože namiesto displeja budem používať SSH. Veci sa od posledného použitia zmenili: teraz existuje skvelý napaľovací softvér s názvom Etcher, ktorý funguje perfektne a má úžasný dizajn..

Keď bolo napaľovanie obrazu dokončené, vložil som SD kartu do svojho Pi, zapojil LAN a napájacie káble a po chvíli môj router zaregistroval nové zariadenie.

Krok 2: Povolenie SSH

Povolenie SSH
Povolenie SSH
Povolenie SSH
Povolenie SSH
Povolenie SSH
Povolenie SSH

SSH je predvolene vypnuté. Môžem použiť buď prevodník UART-USB, alebo len pripojiť displej na prístup k shellu a povoliť SSH.

Po reštarte som konečne v. Najprv si dáme aktualizáciu:

sudo apt update && sudo apt upgrade -y

Teraz pripojme toto nové zariadenie k cloudu.

Krok 3: Inštalácia Cloud4RPi

Inštalácia Cloud4RPi
Inštalácia Cloud4RPi

Rozhodol som sa vyskúšať cloudovú platformu s názvom Cloud4RPi, ktorá je navrhnutá pre IoT.

Podľa dokumentov na jeho spustenie potrebujeme nasledujúce balíky:

sudo apt install git python python -pip -y

Klientsku knižnicu je možné nainštalovať jediným príkazom:

sudo pip install cloud4rpi

Teraz potrebujeme nejaký ukážkový kód, aby sme zaistili, že funguje.

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

Rozhodol som sa spustiť minimal.py, ale nemám rád falošné údaje. Našťastie som si v tomto prípade všimol ľahký spôsob, ako diagnostické údaje urobiť skutočnými. Pridajte ďalší import do sekcie importu:

z importu rpi *

Potom odstráňte tieto funkcie, ktoré poskytujú falošné údaje (rpi.py ich teraz definuje):

def cpu_temp ():

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

Teraz potrebujeme token, ktorý umožňuje Cloud4RPi prepojiť zariadenia s účtami. Ak ho chcete získať, vytvorte si účet na cloud4rpi.io a kliknite na tlačidlo Nové zariadenie na tejto stránke. Nahraďte reťazec _YOUR_DEVICE_TOKEN_ v súbore minimal.py tokenom vášho zariadenia a súbor uložte. Teraz sme pripravení na prvé spustenie.

python minimal.py

Otvorte stránku zariadenia a skontrolujte, či sú tam uvedené údaje.

Teraz prejdeme k údajom z reálneho sveta.

Krok 4: Pripojenie senzora

Pripojenie senzora
Pripojenie senzora

Budeme potrebovať:

  • Snímač vlhkosti DHT22 alebo DHT11
  • Vyťahovací odpor (5-10 KΩ)
  • Drôty

Senzor DHT22 meria teplotu a vlhkosť súčasne. Komunikačný protokol nie je štandardizovaný, takže ho nepotrebujeme povoliť v raspi -config - jednoduchý GPIO pin je viac ako dosť.

Na získanie údajov použijem skvelú knižnicu Adafruit pre senzory DHT, ktorá však nemusí fungovať tak, ako je. Raz som v kóde našiel podivné neustále oneskorenie, ktoré na môj hardvér nefungovalo a po dvoch rokoch moja žiadosť o vytiahnutie stále čaká. Tiež som zmenil konštanty detekcie dosky, pretože môj Raspberry Pi 1 s BCM2835 bol prekvapivo detekovaný ako Raspberry Pi 3. Prial by som si, aby to bola pravda … Preto odporúčam použiť svoju vidlicu. Ak s tým máte problémy, vyskúšajte pôvodné úložisko, možno to niekomu funguje, ale nie som jedným z nich.

klon git https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

Pretože je knižnica napísaná v jazyku C, vyžaduje kompiláciu, takže potrebujete balíky nevyhnutné na zostavenie a python-dev.

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

Kým sa balíky inštalujú, pripojte DHT22 podľa obrázku.

A vyskúšajte:

cd ~ python -c "importovať Adafruit_DHT ako d; vytlačiť d.read_retry (d. DHT22, 4)"

Ak vidíte niečo ako (39.20000076293945, 22.600000381469727), mali by ste vedieť, že ide o vlhkosť v percentách a teplotu v stupňoch Celzia.

Teraz poďme zhromaždiť všetko dohromady!

Krok 5: Odosielanie nameraných hodnôt zo senzora do cloudu

Odosielanie údajov zo senzorov do cloudu
Odosielanie údajov zo senzorov do cloudu

Ako základ použijem minimal.py a pridám doň interakciu DHT22.

cd cloud4rpi-raspberrypi-python

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

Pretože DHT22 vracia teplotu aj vlhkosť v rámci jedného hovoru, ukladám ich globálne a aktualizujem iba raz v žiadosti, za predpokladu, že oneskorenie medzi nimi je viac ako 10 sekúnd. Zvážte nasledujúci kód, ktorý získava údaje DHT22:

importovať Adafruit_DHT

temp, hum = None, None 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 () return round (temp, 2) if temp is not None else None def get_h (): update_data () return round (hum, 2) if hum is not Žiadne iné Žiadne

Vložte tento kód za existujúci import a upravte sekciu premenných tak, aby používal nové funkcie:

premenné = {

'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numeric ',' bind ': cpu_temp}}

Prenos údajov spustíte stlačením červeného tlačidla:

python cloud_dht22.py

Potom môžete skontrolovať stránku zariadenia.

Môžete to nechať tak, ale ja mám radšej službu pre všetko. To zaisťuje, že skript je vždy spustený. Vytvorenie služby pomocou plne automatizovaného skriptu:

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

Spustenie služby:

spustenie služby sudo cloud4rpi

A kontrola:

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

● cloud4rpi.service-Cloud4RPi démon načítaný: načítaný (/lib/systemd/system/cloud4rpi.service; povolený) Aktívny: aktívny (v prevádzke) od stredy 2017-05-17 20:22:48 UTC; Pred 1 minútou Hlavný PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyMáj 17 20:22:51 raspberrypi python [560]: Publikovanie iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20 … y'}]} 17. máj 20:22:53 raspberrypi python [560]: Publikovanie iot-hub/správ: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. mája 20:22:53 raspberrypi python [560]: Publikovanie iot-hub/správ: {'type': 'system', 'ts': '2017-05-17T20 ….4'}}

Ak všetko funguje podľa očakávania, môžeme pokračovať a používať možnosti platformy Cloud4RPi na manipuláciu s údajmi.

Krok 6: Grafy a alarmy

Grafy a alarmy
Grafy a alarmy
Grafy a alarmy
Grafy a alarmy
Grafy a alarmy
Grafy a alarmy

Najprv si načrtneme premenné, aby sme zistili, ako sa menia. To je možné dosiahnuť pridaním nového ovládacieho panela a vložením požadovaných grafov.

Ďalšou vecou, ktorú tu môžeme urobiť, je nastaviť upozornenie. Táto funkcia vám umožňuje konfigurovať bezpečný rozsah pre premennú. Hneď ako je rozsah prekročený, odošle e -mailové upozornenie. Na stránke úprav ovládacieho panela môžete prepnúť na položku Upozornenia a nastaviť si ju.

Hneď potom sa vlhkosť v mojej miestnosti bez zjavného dôvodu začala rýchlo znižovať a čoskoro nasledoval alarm.

Cloud4RPi môžete používať zadarmo s akýmkoľvek hardvérom, ktorý je schopný spustiť Python. Pokiaľ ide o mňa, teraz vždy viem, kedy zapnúť zvlhčovač vzduchu, a dokonca ho môžem pripojiť k relé na diaľkové ovládanie cez Cloud4RPi. Som pripravený na teplo! Vitaj leto!

Odporúča: