Hrátky s WiFi čipem ESP8266 (1.díl – seznámení)

V dnešním článku bych vám chtěl představit zařízení, které již nějaký pátek ovládá trh v rámci IoT (Internet of Things). Jedná se o čip ESP8266 od Espressif Systems. Kromě integrované 2,4GHz WiFi, TCP/IP stacku a 32 bitového jádra, je skrze tento čip možné i číst a zapisovat na periferie přes několik protokolů.

screen-shot-2015-06-27-at-4-55-40-pm-1024x481

Samotný čip je velmi malá černá SMD součástka. Ta je k dostání buď samotná nebo jako součást modulu. Osobně využívám moduly od AI-Thinkers. Ti se snaží o standardizaci svých modulů v rámci různých číselných řad.

esp_all_modules

Více o jednotlivých číselných řadách a vendorech se dozvíte zde. Pojďme si nyní říct něco více o modulu ESP-01.

esp8266_pinout

Modul ESP-01 má jako jeden z mála standardní piny. Do nepájivého pole však vložit nelze, protože je má moc u sebe. Ti šikovnější si mohou vyrobit redukci. Čip je standardně dodáván s AT firmwarem. Jeho použití je vhodné třeba při přímém napojení sériovou linkou na arduino. AT firmware lze nahradit nodeMCU, nebo vlastním programem, který si do čipu můžeme zkompilovat, o tom však později. Pro práci s čipem je vhodné mít USB to UART TTL převodník. Zapojení převodníku je téměř zřejmé.

převodník – ESP-01

  • 3V3 -> VCC
  • 3V3 -> CH_PD
  • GND -> GND
  • RX -> TX
  • TX -> RX
  • GND -> GPIO 0 – pokud chcete čip programovat, pro běžný běh není nutné spojení

flashing_esp-01

Napájení čipu je výhradně 3,3V, vyšší napětí ho pošle do křemíkového nebe. Pozor také na odběr, ve špičkách si ESP vezme až 300mA. Chce to tedy mít nachystaný dostatečně silný zdroj. Pokud již máte esp připojené přes převodník k počítači, bude nutné do počítače nahrát software pro práci s čipem. Nejjednodušší cestou je nainstalovat si Arduino IDE. Je určeno primárně pro vývoj na platformě Arduino, nicméně pořídíte s ním, v případě různých jednočipů a právě i esp8266. Arduino IDE si můžete zdarma stáhnout zde. Po nainstalování bude ještě třeba přidat podporu pro náš čip. V nabídce Soubor -> Vlastnosti ->  Správce dalších desek URL přidáme „https://arduino.esp8266.com/stable/package_esp8266com_index.json“ (bez uvozovek). Dále v menu Nástroje->Vývojová deska XY -> boards manager, najdeme esp8266 a dáme instalovat. Následně Arduino IDE restartujeme. V menu Nástroje->Vývojový deska XY by nám měla přibýt položka Generic ESP8266 module. Když jí zvolíme, nabídne nám v menu Nástroje několik nastavení.

arduino

Osobně používám toto nastavení. Pro komunikaci s ESP-01 je podle verze občas nutné snížit upload speed na 9600 baudů a zvolit správný port, na kterém převodník trůní. Poté je možno spustit z nabídky Sériový Monitor a zkusit, zda nám AT firmware na ESP odpovídá. Základní přehled příkazů je možno nalézt zde. Pro otestování lze zaslat příkaz AT. Pokud vrátí OK. Je spojení v pořádku. Pomocí příkazů pak můžeme vyzkoušet připojení na domácí síť, nebo z něj vytvořit samostatné AP.

Výpis dostupných sítí provedeme přes AT+CWJAP?

Následně se připojíme přes AT+ CWJAP =NAZEV_SITE,HESLO – např  AT+CWJAP=“tady_je_krakonosovo“,“sojkapraskacka“

Hlouběji se do práce s AT příkazy pouštět nebudeme. ESP se dá velmi dobře použít jako samostatný prvek, a tak ho také budeme využívat.

 

V dalším díle tohoto seriálu pozdravíme svět a podíváme na ovládání relé pomocí ESP-01.

 

19 komentářů: „Hrátky s WiFi čipem ESP8266 (1.díl – seznámení)

  1. Dobrý den.

    Mám prosbu. Modul nemohu zprovoznit na desce TinyLab. Ať nastavím jakoukoli rychlost, nereaguje na AT příkazy buďto nijak, či „vytuhnutím“ rozhraní „Arduino 1.8.5). Máte nějaký nápad, kde je pes?

    Díky moc!
    Radek

  2. Dobrý den,
    s deskou TinyLab bohužel nemám žádné zkušenosti. Podle datasheetu by měla být na desce jednoduché připojení přes druhý seriový port (serial1) s rychlostí 115200, Zkuste poslat detailnější popis toho, jak se snažíte s esp8266 komunikovat. Předpokládám, že musíte mít i správně nastavené přepínače – na té samé sběrnici visí ještě bluetooth modul a XBee.

    1. Zdravím opět a děkuji. BT mi chodí dobře. Jenže to se programuje v rámci samotné desky Tinylab. ESP8266 se programuje přímo, což je asi ten problém. Přepínače mám všechny zapnuté. Podle schématu je TX a RX na D0 a D1. Ještě to budu pokoušet a kdyžtak si asi objednám samostatný programátor desky ESP8266. Ale pořád si myslím, že to musí fungovat i na Tinylabu. Ještě jednou děkuji! Radek.

  3. Dobrý deň,
    chcel by som sa opýtať či wifi modul ESP8266 ESP-01 viem naprogramovať tak aby odosielal email napr. na gmail.com
    Dakujem

    1. Dobrý den, vlastní mailserver na tomto chipu zřejmě nerozběhnete. Tím neříkám, že je to nemožné – ale kromě nastudování RFC pro odesílání by se pak musely vyřešit ještě reverzní záznamy, dkim, spf … 🙂 Nejjednodušší je spojit se na nějaký externí mailserver přes smtp, autentifikovat se a odeslat mail jako uživatel daného mailserveru. Pokud to chcete psát from scratch přes soketovou komunikaci, doporučuji si nastudovat základní příkazy pro práci se SMTP přes telnet http://www.e-smtp.cz/testovani-smtp/. Pro tento účel určitě existuje nějaké hotové řešení pro esp8266 – google vám určitě poradí 😉

  4. Dobrý den,
    rád bych ovládnul TCP komunikaci přes AT příkazy.
    Je k tomu nějaký dobrý zdroj?

  5. Potřeboval jsme snížit přenosovou rychlost u ESP8266 a zadal jsem AT+UART=9600,8,1,0,3, kde jsem omylem místo 1 zadal tu nešťastnou trojku. Po tomhle už se s modulem nedokážu spojit.
    Je nějaké řešení?
    Děkuji za rady.

    1. Dobrý den, to by nemělo být nic tragického. Pro připojení využijte nějaký program pro připojení terminálové konzole, kde si nastavíte ve flow control rts i cts. Po připojení si můžet opět nastavit parametry pro komunikaci, které budete potřebovat. V linuxu pro tento účel můžete použít minicom nebo screen. Ve windows putty, případně hyperterminál.

      1. Modul je nějaký zaseklý. Zkusil jsem nahrát i jiné firmware, tím by se snad mělo celé nastavení změnit, ale nepomohlo to. Přehrání proběhne v pořádku, ale modul stejně neodpovídá. na žádné rychlosti. Flash jsem dělal jak s pomocí NodeMcu, tak i s Flash Download Tools 3.6.8.

  6. Jediné co vypíše je v programu Flash Download Tools 3.6.8.
    68h : N/A
    flash devID:
    4014h
    QUAD;8Mbit
    crystal:
    26 Mhz

    Na AT příkazy v ESP8266 User Program Ver1.1 napíše při nastavení na jakoukoliv rychlost jen
    Timeout Error – ESP8266 Did Not Answer
    V jiných programech ani to ne.

    1. Daný SW jsem doposud nepoužil. Zkoušel jste nějaký jednoduchý program, který umí číst / zapisovat na sériový port, který k ESP8266 připojíte?

  7. Zkoušel jsem dostupné terminály, ale žádný nedokáže modul obsloužit. Žádná odezva na AT příkazy.

  8. Ani to blikání nefunguje, po kompilaci se nespojí s modulem. Flashovat už není co, všechny verze firmware co jsem našel, jsou odzkoušené a modul prostě nekomunikuje. A jak jsem zjistil, nejsem sám. Jeden kolega zkusil to, co já a dopadl stejně.
    Kašlu na to, nestál tolik, abych kvůli tomu trávil čas s pokusy, které nikam nevedou.
    Děkuji za snahu mi pomoci.

    Teď jsem si všiml, že „Název“ neznamená název vlákna, ale autora.

  9. No taky jsem dopadl jak hubkař. Koupil jsem si holý modul ESP8266, udělal jsem pro něj desku kde je obousměrný převodník 5/3,3V ale bohužel se mi nepodařilo s modulem spojit přes arduino IDE. Zkoušel jsem USB převodník, RS232 TTL, podkladů je mnoho ale žádný přesný. V IDE je mnoho nastavení, kterým v podstatě nelze rozumět pokud ,mám tak různé podklady, ale hlavně se nedá nastavit rychlost 9600 na lince (ten obousměrný převodník asi stejně víc neumožní). No stejně by tam ten kompilát 200 kB rukoval asi hodiny. Jinak řečeno je to na nic.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.