ESPHYGRO – Vlhkoměr s ESP8266 a vzdálený displej s fakt hustým zobrazením

IMG_9568_webJirka, pro kterého jsem napsal projekt YAFET by si rád postavil meteostanici, která by data odesílala do Thingspeak a také je nějak zobrazovala na místním displeji. Jedno z čidel měl být senzor DHT22 pro měření teploty a relativní vlhkosti, který jsem doma měl, takže jsem s pokusy začal na něm. Předesílám, že zde není uveřejněný hotový projekt (ten ani zatím hotový není), ale spíše námět a základ, na kterém se dá pokračovat…

V současné době mám zadrátované dva moduly – jeden s ESP-07, který slouží jako bezdrátový senzor s připojeným čidlem DHT. Jeho úlohou bude měřit a odesílat naměřená data na Thingspeak a současně je pomocí UDP Multicast soketu zpřístupňovat všem zájemcům na vnitřní síti. Druhé zařízení, na které jsem použil destičku NodeMCU 1.0, osazenou modulem ESP-12E se 4M flash, doplněnou o SPI TFT 2.2 palce s řadičem ILI9340 a slouží jako zobrazovací jednotka.

IMG_9571_web

Pro vnitřní komunikaci jsem vytvořil prozatímní jednoduchý přenosový protokol, komunikující přes UDP soket.

Pro uživatelské rozhraní jsem zvolil modifikovaný Adafruit ovladač pro ILI9341, který je obsažený ve staging verzi Arduina pro ESP8266. POZOR! – ovladač v Arduinu není ani zdaleka dokončený – musel jsem dopsat chybějící věci okolo transakcí na SPI a i tak jsem neupravoval vše, ale jen věci, které jsem nutně potřeboval. Nádstavbu pak tvoří modifikovaná Adafruit GFX knihovna (doplněná o další fonty), kterou jsem objevil někde na internetu. Vykreslované „budíky“ pak tvoří značně modifikovaný příklad od Bodmera, kterému tímto děkuji za nápad (nakonec jsem zjistil, že i modifikovaná Adafruit GFX knihovna pochází taktéž od Bodmera – big thank You again…).

Celý projekt je zatím v alfa fázi a jako takový trpí následujícími problémy:

  1. UDP Multicast soket zatím není příliš spolehlivý – odesílání dat dle Wiresharku probíhá správně a vždy, ale přijímací soket data někdy nezachytí. Moje další pokusy budou směřovat k použití broadcast adresy namísto multicast. Snad bude výsledek lepší…
  2. Komunikační protokol je velmi chudý a všude zcela chybí konfigurace pro reakci na přijímaná data.
  3. Čekám na TFT displej s dotykovým panelem, aby se zobrazování dalo nějak ovládat.
  4. Bylo by skvělý vědět paletu všech použitých čidel, aby se dalo rozmyslet, jak budou vypadat obrazovky (že Jirko… 🙂 ).

Pod článkem najdete ke stažení současný projekt i s modifikovanými knihovnami, ale skutečně ho berte jako studijní materiál a ne finální řešení…

 

ESPHYGRO
ESPHYGRO
ESPHYGRO.ZIP
71.6 KiB
1865 Downloads
Detaily

7 komentářů u „ESPHYGRO – Vlhkoměr s ESP8266 a vzdálený displej s fakt hustým zobrazením“

  1. Tak jsem to chtěl vyzkoušet, ale pří kompilaci mi chybí tyto soubory: interval.h a espnbns.h

  2. Díky už jsem to našel. Speciálně ten interval je tak trochu zašitý v textu 🙂 Tak jdu testovat.

  3. Dobrý den,
    chci se zeptat jestli je i možnost že by si esp mimo vnitřní sít tahalo data z Thingspeak které by tam jiné posílalo?

    1. Dobrý den,
      sám jsem to sice nedělal, neboť nejsem příliš velkým příznivcem těchto služeb (dost jsem se totiž už vypekl), ale možnost tady je. Zkuste nastudovat ThingHTTP službu. Pokud by nebylo možné proroutovat port na ESP tak, jak to služba vyžaduje, tak možná bude existovat směrování z Thingspeak na nějakého MQTT brokera a pak to řešit přes MQTT (námět zde: http://community.thingspeak.com/forum/esp8266-wi-fi/how-to-send-data-from-thingspeak-to-esp8266-arduino-using-thinghttp/ )

  4. to me zase chybi meter.h a nemuzi ji nikde najit
    muzete me nekdo nakopnout? diky

Komentáře nejsou povoleny.