Obsah:

Monitorování teploty a vlhkosti pomocí Raspberry Pi: 6 kroků (s obrázky)
Monitorování teploty a vlhkosti pomocí Raspberry Pi: 6 kroků (s obrázky)

Video: Monitorování teploty a vlhkosti pomocí Raspberry Pi: 6 kroků (s obrázky)

Video: Monitorování teploty a vlhkosti pomocí Raspberry Pi: 6 kroků (s obrázky)
Video: Smartdata - Moderní technologie hrou – 11. díl – Měření teploty pomocí Raspberry PI 2024, Červenec
Anonim
Monitorování teploty a vlhkosti pomocí Raspberry Pi
Monitorování teploty a vlhkosti pomocí Raspberry Pi
Monitorování teploty a vlhkosti pomocí Raspberry Pi
Monitorování teploty a vlhkosti pomocí Raspberry Pi

Léto se blíží a ti, kteří nemají klimatizaci, by měli být připraveni ovládat atmosféru uvnitř ručně. V tomto příspěvku popisuji moderní způsob měření nejdůležitějších parametrů pro pohodlí člověka: teploty a vlhkosti. Tato shromážděná data jsou odeslána do cloudu a tam zpracována.

Používám desku Raspberry Pi 1 a snímač DHT22. To samé můžete udělat na jakémkoli počítači s internetem, GPIO a Pythonem. Dobře funguje i levnější senzor DHT11.

Krok 1: Příprava hardwaru

Příprava hardwaru
Příprava hardwaru
Příprava hardwaru
Příprava hardwaru

Začněme úplně od začátku, protože jsem svůj Raspberry Pi delší dobu nepoužíval.

Budeme potřebovat:

  • Deska Raspberry Pi (nebo jiná platforma orientovaná na IoT).
  • Karta SD nebo microSD (v závislosti na platformě).
  • 5V/1A přes micro-USB.
  • LAN kabel, který zajišťuje připojení k internetu.
  • HDMI displej, RCA displej nebo UART port (pro povolení SSH).

Úplně prvním krokem je stažení Raspbianu. Vybral jsem si Lite verzi, protože místo displeje budu používat SSH. Věci se od posledního provedení změnily: nyní existuje skvělý vypalovací software s názvem Etcher, který funguje perfektně a má úžasný design.

Když bylo vypalování obrazu dokončeno, vložil jsem SD kartu do svého Pi, zapojil LAN a napájecí kabely a po chvíli můj router zaregistroval nové zařízení.

Krok 2: Povolení SSH

Povolení SSH
Povolení SSH
Povolení SSH
Povolení SSH
Povolení SSH
Povolení SSH

SSH je ve výchozím nastavení zakázáno. Mohu použít buď převodník UART-USB, nebo jen připojit displej pro přístup k shellu a povolení SSH.

Po restartu jsem konečně v. Nejprve věci, které aktualizujeme:

sudo apt update && sudo apt upgrade -y

Nyní připojme toto nové zařízení ke cloudu.

Krok 3: Instalace Cloud4RPi

Instalace Cloud4RPi
Instalace Cloud4RPi

Rozhodl jsem se vyzkoušet cloudovou platformu s názvem Cloud4RPi, která je určena pro IoT.

Podle dokumentů potřebujeme k jeho spuštění následující balíčky:

sudo apt install git python python -pip -y

Klientskou knihovnu lze nainstalovat jediným příkazem:

sudo pip install cloud4rpi

Nyní potřebujeme nějaký ukázkový kód, abychom zajistili, že funguje.

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

Rozhodl jsem se spustit minimal.py, ale nemám rád falešná data. Naštěstí jsem si v tomto příkladu všiml snadného způsobu, jak diagnostická data uskutečnit. Přidejte ještě jeden import do sekce importu:

z rpi import *

Poté odstraňte tyto funkce, které poskytují falešná data (rpi.py je nyní definuje):

def cpu_temp ():

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

Nyní potřebujeme token, který umožňuje Cloud4RPi propojit zařízení s účty. Chcete -li jej získat, vytvořte si účet na cloud4rpi.io a klikněte na tlačítko Nové zařízení na této stránce. Nahraďte řetězec _YOUR_DEVICE_TOKEN_ v souboru minimal.py tokenem vašeho zařízení a soubor uložte. Nyní jsme připraveni na první spuštění.

python minimal.py

Otevřete stránku zařízení a zkontrolujte, zda jsou tam data.

Nyní přejdeme k datům z reálného světa.

Krok 4: Připojení senzoru

Připojení senzoru
Připojení senzoru

Budeme potřebovat:

  • Čidlo vlhkosti DHT22 nebo DHT11
  • Pull-up odpor (5-10 KΩ)
  • Dráty

Senzor DHT22 měří teplotu a vlhkost současně. Komunikační protokol není standardizovaný, takže jej nemusíme aktivovat v raspi -config - jednoduchý GPIO pin je více než dostačující.

K získání dat použiji skvělou knihovnu Adafruit pro senzory DHT, ale nemusí fungovat tak, jak je. Jednou jsem v kódu našel podivné konstantní zpoždění, které na můj hardware nefungovalo a po dvou letech moje žádost o vytažení stále čeká. Také jsem změnil konstanty detekce desky, protože můj Raspberry Pi 1 s BCM2835 byl překvapivě detekován jako Raspberry Pi 3. Přál bych si, aby to byla pravda … Doporučuji tedy použít moji vidlici. Pokud s tím máte nějaké problémy, zkuste prosím původní úložiště, možná to někomu funguje, ale já mezi ně nepatřím.

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

Jelikož je knihovna napsána v jazyce C, vyžaduje kompilaci, takže potřebujete balíčky nezbytné pro sestavení a python-dev.

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

Během instalace balíků připojte DHT22 podle obrázku.

A vyzkoušejte:

cd ~ python -c "import Adafruit_DHT jako d; tisk d.read_retry (d. DHT22, 4)"

Pokud vidíte něco jako (39.20000076293945, 22.600000381469727), měli byste vědět, že se jedná o vlhkost v procentech a teplotu ve stupních Celsia.

Pojďme nyní shromáždit vše dohromady!

Krok 5: Odesílání naměřených hodnot ze snímače do cloudu

Odesílání naměřených hodnot do cloudu
Odesílání naměřených hodnot do cloudu

Jako základ použiji soubor minimal.py a přidám do něj interakci DHT22.

cd cloud4rpi-raspberrypi-python

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

Protože DHT22 vrací teplotu i vlhkost v rámci jednoho hovoru, ukládám je globálně a aktualizuji pouze jednou v požadavku za předpokladu, že zpoždění mezi nimi je více než 10 sekund. Zvažte následující kód, který získává data DHT22:

import 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 Žádný jiný Žádný

Vložte tento kód za stávající importy a upravte sekci proměnných tak, aby používala nové funkce:

proměnné = {

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

Stisknutím červeného tlačítka zahájíte přenos dat:

python cloud_dht22.py

Poté můžete zkontrolovat stránku zařízení.

Můžete to nechat tak, ale já mám raději službu pro všechno. Tím je zajištěno, že skript je vždy spuštěn. Vytvoření služby pomocí plně automatizovaného skriptu:

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

Spuštění služby:

spuštění služby sudo cloud4rpi

A kontrola:

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

● cloud4rpi.service-Cloud4RPi démon Načteno: načteno (/lib/systemd/system/cloud4rpi.service; povoleno) Aktivní: aktivní (spuštěno) od st. 2017-05-17 20:22:48 UTC; Před 1 minutou Hlavní PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py 17. května 20:22:51 raspberrypi python [560]: publikační iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17. května 20:22:53 raspberrypi python [560]: Publikování iot-hub/zpráv: {'type': 'data', 'ts': '2017-05-17T20: 2 … 40'}} 17. května 20:22:53 raspberrypi python [560]: Publikování iot-hub/zpráv: {'type': 'system', 'ts': '2017-05-17T20 ….4'}}

Pokud vše funguje podle očekávání, můžeme pokračovat a využívat možnosti platformy Cloud4RPi k manipulaci s daty.

Krok 6: Grafy a alarmy

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

Nejprve si vykreslíme proměnné, abychom zjistili, jak se mění. To lze provést přidáním nového ovládacího panelu a vložením požadovaných grafů do něj.

Další věc, kterou zde můžeme udělat, je nastavení výstrahy. Tato funkce vám umožňuje konfigurovat bezpečný rozsah pro proměnnou. Jakmile je rozsah překročen, odešle e -mailové oznámení. Na stránce úprav ovládacího panelu můžete přepnout na výstrahy a nastavit je.

Hned poté se vlhkost v mém pokoji začala bez zjevného důvodu rychle snižovat a brzy následoval alarm.

Cloud4RPi můžete používat zdarma s jakýmkoli hardwarem, který je schopen spustit Python. Pokud jde o mě, teď vždy vím, kdy zapnout zvlhčovač vzduchu, a dokonce ho mohu připojit k relé pro dálkové ovládání přes Cloud4RPi. Jsem připraven na teplo! Vítej léto!

Doporučuje: