Zapomeňte na Intel Edison, Intel Quark, xDuino, PIC AXE... tady si za pár šupů užijete spoustu legrace a nezrujnuje vás, když to občas zahoří, nebo když hotový prototyp jen strčíte do krabičky, omotáte izolepou a přibijete do kůlny k trámu, kde si bude v klidu pár let měřit, než mu dojde baterka.
Sice má pár nedostatků a otravností, ale za 50,- korun českých jsem ochoten odpustit kde co.
Začínáme
Původně jsem si pořídil pár modulů typu ESP8266-07 (keramická anténa a pigtail pro připojení antény větší). Ale jsem rozhodně lepší programátor než elektronik a tak mi to flashování firmware atd. šlo dost ztuha. V podstatě mě to začalo bavit až ve chvíli, kdy jsem odložil páječku a pořídil si moduly od firma WeMos.WeMos začala dodávat ESP na destičce se standardní roztečí pinů a se slušnou sbírkou rozšiřujících modulů - schildů. Přidalo se také pár dalších výrobců, takže je z čeho vybírat.
Co pořídíte za svých 15 USD?
Zhruba za 14 dní vám do vaší poštovní schránky začnou nosit sovy malé balíčky a do tří týdnů to máte pohromadě.Moduly od WeMos-u a pár akumulátorů. |
- Modul s relé pro spínání zátěže až 250V/5A
- Modul s čtečkou Micro SD karet
- Modul s RGB diodou
- Modul s OLED displejem 64x48 pixelů
- Modul s tlačítkem
- Napájecí modul (poskytuje 3.3V i 5V a nabíjí připojené akumulátory z připojeného Micro USB)
- Modul s MCU ESP-8266 (přes vyvedené USB lze modul programovat i napájet)
- Modul se senzorem teploty a vlhkosti (DHT22, -40~80°C (±0.5°C), 0-99.9%RH (±2%RH))
- Modul se senzorem teploty a vlhkosti (DHT11, 0~60°C (±2°C), 20-90%RH (±5%RH))
- Modul se senzorem tlaku vzduchu (BMP085, 300-1100hPa, tj. +9000m až -500m)
Máte-li ještě akumulátor z mobilu, zkanibalizovaný drátek z počítače a vhodnou krabičku, můžete mít za necelých 400,- takovouto fešnou stavebnici:
Pohotovostní stavebnice s ESP-8266 od WeMos.cc |
Firmware
Standardně je MCU vybaven tzv. AT firmwarem, který se s vámi baví po sériové lince pomocí AT příkazů. Pokud ale do něj nahrajete jiný firmware, tak jako mávnutím kouzelného proutku umí třeba BASIC, NodeMCU Lua, Arduino, Javascript, ...Pokud bych byl bohatý, byl bych jen malinko excentrický, takto jsem blázen do novinek, takže zkouším jazyk Lua. To s sebou obnáší nahrání nového firmware, které však není bez pastí nalíčených na jazykové retardy a tak i pro osvěžení své paměti uvádím postup:
Napřed si na disk stáhneme a případně instalujeme vše potřebné:
ch340g driver
Pokud se chceme s ESP bavit po USB, musíme mít odpovídající driver
Link: http://www.wemos.cc/downloads/
ESP8266Flasher
Pro nahrání firmware budeme potřebovat nějaký nástroj, osvědčil se mi tento. V adresáři Win32/Release nebo Win64/Release vyberte odpovídající verzi.
Link: https://github.com/nodemcu/nodemcu-flasher
Firmware od NodeMCU
Na stránkách NodeMCU vypníme svůj email, následně zatrhneme moduly, které chceme do firmware zahrnout (pro začátek necháme třeba tak jak jsou) a na konci stránky klikneme na [Start your build]. Do poštovní schránky vám přijde link na stažení dvou verzí fw, jedna obsahuje celočíselnou, druhá float aritmetiku. (ano, u tohoto mcu je to hodně o paměti, zejména RAM je málo)
link: https://nodemcu-build.com/
esp_init_data_default.bin
Pokud výrobce ESP změní něco ve WiFi části, je potřeba nahrát nový soubor s inicializačními daty. Ten musíme vyseparovat ze souboru s SDK. postup je popsán ZDE, takže stručně stáhneme SDK a a vyseparujeme se ZIP archivu soubor esp_init_data_default.bin.
Link: http://bbs.espressif.com/download/file.php?id=1572
Poznámka: Tento soubor s inicializačními daty stačí nahrát pouze jednou, pak už se s tím nemusíme až do další verze firmware (zde 1.5.4.1) smolit.
blank512k.bin
Tento soubor budete potřebovat ve chvíli, kdy vyrobíte zapeklitou chybu v programu takového rázu, že bude mcu cyklicky havarovat a restartovat. Jediná šance je pak flashnout tento soubor.
Link: https://github.com/iotcafe/nodemcu-firmware-lua5.3.0/tree/master/pre_build/0.9.4/512k-flash
ESPlorer
Je vývojový nástroj pro ESP a (mimo jiné) Lua. Prostě takové Visual Studio pro ESP. Je možné, že budete ještě potřebovat nainstalovat Javu (https://java.com/en/download/)
Link: http://esp8266.ru/esplorer/
Flashujeme firmware
Jakmile budete mít tuto fázi za sebou, očekávají vás jen samá pozitiva a životní jistoty.Spustíme ESP8266Flasher, na záložce Config nastavíme flashované soubory a adresy pro jejich umístění:
Flashujeme firmware a inicializační data |
Lua na ESP8266
Zde jen stručně o principech tohoto jazyka. Ač mi momentálně funguje teploměr ve skleníku programovaný v Lua, nejsem odborníkem na tuto problematiku.- Lua je interpret, ale při běhu je kompilován
- Na ESP je vytvořen filesystém, ve kterém jsou soubory se scripty
- Pokud je po startu nalezen soubor init.lua, je automaticky spuštěn
- Přivedete-li program v Lua až k panice (PANIC), je ESP restartován
- K programování a práci se soubory použijte Esplorer
Vzhledem k [3] a [4] je vhodné použít init.lua takový, který umožňuje přerušení provádění programu, jinak bychom museli v případě problémů přehrát filesystém souborem blank512k.bin.
Takto vypadá ten správný init.lua, jenž následně spustí main.lua, kde už si můžeme dělat co chceme. v případě problémů pošleme po sériové lince char(13), tedy dáme Enter.
function abortInit()
print('Press ENTER to abort startup')
uart.on('data','\r', function(data)
tmr.unregister(0) --disable the start up timer
uart.on('data') --stop capturing the uart
print('Startup aborted')
end, 0)
tmr.alarm(0,5000,0, function()
uart.on('data') -- stop capturing the uart
print('Running startup')
dofile('main.lua') --run the main program
end)
end
tmr.alarm(0,1000,0,abortInit)
Poznámka: pokud nemáte zkušenosti s asynchronním programováním, máte se na co těšit a dost se zapotíte. Ale stojí za to přijít tomu na kloub.
Prostředí ESPlorer |
Zdroj napájení, akumulátory
Pokud chcete provozovat ESP autonomně, budete potřebovat nějaký zdroj energie. Mě se osvědčila kombinace modulu pro napájení od WeMos a Li-ion akumulátor z notebookového packu (více ZDE). Někdy postačí plonkovní akumulátor z mobilu, jen se na něj hůř pájí vývody.Meteostanice, ThigSpeak.com a Low-Power
Klasická aplikace je teploměr a vlhkoměr, v mém případě pro skleník. hardware získáme zaklapnutím modulu napájení, samotného ESP, modulu pro měření teploty a vlhkosti (DHT22) a nějakého Li-ion akumulátoru. Šikovnější (já) to vloží do nějaké krabičky, pak je nižší možnost, že vám to vyzkratuje slimák, který přes moduly zkrátí cestu k salátu.Skleníkový teploměr Jedná se o technologický prototyp, pokud to ještě měsíc vydrží udělám mu pěknější krabičku a možná dodám i měření napětí akumulátoru, abych jej včas vyměnil za nabitý |
Teplota a vlhkost ve skleníku, venku evidentně prší, tuším, že rajčata mi definitivně sežehne plíseň. (thingspeak.com) |
Kombinovaný graf teploty a vlhkosti (thingspeak.com) |
Pokud budete používat ESP v autonomním provozu, narazíte na problémy s napájením, kdy se zapnutou WiFi bude mít odběr 200 mA, což je cca 10 hodin na klasický Li-ion akumulátor. Proto prozkoumejte odkazy pod článkem, kde je tabulka různých módů, dovolujících snížit odběr až na 10µA.
Ve výše uvedené meteo-stanici jsem použil mód deep sleep (10µA), ze kterého se modul probouzí každých 10 minut, změří data a pošle je na ThingSpeak.com Pro tento mód je potřeba propojit vývody D0 (alias xpd_dcdc, GPIO16, PIN8) a RST (alias ext_rstb, PIN32), viz. červený drát na fotografii výše.
Odkazy
Stránky a zdroje, které byste neměli minout.- Petr Stehlík (znáte někoho, kdo toho u nás ví o ESP ještě víc a neváhá se o to podělit?)
- Arduino a ESP8266 (Motivační přednáška od Petra Stehlíka)
- Těžíme akumulátory 18650
- Komunitní stránky (různé jazyky a firmware pro ESP8266)
- Sleeping the ESP8266 (tabulka spotřeby ESP v různých módech)
- Ultra-Low Power ESP8266 (napájení ESP ze solárního článku)
- Programovací jazyk Lua (seriál na www.root.cz)
- Programming in Lua (www.lua.org)
- Using NodeMCU Lua (lua.adafruit.com)
- ESP8266 Basic (programujete ESP v okně internetového prohlížeče)
- ThingSpeak.com (Internet of thinks)
- WiFi modul ESP8266 (rychlé how-to od Martina Vancla)
- ESP32 je tu (Co přinese nástupce ESP8266? od Petra Stehlíka)
- Lua - krása v jednoduchosti (excelentní přednáška Františka Fuky o tomto jazyce)
Žádné komentáře:
Okomentovat