Sdílejte nás



RSS feeds

Víte, jak se daří vaší kytce? Zjistěte to s ESP8266, přehledně v grafech a s ultra nízkou spotřebouTisk

Jednou z částí mého připravovaného projektu zalévacího systému je i měření teploty a vlhkosti vzduchu a také měření teploty v půdě a půdní vlhkosti. Tento článek je o tom, jakým způsobem sbírám data, jak dosáhnout co nejnižší spotřeby a jak data přehledně interpretovat.

Jsme v době, která bastlířům přeje, můžete koupit nejrůznější moduly za pár desetikorun či stokorun a během chvíle vytvořit například poloprofesionální meteostanici jejíž kvalita závisí pouze od kvality zakoupených čidel.
Já se rozhodl vytvořit automatický zalévací systém, ke kterému patří i měření teploty a vlhkosti vzduchu a stejně tak i měření teploty a vlhkosti půdy.
Důraz kladu zejména na nízkou spotřebu a dobře intepretovaná data dostupná odkudkoliv.

Hlavní deska


Jako základ jsem zvolil svou desku MeteoV3.1, kterou používám už u několika svých projektů a stejně tak jí používají i další bastlíři - třeba Kutil domácí z twitteru, ten jí používá ke snímání teploty v kompostu.





V mém případě je deska napájena dvojicí AA baterií z Ikea, která má dle mého nejlepší poměr cena vs. kapacita. Detailní měření této baterie a spousty dalších najdete na http://www.nejlepsi-baterie.cz/.

MeteoV3.1 můžete osadit modulem ESP07, ESP08 nebo ESP12, vyvedeny jsou konektory pro I2C, 1-wire i dva GPIO, které můžete volitelně použít. Ke snímání napětí baterie můžete využít i připravený konektor připojený na AD převodník ESP8266.
Pokud byste desku chtěli napájet vyšším napětím než je 3.6V, stačí osadit LDO stabilizátor s nízkou vlastní spotřebou LF33.

Čidla





Takže hlavní desku bychom měli, teď zbývají čidla. Dlouhá léta používám Si7021, které měří jak teplotu tak i vlhkost vzduchu a navíc obsahuje i topné těleso, kterým můžete zvýšit přenost měření vlhkosti.
Pro Si7021 používám tuto knihovnu: https://github.com/LowPowerLab/SI7021

Jeho vlastní spotřeba v režimu spánku je neuvěřitelných 60nA, v režimu měření pak 150uA.
Rozsah napájecího napětí je od 1.9 do 3.6V.
Takže volba byla docela jasná. Čidlo jsem umístil do radiačního štítu.



Komplikovanější volbou pak byl výběr vhodného čidla pro měření vlhkosti půdy.
Na výběr jsou vlastně dva typy měření - jeden měří odpor mezi elektrodami, druhý kapacitu.
Měření kapacity ná své výhody, tou největší je, že zde neprochází proud mezi elektrodami.

Můžete koupit kapacitní čidlo vlhkosti půdy na aliexpress, ale to není voděodolné, takže musíte řešit i voděodolnost.
Už nějakou chvíli mám čidlo od hardwario, které kromě voděodolnosti a kapacitního měření vlhkosti půdy navíc obsahuje i teplotní čidlo a použitá sběrnice je 1-wire. Můžete tak připojit na jeden pin spoustu stejných čidel.
K tomuto čidlu jsem využil arduino knihovnu, která je dostupná na https://github.com/bigclownlabs/SoilSensor.
Spotřeba během měření je kolem 2.4mA, v režimu spánku pak pouhých 16uA.
Spoiler: při použití čidla s MeteoV3.1 jsem proud snížil na 0mA.

Napájecí napětí čidla je pak od 2.8V do 5.5V. Hodí se tak i ke klasickým 5V Arduino deskám.

Co nejnižší spotřeba


Pro dosažení co nejnižší spotřeby je důležitý jednak výběr součástek, ale také jejich použití.

Hned v úvodu této kapitoly zmíním jeden problém, na který jsem při použití ESP8266 narazil.
Čidlo vlhkosti půdy obsahuje čidlo DS28E17 - převodník mezi I2C-1-wire, které má ale tu vlastnost, že se po uspání automaticky probudí v případě, kdy nastane na sběrnici nějaká komunikace...
A ESP8266 vygeneruje pulz při uspání - ten můžete vidět níže.

Tento krátký pulz na DATA pinu probudí čidlo a jeho odběr není 16uA, ale 2.3mA, což je mnohem více.



Znovu ale čidlo uspat nemůžete, protože ESP8266 už dávno spí.

Tento problém naštěstí vyřešila deska MeteoV3.1, která obsahuje, jak už jsem zmínil, dva GPIO piny, které můžete použít jako vstup nebo výstup.
Já jeden z nich, GPIO12, použil jako výstup, kterým spínám napětí VCC čidla vlhkosti od hardwario.

Tím jsem docílil vlastní spotřeby čidla 0mA. Ano, prostě odpojíte čidlo od napájení.

Další snížení spotřeby můžete docílit pomocí vašeho kódu... ESP8266 umí tři režimy spánku.



Bastlíři často používají ESP8266 následovně - zapnou WiFi, něco čtou z čidel, vypočítavají, WiFI zbytečně běží a až jako poslední úkon odešlou data na nějaký server.
Rozdíl mezi normálním módem a modem-sleep činí i 55mA (ze 70mA na 15mA), což je výrazná úspora.

Vzhledem k tomu, že při každém zapnutí čidla zapnu i ohřev čidla Si7021, ESP8266 běží několik vteřin naprosto zbytečně - je tedy dobré snížit spotřebu například vypnutím WiFi periférie.

Elegantnějším řeším by však bylo využití EEPROM paměti, průběh kódu by pak byl následovný
- zapnutí ESP8266 (vypnutí WiFi periférie)
- zapnutí ohřebu Si7021
- zapsání aktuálního stavu do EEPROM - další zapnutí ESP8266 už bude vyčtení a odeslání dat na server
- probuzení ESP8266 po několika vteřinách
- vypnutí ohřevu Si7021
- připojení k WiFi, změření dat, uspání na několik (desítek) minut

Zobrazení dat


Zobrazení dat je další důležitou částí každého projektu, já jsem využil The IoT Guru cloud o kterém jsem psal tady: https://chiptron.cz/articles.php?article_id=260

V článku výše najdete obrázkový návod, jak nastavit váš účet tak, aby vám to celé bez problému fungovalo.

K zobrazení dat pak můžete použít webové rozhraní nebo jejich aplikaci.

Graf teploty vzduchu na balkónu


Graf vlhkosti vzduchu na balkónu


Graf teploty půdy


Graf vlhkosti půdy


V aplikaci jsou pak data zobrazeny například takto


Spotřeba a kód


A dostáváme se ke spotřebě... díky použitým součástkám i jejich využití, je spotřeba v nejhlubším režimu spánku pouhých 24,76uA.

Odeslání dat probíhá jednou za 30 minut - ale tato hodnota je nastavitelná v kódu.

Kód je ke stažení na tady.

Upozornění

Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů.
Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.
Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva.
Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.
5,590,096 návštěv