Chytrá WiFi zásuvka Sonoff S26
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
Pro sérii článku o práci s Raspberry Pi jsem jako další oblíbený modul pro měření teploty a vlhkosti vybral DHT11.
Tento senzor jste mohli vidět v tomto starším článku pro Arduino. Dnes si tedy vyzkoušíme, jak se liší přístup v používání s Raspberry Pi, kdy použitý způsob podporuje také senzory DHT22 a AM2302.
Pro zapojení senzoru DHT11 s Raspberry Pi nám budou stačit tři propojovací vodiče a jeden rezistor o velikosti 4,7k nebo 10k ohmů. Vodiče zapojíme dle schématu, kdy zleva je to napájecí pin na 3,3V, dále datový pin na pin 4, třetí pin nezapojujeme a poslední čtvrtý pin zapojíme na GND. Odpor pak slouží jako pull-up a je zapojen mezi piny VCC a DATA.
Nyní se můžeme přesunout na stažení a instalaci knihovny pro práci s DHT senzory. Otevřete Terminál a postupujte následovně.
Prvním příkazem zkontrolujeme, že máme k dispozici všechny potřebné programy, které se případně doinstalují.
sudo apt-get install -y build-essential python-dev python-openssl
V dalším kroku si stáhneme z GIT repozitáře knihovnu Python_DHT, která je od firmy Adafruit.
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
Po úspěšném stažení knihovny se prvním příkazem přesuneme do stažené složky s knihovnou. Druhý příkaz pak slouží ke spuštění skriptu, který provede instalaci knihovny a my pak budeme moci volat skripty z libovolného místa.
cd Adafruit_Python_DHT sudo python setup.py install
Pokud jste předchozí kroky provedli bez problémů, měli byste mít vše potřebné nastaveno. Můžete se tedy přesunout do složky s příklady a rovnou senzor otestovat. To uděláme pomocí spuštění skriptu „AdafruitDHT.py“, kdy jako jeden parametr zadáme „11“ pro senzor DHT11 a druhý parametr „4“, což odpovídá číslu propojovacího datového pinu.
cd examples sudo ./AdafruitDHT.py 11 4
Pokud máte senzor správně propojen, měli byste nyní vidět v Terminálu výpis teploty (Temperature) a vlhkosti (Humidity) jako na obrázku níže. Měření trvá delší chvíli, protože v programu je použita funkce, která se pokouší ve dvousekundových intervalech vyčítat informace ze senzoru, přičemž těchto pokusů je maximálně 15. Pokud se tedy do 30 sekund nepodaří načíst data, program vypíše chybovou hlášku a bude ukončen.
Pro jednoduší přehled, jak vlastně program funguje, jsem jeho zjednodušenou verzi upravil s českými komentáři. Jak tedy vidíte níže, na začátku programu se nachází připojení knihoven a nastavení typu senzoru společně s číslem propojovacího pinu. Pokud byste tedy chtěli použít například senzor DHT22, stačí ho na příslušeném řádku přepsat místo DHT11.
Dále vidíme samotné načtení teploty a vlhkosti do příslušných proměnných, kdy proběhne maximálně 15 pokusů o čtení, jak jsem již zmínil dříve. Na konci programu pak vidíme podmínku if, v které se nachází kontrola obou údajů, kdy se kontroluje, jestli nejsou nulové. Pokud tedy máme naměřené údaje, vytiskneme je do Terminálu. Pokud by se ale načtení údajů nepodařilo, dostaneme o tom taktéž informaci.
# DHT11 Raspberry Pi Test # Nacteni knihoven import sys import Adafruit_DHT # Nastaveni typu senzoru a cisla propojovaciho pinu sensor = Adafruit_DHT.DHT11 pin = 4 # Nacteni vlhkosti a teploty do promennych, # provede se az 15 pokusu o mereni s intervalem 2 sekundy vlhkost, teplota = Adafruit_DHT.read_retry(sensor, pin) # Pokud jsou oba udaje nenulove, vytiskneme je, # pokud ne, vytiskneme informaci o chybe. if vlhkost is not None and teplota is not None: print('Teplota: {0:0.1f} stC, vlhkost: {1:0.1f} %RH.'.format(teplota, vlhkost)) else: print('Chyba pri cteni udaju, zkuste znovu!') sys.exit(1)
Pokud si tedy překopírujete uvedený kód do nového skriptu v programu Python 2 (IDLE), můžete přejít ke spuštění. To můžete udělat buď pomocí tlačítka F5 nebo zavoláním příkazu v nabídce „Run-Run Module“. Poté můžete vidět v konzoli Python Shell informaci o restartu skriptu, po které se nám vypíšou informace o teplotě a vlhkosti v okolí senzoru DHT11.
Díky tomuto návodu jste nyní schopni připojit svůj senzor DHT11, 22 či AM2302 s Raspberry Pi a vyčítat z něj údaje. A jak Vás jistě napadlo, můžete zapojit senzorů i více najednou, ale je nutné pro každý použít nový pin. Můžete tak z Raspberry Pi vytvořit například meteostanici či díky těmto údajům o teplotě ovládat klimatizaci v místnosti.
Zmíněné Raspberry Pi desky na eshopu:
Raspberry Pi 3 B:
https://dratek.cz/arduino/1385-raspberry-pi-3-model-b-quad-core-1-2-ghz-64bit-cpu-1gb-ram-wifi-bluetooth-4-1-1473147122.html
Raspberry Pi 3 B+:
https://dratek.cz/arduino/3067-raspberry-pi-3-model-b-64-bit-1gb-ram.html
Raspberry Pi Zero:
https://dratek.cz/arduino/3106-raspberry-pi-zero-h.html
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
e-Paper displeje už jsou dostupné i pro bastlení za rozumné ceny a pro jejich ovládání se hodí tento Driver.