Firmware 1m pro esp 01. Mikrokontrolér ESP8266: připojení a konfigurace. USB-to-TTL převodník pomocí DTR konektoru

V procesu studia a navrhování stále složitějších projektů přichází čas, kdy vzniká potřeba a touha naučit se pracovat s tak běžným typem komunikace, jako je WiFi. Tento typ komunikace vám totiž umožní pohodlně vytvořit jedinou síť pro vaše zařízení chytré domácnosti a spravovat je například pomocí mobilní telefon, tablet nebo počítač, tedy jinými slovy, vytvořit skutečný chytrý dům, což vás vyjde desítkykrát levněji než nákup hotových řešení v obchodě. Použití WiFi se samozřejmě neomezuje pouze na toto a příkladů použití tohoto typu komunikace je tolik, že nemá smysl je vypisovat, a pokud jste se dostali na tuto stránku, znamená to, že již potřebujete WiFi z nějakého důvodu používat, jen je potřeba přijít na to, jak s ní správně pracovat .

Seřadíme to na základě nejlevnějšího a nejoblíbenějšího WiFi modul ESP8266-01. WiFi modul ESP8266-01 můžete zakoupit na našem webu.

Jednou z hlavních výhod takového modulu je přítomnost paměti a vlastního mikrokontroléru na desce, což umožňuje samostatnou práci načtením skici přímo do modulu samotného.

Modifikací WiFi modulu ESP8266 je skutečně poměrně hodně a nebudeme je zde vypisovat, jakmile se s jednou naučíte pracovat, můžete snadno začít pracovat s dalšími. Okamžitě bych rád poznamenal, že práce s WiFi se může zdát jako poměrně obtížný úkol, a pokud máte v zavazadle málo dokončených projektů, je lepší se prozatím vzdát WiFi komunikace a využít ve svých projektech rádiovou komunikaci, se kterou je mnohem snazší pochopit. Pro práci s WiFi moduly jsou vytvořeny celé komunity a tematická fóra, což opět dokazuje, jak je pro většinu lidí těžké okamžitě porozumět tomuto typu komunikace a po opětovném přečtení všech informací to většina lidí prostě vzdá. S největší pravděpodobností to všechno nezvládnu důležitá informace zapadat jen do rámce tohoto článku a nemá to smysl, jinak z toho bude další zmatek. Pokusím se jít cestou přísného sledu nejdůležitějších bodů, abyste mohli začít chápat princip fungování tohoto typu komunikace a pak jednoduše rozvíjet své vlastní dovednosti v tomto směru.

Začněme a nejprve se podívejme na piny WiFi modulu ESP8266-01.

VCC- napájení modulu od 3V do 3,6V

GND- Země.

RST- Resetujte výstup zodpovědný za restartování modulu.

CH_PD- "vypnutí čipu", když je k němu přivedeno napájení, je aktivován provoz modulu.

TX- přenos dat (rozhraní UART)

RX- příjem dat (rozhraní UART)

GPIO0

GPIO2- I/O port pro všeobecné použití

Piny GPIO0 a GPIO2 jsou přesně tytéž digitální piny, se kterými pracujeme na deskách Arduino pro propojení s různé senzory, a používají se v případě nezávislého provozu na interním WiFi mikrokontroléru modulu ESP8266-01.

Pro spolehlivé napájení modulu ESP8266-01 použijte externí stabilizovaný zdroj 3,3V a raději se nepokoušejte odebírat energii z vaší desky Arduino, protože modul spotřebovává proud až 215mA a to může skončit špatně pro váš vývojová deska. Kde sehnat stabilizovaný 3,3V zdroj, doufám, pro vás není problém, jinak je zjevně příliš brzy na to, abyste se tímto modulem zabývali. Například rád používám tento 3,3V a 5,0V napájecí modul YWRobot k rychlému sestavení obvodů na prkéncích, což vám umožní rychle získat stabilizované napětí 3,3V nebo 5V na odpovídajících napájecích cestách prkénka.

Připojení plusu (+) z našeho 3,3V napájení na pin VCC modul ESP8266-01 a mínus (-) přiveďte napájení na výstup GND. V tomto stavu se na modulu rozsvítí červená LED, která nám signalizuje, že napájení je správně připojeno. Aby se modul aktivoval, je nutné připojit i plus (+) napájecí zdroj s výstupem CH_PD modul ESP8266-01 a je vhodné to provést přímo přes odpor 10 kOhm. Nyní, když zapneme napájení, červená LED na modulu by se měla rozsvítit a modrá LED by měla párkrát rychle zablikat. Pokud se vám to stane, pak je vše v pořádku, vše jste správně zapojili a váš modul funguje. V opačném případě znovu zkontrolujte připojení nebo vyměňte modul, protože s největší pravděpodobností nefunguje.

Pokračuj. Pro práci s WiFi modulem ESP8266 potřebujeme adaptér USB-UART. Existují různé adaptéry, například: FT232RL, CP2102, PL2303. Budeme ale předpokládat, že takové adaptéry nemáte a jako adaptér USB-UART použijeme desku Arduino. Použiji k tomu Arduino NANO desku, ale můžete použít jakoukoli jinou, kterou máte k dispozici. Zapojení na jakékoli desce je stejné. Zapojení provedeme podle následujícího schématu.

Podívejme se, co jsme zde udělali. Okamžitě si všimněte, že jsme propojili piny na desce Arduino pomocí propojky RST A GND. Tato manipulace deaktivuje mikrokontrolér a umožňuje nám vytvořit skutečný adaptér USB-UART z naší desky Arduino.

Vzhledem k tomu, že WiFi modul ESP8266-01 napájíme ze samostatného externího zdroje, nezapomeňte, že v našich projektech musíme vždy připojit zem všech zdrojů. Proto připojíme výstup GND Desky Arduino se zemí (-) náš externí 3,3V napájecí zdroj určený pro napájení modulu ESP8266-01.

Závěr TX připojte desku Arduino ke kolíku TX Modul ESP8266-01. Tato linka bude přenášet data z WiFi modulu na desku Arduino. Každý, kdo zná rozhraní UART, se může divit: "Ale jak je to možné? Všude učili, že TX se musí připojit k RX. TX vysílá informace a RX přijímá." A budete mít pravdu. Je to tak, TX je vždy připojeno k RX, ale v případě, že vyrábíme UART adaptér z Arduina, musíme zařízení připojit přímo. Považujte to za výjimku z pravidla.

Čára RX Vaši desku Arduino také připojíme přímo k lince RX Modul ESP8266-01. Tato linka bude přenášet informace z desky Arduino do WiFi karta modul. Toto spojení však provádíme přes takzvaný dělič napětí, který se skládá ze dvou rezistorů s nominálními hodnotami 1 kOhm a 2 kOhm. Napětí na této lince potřebujeme snížit pomocí dvou rezistorů (dělič napětí), jelikož deska Arduino přenáší logický signál o napětí 5V a WiFi modul pracuje s napětím 3,3V. Pro převod logického signálu bychom mohli použít speciální desku převodníku logické úrovně, což by bylo samozřejmě správnější, ale opět předpokládejme, že žádný nemáte a museli jsme jít jednodušší cestou a udělat to pomocí dělič napětí.

Nyní jsme zapojili vše potřebné pro další práci, ale stále máme další 3 nevyužité piny ( GPIO0, GPIO2 A RST) na WiFi modul ESP8266-01. Pro stabilní WiFi funguje potřebujeme tyto zbývající nepoužité svorky přetáhnout do kladné polohy (+) napájecí vedení modulu přes odpory 10 kOhm.

To nás ušetří různých interferencí (rušení) a zajistí stabilní provoz modulu. Je lepší to udělat hned. Jinak se nedivte, že je váš modul neustále přetížený, produkuje nesrozumitelné informace nebo nechce vůbec fungovat. Používání pull-up rezistorů na nepoužitých pinech mikrokontroléru by mělo být pravidlem, pokud chcete stabilní provoz ve svých projektech.

A opět zkontrolujeme funkčnost WiFi modulu ESP8266-01. Zapněte napájení a uvidíte, že se červená LED dioda rozsvítí a modrá LED několikrát zabliká. Pokud vše dopadne takhle, tak super, jedeme dál. V opačném případě kontrolujeme správnost spojů a také kvalitu všech kontaktů. Může to být jen triviální situace, kdy jste vše desetkrát dvakrát zkontrolovali a ujistili se, že je vše správně zapojeno, ale po zapnutí modulu vidíte, že modrá LED se nechová adekvátně, neustále svítí, neustále bliká, nebo nereaguje vůbec na nic. To může být způsobeno špatným kontaktem na některé lince. Například při sestavování obvodu na prkénku jeden z rezistorů nesedí pevně na svém místě a to způsobuje rušení. Zkontrolujte kvalitu připojení. Modul je velmi citlivý. Nezanedbávejte to. To je častý důvod nestabilního provozu.

Obecně jsme s připojením hotovi. Nyní musíme připravit program Arduino IDE pro práci s WiFi modulem ESP8266-01. K tomu je potřeba stáhnout a nainstalovat do Arduino IDE potřebný archiv s knihovnami, příklady a ESP deskami, které nám následně umožní nahrávat skici přímo do mikrokontroléru modulu ESP8266-01, měnit firmware atp. Pro účely tohoto článku tato nastavení s největší pravděpodobností potřebovat nebudeme, ale zdá se mi, že poté, co jsme přišli na to, jak modul připojit, bude postup správný, pokud si okamžitě stáhneme vše potřebné pro práci s Arduino IDE . Vše je zde v principu jednoduché.

Spusťte program Arduino IDE a přejděte do nabídky "Soubor" - "Nastavení"

V okně, které se objeví, do horního pole napíšeme „esp8266“. Ve výsledku tak budeme mít v okně pouze požadovaný firmware. Po kliknutí na firmware se zobrazí tlačítko "Instalace". Klikněte na tlačítko "Instalace" a počkejte, až se vše nainstaluje. Archiv je poměrně velký, asi 150 megabajtů, takže si budete muset počkat.

Po dokončení instalace. Restartujeme Arduino IDE a uvidíme, jak se nové desky ESP objevily v nabídce „Nástroje“ - „Desky“. To je vše. S Nastavení Arduina S IDE jsme skončili. Tato nastavení zatím nepotřebujeme, ale v budoucí práci se bez nich neobejdeme.

Vše máme propojené a připravené, nyní můžeme začít rozumět ovládání. Ve skutečnosti nyní budeme pokračovat v kontrole a konfiguraci modulu pomocí AT příkazů a bez toho se neobejdeme. WiFi moduly jsou implementovány tak, že veškerá komunikace s nimi probíhá pomocí tzv. AT příkazů, které jsou napevno propojeny s firmwarem modulu. Nebudeme zde vypisovat všechny AT příkazy, je jich poměrně hodně a pokud si chcete vše pečlivě prostudovat, snadno je najdete na internetu. A nyní použijeme pro začátek jen to nejnutnější.

A tak připojíme naši desku Arduino přes USB kabel do počítače. A vnější zdroj jídlo, které vyživuje WiFi modul ESP8266-01 Zatím není třeba zapínat. Pojďme spustit Program Arduino IDE, vyberte naši desku Arduino z nabídky „Nástroje“, v mém případě je to Arduino NANO, a vyberte si tu svou. Nezapomeňte také vybrat port, ke kterému je naše Arduino připojeno. Doufám, že tomu všemu rozumíte a víte, jak na to.

Sledování otevřeného portu "Nástroje" - "Monitor portů". Výběr rychlosti portu 74880 (při této rychlosti se modul spustí) a v seznamu vlevo vyberte „NL & CR“.

Nyní připojíme externí zdroj napájení, který napájí náš WiFi modul. Poté byste na monitoru portu měli vidět přibližně následující informace.

Zde vidíme některé informace o našem WiFi modulu (rychlost, velikost paměti na desce atd.). Přijaté informace se mohou lišit v závislosti na verzi WiFi firmware modul. Nezaměřujme se na to. Důležité je něco jiného. Níže vidíme sadu nesmyslných znaků, to znamená, že rychlost portu (74880 baud), kterou jsme nastavili, je vhodná pouze pro bootstrap modul, abyste tyto informace normálně viděli, ale tato rychlost není vhodná pro běžnou komunikaci s WiFi modulem.

Pro výběr správné rychlosti portu jednoduše změníme rychlost portu a odešleme na port symboly (pole nahoře a tlačítko Odeslat) NA dokud nedostaneme odpověď OK. Pokud se pokusíte odeslat znaky právě teď NA do portu rychlostí 74880, dostanete jako odpověď další jeden nebo dva nesmyslné znaky.

Zkuste okamžitě nastavit rychlost na 115200 baudů a odeslat AT příkaz. Nejčastěji jsou moduly flashovány touto rychlostí.

Toto je obrázek, který byste měli vidět na monitoru vašeho portu. Pokud v odpovědi stále dostáváte nesrozumitelnou sadu znaků, snižte rychlost a odešlete znovu NA příkazy, dokud se odpověď nevrátí OK. Pokud jste vyzkoušeli všechny rychlosti a nedostali jste správnou odpověď, tak máte smůlu a modul je flashován firmwarem nestandardní rychlostí. Pak už zbývá jen přeflashovat modul normálním firmwarem, ale to je téma na samostatný článek.

Doufám, že je vše v pořádku a zvolili jste správnou rychlost. Mimochodem, pokud se pokusíte vypnout a znovu zapnout WiFi modul poté, co jste zvolili správnou rychlost, pak namísto stejné počáteční informace, která byla správně zobrazena při rychlosti 74880 baudů, budete naopak uvidíte neuspořádanou sadu znaků, ale na konci uvidíte slovo „připraven“ “. Máme však možnost zobrazit tyto počáteční informace v normální podobě správnou rychlostí; k tomu musíme programově restartovat modul pomocí příkazu AT AT+RST.

Chcete-li zjistit verzi firmwaru vašeho WiFi modulu ESP8266-01, musíte odeslat příkaz do monitoru portů AT+GMR a jako odpověď obdržíte přibližně následující informace:

WiFi modul ESP8266-01 může pracovat v režimu přístupového bodu i klienta. Chcete-li modulu umožnit pracovat ve všech režimech najednou, odešlete příkaz do monitoru portu AT+CWMODE=3 a jako odpověď byste měli obdržet OK.

tým AT+CWLAP vám umožní vidět všechny přístupové body WiFi, které vidíte tento moment váš modul. Můj modul například aktuálně vidí v oblasti pokrytí pouze tři přístupové body WiFi. Odpověď by měla znít nějak takto:

Například známe heslo pro třetí přístupový bod a pro připojení k němu provedeme příkaz AT+CWJAP="jméno","heslo", v mém případě tento příkaz vypadá AT+CWJAP="dsl_unlim_512_home","11111111", na který dostáváme úspěšnou odpověď:

Parametry příkazu se zapisují do flash paměti WiFi modulu ESP8266-01 a pokud modul vypneme a znovu zapneme, automaticky se připojí k tomuto přístupovému bodu. Podívejte se, náhodou nepovolte mezeru v příkazu, jinak dostanete odpověď CHYBA. Upozorňujeme, že v nejnovějších verzích firmwaru se doporučuje použít příkaz AT+CWJAP_CUR, to znamená, že příkaz bude vypadat AT+CWJAP_CUR="jméno","heslo". Pokud náhle zapomeneme, ke kterému přístupovému bodu je náš modul připojen, musíme odeslat příkaz AT+CWJAP? nebo AT+CWJAP_CUR? a jako odpověď obdržíme přístupový bod, ke kterému je WiFi modul aktuálně připojen.

S připojením a počáteční nastavení WiFi modul ESP8266-01 přišli jsme na to. Modul funguje a je připraven pro realizaci vašich budoucích projektů. Rozebrat všechny možné příklady práce s tímto modulem v rámci jednoho článku prostě není možné a budeme se tomu věnovat v následujících článcích. A pro ty, kteří se v programování moc nevyznají, ale chtějí opravdu rychle začít spravovat své projekty pomocí WiFi, doporučuji seznámit s projektantem projektu RemoteXY WiFi. Tato stránka vám pomůže snadno vytvořit ovládací rozhraní pro váš mobilní telefon nebo tablet a pomocí něj ovládat vaše zařízení, ke kterému připojíte WiFi modul.

Moule esp-01
Systém správné připojení esp-01 modul pro programování a firmware.

Modul se aktivuje přepnutím do programovacího režimu, k tomu podržte tlačítko FLASH, poté bez jeho uvolnění krátce stiskněte tlačítko RESET a uvolněte FLASH.
Modul se přepne do programovacího režimu.
V terminálu v tuto chvíli můžete vidět

ets 8. ledna 2013, první příčina: 2, režim spouštění: (1.6)
boot mode:(1,6) - restart přes RESET do programovacího režimu
boot mode:(1,7) - restart napájení do programovacího režimu - což není úplně správné.

Pro firmware použiji program PROGRAMÁTOR FIRMWARE NODEMCU
(k tématu bude přiložen archiv s programem)
Rozbalte archiv a spusťte v mém případě 32bitovou verzi programu\Win32\Release\ESP8266Flasher.exe
Nakonfigurujeme to pro modul, v mém případě je to 1 MB flash paměti nebo 8 megabitů.




Prvním krokem je vymazání paměti pomocí prázdného 1 MB souboru.
Toto je volitelná položka. Mazání můžete přeskočit a přejít na firmware.
Kdo má více či méně paměti, potřebuje prázdný soubor odpovídající velikosti.
Dále určíme, jaký firmware je potřeba!
Lze použít jako připravený firmware na NODEMCU a od projektanta sestavit s moduly, které potřebujete.
Například jeden ze starých osvědčených NODEMCU

Konstruktor wifi-iot.com/
Konstruktor nodemcu-build.com/
nebo si stáhněte nejnovější

Problémy s firmwarem
Li Modul esp8266 nebliká, zkontrolujte pull-upy a správné připojení ke GND GPIO0. A také, zda jsou RX TX pomíchané.
V terminálu můžete zkontrolovat, zda je zobrazen boot mode:(1,6) nebo boot mode:(1,7).

Li po neúspěšný firmware modul nefunguje, zkuste vymazat paměť prázdným souborem formuláře o velikosti vaší paměti.

Li Modul po úspěšném firmwaru nefunguje a posílá na port nekonečné smetí (kontrolka přenosu dat může blikat), to se stává při flashování nejnovějších sestavení Nodemcu, pak budete muset dodatečně flashovat soubor do oblasti paměti, v závislosti na paměťový čip.
Informace o paměti byly převzaty z webu nodemcu.
0x7c000 pro 512 kB, moduly jako ESP-01,03,07
0xfc000 pro 1 MB, moduly jako ESP8285, PSF-A85, ale také některé druhy esp-01,01s
0x1fc000 pro 2 MB
0x3fc000 pro 4 MB, typ modulu ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini atd.

Pokud vše selže, napište...

Přidám oficiální skupinu výrobce zařízení

Wi-Fi modul ESP-01 je nejoblíbenější modul řady ESP8266. Komunikace s počítačem nebo mikrokontrolérem probíhá přes UART pomocí sady AT příkazů. Modul lze navíc používat jako samostatné zařízení, k tomu je potřeba do něj nahrát vlastní firmware. Firmware můžete naprogramovat a stáhnout prostřednictvím verze Arduino IDE nad 1.6.5. K flashování firmwaru modulu budete potřebovat adaptér UART-USB. Modul ESP-01 může být široce používán v zařízeních IoT (Internet of Things).

Specifikacemodul

  • Wi-Fi 802.11 b/g/n
  • Režimy WiFi: klient, přístupový bod
  • výstupní výkon- 19,5 dB
  • Napájecí napětí - 1,8 -3,6 V
  • Spotřeba proudu - 220 mA
  • GPIO porty: 4
  • Frekvence hodin procesor - 80 MHz
  • Kapacita paměti kódu
  • RAM- 96 kB
  • Rozměry - 13×21 mm

Spojení

Uvažujme režim příkazu AT. Chcete-li to provést, připojte modul k počítači pomocí adaptéru USB-UART. Účel pinů modulu (viz obrázek 1):
  • VCC - +3,3 V
  • GND - zem
  • RX, TX - UART piny
  • Výstup CH_PD - Povolení čipu
  • GPIO0, GPIO2 - digitální kontakty
Modul vyžaduje externí napájení 3,3 V.

Obrázek 1. Přiřazení pinů modulu ESP-01

Schéma zapojení pro komunikaci s modulem v příkazovém režimu AT (obrázek 2):

Obrázek 2. Schéma připojení modulu ESP-01 k počítači přes sériový port

Obrázek 3. Montážní obvod

Pro odesílání AT příkazů v Mac OS X můžete použít program CoolTerm, in operační systém program pro Windows Termit. Rychlost COM portu pro připojení k modulu zjistíte pouze experimentálně, u různého firmwaru se může lišit. Pro můj modul se rychlost ukázala být 9600 baudů. Úměnu bylo navíc možné navázat až po odpojení a opětovném připojení pinu CH_PD k napájení. Po připojení zadejte do terminálu AT a modul by měl obdržet odpověď OK. Příkaz AT+GMR udává číslo verze firmwaru modulu, příkaz AT+RST restartuje modul (viz obr. 4). Seznam základních AT příkazů lze nalézt v tomto dokumentu (ESP8266ATCommandsSet.pdf).

Obrázek 4. Odesílání AT příkazů do modulu z Termite

Pokud vám režim příkazu AT nevyhovuje, lze desku nakonfigurovat pomocí programu AppStack ESP8266 Config, který lze stáhnout z odkazu http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip. Vzhled Program je znázorněn na obrázku 5. Modul se konfiguruje pomocí GUI, přičemž provádění příkazů je vidět na monitoru programu (viz obr. 6). Monitor může také odesílat AT příkazy z příkazového řádku.

Obrázek 5. Program AppStack ESP8266 Config

Obrázek 6. Sériový monitor programu AppStack ESP8266 Config

Existují dvě možnosti použití tohoto modulu:

  • ve spojení s mikrokontrolérem (například Arduino), který bude modul ovládat přes UART;
  • psaní vlastního firmwaru pro použití ESP8266 jako samostatného zařízení.

Příklad použití

Podívejme se na příklad připojení čidla vlhkosti a teploty DHT11 k modulu ESP-01 a odeslání dat na cloudová služba ThingSpeak (https://thingspeak.com/). Budeme potřebovat následující díly:
  • modul ESP-01
  • prkénko na chleba
  • čidlo vlhkosti a teploty DHT11
  • odpor 10 kOhm
  • propojovací dráty
  • napájení 3 - 3,6V
Nejprve připojíme snímač DS18B20 k modulu ESP-01. DS18B20 je digitální teplotní senzor pracující přes jednovodičové 1-Wire rozhraní. Schéma připojení snímače DS18B20 k modulu je na Obr. 7.

Obrázek 7. Schéma připojení snímače DHT11 k modulu ESP-01.

Poté je potřeba vytvořit profil ve službě ThingSpeak. Služba má pokyny pro odesílání dat do služby a přijímání dat ze služby.

Obrázek 8. Kompletní obvod.

Program napíšeme Prostředí Arduino IDE pro ESP8266. Použijeme knihovny ESP8266WiFi.h (vestavěné) a OneWire.h. Nahrajeme skicu z Listingu 1 na desku Arduino - příjem dat z teplotního senzoru a odeslání dat do služby ThingSpeak. Musíte zadat svá data pro WiFi přístupový bod pro modul ESP-01:

  • const char *ssid;
  • const char *heslo;
stejně jako parametr privateKey pro vaši aplikaci ve službě ThingSpeak. Výpis 1 // webové stránky // Zahrnout knihovnu pro práci s esp8266 #include // Zahrnout knihovnu DHT pro práci s DHT11 #include // DATA pin propojovací pin #define DHTPIN 4 // DHT11 senzor #define DHTTYPE DHT11 // vytvoření instance objektu DHT DHT dht(DHTPIN, DHTTYPE); //ssid WiFi sítě připojení const char ssid = "********"; // WiFi heslo připojení k sítím const char heslo = "******"; // ThingSpeak Server const char* host = "184.106.153.149"; // API KEY vaší aplikace ThingSpeak const char* privateKey = "****************"; // proměnné pro uložení teploty a vlhkosti float temp; plovoucí vlhkost // proměnná pro interval měření unsigned long millis_int1=0; void setup() ( // spuštění sériového portu Serial.begin(115200); delay(10); Serial.print("Připojit k WiFi"); Serial.println(ssid); // Připojení přes WiFi WiFi.begin( ssid , heslo); while (WiFi.status() != WL_CONNECTED) ( delay(500); ) Serial.println("WiFi připojeno"); // start dht dht.begin(); ) void loop() ( / / počkejte interval 10 minut if(milis()-millis_int1>=10*60000) ( Serial.print("připojit k ThingSpeak"); Serial.println(host); // Použijte klienta WiFi klienta WiFiClient; pokud (!client.connect (host, 80)) ( Serial.println("připojení selhalo"); return; ) // získání údajů o teplotě temp = get_data_temperature(); vlhkost = get_data_humidity(); // Vytvořte adresu URL s požadavkem pro server String url = "/ update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += vlhkost; // Odeslat požadavek na server client.print(String(" GET ") + url + " HTTP/1.1\r\n" + "Hostitel: " + hostitel + "\r\n" + "Připojení: zavřít\r\n\r \n"); zpoždění(10); // Odezva serveru ThingSpeak while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) ) Nyní ve službě ThingSpeak můžeme zobrazit graf naměřených hodnot našeho teplotního senzoru DHT11 (obrázek 9).

Obrázek 9. Graf hodnot teplotního senzoru DS18B20 ve službě ThingSpeak.

Často kladené otázky FAQ

1. Modul nereaguje naAT příkazy
  • Zkontrolujte, zda je modul správně připojen;
  • Zkontrolujte správné připojení kontaktů Rx, Tx k adaptéru UART-USB;
  • Zkontrolujte připojení pinu CH_PD na 3,3 V;
  • Experimentálně vyberte rychlost komunikace na sériovém portu.
2. Modul ESP-01 nepřijímá údaje o teplotě ze snímačeDHT11
  • Zkontrolujte, zda je snímač DHT11 správně připojen k modulu.
3. Data nejsou přenášena do služby ThingSpeak
  • Zkontrolujte připojení modulu k přístupovému bodu WiFi;
  • Zkontrolujte připojení přístupového bodu WiFi k internetu;
  • Zkontrolujte, zda je požadavek na službu ThingSpeak správný.

... Obecně platí, že tento materiál není omezen pouze na jedno téma Arduino.

Téma ESP8266 je docela obtížné. Pokud však s těmito moduly Wi-Fi pracujete ve vývojovém prostředí Arduino IDE, vstupní práh klesne na úroveň přijatelnou pro průměrného uživatele Arduina. A nejen Arduino, ale každý člověk, který má chuť něco vybičovat na téma IoT (Internet of Things) a přitom trávit spoustu času čtením dokumentace k čipu a studiem API pro tyto moduly.

Toto video zcela duplikuje materiál uvedený v článku níže.

No, už víme, jak připojit ESP8266 a uvést jej do programovacího režimu, nyní přejděme k něčemu užitečnějšímu.

Hned řeknu, že jakmile modul naprogramujeme ve vývojovém prostředí Arduino, zničíme nativní firmware a už s modulem nebudeme moci pracovat pomocí AT příkazů. Osobně mě to nenutí, ale pokud to někdo potřebuje, na konci článku vám ukážu, jak flashovat nativní firmware zpět do modulu nebo do nějakého bootloaderu, jako je NodeMcu.

Pro začátek si stáhněte z oficiálních stránek Nejnovější verze Arduino IDE, aktuálně 1.6.7. Starší verze jako 1.0.5. nebudou sedět, protože prostě nemají potřebnou funkčnost a tanec s tamburínou nás nezajímá, že?

Spustíme vývojové prostředí a okamžitě přejdeme do Soubor/Nastavení:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

Poté přejděte na Nástroje/Deska:/Správce desek...:

Objeví se před námi okno správce boardu, projděte jej až úplně dolů, a pokud je vše provedeno správně, uvidíme něco takového:

Klikněte kurzorem na nápis " esp8266 podle Komunita ESP8266"poté máme tlačítko "Instalovat", vybereme požadovanou verzi, vezmu nejnovější, dnes je 2.1.0 a nainstaluji ji. Vývojové prostředí si stáhne soubory, které potřebuje (asi 150 MB) a naproti nápis" esp8266 podle Komunita ESP8266 Objeví se „INSTALLED“, tj. nainstalováno:

Procházíme seznam desek a vidíme, že v seznamu máme mnoho různých ESP, vezměte „Generic ESP8266 Module“:

Přejděte na „Nástroje“ a vyberte požadovaný COM port (pro mě je to COM32) Arduino nebo USB UART převodník, poté nastavte rychlost nahrávání: „115200“:

Nastavíme rychlost na 74880 a „NL & CR“ a znovu vypneme a zapneme napájení a odpoví s některými informacemi o ladění:

Všimněte si, že 74880 není hlavní rychlostí ESP8266, pouze posílá ladicí informace. Pokud modul do konzole nic neposílá, může být něco špatně připojeno.

Standardně by měla být rychlost 115200, ale v některých případech může být 9600 a další... Tak to zkuste najít.

Po zvolení požadované rychlosti odešleme modul „AT“ a ten by měl odpovědět, že je vše „OK“. Příkaz "AT+GMR" zobrazí informace o firmwaru.

Než začnete flashovat ESP8266 v Arduino IDE, doporučuji vám přečíst si článek až do konce.

Nyní zkusme flashnout ESP8266 přes Arduino IDE. Modul jsme uvedli do programovacího režimu (jak na to jsem psal v minulém článku).

K blikači přidáme standardní LED:

// Od pana PodelkinTs youtube.com/RazniePodelki // special to geektimes.ru/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite( TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay(1000); )

Blikající? Takže vše bylo provedeno správně. Kde jsem přišel na to, že LED je připojena na první pin? V předchozím článku je obrázek s pinouty různých modulů a je tam označení portů při použití bootloaderu Arduino (piny jsou označeny růžově).

Blikání LED je samozřejmě dobré, ale musíme nainstalovat nějaký webový server nebo začít LED ovládat alespoň pomocí tlačítek v prohlížeči, ne? Ale o tom vám povím někdy jindy.

A teď jak obnovit nativní firmware a jak dokonce flashovat modul s bootloadery třetích stran. Pro ESP8266 existuje takový program jako NodeMCU Flasher, který je původně určen pro flashování zavaděče NodeMCU. Ale jak se ukázalo, perfektně flashuje další firmware.

K článku pro usnadnění připojím archiv s tímto programem a firmwarem, ale vždy si můžete stáhnout nová verze NodeMCU Flasher.

Ve složce „nodemcu-flasher-master“ jsou 2 složky Win64 a Win32 a v závislosti na bitové hloubce vašeho OS vyberte tu, kterou potřebujete. Dále ve složce Release spusťte „ESP8266Flasher.exe“ a podívejte se na rozhraní programu:

Vyberte požadovaný COM port a přejděte na kartu „Config“, odstraňte křížek vedle „INTERNAL://NODEMCU“ a umístěte jej o jeden bod níže, jako na snímku obrazovky:

(Pokud chcete flashovat zavaděč NodeMCU, odstraňte křížek tam, kde nebyl, a umístěte jej tam, kde byl, tedy blízko „INTERNAL://NODEMCU“).

Poté klikneme na ozubené kolo a vybereme, kde se náš firmware nachází, firmware je obvykle ve formátu *.bin (v přiloženém archivu je to „v0.9.5.2 AT Firmware.bin“, což je v hlavní složce) a také vyberte „0x00000“ jako a vyšší.

Vrátíme se opět na záložku „Provoz“, uvedeme modul do programovacího režimu a klikneme na „Flash“:

To je vše, modul se začal flashovat, po flashování nezapomeňte modul restartovat a voila, je flashován s firmwarem, který potřebujeme.

Příkazem AT „AT+GMR“ zkontrolujeme, zda jsme vše udělali správně:

Jak je vidět, vše proběhlo hladce.

Jak používat modul ESP-01 pro ovládání LED přes internet, modul, který vám umožní ovládat jakýkoli elektrické zařízení.

V tomto tutoriálu ESP8266 používáme modul ESP-01 k ovládání LED přes internet. ESP8266 je levná, ale efektivní platforma pro komunikaci přes internet.

Je také snadné používat s Arduino. Po absolvování této lekce získáte základní znalosti ovládání jakéhokoli elektrického zařízení přes internet odkudkoli na světě!

Zde použijeme převodník USB-to-TTL k naprogramování ESP8266 ESP-01. A použijeme k vývoji webového serveru pro dálkové ovládání VEDENÝ.

Jak to funguje

ESP8266 lze ovládat z místní Wi-Fi sítě nebo z internetu (po přesměrování portů). Modul ESP-01 má GPIO piny, které lze naprogramovat tak, aby zapínaly nebo vypínaly LED nebo relé přes internet. Modul lze naprogramovat pomocí Arduino USB-to-TTL převodníku přes sériové piny (RX, TX).

Připojení hardwaru k vašemu ESP8266

K naprogramování ESP8266 můžeme použít převodník USB-to-TTL nebo použít Arduino. Zde jsou tři způsoby, jak načíst kód do ESP8266 – vyberte si ten, který vám nejlépe vyhovuje. Podívejte se na schémata pro každou možnost a podle toho nakonfigurujte své zařízení.

1. USB-to-TTL převodník pomocí DTR konektoru

Pokud použijete převodník USB-to-TTL s výstupem DTR, stahování proběhne bez problémů. Mějte prosím na paměti, že sériový monitor nebude fungovat.

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
RTS → RST
DTR → GPIO0

2. Převodník USB na TTL bez výstupu DTR

Pro připojení USB to TTL převodníku bez DTR pinu musíme použít manuální přenos. K tomu používáme dvě tlačítka - viz následující schéma:

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
Tlačítko Reset → RST
Tlačítko blesku → GPIO0

Při stahování kódu klikněte na tlačítko "Stahování" (Flash). Držte tlačítko stisknuté, zatímco jednou stisknete tlačítko Reset. Nyní můžete uvolnit tlačítko Flash. ESP8266 je nyní v režimu, ve kterém můžete nahrát skicu.

3. Použití Arduino Uno k nahrání kódu do ESP8266

Ke spuštění kódu můžete použít ESP8266 ESP-01. Při stahování kódu postupujte stejně jako v druhém bodě – držte stisknuté tlačítko „Stáhnout“ a zároveň stiskněte jednou reset a poté tlačítko Flash uvolněte.

ARDUINO → ESP8266 ESP-01
GND → GND
TX → TX
RX → RX
Tlačítko Reset → RST
Tlačítko blesku → GPIO0

ESP8266 kód ke stažení

Použijte kteroukoli z výše uvedených metod a otevřete , poté z nabídky vyberte desku ESP8266:

Nástroje → Deska → Obecný modul ESP8266
(Nástroje → Deska → Modul ESP8266)

Poznámka. Pokud jste nenainstalovali a nenakonfigurovali desku ESP8266 Arduino, udělejte to prosím podle kroků výše v tomto návodu. Pak můžete jít dál.

Nyní zkopírujte níže uvedený kód do Arduino IDE a klikněte na tlačítko Stáhnout. Změňte SSID na tečku Wi-Fi připojení a změňte heslo na své Heslo Wi-Fi a zkompilovat.

#zahrnout const char* ssid = "VAŠE_SSID";//zadejte své ssid const char* heslo = "VAŠE_HESLO";//zadejte své heslo int ledPin = 2; // GPIO2 serveru ESP8266 WiFiServer(80);//Service Port void setup() ( Serial.begin(115200); delay(10); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); // Připojit k WiFi síť Serial.println(); Serial.println(); Serial.print("Připojování k "); Serial.println(ssid); WiFi.begin(ssid, heslo); while (WiFi.status() != WL_CONNECTED ) ( delay(500); Serial.print("."); ) Serial.println(""); Serial.println("WiFi připojeno"); // Spuštění serveru server.begin(); Serial.println( "Server spuštěn"); // Vytiskne IP adresu Serial.print("Pro připojení použijte tuto adresu URL: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial .println("/"); ) void loop() ( // Zkontrolujte, zda se klient připojil WiFiClient client = server.available(); if (!client) ( return; ) // Počkejte, dokud klient neodešle nějaká data Serial .println("nový klient"); while(!client.available())( delay(1); ) // Přečtení prvního řádku požadavku String request = client.readStringUntil("\r"); Serial.println (požadavek); client.flush(); // Shoda požadavku int value = LOW; if (request.indexOf("/LED=ON") != -1) ( digitalWrite(ledPin, HIGH); value = HIGH; ) if (request.indexOf("/LED=OFF") != -1)( digitalWrite(ledPin, LOW); value = LOW; ) //Nastavit ledPin podle požadavku //digitalWrite(ledPin, value); // Vrátí odpověď client.println("HTTP/1.1 200 OK"); client.println("Typ obsahu: text/html"); client.println(""); // nezapomeňte na tento jeden client.println(""); client.println(" "); client.print("LED pin je nyní: "); if(hodnota == VYSOKÁ) ( client.print("On"); ) else ( client.print("Off"); ) client.println( "

"); client.println("Klikněte tady zapněte LED na kolíku 2
"); client.println("Klikněte zde vypněte LED na kolíku 2
"); client.println(""); delay(1); Serial.println("Klient odpojen"); Serial.println(""); )

Otevřete svůj sériový monitor a prostřednictvím webového prohlížeče otevřete adresu URL zobrazenou na vašem sériovém monitoru. Připojte GPIO 2 z ESP8266 k delšímu kolíku LED. Nyní můžete své LED ovládat na dálku přes internet!

Odstraňte všechny dráty potřebné ke stažení kódu. Modul LM1117 slouží k zajištění regulovaného výstupu 3,3 V. To vám umožní vytvořit modul ESP8266 nebo ESP-01 jako samostatný.

Připojení ESP8266 k internetu

V současné době je modul ESP8266 dostupný pouze prostřednictvím lokální síť Wi-Fi. Chcete-li spravovat zařízení z internetu, musíte na routeru provést přesměrování portů.

Chcete-li to provést, zjistěte IP adresu svého systému buď pomocí příkazu "ifconfig" v terminálu nebo přejděte na stránku whatsmyip.org. Zkopírujte svou IP adresu. Nyní otevřete nastavení routeru a přejděte do Nastavení předávání. Zadejte podrobnosti pro „Service Port“ a „IP Address“. Servisní port je číslo portu z vašeho Arduino kódu (servisní port: 80):

Server WiFiServer(80);//Servisní port

IP adresa je ta, kterou jste zadali dříve. Zbytek nastavení ponechte jako výchozí. Nyní přejděte do prohlížeče a zadejte adresu: xxx.xxx.xx.xx: 80. Měla by se otevřít stránka pro ovládání LED.