Firmware Esp8266. Aktualizace firmwaru pro Wi-Fi modul ESP8266. Relé spojíme se zátěží

Amazon.com Inc. - Americká společnost, jedna z nejstarší internet obchody, lídr mezi internetovými obchody z hlediska objemu obchodu. Amazon je jednou z prvních společností, které prodávají skutečné zboží online. Prvními produkty společnosti byly knihy. Díky tomu, že na internet bylo možné umístit neomezené množství produktů a nabízet je téměř neomezenému počtu kupujících, obchodní model Amazon se nejen uchytil, ale přinesl společnosti také obrovský úspěch.

Historie Amazonky

Historie Amazon.com (Amazon) je historií snad nejvíce velký internetový obchod ve světě. V roce 1994 založil americký podnikatel Jeffrey Bezos, který litoval, že se ještě nezúčastnil takzvané „internetové zlaté horečky“, Amazon.

Bezos chtěl, aby název obchodu začínal písmenem „A“, protože je to první písmeno abecedy. Otevřel slovník a usadil se na slově „Amazon“, protože řeka byla popsána jako „neobvyklá a exotická“. Při volbě názvu je navíc zřejmá paralela mezi velikostí řeky a rozsahem vytvářené společnosti.

Logo Amazon je šipka směřující od „A“ do „Z“, která symbolizuje úsměv spokojeného zákazníka.

Zpočátku bylo možné na zdroji zakoupit pouze knihy. Zatímco tradiční knihkupectví a poštovní katalogy mohl spotřebiteli nabídnout asi 200 000 položek, internetový obchod prodal mnohem více.

Již v roce 1995 byla prodána první kniha – „Fluid Concepts and Creative Analogies“ od Douglase Hofstadtera.

A v roce 1997 byla provedena úspěšná veřejná nabídka akcií. Amazon IPO se uskutečnilo za cenu 18 USD za akcii.

Obchodní plán Amazon.com byl docela neobvyklý. Dosažení bodu zvratu se očekávalo za 4–5 let, což vyvolávalo neustálou nespokojenost akcionářů. V roce 2001, na vrcholu krachu dot-com, kdy přestalo existovat mnoho internetových služeb, Amazon přežil a vykázal zisk 5 milionů na tržbách 1 miliardy dolarů. Přestože byl výsledek skromný (pouze 1 cent na akcii), obchodní model se osvědčil.

Ve stejném roce se Amazon.com ocitl v centru vysoce profilovaných právních skandálů. Nejprve Barnes a Noble podali žalobu na internetový obchod s tím, že tato online služba si nemůže nárokovat titul „největší knihkupectví na světě“. Právníci Barnese a Noble byli přesvědčeni, že „to není knihkupectví samo o sobě, je to knihkupectví“. Případ nepokročil a Amazon.com se nadále nazýval „největším knihkupectvím na světě“. Za druhé, Wal-Mart oznámil, že uživatelé internetu ukradli jeho obchodní tajemství tím, že najali bývalé zaměstnance největšího prodejce. V důsledku toho byl nárok stažen a Amazon.com byla uvalena vnitřní omezení na najímání bývalých manažerů Wal-Martu.

V roce 1999 časopis Time jmenoval Jeffreyho Bezose osobností roku za popularizaci online nakupování.

Vydání bylo oznámeno v listopadu 2007 Amazon Kindle(Amazon Kindle). Amazon Kindle - e-kniha, který pumpuje obsah z Whispernetu přes bezdrátovou síť Sprint. Jeho obrazovka je vyrobena pomocí E Ink, což je technologie, která snižuje spotřebu energie a také výrazně zvyšuje čistotu obrazu. V březnu 2011 počet knih dostupných ke čtení prostřednictvím Kindle přesáhl 850 000.

V září 2011 společnost oznámila svůj vstup na trh tabletových počítačů prostřednictvím vydání Amazon Kindle Fire, který bylo možné zakoupit za bezprecedentně nízkou cenu 199 $.

Pro práci s RemoteXY musí mít modul ESP8266 verzi firmwaru, která podporuje AT příkazy, ne nižší než v0.40. Chcete-li zkontrolovat verzi modulu a v případě potřeby změnit firmware, připojte modul k počítači přes sériový port. Modul lze připojit přes Deska Arduino nebo přes USB-UART adaptér.

Připojení přes desku Arduino

Při použití Arduina je hlavní čip ATmega uveden do režimu reset, aktivní zůstává pouze vestavěný převodník USB-UART. Za tohle RESET kontakt spojuje se zemí. Piny RX a TX jsou připojeny k ESP8266 přímo, spíše než překřížené, jak by tomu bylo u ovladače.

Připojení přes USB-UART adaptér

Převodník musí mít výstup zdroje 3,3V pro napájení ESP8266. Také tento zdroj musí poskytovat požadovaný proud minimálně 200mA.



Kontakt CPIO0 určuje provozní režim modulu. Pokud není kontakt připojen, modul pracuje v normální režim a provádí AT příkazy. Když je kontakt sepnut vůči zemi, modul se přepne do režimu aktualizace firmwaru. Přepnutí modulu do režimu firmwaru vyžaduje, aby byl pin CPIO0 připojen k zemi, když je modul napájen. Pokud sepnete kontakt za běhu modulu, modul se nepřepne do režimu aktualizace firmwaru.

Kontrola aktuální verze

Chcete-li odesílat příkazy AT a zobrazovat odpovědi, musíte použít jakýkoli program pro sledování sériového portu. Terminálový program z Arduino IDE funguje velmi dobře. Program musí být nastaven tak, aby posílal příkazy s koncovým posunem řádku a znakem návratu vozíku. Výchozí provozní rychlost modulu je 115200 bps. Aby modul fungoval v normálním režimu, musí být deaktivován kontakt CPIO0.

Aktuální verzi firmwaru můžete zkontrolovat spuštěním příkazu AT: AT+GMR. Příklad odpovědi modulu:

Verze AT:0.40.0.0(8. srpna 2015 14:45:58)
Verze SDK: 1.3.0

Sestavení:1.3.0.2 11. září 2015 11:48:04
OK

Vyplatí se také zjistit velikost flash paměti vašeho modulu, od toho se odvíjí nastavení adres pro stahování dat při aktualizaci firmwaru. Tento návod popisuje firmware modulu s velikostí flash paměti 8Mbit(512KB+512KB) nebo 16Mbit(1024KB+1024KB), jako nejběžnější. Velikost flash paměti lze zjistit provedením příkazu AT pro reset modulu: AT+RST.

Ets 8. ledna 2013, první příčina: 2, režim spouštění: (3,1)

Zátěž 0x40100000, len 1396, místnost 16
ocas 4
chksum 0x89
zatížení 0x3ffe8000, len 776, pokoj 4
ocas 4
chksum 0xe8
zatížení 0x3ffe8308, len 540, pokoj 4
ocas 8
chksum 0xc0
csum 0xc0

2. verze bootování: 1.4(b1)
Rychlost SPI: 40 MHz
Režim SPI: DIO
Velikost a mapa SPI Flash: 8Mbit (512KB+512KB)
skok na spuštění uživatele1 @ 1000

#t#n"nepoužívejte data rtc mem
slЏ‚rlМя
Ai-Thinker Technology Co., Ltd.

Firmware program

Chcete-li aktualizovat firmware, musíte si stáhnout program firmwaru a samotný firmware. Program pro flashování ESP8266 bude využívat Flash Download Tools v2.4 z oficiálních stránek Espressif Systems. Odkaz na stránku ke stažení na oficiálních stránkách: . Musíte přejít do sekce "Nástroje".

Odkaz na program v našem úložišti souborů: FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar

Firmware

Firmware lze také stáhnout z oficiálních stránek. Odkaz na stránku ke stažení na oficiálních stránkách: . Musíte jít do sekce “SDKs & Demos” a stáhnout si verzi firmwaru ESP8266 NONOS SDK ne nižší než v1.3.0. Právě s touto verzí firmwaru je implementována podpora pro AT příkazy v0.40 a novější.

Odkaz na firmware v našem úložišti souborů: esp8266_nonos_sdk_v1.4.0_15_09_18_0.rar

Všechny stažené soubory je nutné rozbalit a umístit do adresáře, kde se úplná cesta k souborům skládá pouze ze znaků latinky, tedy bez znaků jazykové lokalizace.

Nastavení

Spusťte program firmwaru Flash Download Tools v2.4 (soubor .exe se stejným názvem). V okně, které se otevře, musíte správně zadat stažené soubory a nastavení připojení.


Stažené soubory jsou umístěny v adresáři bin archivu s firmwarem. Pro každý soubor musíte zadat správnou adresu pro stahování. K výběru souborů a přiřazení adres použijte následující tabulku:

Instalovat následující parametry nastavení:

  • SPIAutoSet - nainstalován;
  • CrystalFreq - 26M;
  • VELIKOST FLASH – 8Mbit nebo 16Mbit v závislosti na velikosti flash paměti;
  • COM PORT – vyberte port, ke kterému je ESP připojeno;
  • BAUDRATE – 115200

Chcete-li spustit firmware, musíte stisknout tlačítko "START".

Sekvence kroků pro flashování firmwaru ESP8266

1. Připojte modul k počítači podle schématu zapojení v tomto článku.

2. Spusťte monitor sériového portu. K určení použijte AT příkazy AT+RST a AT+GMR aktuální verze firmware a velikost paměti modulu. Tento krok také umožňuje zkontrolovat, zda je modul správně připojen.

3. Spusťte program firmwaru Flash Download Tools, správně nakonfigurujte stažené soubory a proveďte nastavení.

4. Vypněte napájení modulu ESP8266.

5. Připojte kolík CPIO0 k zemi.

6. Zapněte napájení modulu ESP8266.

7. Stiskněte tlačítko START ve firmwarovém programu

8. Počkejte na dokončení firmwaru modulu. Po dokončení firmwaru se zeleně zobrazí zpráva FINISH.

9. Odpojte napájení od modulu ESP8266. Odpojte uzemnění od kolíku CPIO0.

10. Zapněte modul, spusťte monitor sériového portu. Spuštěním AT příkazu AT+GMR se ujistěte, že modul a nová verze firmwaru fungují.

Poté, co se deska objevila na Wifi základnaČip ESP8266 se stal skutečně populární. Obrovské příležitosti A minimální cena, která ani na začátku prodeje a maloobchodu nepřesáhla 5 dolarů, se povedla. Kolem čipu se vytvořily komunity, ve kterých lidé sdílejí informace a vytvářejí software.

Co je důvodem takové popularity, kromě nízké ceny?

Věc se má tak, že desky ESP8266 nejsou jen moduly pro WiFi komunikaci. Čip je v podstatě mikrokontrolér s vlastním SPI rozhraní, UART a GPIO porty, což znamená, že modul lze používat autonomně bez Arduina a dalších desek s mikrokontroléry.

Informace

Naši čínští soudruzi vyrábí již asi dvanáct typů desek na bázi ESP8266: s externím připojením antény, s keramickou anténou, s PCB anténou, bez antény. Také na různé moduly na výstupu je různý počet GPIO. Více podrobností naleznete na ruskojazyčném webu.

V této recenzi použiji jednu z úplně prvních desek ESP-01. Totéž pro plnohodnotnou práci s čipem budete potřebovat převodník USB/UART, doporučuji, recenze na kterou už na mysku byla.

Spojení

Pinout konektoru ESP-01 je znázorněn na obrázku:

Pokud vám ve vašich projektech nestačí dva výstupní GPIO a nechcete se pouštět do „špinavých hacků“, pak doporučuji rovnou pořídit například novější desky ESP-07 nebo ESP-12. Jen mějte na paměti, že tyto desky vyžadují nezávislou kabeláž a na to jsou k dispozici speciální mini sady.

Fotografie těchto desek


ESP-01 hacknutý Davem Allanem, jako příklad. Navíc získáte 4 GPIO: GPIO14, GPIO12, GPIO13 a GPIO15

Schéma zapojení:
- ESP-01 VCC na USB/UART VCC (+3,3 V);
- ESP-01 GND na USB/UART GND;
- ESP-01 URXD na USB/UART TXD;
- ESP-01 UTXD na USB/UART RXD;
- ESP-01 CH_PD na USB/UART VCC (+3,3V);
- ESP-01 GPIO0 na USB/UART GND - pouze během aktualizace firmwaru!...

Firmware

Pro ESP8266 je k dispozici SDK a originální firmware od Espressif Systems, ale mnozí s ním nejsou spokojeni kvůli jeho „surovosti“, takže vychází neoriginální firmware jako NodeMCU, Frankenstein a další.

Tato recenze nebude používat původní firmware NodeMCU. Seznam příkazů a příkladů naleznete na.

Aktualizujeme původní „tovární“ firmware na NodeMCU:
- Načtěte nástroj pro blikání - ;
- Nahrajte firmware - ;
- Připojujeme přes ESP-01 k USB/UART podle výše uvedeného schématu. Nezapomeňte připojit GPIO0 k GND. Vložte USB/UART do USB port počítač;
- Spusťte XTCOM_UTIL.exe, přejděte na Nástroje -> Konfigurace zařízení, vyberte port COM, ke kterému je deska připojena, nastavte rychlost portu na 57600, klikněte na Otevřít, poté na Připojit, program by měl říct „Připojit s cílem OK!“. zavřete okno nastavení. Přejděte do nabídky API TEST, vyberte (4) Flash Image Download, zadejte cestu k souboru „nodemcu_512k_latest.bin“, ponechte adresu 0x00000, klikněte na Stáhnout. Stahování firmwaru by mělo začít a po dokončení se zobrazí zpráva;
- Vypněte napájení desky, odpojte pin GPIO0 od společného vodiče a zapněte napájení. Spusťte terminál Putty, CoolTerm nebo jiné (POZOR! Změňte rychlost portu na 9600), zkontrolujte připravenost desky příkazem
> print(node.chipid())
10013490

První skript

Pokud máte problémy s prací se skripty, doporučuje se napájet 3,3V ne z USB/UART, ale ze samostatného zdroje. Napětí by mělo být přesně 3,3V, například přes stabilizovaný napájecí modul na AMS1117 3,3V 800mA.

K zápisu a načítání skriptů do ESP8266 bude použito malé a pohodlné IDE:

Náš první skript vypne a rozsvítí LED každé 2 sekundy:
- Vypněte napájení, připojte rezistor a LED k GPIO2. Zapněte napájení;
- Spusťte ESPlorer, vyberte požadovaný COM a rychlost portu 9600, klepněte na Otevřít;
- Vložte kód a klikněte na Uložit do ESP;

Pin = 4 --GPIO2 gpio.mode(pin, gpio.OUTPUT) pro i=1, 10, 1 do gpio.write(pin, gpio.LOW) tmr.delay(2000000) gpio.write(pin, gpio.HIGH ) tmr.delay(2000000) konec
- Chcete-li restartovat, klikněte na DoFile.

Připojení senzoru DHT11

Abychom předvedli pokročilejší práci s firmwarem NodeMCU, připojíme senzor DHT11 k ESP-01:
- DHT11 VCC na USB/UART VCC
- DHT11 GND na USB/UART GND
- Výstup DHT11 na USB/UART GPIO2

Kód od uživatele Pigs Fly z fóra ESP8266.com

Funguje pro DHT11 na ESP-07 (verze s 16piny) a ESP-01 -- Testován pouze firmware 20141219. -- Načasování získávání datového toku je kritické. Je zde --sotva dostačující rychlost na to, aby se to stalo. --Předběžné přidělení proměnných používaných ve smyčce. bitStream = () pro j = 1, 40, 1 do bitStream[j]=0 end bitlength=0 pin = 4 gpio.mode(pin, gpio.OUTPUT) gpio.write(pin, gpio.LOW) tmr.delay(20000) --Použijte trik Markuse Gritsche ke zrychlení čtení/zápisu na GPIO gpio_read=gpio.read gpio_write= gpio.write gpio.mode(pin, gpio.INPUT) --sběrnice nakonec vždy povolí, neobtěžujte se s časovým limitem, zatímco (gpio_read(pin)==0) ukončí c=0, zatímco (gpio_read(pin)= =1 a c<100) do c=c+1 end --bus will always let up eventually, don"t bother with timeout while (gpio_read(pin)==0) do end c=0 while (gpio_read(pin)==1 and c<100) do c=c+1 end --acquisition loop for j = 1, 40, 1 do while (gpio_read(pin)==1 and bitlength<10) do bitlength=bitlength+1 end bitStream[j]=bitlength bitlength=0 --bus will always let up eventually, don"t bother with timeout while (gpio_read(pin)==0) do end end --DHT data acquired, process. Humidity = 0 HumidityDec=0 Temperature = 0 TemperatureDec=0 Checksum = 0 ChecksumTest=0 for i = 1, 8, 1 do if (bitStream >2) pak vlhkost = vlhkost+2^(8-i) konec pro i = 1, 8, 1 proveďte if (bitStream > 2) pak HumidityDec = HumidityDec+2^(8-i) konec pro i = 1, 8, 1 udělej if (bitStream > 2) then Teplota = Teplota+2^(8-i) konec konec pro i = 1, 8, 1 udělej if (bitStream > 2) then Teplota = Teplota+2^(8-i ) end end for i = 1, 8, 1 do if (bitStream > 2) then Checksum = Checksum+2^(8-i) end end ChecksumTest=(Humidity+HumidityDec+Temperature+TemperatureDec) % 0xFF tisk ("Teplota: "..Temperature..."."..TemperatureDec) tisk ("Vlhkost: "..Vlhkost..."."..HumidityDec) tisk ("ChecksumReceived: "..Checksum) tisk ("Kontrolní součet: "..Kontrolní součetTest )


Omlouvám se za kvalitu videa, natočil jsem ho na mobil.

HTTP server

Příklad připojení k přístupovému bodu Wifi a odpovědi na požadavek přes HTTP.

Wifi.setmode(wifi.STATION) wifi.sta.config("SSID","heslo") print(wifi.sta.getip()) srv:listen(80,function(conn) conn:on("receive", function(conn,payload) print(payload) conn:send("

Dobrý den, uživateli.

") konec) konec)

Epilog

Čip ESP8266 je rozhodně průlomový, a to především v poměru cena/kvalita. Samozřejmě to stojí za zmínku existující problémy v originále a ne originální firmware, ale pracuje se a doufám, že v budoucnu budou podobné čipy zabudovány do každé konvice. Plánuji nákup +156 Přidat k oblíbeným Recenze se mi líbila +103 +196

Tak skvělé, že kromě firmwaru pro použití ESP8266 jako WiFi modul pod kontrolou externí mikrokontrolér, existuje spousta firmwaru pro použití jako mikrokontrolér s různými cílové účely, a to i v oblasti internetu věcí. V této sérii článků prozkoumáme možnosti ESP8266 s firmwarem NodeMCU a naučit se skriptovací jazyk LUA.

Co je ESP8266?

ESP8266 je mikrokontrolér s WiFi rozhraním. Lze jej použít jako WiFi modul i jako mikrokontrolér.

Klady ESP8266: WiFi rozhraní, 32bitové jádro s dostatečným výkonem, nízká cena.
Nevýhody: Ve srovnání s jinými 32bitovými mikrokontroléry jsou periferie nedostačující.

ESP8266 je ideální pro domácí projekty, internet věcí. ESP8266 se programuje přes sériový port UART, takže pro flashování jeho firmwaru není potřeba žádný speciální programátor. Zvláštností tohoto mikrokontroléru je, že dokáže spouštět program umístěný na externí Flash paměti. To umožňuje výrobci „zvýšit“ hlasitost Flash, což je také plus.

Na základě ESP8266 jsou k dispozici různé moduly:

ESP-01
ESP-02
ESP-03
ESP-04
ESP-05
ESP-06
ESP-07
ESP-08
ESP-09
ESP-10
ESP-11
ESP-12S
ESP-12E
ESP-12F

Existuje různé verze desky s již připájenými moduly ESP8266, stabilizátory napětí, mikroobvod pro zajištění chodu sériového portu UART přes USB a piny, tlačítka atd., zapojené do hřebenu. Chcete-li s takovými deskami pracovat, stačí je připojit k portu USB vašeho počítače. Žádný doplňkové vybavení není vyžadováno. Je to velmi pohodlné. Jednou z takových desek je NodeMCU. V příkladech použiji desku NodeMCU s modulem ESP-12F. Ale můžete snadno vzít modul, řekněme ESP-01, připojit k němu adaptér UART-USB a pracovat s ním stejným způsobem. ESP-01 bude mít méně paměti a méně pinů k použití, ale jinak funguje podobně.


Co je NodeMCU?

NodeMCU je otevřený bezplatný projekt založený na skriptovací jazyk Lua. Firmware je poměrně výkonný a umožňuje velmi rychle implementovat různé standardní projekty. Například dnes si jako úvod vyrobíme WiFi zásuvku ovládanou z mobilu a s Web rozhraním. Firmware dokáže spouštět skripty Lua jak ze sériového portu UART (podobně jako příkazy AT), tak z interního flash paměť(provádění skriptů). Skripty Lua jsou uloženy ve Flashi v interním systému souborů. Systém souborů je plochý a zjednodušený. Tito. žádné podadresáře. Přesto je to v pohodě. Nezapomeňte, že ESP8266 je pouze mikrokontrolér. Ze skriptů můžete také přistupovat k souborům, číst a ukládat různé informace. NodeMCU je modulární. Což na jednu stranu umožňuje zvýšit funkčnost a na druhou stranu sestavit firmware pouze z požadovaných modulů, bez plýtvání pamětí.

NodeMCU pracuje s protokoly výměny dat - HTTP, MQTT, JSON, CoAP.
Podporovány jsou různé senzory –
Akcelerometry ADXL345,
magnetometry HMC5883L,
gyroskopy L3G4200D,
senzory teploty a vlhkosti AM2320, DHT11, DHT21, DHT22, DHT33, DHT44
čidla teploty, vlhkosti, atmosférický tlak BME280,
teplotní senzory, atmosférický tlak BMP085,
mnoho displejů pracujících na sběrnicích I2C, SPI. S možností pracovat s různými fonty.
TFT displeje ILI9163, ILI9341, PCF8833, SEPS225, SSD1331, SSD1351, ST7735,
chytré LED a LED ovladače – WS2812, tm1829, WS2801, WS2812,
podporovaná rozhraní – 1-Wire, I2C, SPI, UART,

Můžete také použít šifrovací modul, plánovač úloh, hodiny reálného času, protokol synchronizace hodin přes internet SNTP, časovače, kanál ADC (jeden), přehrávat audio soubory, generovat PWM signál na výstupech (až 6), použijte zásuvky, existuje podpora pro FatFS, tedy můžete připojit SD karty a tak dále.

Co je jazyk Lua?

Lua je interpretovaný jazyk, který, stejně jako většina moderních interpretovaných jazyků, může ukládat kompilované verze skriptů. To vám umožní zvýšit rychlost práce. Lua je umístěna jako multiparadigma. Není to nic složitého, a pokud jste již programovali v jakémkoli jazyce, pak se Lua naučíte velmi rychle. Pokud s programováním teprve začínáte, pak vás Lua překvapí svou přístupností pro začátečníky.

Při práci s Lua na NodeMCU existují určité zvláštnosti. Je to dáno především omezenou kapacitou paměti mikrokontroléru ESP8266. Je potřeba se držet jednoduchá pravidla a zachovat styl práce s Luou. O těchto pravidlech vám řeknu trochu později. Pokud zachováte stejný styl jako při psaní programů v C, pak nepocítíte plnou sílu Lua a firmwaru NodeMCU. Když začnete psát v Lua, stane se to podmanivé a začnete realizovat stále větší úkoly. Ztratíte pocit, že pracujete s mikrokontrolérem a nevědomky se zatěžujete úkoly, které jsou nad možnosti mikrokontroléru. Je třeba mít na paměti, že ESP8266 omezené zdroje a neměl by být zatížen úkoly, které zvládnou mikropočítače nebo plnohodnotné počítače.

Dokumentace LUA v ruštině: http://www.lua.ru/doc/
Naučte se LUA za 15 minut: http://tylerneylon.com/a/learn-lua/

Kde stáhnout NodeMCU?

Samozřejmě si můžete stáhnout zdrojové kódy NodeMCU (https://github.com/nodemcu/nodemcu-firmware/releases/) a zkompilovat s potřebnými parametry. Ale to neuděláme. Existuje webová stránka https://nodemcu-build.com, na kterém si můžete sestavit NodeMCU s moduly, které potřebujete. Jednoduše označíte moduly, které potřebujete, uvedete svůj e-mail a kliknete na tlačítko “ níže Začněte stavět“. Nejprve je na zadaný e-mail zaslán dopis o zahájení montáže. A pak upozornění na dokončení a odkazy na stažení celé číslo A plovák verze. Pokud ve svém projektu nebudete používat výpočty s plovoucí desetinnou čárkou, stáhněte si „ celé číslo“. Nebuďte chamtiví a zařaďte moduly, které nehodláte používat. Nový firmware můžete kdykoli zkompilovat přidáním chybějícího modulu. Například jsem postavil NodeMCU s následujícími moduly:

Jak nahrát NodeMCU do ESP8266?

Nyní, když máme soubor firmwaru NodeMCU, musíme jej nahrát do ESP8266. Za prvé, když připojíte desku NodeMCU k počítači, virtuální Com přístav. Nejnovější verze systému Windows zpravidla nevyžadují instalaci ovladače. Ubuntu okamžitě rozpozná připojené zařízení.

Firmware NodeMCU pro Windows

git klon https://github.com/themadinventor/esptool.git

Flash s příkazem:

Sudo python esptool.py --port /dev/ttyUSB0 write_flash 0x00000 The_Path_To_The_NodeMCU_Firmware.bin

/Dev/ttyUSB0– port, na kterém visí ESP8266.
The_Path_To_The_NodeMCU_Firmware.bin– cesta k souboru firmwaru.

Mimochodem, esptool lze použít i pod Windows. esptool napsané v Pythonu, pro práci ve Windows je třeba nainstalovat Python.

esptool užitečné pro vyplnění binární soubory do souborového systému NodeMCU. Můžete nahrát libovolné soubory, včetně skriptů. Skripty můžete psát i v Poznámkovém bloku, ale dávám přednost ESPlorer.

ESPlorer, init.lua – psaní prvního skriptu

K psaní a nahrávání skriptů použijeme program ESPlorer. Jedná se o multiplatformní program napsaný v Jáva a také nevyžaduje instalaci. Funguje stejně na Windows i Ubuntu.

Rozbalte archiv.

Pod Windows spustíme soubor ESPlorer.bat

Sudo java-jar ESPlorer.jar

Zadejte port a rychlost 9600 :

A stiskněte " OTEVŘENO“. Uvidíme dál

ESPlorer má mizernou vlastnost. Ne vždy se jasně připojuje k NodeMCU. Pokud se pokusíte odeslat jakýkoli příkaz (pomocí Poslat) v konzoli létají odpadky místo normální odezvy. Někdy se po pár opakováních všechno zlepší. Pokud vám to vadí, zkuste změnit rychlost připojení na 115200.


Začněme vytvářet první skript v Lua. Skript s názvem init.lua spustí se automaticky po spuštění NodeMCU. Vytvoříme soubor init.lua.

Vytiskneme pouze jeden řádek:

Tisk ("Ano, funguje!")

Uložte soubor jako init.lua. Po uložení se soubor spustí a měli bychom vidět spuštěný první skript.

Ve výchozím nastavení se soubor uloží na disk počítače a nahraje do ESP8266.

Nyní o největším problému, který má NodeMCU. V případě některých kritických chyb (to se nestává příliš často, ale pokud se to stane, bude se to dlouho pamatovat) se NodeMCU může restartovat. A to nejhorší, co se může stát, je cyklický restart. To se stane, pokud dovolíte kritická chyba ve skriptu, který se spouští automaticky. NodeMCU se spustí, spustí „buggy“ skript, narazí na kritickou chybu a přejde do restartu. A tak dále do nekonečna.

Abych se ochránil při učení NodeMCU, používám techniku ​​popsanou níže. Ve spouštěcím skriptu init.lua spustíme časovač, který bude fungovat pouze jednou a poté určený čas(PROTI v tomto případě po 5 sekundách) provede proceduru spuštění dalšího skriptu (v tomto případě main.lua). Nic jiného ve scénáři není init.lua my ne. Všechny operace se provádějí ve skriptu main.lua. Pokud tedy uděláme chybu ve scénáři main.lua a NodeMCU přejde do cyklického restartu, po restartu budeme mít 5 sekund na odstranění nebo opravu „buggy“ skriptu.

text init.lua:

Tisk ("Čekání ...") tmr.register (0, 5000, tmr.ALARM_SINGLE, funkce (t) tmr.unregister (0); tisk ("Spouštění ..."); dofile ("main.lua") end) tmr.start (0)

Tento přístup navíc usnadňuje zahrnutí jakéhokoli potřebného skriptu při spuštění přímo do souboru init.lua místo main.lua zadejte název jiného skriptu. To je velmi výhodné, když testujete několik projektů nebo několik verzí skriptu na jedné desce.

Připojte se k Wifi nebo si vytvořte vlastní uzel Wifi

Chcete-li se připojit k WiFi, vytvořte main.lua a napište:

Nastavení WiFi wifi.setmode(wifi.STATION) local cfg=() cfg.ssid="MyWiFi" cfg.pwd="MyWiFiPassword" wifi.sta.config(cfg) cfg = nil collectgarbage()

Po úspěšném připojení modul obdrží IP adresu. Můžete to zjistit pomocí příkazu:

Wifi.sta.getip()

Pokud chceme, aby si ESP8266 vytvořil vlastní WiFi hotspot:

Nastavení WiFi AP wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPWIFI" cfg.pwd="1234567890" wifi.ap.config(cfg) cfg = nil collectgarbage()

Poznámka: WiFi hotspot nebude fungovat, pokud je heslo kratší než 8 znaků. Ve výchozím nastavení je IP adresa bodu vždy 192.168.4.1

Můžete to zjistit příkazem:

Wifi.ap.getip()

Co se stalo sbírat odpadky ()? Funkce sbírat odpadky je popelář. Mělo by být voláno na konci každého skriptu. Všimněte si prosím proměnné cfg prohlásil za místní. Bude k dispozici pouze v aktuálním skriptu. Li místní odstranit, pak proměnná cfg by bylo globální a dostupné v jiných skriptech.

GPIO. Blikající LED

Pro ovládání relé (koneckonců uděláme WiFi zásuvku) se budete muset naučit pracovat s piny GPIO. Zatím zkusme použít GPIO pin jako výstup a nastavte úroveň signálu na vysokou a nízkou. Pro názornost zapojme LED tak, jak je znázorněno na schématu.

My_pin_number = 1 -- Nastavit provozní režim jako výstup gpio.mode (my_pin_number, gpio.OUTPUT) -- Nastavit vysoká úroveň gpio.write (my_pin_number, gpio.HIGH) -- Nastavte nízkou úroveň gpio.write (my_pin_number, gpio.LOW) -- Zablikejte 10krát LED gpio.serout (1, gpio.HIGH, (+990000,990000), 10, 1)

Číslování pinů:

IO indexpin ESP8266
0 GPIO16
1 GPIO5
2 GPIO4
3 GPIO0
4 GPIO2
5 GPIO14
6 GPIO12
7 GPIO13
8 GPIO15
9 GPIO3
10 GPIO1
11 GPIO9
12 GPIO10

D0(GPIO16) lze použít pouze pro čtení/zápis gpio. Žádná podpora pro open-drain/interrupt/pwm/i2c/ow

deska NodeMCU

Poznámka: Existuje několik verzí desek Nodemcu. Pinout vaší desky se může lišit.

Websocket

Nyní vytvoříme server, který bude fungovat na zadaném portu (ať je to 333). Poté se pomocí terminálového programu připojíme k našemu serveru a zadáme jeho IP a port. A pak si vyměníme data.

Main.lua skript:

Nastavení WiFi AP wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --Create Server sv=net.createServer(net.TCP ) function receiver(sck, data) -- Tisk přijatých dat print(data) -- Odeslat odpověď sck:send("Recived: "..data) end if sv then sv:listen(333, function(conn) conn:on ("příjem", příjemce) conn:send("Ahoj!") end) end print("Zahájeno.")

Nyní náš skript zvýší bod Wi-Fi, vytvoří server, který čeká na připojení na portu 333. V okamžiku připojení server odešle klientovi řetězec „ Ahoj!“ a po obdržení dat od klienta vrátí řetězec “ Přijato:“ a pak vše, co přijal.

Nyní můžeme připojit náš mobilní telefon Wi-Fi bod ESP8266. V zásadě není nutné vytvářet bod. Můžete přepsat skript a přimět ESP8266, aby se připojil k vašemu WiFi sítě. Pak je potřeba zjistit jeho IP a následně ho použít místo 192.168.4.1, které je dále použito v příkladech.

Stále však potřebujeme terminálový program pro připojení k IP adrese ESP8266 (192.168.4.1) a zadanému portu (333). PuTTY můžete nainstalovat na běžný počítač. Pro mobilní telefony s Androidem, které používám JuiceSSH.

Přenos dat z mobilního telefonu pomocí JuiceSSH

Nainstalujte a spusťte RoboRemoFree

Vytvořte připojení k serveru. Je vhodné, aby byl mobilní telefon/tablet připojen stejná WiFi sítě, kde je server umístěn. V tomto případě naše ESP8266. Přejděte do „Menu“, vyberte „Připojit“

Vyberte typ připojení „Internet (TCP)“

Zadejte IP a port

Výběr rozhraní. Program umožňuje vytvořit několik rozhraní s různými ovládacími prvky.

Poté přejděte do režimu úprav rozhraní

Klikněte na volné místo a vyberte, co chceme nainstalovat. Použijeme tlačítka. Vyberte „tlačítko“

Poté bude na rozhraní nainstalováno tlačítko. Dá se přesouvat a měnit jeho velikost.

Chcete-li změnit název tlačítka, musíte na něj kliknout a vybrat „Nastavit text“

Poté uvedeme ještě jeden parametr – „nastavit akci stisknutí“. Nastavíme to na "1". Po kliknutí na tlačítko bude odesláno zadaný řetězec pomocí spojení, které jsme vytvořili. Tito. Naše ESP8266 obdrží znak „1“ a rozsvítí LED.

Stejným způsobem vytvoříme tlačítko „Off“ a nastavíme akci stisku „0“.

Naše rozhraní je připraveno. Ukončete režim úprav spuštěním položky nabídky „neupravovat uživatelské rozhraní“.

Pokud bylo připojení k serveru (ESP8266) úspěšné, můžete jej použít. Stisknutím tlačítka „On“ by se měla LED rozsvítit a stisknutím tlačítka „Off“ by měla LED zhasnout.

webové rozhraní

Existuje další způsob - můžete to udělat webové rozhraní a také ovládat LED pomocí prohlížeče.

Stejný skript + webové rozhraní:

Nastavení WiFi AP wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --Nastavit režim PIN my_pin_number = 1 gpio.mode(my_pin_number , gpio.OUTPUT) --Create Server sv=net.createServer(net.TCP) function receiver(sck, data) if string.sub (data, 0, 1) == "1" then gpio.write(my_pin_number, gpio .HIGH) else if string.sub (data, 0, 1) == "0" then gpio.write(my_pin_number, gpio.LOW) end end print(data) end if sv then sv:listen(333, function(conn) ) conn:on("receive",) conn:send("Ahoj!") end) end --Vytvoření HTTP serveru http=net.createServer(net.TCP) funkce příjem_http(sck, data) místní požadavek = shoda (data,"([^\r,\n]*)[\r,\n]",1) if request == "GET /on HTTP/1.1" then gpio.write(my_pin_number, gpio.HIGH) end if request == "GET /off HTTP/1.1" then gpio.write(my_pin_number, gpio.LOW) end sck:on("sent", function(sck) sck:close() end) local response = "HTTP/ 1.0 200 OK\r\nServer: NodeMCU na ESP8266\r\nTyp obsahu: text/html\r\n\r\n".." NodeMCU na ESP8266".. "

NodeMCU na ESP8266

".. "
".. "Na Vypnuto".. "" sck:send(response) end if http then http:listen(80, function(conn) conn:on("receive", receiver_http) end) end print("Started.")

Krátké vysvětlení toho, jak funguje webový server obecně a náš skript zvláště. Standardní port pro webový server – 80. Tj. když zadáte do prohlížeče http://192.168.4.1/, pak se prohlížeč připojí k serveru (192.168.4.1) na portu 80 a odešle požadavek. Žádost vypadá asi takto:

GET / HTTP / 1.1 Host: 192.168.4.1 User-Agent: Mozilla / 5.0 (Windows NT 5.1; rv: 2.0.1) Gecko / 20100101 Firefox Přijmout: text / html, aplikace / xhtml + xml, aplikace / xml; q = 0,9, * / *; q = 0,8 Přijímací jazyk: ru-RU, ru; q = 0,8, en-US; q = 0,5, en; q = 0,3 Accept-Encoding: gzip, deflate Připojení: keep-alive Upgrade-Insecure-Requests: 1

Zajímá nás první řádek dotazu: “ GET / HTTP/1.1“. Obsahuje URL. Pokud zadáte do prohlížeče http://192.168.4.1/ na , pak první řádek dotazu bude „ ZÍSKAT /na HTTP/1.1“. A pokud zadáte do prohlížeče http://192.168.4.1/ vypnuto pak to bude" ZÍSKAT / vypnuto HTTP/1.1“. Právě tento řádek skript analyzuje a v závislosti na přijaté URL rozsvítí nebo zhasne LED.

Dále skript odešle html stránku. Po odeslání je ale potřeba spojení ukončit. Protože odesílání nějakou dobu trvá a čekání na konec odesílání je technicky hloupé, událost „ odesláno” (odesláno) spojte funkci s řetězcem sck:close(). To se provádí v řádku: sck:on(“odesláno”, funkce(sck) sck:close() end). P poté se odeslání provede html stránky sck:odeslat(odpověď). S krypta nadále funguje. Až bude odpověď kompletně odeslána, bude fungovat sck:close().

Tímto způsobem nelze odesílat velké stránky. Větší obsah musí být zaslán v kusech. O tom bude podrobněji pojednáno v jiném článku.

Relé spojíme se zátěží

Pozor! Napětí vyšší než 40 voltů je nebezpečné pro lidský život! Buďte opatrní a opatrní při sestavování obvodu a připojování domácí spotřebiče. Nedotýkejte se částí pod napětím.

Nyní místo LED připojíme reléový modul a jako zátěž řekněme lampu, ohřívač, kompresor pro akvárium, ventilátor atd.

Při připojování relé mohou existovat určité nuance. Pokud je reléový blok opticky izolován (optočlenem), pak s největší pravděpodobností nebudete muset nic předělávat. Pokud je reléový blok bez optické izolace, jako je můj, budete muset znovu pracovat s GPIO, protože za prvé je relé zapnuto na nízké úrovni, ne vysoké, a za druhé, vysoká úroveň ESP8266 je 3,3 V , pro 5voltový reléový blok to nestačí, takže jsem musel nastavit výstup na OPENDRAIN, načež vše fungovalo jak má.

Finální verze skriptu vypadá takto:

Nastavení WiFi AP wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --Nastavit režim PIN my_pin_number = 1 --gpio.mode (my_pin_number, gpio.OUTPUT) gpio.mode(my_pin_number, gpio.OPENDRAIN) --Create Server sv=net.createServer(net.TCP) function receiver (sck, data) if string.sub (data, 0, 1) = = "1" pak --gpio.write(my_pin_number, gpio.HIGH) gpio.write(my_pin_number, gpio.LOW) else if string.sub (data, 0, 1) == "0" then --gpio.write (my_pin_number, gpio.LOW) gpio.write(my_pin_number, gpio.HIGH) end end print(data) end if sv then sv:listen(333, function(conn) conn:on("receive", receiver) conn:send ("Ahoj!") end) end --Create HTTP Server http=net.createServer(net.TCP) funkce příjem_http(sck, data) print(data) local request = string.match(data,"([^\r ,\n]*)[\r,\n]",1) if request == "GET /on HTTP/1.1" then --gpio.write(my_pin_number, gpio.HIGH) gpio.write(my_pin_number, gpio. NÍZKÁ) end if request == "GET /off HTTP/1.1" then --gpio.write(my_pin_number, gpio.LOW) gpio.write(my_pin_number, gpio.HIGH) end sck:on("sent", function(sck) ) sck:close() collectgarbage() end) local response = "HTTP/1.0 200 OK\r\nServer: NodeMCU na ESP8266\r\nTyp obsahu: text/html\r\n\r\n".." NodeMCU na ESP8266".. "

NodeMCU na ESP8266

".. "
".. "Na Vypnuto".. "

" sck:send(response) end if http then http:listen(80, function(conn) conn:on("receive", receiver_http) end) end print("Started.")

Nyní můžeme „zásuvku“ zapínat a vypínat z mobilního telefonu pomocí programu RoboRemoFree nebo pomocí prohlížeče. Samozřejmě jej můžete ovládat i z běžného počítače přes prohlížeč.



To vše je dobré, ale co dál? Pokud máme 5, 10, 20 podobná zařízení? Jak je kombinovat, abyste se nemuseli připojovat ke každému zařízení zvlášť. Na to existuje protokol MQTT, ale to bude samostatné téma. Mezitím prozkoumáme možnosti ESP8266 a NodeMCU.

Některá pravidla pro práci s jazykem Lua na NodeMCU

1. Nepište dlouhé scénáře. Velikost paměti ESP8266 není nekonečná. Rozdělte program do funkčních modulů a vytvořte je jako samostatné skripty a spouštějte je pomocí dofile(). Například kód připojení Wifi:

Nastavení WiFi wifi.setmode (wifi.STATION) local cfg = () cfg.ssid = "MyWiFi" cfg.pwd = "MyWiFiPassword" wifi.sta.config (cfg) cfg = nil collectgarbage ()

lze vložit do samostatného skriptu “ wifi.lua” a spusťte jej z hlavního skriptu pomocí příkazu dofile(“wifi.lua”).

2. Proměnné, které se používají pouze v aktuálním skriptu, deklarujte jako místní. Na konci skriptu, když již proměnná není potřeba, přiřaďte jí hodnotu nula a výslovně zavolat popeláře sbírat odpadky ()

Mnoho uživatelů již obrátilo svou pozornost na čip ESP8266-12, který vydala společnost Espressif. Jeho cena je výrazně levnější ve srovnání se standardní deskou adaptéru Bluetooth a i přes své menší rozměry má výrazně větší možnosti. Nyní mají všichni domácí nadšenci možnost pracovat na Wi-Fi síti ve dvou režimech najednou, tedy připojit svůj počítač k libovolným přístupovým bodům nebo jej jako takový zapnout.

Na druhou stranu je potřeba správně pochopit, že takové desky nejsou jen štíty určené pouze pro Wi-Fi komunikaci. Samotný ESP8266 je mikrokontrolér, který má vlastní rozhraní UART, GPIO a SPI, to znamená, že jej lze použít jako absolutní autonomní zařízení. Po vydání tohoto čipu to mnozí nazývali skutečnou revolucí a postupem času se taková zařízení začnou zabudovávat i do těch nejjednodušších typů zařízení, ale prozatím je zařízení relativně nové a neexistuje pro něj žádný stabilní firmware. Mnoho odborníků po celém světě se snaží vymyslet vlastní firmware, protože jejich nahrání na desku není ve skutečnosti obtížné, ale i přes různé potíže lze zařízení již nazvat docela vhodným pro práci.

Na momentálně jsou zvažovány pouze dvě možnosti aplikace tohoto modulu:

  • Použití desky v kombinaci s přídavný mikrokontrolér nebo počítač, který bude modul ovládat přes UART.
  • Nezávislé psaní firmwaru pro čip, což vám umožní jej později používat jako soběstačné zařízení.

Je zcela přirozené, že bychom to měli zvážit nezávislý firmware v tomto případě nebudeme.

Při pohledu na snadnost použití a dobré vlastnosti, mnoho lidí z mnoha mikrokontrolérů dává přednost modelu ESP8266. Připojení a aktualizace firmwaru tohoto zařízení je extrémně jednoduchý a cenově dostupný a vyrábí se na stejném hardwaru, na kterém je zařízení připojeno k počítači. Tedy i přes USB-TTL převodník nebo pokud někdo preferuje jiné možnosti připojení, tak přes RPi a Arduino.

Jak zkontrolovat?

Abyste mohli zkontrolovat funkčnost nově zakoupeného zařízení, budete muset použít speciální stabilizovaný zdroj napětí s jmenovitým napětím 3,3 V. Okamžitě stojí za zmínku, že skutečný rozsah napájecího napětí tohoto modulu je od 3 do 3,6 voltů a napájecí napětí vysokého napětí okamžitě povede k tomu, že svůj ESP8266 jednoduše deaktivujete. Firmware a další software může po takové situaci začít fungovat nesprávně a budete muset zařízení opravit nebo nějak opravit.

K určení funkčnosti tohoto modelu mikrokontroléru stačí připojit tři piny:

  • CH_PD a VCC jsou připojeny ke zdroji 3,3 V.
  • GND se připojí k zemi.

Pokud nepoužíváte ESP-01, ale nějaký jiný modul a ten již má zpočátku výstup GPIO15, pak jej v tomto případě budete muset dodatečně připojit k zemi.

Li tovární firmware začal normálně, pak v tomto případě můžete vidět a poté modré světlo několikrát zabliká. Je však třeba poznamenat, že ne všechna zařízení řady ESP8266 mají červený indikátor napájení. Firmware na některých zařízeních neumožňuje rozsvícení červeného indikátoru, pokud modul žádný nemá (to platí zejména pro model ESP-12).

Po připojení bude vaše bezdrátová síť aktivována. nový bod přístup, který se bude nazývat ESP_XXXX, a lze jej detekovat z jakéhokoli zařízení, které má přístup k Wi-Fi. V tomto případě název přístupového bodu přímo závisí na výrobci firmwaru, který používáte, a proto může být něco jiného.

Pokud se bod objeví, můžete pokračovat v experimentování, jinak budete muset znovu zkontrolovat napájení, stejně jako správnost připojení GND a CH_PD, a pokud je vše správně připojeno, pak se s největší pravděpodobností stále pokoušíte použijte poškozený modul nebo na Jednoduše má nainstalovaný firmware s nestandardním nastavením.

Jak to rychle připojit?

Standardní sada potřebná pro připojení tohoto modulu obsahuje následující:

  • samotný modul;
  • nepájené prkénko na krájení;
  • kompletní sada drátů samice-samec určená pro prkénko, popř speciální kabel DUPONT M-F;
  • USB-TTL převodník založený na PL2303, FTDI nebo nějakém podobném čipu. Nejlepší možností je, pokud jsou RTS a DTR také vyvedeny na USB-TTL adaptér, protože díky tomu můžete dosáhnout poměrně rychlého načtení firmwaru z některých UDK, Arduino IDE nebo Sming, aniž byste museli ručně přepínat GPIO0 na zem.

Pokud používáte 5voltový převodník, pak v tomto případě budete muset zakoupit další stabilizátor napájení založený na čipu 1117 nebo něčem podobném a také zdroj energie (pro standardní 1117 i obyčejný 5voltový nabíječka smartphonu je docela vhodná). Jako zdroj energie pro ESP8266 se doporučuje nepoužívat Arduino IDE nebo USB-TTL, ale použít samostatný, protože se tím v konečném důsledku může zbavit spousty problémů.

Rozšířená sada pro zajištění pohodlného a stálé zaměstnání s modulem vyžaduje použití přídavných rezistorů, LED a DIP přepínačů. Kromě toho můžete použít i levné USB monitor, který vám umožní neustále sledovat množství spotřebovaného proudu a také trochu ochrání USB sběrnici před

co mám dělat?

V první řadě stojí za zmínku fakt, že u ESP8266 se ovládání může mírně lišit podle toho, jaký konkrétní model používáte. Dnes je takových modulů k dispozici poměrně hodně a první věc, kterou budete potřebovat, je identifikovat model, který používáte, a rozhodnout se o jeho pinoutu. V tomto návodu budeme hovořit o práci s modulem ESP8266 ESP-01 V090 a pokud používáte nějaký jiný model s pinem GPIO15 (HSPICS, MTDO), budete jej muset přitáhnout k zemi jak pro standardní start modulu a použít režim firmwaru.

Poté ještě jednou zkontrolujte, zda je napájecí napětí pro připojený modul 3,3 V. Jak bylo uvedeno výše, přípustný rozsah je od 3 do 3,6 voltu a pokud se zvýší, zařízení selže, ale napájecí napětí může být dokonce výrazně nižší než 3 volty uvedené v dokumentech.

Pokud používáte 3,3V USB-TTL převodník, připojte modul přesně jako na levé straně níže uvedeného obrázku. Pokud používáte výhradně pětivoltové USB-TTL, pak věnujte pozornost pravá strana výkres. Mnohým se může zdát, že správný obvod je efektivnější díky tomu, že používá samostatný zdroj energie, ale ve skutečnosti je v případě použití 5voltového USB-TTL převodníku velmi žádoucí vyrobit také přídavný odporový dělič pro zajištění přizpůsobení třívoltových a pětivoltových logických úrovní, nebo jednoduše použijte modul pro převod úrovní.

Vlastnosti připojení

Pravý obrázek ukazuje připojení UTXD (TX), stejně jako URXD (RX) tohoto modulu k pětivoltové TTL logice a takové postupy jsou prováděny pouze na vlastní nebezpečí a riziko. U ESP8266 popis říká, že modul efektivně funguje pouze s 3,3voltovou logikou. V naprosté většině případů ani při práci s pětivoltovou logikou zařízení neselže, ale takové situace občas nastanou, proto podobné spojení se nedoporučuje.

Pokud nemáte možnost použít specializovaný 3,3voltový USB-TTL převodník, můžete použít odporový dělič. Za zmínku také stojí, že na pravém obrázku je stabilizátor výkonu 1117 zapojen bez dodatečné kabeláže a jedná se o skutečně fungující technologii, ale přesto je nejlepší použít schéma zapojení 1117 s kabeláží kondenzátoru - je třeba to zkontrolovat pomocí katalogový list ESP8266 pro váš stabilizátor nebo použijte kompletně připravený jeden modul založený na základně 1117.

Chcete-li modul spustit, musíte otevřít obvod GPIO0-TND, poté můžete připojit napájení. Stojí za zmínku, že vše je třeba udělat přesně v tomto pořadí, to znamená, že se nejprve ujistěte, že GPIO0 „visí ve vzduchu“, a teprve poté připojte napájení k CH_PD a VCC.

Jak se správně připojit?

Pokud si můžete ušetřit více než jeden večer na správné připojení modulu ESP8266, můžete použít stabilnější možnost. Na obrázku výše vidíte možnost připojení s automatickým stahováním firmwaru.

Stojí za zmínku, že výše uvedený obrázek neukazuje použití volných GPIO nebo ADC a jejich připojení bude přímo záviset na tom, co přesně chcete implementovat, ale pokud chcete zajistit stabilitu, nezapomeňte vytáhnout všechny GPIO k napájení a ADC k zemi pomocí pull-up rezistorů.

V případě potřeby lze 10k rezistory vyměnit za jakékoli jiné v rozsahu od 4,7k do 50k, s výjimkou GPIO15, protože jeho hodnota by neměla být větší než 10k. Hodnota kondenzátoru, který vyhlazuje vysokofrekvenční pulzace, se může mírně lišit.

Při použití odpovídajícího režimu může být nutné připojení RESET a GPIO16 pomocí rezistoru hlubokého spánku 470 Ohmů, protože modul pro ukončení režimu hlubokého spánku provede úplný restart, při podávání nízká úroveň na GPIO16. V nepřítomnosti tohoto spojení Režim hlubokého spánku pro váš modul bude trvat navždy.

Na první pohled se může zdát, že GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) a GPIO15 jsou vytížené, takže je pro své účely nevyužijete, ale ve skutečnosti tomu tak zdaleka není. Dostatečně vysoká úroveň na GPIO0 a GPIO2, stejně jako nízká úroveň na GPIO15, může být vyžadována pouze pro počáteční spuštění modulu a v budoucnu je můžete použít podle svého uvážení. Jediné, co stojí za zmínku, je nezapomeňte poskytnout požadované úrovně před provedením úplného restartu vašeho zařízení.

Můžete také použít TX, RX jako alternativu k GPIO1 a GPIO3, ale nezapomeňte, že po spuštění modulu každý firmware začne „tahat“ TX, přičemž současně odesílá ladicí informace do UART0 rychlostí 74480, ale po budou úspěšné, lze je použít nejen jako UART0 pro výměnu dat s jiným zařízením, ale také jako standardní GPIO.

Pro moduly, které nemají velký počet drátové piny (např. ESP-01), není potřeba zapojovat neukončené piny, to znamená, že na ESP-01 jsou zapojeny pouze GND, CH_PD, VCC, GPIO0, GPIO2 a RESET a právě ty budete potřeba utáhnout. Není potřeba pájet přímo na čip ESP8266EX a pak vytahovat holé piny, pokud to opravdu nepotřebujete.

Taková schémata zapojení byla použita po velkém počtu experimentů provedených kvalifikovanými odborníky a shromážděných od mnoha různé informace. Stojí za zmínku, že ani taková schémata nelze považovat za ideální, protože lze použít řadu dalších, neméně účinných možností.

Připojení přes Arduino

Pokud z nějakého důvodu nemáte 3,3 V USB-TTL převodník, pak lze WiFi modul ESP8266 připojit přes Arduino s vestavěným převodníkem. Zde budete muset nejprve obrátit svou pozornost na tři hlavní prvky:

  • Při použití s ​​ESP8266 je Arduino Reset zpočátku připojen k GND, aby se zabránilo spuštění mikrokontroléru, a v této podobě byl použit jako transparentní převodník USB-TTL.
  • RX a TX nebyly spojeny „na křižovatce“, ale přímo - RX-RX (zelená), TX-TX (žlutá).
  • Vše ostatní je zapojeno přesně tak, jak je popsáno výše.

Co je třeba zvážit

Tento obvod také vyžaduje přizpůsobení úrovní TTL 5 voltů na Arduinu, stejně jako 3,3 voltů na ESP8266, ale může fungovat docela dobře v obou směrech.

Po připojení k ESP8266 může být Arduino vybaveno regulátorem výkonu, který nezvládne proud požadovaný ESP8266, takže před jeho aktivací budete muset zkontrolovat datový list pro ten, který používáte. Nepokoušejte se k ESP8266 připojit žádné další komponenty spotřebovávající energii, protože to může způsobit, že regulátor výkonu zabudovaný v Arduinu jednoduše selže.

Existuje také další schéma připojení ESP8266 a Arduino, které používá SoftSerial. Protože pro knihovnu SoftSerial je také rychlost portu 115200 vysoká hodnota a nemůže zaručit stabilní práci, tento způsob připojení se nedoporučuje, i když existují případy, kdy vše funguje celkem stabilně.

Připojení přes RaspberryPi

Pokud nemáte vůbec žádné převodníky USB-TTL, můžete použít RaspberryPi. V tomto případě pro ESP8266 se programování a připojení provádí téměř identicky, ale vše zde není tak pohodlné a navíc budete muset použít také 3,3voltový stabilizátor napájení.

Nejprve připojíme RX, TX a GND našeho zařízení k ESP8266 a vezmeme GND a VCC z zařízení určeného pro 3,3 V. Zde je třeba věnovat zvláštní pozornost skutečnosti, že musíte připojit všechna zařízení GND, tedy stabilizátor RaspberryPi a ESP8266. Pokud stabilizátor zabudovaný do vašeho modelu zařízení vydrží až 300 miliampérů dodatečného zatížení, pak je v tomto případě připojení ESP8266 zcela normální, ale to vše pouze na vaše vlastní nebezpečí a riziko.

Nastavení parametrů

Jakmile zjistíte, jak připojit ESP8266, musíte se ujistit, že ovladače pro vaše zařízení jsou správně nainstalovány, v důsledku čehož byl do systému přidán nový virtuální sériový port. Zde budete muset použít program - terminál sériového portu. V zásadě si můžete vybrat libovolnou utilitu podle svého vkusu, ale musíte správně pochopit, že každý příkaz, který odešlete na sériový port, musí mít na konci znaky CR+LF.

Poměrně rozšířené jsou utility CoolTerm a ESPlorer, který vám umožní nezadávat ESP8266 sami a zároveň usnadňuje práci s lua skripty pod NodeMCU, takže jej lze použít jako standardní terminál.

Chcete-li se normálně připojit, budete muset udělat hodně práce, protože firmware pro ESP8266 je většinou různorodý a aktivaci lze provádět různými rychlostmi. Rozhodnout o tom nejvíce nejlepší možnost, budete muset projít třemi hlavními možnostmi: 9600, 57600 a 115200.

Jak třídit?

Chcete-li začít, připojte se k virtuálnímu sériovému portu v terminálovém programu, nastavte parametry na 9600 8N1, poté proveďte kompletní restart modulu, odpojení CH_PD (povolení čipu) od napájení a poté jej znovu aktivujte trhnutím CH_PD. Můžete také provést krátký RESET na kostru, abyste resetovali modul a sledovali data v terminálu.

Za prvé, LED diody zařízení by měly vypadat přesně tak, jak je ukázáno v testovacím postupu. Měli byste také pozorovat sadu různých znaků v terminálu, která skončí s připravenou linkou, a pokud tam není, provede se opětovné připojení k terminálu jinou rychlostí a následný restart modulu.

Když uvidíte jednu z možností rychlosti tento řádek, lze modul považovat za připravený k provozu.

Jak aktualizovat firmware?

Po instalaci ESP8266 bude připojení zařízení trvat jen několik sekund a poté můžete začít s aktualizací firmwaru. Chcete-li nainstalovat nový software, musíte provést následující.

Chcete-li začít, stáhněte si nová verze firmware z oficiálních stránek a také stáhnout speciální utilita pro firmware. Zde je třeba věnovat zvláštní pozornost čemu operační systém nainstalován na stroji, se kterým ESP8266 pracuje. Nejlepší je připojit zařízení k systémům starším než Windows 7.

Pro standardní operační systémy Windows by bylo optimální použít program s názvem XTCOM UTIL, který se hodí zejména v případě, že se firmware skládá pouze z jednoho souboru. Nejlepší multiplatformní možností je utilita esptool, která však vyžaduje python a také nutnost specifikovat parametry přes příkazový řádek. V ESP8266 navíc připojení základních funkcí umožňuje pohodlně Flash program Download Tool, který má poměrně velké množství nastavení a také pohodlnou technologii pro instalaci firmwaru z několika souborů.

Dále odpojte váš terminálový program od sériového portu a také zcela odpojte CH_PD od napájení, připojte GPIO0 modulu ke GND a poté lze CH_PD vrátit zpět. Nakonec stačí spustit modulární program firmwaru a nahrát jej do relé ESP8266.

Firmware se v drtivé většině případů nahrává do modulu rychlostí kolem 115200, ale zároveň speciální režim poskytuje automatickou distribuci rychlosti, v důsledku čehož může být firmware prováděn rychlostí vyšší než 9600, aktualizace dostupné funkce ESP8266. Pro připojení bylo použito Arduino nebo USB-TTL - zde nehraje zvláštní roli a zde již maximální rychlost závisí na délce vodičů, použitém převodníku a řadě dalších faktorů.




Nahoru