====== ESP8266 ======
Výborný zdroj na návody s kódem: https://randomnerdtutorials.com/projects-esp8266/
Rozložení pinů na descee: https://lastminuteengineers.com/esp8266-pinout-reference/
===== Začínáme s ESP =====
[[https://randomnerdtutorials.com/getting-started-with-esp8266-wifi-transceiver-review/|V tomto zdroji]] lze najít porovnání jednotlivých desek, zprovoznění Arudino IDE pro programování ESP8266 v C.
==== Adaptér pro ESP8266 ====
Pro hotové projekty jsem si koupil [[https://botland.cz/adaptery-smd-dip/4351-adapter-pro-wifi-modul-esp-12e-esp8266-5904422332747.html|Adaptér pro ESP8266]], který vypadá takto:
{{:it:iot:pasted:20241026-203159.png}}
{{:it:iot:pasted:20241026-203227.png}}
Pro nahrání firmware použiju [[https://dratek.cz/arduino/1311-esp-01-usb-esp8266-serial-wifi-adapter.html|ESP8266 Serial Module Board Development]]
Pro nahrání firmware je dobré znát Pinout zařízení ESP8266. Článek [[https://lastminuteengineers.com/esp8266-pinout-reference/]] vysvětlil, proč některé PINy nejsou na destičce aktivní.
{{:it:iot:pasted:20241026-203522.png}}
[[https://www.diyhobi.com/flash-program-esp-01-using-usb-serial-adapter/|Tento článek]] je asi nejsrozumitelnější, jak mohu použít ESP8266 Serial Module Board Development pro nahrání firmware na ESP8266. Ukazuje i jiné adaptéry a jaké piny propojit.
Tento článek obsahuje podrobnější vysvětlení k jednotlivým pinům pro nahrání firmware: https://navody.dratek.cz/technikuv-blog/nahravani-programu-do-esp-01.html
V tomto článku je inspirace na tlačítko pro přepnutí do programovacího módu: https://www.instructables.com/USB-to-ESP-01-Board-Adapter-Modification/
Alternativou je přímé propojení drátů, která asi udělám pro rychlejší řešení.
==== Napájecí zdroj, baterka ====
[[https://www.instructables.com/ESP8266-Pro-Tips/|Výborný článek]] popisuje:
* instalaci Wifi managera na ESP8266, aby bylo možné změnit Wifi připojení i bez uploadu firmware
* výběr baterie pro ESP8266
* možnosti stabilizátoru napájení - použiji AMS1117 a musím počítat s tím, že vstupní napájení pro tento stabilizátor musí být minimálne 5V
* jak pracovat se stand-by režimem a uspáváním pro úsporu baterie
[[https://www.instructables.com/Getting-Started-with-the-ESP8266-ESP-12/|Tento článek]] byl pro mě inspirativní a matoucí zároveň. Inspirativní proto, že popisuje zapojení měniče napětí z 5V na 3,3V LM1117 a je v článku i napsáno, že je dobré použít kondenzátory pro vyhlazení napětí jak k 5V, tak k 3,3V. Matoucí zase v tom, že ukazuje USB zařízení s CP2102, které má na výstupu 3,3V, ale nedoporučuje je použít k napájení ESP8266 kvůli tomu, že USB port není schopen poskytnout tolik proudu. To mi nějak nesedí a zatím proto nemám vysvětlení.
Tady je pro úplnost ještě rodina verzi ESP 8266: https://www.esp8266.com/wiki/doku.php?id=esp8266-module-family
==== OTA updates ====
Tady jsou návody s kódem pro OTA updates skrze Arduino IDE. Arduino se připojí na IP zařízení a pošle update firmware.
* https://milansrajer.cz/elektro/ota-programovani-esp8266/
* http://arduino.esp8266.com/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html
* https://randomnerdtutorials.com/esp8266-ota-updates-with-arduino-ide-over-the-air/
Další cestou je rozběhnutí Async ElegantOTA. Tím se vytvoří http server na zařízení ESP8266 a jde skrze něj uploadnout firmware.
{{youtube>BoxG4j09fnA?}}
==== Rozmístění komponent - DIY Layout Creator/Fritzing ====
Docela mě zaujal software v Javě [[https://github.com/bancika/diy-layout-creator|DIY Layout Creator]]. Uvažuji software použít na rozmístění součástek na univerzální plošný spoj. Tento software vypadá docela jednoduše. Zejména jsem použil komponentu DIP IC na navržení vhodné velikosti mojí komponenty na univerzální plošný spoj.
Co mě mrzí, tak to vypadá, že nemohu jednoduše jednotlivé PINy pojmenovat a docela by se mi to hodilo. Zatím jsem nepřišel na to, jak to udělat. Tady je základní návod.
{{youtube>mzje3eHqi2E?}}
Další projekt, který uvažuji je [[https://fritzing.org/|Fritzing]]. Je to nepochybně hodně známý projekt a hojně používaný, nicméně zatím mám problémy s nadefinováním velikosti komponenty.
===== MicroPython =====
Je očesaná verze Pythonu. Obsahuje malou podmnožinu standardních knihoven Pythonu specifické právě pro mikropočítače. Při koupi vývojové desky je potřeba [[https://randomnerdtutorials.com/getting-started-thonny-micropython-python-ide-esp32-esp8266/#install-thonny-ide-linux|flashnout firmware a nastavit si počítač pro spuštění prvního kódu]].
==== instalace Thonny IDE pro Linux ====
sudo apt install python3 python3-pip python3-tk
sudo pip3 install thonny
Případně instalace pro Rasbpian:
sudo apt install python3-thonny
{{:it:iot:pasted:20230103-132141.png}}
==== Flashování firmware pro MicroPython ====
Pro instalaci firmwaru jsem musel doinstalovat esptool:
sudo pip3 install esptool
Poté stáhnout nejnovější stabilní [[https://micropython.org/download/esp8266/|firmware pro ESP8266]].
Zapojit vývojovou destičku microkontroléru do USB.
Dále v Thonny IDE jít do menu **Tools**->**Options...** a zvolit záložku **Interpreter**. Nastavit jako na obrázku a kliknout na **Install or update MicroPython**.
{{:it:iot:pasted:20230103-135903.png}}
Další obrazovku pak nastavit takto:
{{:it:iot:pasted:20230103-140031.png}}
==== další zdroje pro programování v Micro Pythonu ====
[[https://docs.micropython.org/en/latest/esp8266/quickref.html|Quick reference for the ESP8266]]
==== Hromadná aktualizace firmware ====
Jakmile budu mít víc zařízení v provozu, je nešikovné aktualizovat firmware neustálým připojováním k počítači a ručním postupem. Našel jsem [[https://randomnerdtutorials.com/esp32-esp8266-micropython-ota-updates/|krásný návod na hromadné aktualizace - které stačí umístit na server.]] Určitě to stojí za použití.