WiFi teploměr s ESP8266 v1.0

!!! Pozor, WiFi teploměr prošel změnou a během června 2019 bude zveřejněná nová verze !!!

Po dlouhé odmlce, která byla způsobena pracovní vytížeností přicházíme s naprostou peckou. Jedná se o chytrý WiFi teploměr, který odesílá naměřená data na webserver, kde se ukládají do databáze a vykreslují se grafy a důležité informace. Jádrem zapojení je wifi modul s integrovaným mikroprocesorem ESP8266 a s pamětí flash 1024KB. Při použití tohoto modulu odpadá nutnost připojit řídící mikroprocesor, protože program běží přímo v „ESPu“. Na stránku s měřením zde z Tábora si můžete prohlédnout ZDE.

Prvně si popíšeme trošku čip ESP8266 osazený na modulu ESP-01. Jedná se o 32-bitový mikroprocesor s taktem 80MHz, 96KB RAM a 1024KB pamětí FLASH. Modul ESP-01 obsahuje 2 GPIO vstupy/výstupy, sériovou komunikaci Rx/Tx, CH_PD pin pro nastavení výkonu a napájení. Modul se napájí 3,3V a jeho spotřeba je až 300mA v době připojení k wifi a odeslání příkazů. Pro zapojení stačí připojit modul k napájení. Záporný pól na GND, 3,3V na Vcc, Pin CH_PD připojíme k napájecímu napětí a pin GPIO0 složí pro vstup do programovacího módu, stačí jej propojit se zemí. Sériová linka se používá k nahrání programu nebo ke komunikaci s jiným zařízením. Zapojuje se tak, že výstupní pin Tx jednoho zařízení se připojuje na vstupní pin Rx druhého zařízení, takzvaně do kříže. Pokud máme takto připojený modul k převodníku USB – RS-232 nebo přímo do portu sériové linky, tak jsme schopni do ESPu nahrát program. Po nahrání programu je nutné rozpojit propojku mezi GPIO0 a GND.

V programu je nutné upravit pár základních hodnot. SSID a heslo wifi připojení, na kterou se bude ESP připojovat. Doména – adresa, na kterou bude ESP odesílat naměřená data. V našem případě odesíláme na vlastní server v lokální síti, dříve na placený hosting server, nebo lze využít free hosting přímo od tvůrců TMEP. Další proměnnou je „guid“, který určuje jakési ID naměřených hodnot. Využije se tehdy, kdy na jednom serveru máme více měření a potřebujeme je nějak od sebe oddělit. V případě nutnosti lze změnit i port, na který data odesíláme. Dále si můžeme nadefinovat port, na kterém je čidlo připojené, v případě DHT čidel i jeho typ. Poslední hodnotou je četnost odesílaných dat, výchozí hodnota je 10 minut, to bohatě stačí na standardní měření a data nezabírají zbytečné místo v databázi (celkem asi 3,8MB za 1 rok měření).

Vlastní program je velmi jednoduchý. Načtená hodnota hodnota teploty, případně i vlhkosti se vloží do Stringu, který pomocí požadavku HTTP GET se odešle na server, kde se již dál zpracovává. Po odeslání se program zastaví na určenou hodnotu a potom cyklus znovu pokračuje.

Schéma zapojení:

wifi teploměr schéma

Plošný spoj je navržen tak, že na jedné straně je vyvedena svorkovnice pro napájení a pro připojení teplotního senzoru. Po delším testováním bylo zjištěno, že se teplotní čidlo nevyplatí připojit přímo do svorkovnice, ale například přes 10cm dlouhý kabel vedle. Z lineárního stabilizátoru a z WiFi modulu se dostává přes nožičky čidla ztrátové teplo a měří pak vyšší teplotu. Na svorkovnici napájení je možné připojit stejnosměrné napájecí napětí 4-16V, proudový odběr je maximálně 300mA. V napájecí cestě je jako první filtrační kondenzátor C1 o hodnotě 220uF/16V, jako další je v SMD pouzdře stabilizátor AMS1117 s výstupním napětím 3,3V. Následuje blokovací kondenzátor 100nF v SMD pouzdře 1206.

Na plošném spoji jsou další 2 konektory. Konektor se zámkem k připojení programátoru na nahrávání firmwaru a zkratovací propojka pro spuštění programovacího režimu. Ta musí být před připojením napájecího napětí propojena.

Deska plošných spojů:

wifi teploměr dps

Osazovací plán:

wifi teploměr

Deska plošných spojů je dostupná jako obrázek, nebo v Gerberu přímo pro profesionální výrobu. Všechny desky nechávám vyrobit v Číně u firmy JLCPCB. Mají jednotnou cenu pro desky do 10 x 10cm, tak se snažím vždy využít poslední volné místo k zaplnění tohoto prostoru. Objednávku provedete jednoduše na stránkách www.jlcpcb.com.

Seznam součástek:
C1 220uF/16V ele.
C2 100nF ker. 1206
R1 10kOhm 1206
R2 10kOhm 1206
R3 10kOhm 1206
IO1 AMS1117-3.3
IO2 ESP-01 (ESP8266)
K1 šroubovací svorkovnice RM=5mm – 2pin
K2 konektor se zámkem RM=2,54mm – 3pin
K3 šroubovací svorkovnice RM=5mm – 3pin
prog zkratovací propojka RM=2,54mm
Reálné fotografie:

img_real

A teď k samotné instalaci celého systému. K tomu aby nám teploměr fungoval potřebujeme mít samotné zařízení s nahraným programem a místo v síti kde bude zobrazení naměřených hodnot. Je více možností, které využít a všechny jsou i jinak uživatelsky náročné.

První možností je přímo využití stránek TMEP.cz. To je uživatelsky nejsnadnější, protože se stačí na stránkách pouze registrovat, vyplnit pár informací a vše je hotovo. V tomto případě ale bude formát domény „mojeteplota“.tmep.cz, kde „mojeteplota“ bude název, který uvedeme při registraci. Lze využít i widget pro mobilní telefon, který výrobce poskytuje. Veškeré návody na registraci a nastavení zařízení naleznete na stránkách TMEP.cz.

Další možností je využít vlastního hostingu s doménou, to lze považovat za nejlepší variantu. Stránky můžeme mít pojmenované „mojemereni.cz“ ale veškerá správa a nastavení stránek je na nás. Pro fungování měření musí být na hostingu nainstalované PHP a MySQL databáze, což většina poskytovatelů splňuje. Nejprve začneme založením databáze a aplikací dávkového souboru pro přednastavení všech tabulek. Pak v konfiguračním souboru „config.php“ uvedeme přístup do databáze a máme zde i některé nastavení pro samotný běh zobrazení naměřených hodnot. Soubory pak všechny nahrajeme na hosting a po odeslání naměřených hodnot na adresu se zobrazí v grafech.

Poslední varianta je nejnáročnější na správu a nastavení, ale pokud již doma máme nějaký server (postačí i Raspberry Pi), ušetří nám peníze za využívaný hosting. Veškeré nastavení je stejné jako u příkladu výše, pouze hostingový prostor máme na svém serveru. Pokud máme i veřejnou IP adresu, je možné se na naměřené hodnoty dívat i jinde než na vnitřní síti, případně měření skrýt pod doménové jméno, jako v našem případě. Při odesílání hodnot ve vnitřní síti mezi teploměr -> server je nutné v konfiguračním souboru uvést adresu ze vnitřní síti (např. 192.168.88.20).

Instalační soubory:

Program pro ESP8266 – DHT senzory (Arduino IDE)

Program pro ESP8266 – DS18B20 (Arduino IDE)

Instalační soubory pro webserver

2 Komentáře

Napište komentář

Vaše e-mailová adresa nebude zveřejněna.


*