- Co je ESP8266?
- Základy teorie WiFi:
- Typy programování s ESP8266:
- Hardware k programování modulu ESP8266:
- Potřebné materiály:
- Vysvětlení obvodu:
- Stavební deska pro program ESP8266:
Internet věcí a automatizace domácnosti byl v posledních dnech opravdu medializovaným tématem. Budování něčeho vlastního, co může komunikovat s World Wide Web a je k němu přístup odkudkoli na světě, opravdu zní skvěle, že?
Ale počkej!!! Zní to také komplikovaně ???….
Udělal jsem to pro mě, myslel jsem si, že budování věcí, které mohou interagovat s internetem, si vyžádá nesmírný čas a dovednosti. NE, úplně jsem se mýlil, a to díky tomuto fantastickému modulu s názvem ESP8266 od společnosti Espressif Systems. Nyní můžete pomocí tohoto modulu snadno otevřít dveře pro projekty IoT. Tento nízkonákladový modul malé velikosti dokáže zázraky a je opravdu jednoduchý a snadno použitelný, pokud budeme postupovat podle správných kroků.
Cílem tohoto výukového programu je seznámit vás s tímto modulem ESP8266-01 a pomoci vám s ním začít. Možná jste již přinesli svůj modul a uvízli jste při pokusu o jeho použití. Pak nejste sami, nebojte se, mnoho lidí považuje za velmi obtížné začít s modulem, protože pro tento modul neexistují řádné pokyny ani dokumentace. To je důvod pro vytvoření tohoto tutoriálu. Postupujte podle pokynů zde a měli byste být schopni uvést svůj modul ESP8266-01 do provozu okamžitě, zde k programování ESP8266 použijeme FTDI USB to TTL Serial Adapter Module. Podívejte se na podrobné video na konci tohoto tutoriálu.
Než se pustíme do tématu, pojďme se seznámit se základními informacemi o modulu ESP8266-01.
Co je ESP8266?
Většina lidí volá ESP8266 jako modul WIFI, ale ve skutečnosti je to mikrokontrolér. ESP8266 je název mikrokontroléru vyvinutého společností Espressif Systems, která je společností se sídlem v Šanghaji. Tento mikrokontrolér má schopnost provádět činnosti související s WIFI, a proto je široce používán jako modul WIFI.
Existuje mnoho typů modulů ESP8266, od ESP8266-01 do ESP8266-12. Ten, který používáme v tutoriálu, je ESP8266-01, protože je nejlevnější a snadno dostupný. Všechny moduly ESP však mají pouze jeden typ procesoru ESP, který se liší pouze použitým typem breakout bard. Breakoutová deska ESP8266-01 bude mít pouze 2 GPIO piny, zatímco na ostatních deskách bude vyšší.
Kompletní specifikace modulu je uvedena v následující tabulce
Napětí |
3,3 V |
Aktuální spotřeba |
10uA-170mA |
Maximální spotřeba proudu během blikání |
800 mA |
Flash paměť |
16 MB (512 kB normální) |
Procesor |
Tensilica L106 32 bitů |
Rychlost procesoru |
80 - 160 MHz |
RAM |
32K + 80K |
GPIO |
17 (ale většina je multiplexovaná) |
Analogově digitální převodník |
1 (10 bitů) |
Maximální počet připojení TCP |
5 |
Dobře, pár věcí, které vás mohly překvapit ve specifikaci, je, že modul ESP8266 ANO je dodáván s převodníkem ADC a během blikání zařízení spotřebovává velmi vysoký proud 0,8 A.
Zkontrolujte také naše různé zajímavé projekty IoT založené na ESP8266.
Základy teorie WiFi:
Transfer Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP), Access Point (AP), Station (Sta), Service Set Identifier (SSID), Application Programming Interface (API), Webserver…..
Dávají vám všechny výše uvedené pojmy smysl?
Pokud ano. Poté, BINGO, můžete tuto část přeskočit a přejít do další části.
Pokud ne. Pak musíte být jedním z mnoha studentů elektrotechniky, kteří většinu těchto pojmů jen mrkali, stejně jako já, když jsem byl poprvé seznámen se všemi těmito věcmi. Pojďme si tedy rychle projít všechny tyto pojmy, protože až potom jsme mohli vstoupit do světa IOT.
Transfer Control Protocol (TCP):
Většina z nás by věděla, co to znamená. Ano, toto je soubor pravidel, na jejichž základě funguje internet. Vzhledem k tomu, že ESP8266 má schopnost nastavit připojení WIFI. Na vysoké úrovni Wi-Fi je schopnost účastnit se připojení TCP / IP přes bezdrátové spojení. Můžete nastavit, aby váš ESP pracoval na protokolu TCP / IP nebo protokolu UDP.
Uživatelský datagramový protokol (UDP):
UDP je také dalším typem internetového protokolu. Tento typ komunikace je rychlejší než TCP, ale je méně přesný. Důvodem je to, že TCP používá během své komunikace potvrzení, ale UDP nikoli. TCP se většinou používá v sítích, kde je vyžadována vysoká spolehlivost. UDP se používá v místech, kde rychlost má vysokou prioritu než spolehlivost. Například UDP se používá při videokonferencích, protože i když se některé pixely nepřenášejí, nebude to mít tak velký vliv na kvalitu videa, ale rychlost je velmi důležitá.
Většina projektů a kódů ESP8266 funguje kolem TCP / IP, UDP bude nejméně obtěžován.
Přístupový bod (AP) a stanice (STA):
Jakmile začnete pracovat s modulem ESP, často byste se s těmito dvěma pojmy setkali. Řekněme, že vy a váš přítel byste chtěli surfovat na internetu na svých chytrých telefonech, ale protože nemá aktivní připojení k internetu, rozhodli jste se zapnout váš hotspot a váš přítel se k němu připojí. Zde je váš telefon, který získává připojení k internetu, přístupový bod (AP) a telefon vašeho přítele, který používá internet, se nazývá Station (STA).
Modul ESP8266 lze použít ve třech režimech, režimu AP, režimu STA nebo v režimu STA i AP (kombinovaný).
Identifikátor sady služeb (SSID):
To je docela jednoduchý termín. Téměř každý z nás používá WIFI. Název sítě Wi-Fi se nazývá SSID. Když máme více přístupových bodů pro stanici, ke které se máme připojit, měla by stanice vědět, ke kterému přístupovému bodu by se měla připojit, a proto je každému přístupovému bodu (AP) přidělena identita, která se nazývá SSID.
Aplikační programové rozhraní (API):
Zjednodušeně řečeno, API je messenger, který přijímá vaše požadavky, zpracovává je a vrací vašemu systému požadovaný výsledek. Většina aktivit, které děláme na internetu, využívá API, jako když si rezervujete let, provedete online nákup atd. Každý web vás propojí s API, kde je za vás provedena část práce, jako je registrace, platba atd. tam.
ESP8266 používá API pro komunikaci se světem internetu. Například pokud chce znát čas, klima nebo cokoli, co by měla požadovat ve formě API na odpovídající web. Tento web obdrží požadavek a vrátí požadovaný výsledek zpět do našeho modulu ESP.
Webový server:
Webový server je něco, co je odpovědné za zobrazení obsahu webových stránek. Veškerý obsah konkrétního webu se načte na jeho webový server. Existují vyhrazené počítače, jejichž úkolem je fungovat pouze jako webový server. Můžeme také naprogramovat náš ESP8266 tak, aby fungoval jako webový server a připojoval se k němu odkudkoli na světě.
Dobře, to je dost na to, abychom mohli začít. Teď, dejte nám dostat naše ruce na hardware.
Typy programování s ESP8266:
Existují dva způsoby, jak s modulem ESP8266 pracovat. Tento výukový program vám pomůže začít s oběma. Jedním ze způsobů je použití AT příkazů. Druhým způsobem je použití IDE Arduino. Pojďme pochopit, co to znamená.
Všechny moduly ESP8266 dodávané z výroby budou mít načtený výchozí firmware (SDK + API). Tento firmware vám pomůže naprogramovat modul ESP8266 pomocí AT příkazů.
Druhým způsobem je přímé programování modulu ESP8266 pomocí Arduino IDE (deska není nutná) a jeho knihoven. Všechny projekty lze provádět oběma metodami. Pokud ale začnete programovat Arduino IDE pro programování vašeho ESP8266, možná nebudete moci používat AT příkazy, protože mohla být poškozena výchozí sada SDK. V takovém případě musíte ESP vybavit výchozím nastavením. Tomu se budeme věnovat v dalším výukovém programu.
Hardware k programování modulu ESP8266:
ESP8266 je 8 koncový modul. Pin ze stejného je uveden níže.
Bohužel tento modul není vhodný pro prkénko, a proto jej nemůžeme připojit přímo na náš prkénko. Také na rozdíl od Arduina nemá zabudovaný USB na sériový ovladač; proto pro komunikaci s ním musíme použít „FTDI USB to TTL Serial Adapter Module“. Ujistěte se, že deska FTDI může pracovat také na 3,3 V; ten, který používáme v tomto tutoriálu, je uveden níže.
Nyní, jak víme, bychom měli ESP8266 napájet 3,3 V. Aktuální spotřeba je však 0,8 A, takže nemusí fungovat podle očekávání, pokud je napájena z naší FTDI breakout desky. Proto musíme vybudovat vlastní napájecí obvod. Zde jsme použili LM317 pro účely napájení; podrobnosti pro výrobu celého hardwaru jsou uvedeny v dalších částech.
Potřebné materiály:
- Perf Board
- ESP8266-01
- Úniková deska FTDI
- LM317
- 0,1uf kondenzátor
- 10uf kondenzátor
- Barrel Jack
- Bergstik muž a žena
- Stiskněte tlačítko
- Připojovací vodiče
- 12V adaptér pro napájení desky.
Vysvětlení obvodu:
Schémata desky jsou uvedena níže
Někteří se možná pokusili napájet váš ESP přímo z vašeho FTDI a fungovali, ale následující jsou důvody, proč si vytvořit vlastní desku s několika dalšími komponentami:
- Pouze několik desek FTDI může dodávat dostatečný proud pro modul ESP. Několik modulů ESP může během blikání spotřebovávat vysoký proud než ostatní. Proto je vždy bezpečné mít svůj vlastní zdroj energie a bude snazší integrovat napájecí obvod na Dot Board místo na prkénko.
- Před nahráním kódu bychom měli vždy resetovat modul ESP. Vytvoření vlastní desky nám pomůže snadno resetovat modul. Pomocí tlačítka jsme resetovali ESP8266.
- Pin GPIO0 musí být uzemněn při programování pomocí Arduina a musí být ponechán volný při použití AT příkazů, což lze snadno přepnout, pokud postavíme vlastní desku. Pro přepínání mezi režimem příkazů AT a režimem programování IDE Arduino jsme použili propojku.
- Veškeré programování se provádí pomocí sériové komunikace , pokud použijete prkénko, některé uvolněné terminály by mohly způsobit chybu v polovině cesty a přinutit nás, abychom modul znovu flashovali.
Jak již bylo řečeno, můžete si vybrat mezi používáním prkénka a vytvořením vlastní desky pro programování modulu. Pokud stále chcete používat prkénko, můžete pomocí vašeho prkénka vytvořit stejný obvod, jak je uvedeno výše. Pouze vzhled se bude lišit, všechny ostatní pokyny v tomto kurzu budou platit stejně.
Stavební deska pro program ESP8266:
Tady tedy stavíme desku pro programování modulu ESP8266, který má vlastní napájecí obvod pro napájení ESP8266.
Jak bylo řečeno, náš modul bude při programování vyžadovat přibližně 800 mA. Proto jsme zkonstruovali vlastní výkonový modul pomocí variabilního regulátoru napětí LM317, protože zdrojový proud LM317 je téměř 1,2A. Vstupní napětí LM317 bude 12V, které bude dáno pomocí 12V 2A adaptéru pro montáž na zeď. Výstup LM317 bude trvale regulován na 3,3 V pomocí rezistorů 220ohm a 360ohm. Zkontrolujte také náš obvod nabíječky baterií pomocí LM317 a dozvíte se více o LM317.
Níže jsou uvedeny vzorce pro výpočet výstupního napětí LM317:
Vout = 1,25 * (1+ (R2 / R1))
Kde R1 je 220ohm a R2 je 360ohm.
Modul ESP8266 je připojen podle pinů uvedených v tabulce níže.
PIN č. |
Název PIN ESP |
Připojen k |
1 |
Přízemní |
Uzemnění modulu FTDI |
2 |
GPIO2 |
Ponecháno volné nebo připojené k berg sticku pro budoucí použití |
3 |
GPIO0 |
Přepíná mezi režimy programování |
4 |
Rx |
Tx modulu FTDI |
5 |
Tx |
Rx modulu FTDI |
6 |
CH_PH |
3,3 V z LM317 |
7 |
Resetovat |
Tlačítko pro resetování modulu |
8 |
Vcc |
3,3 V z LM317 |
Pro snadné přepínání mezi příkazovým režimem AT a režimem programování Arduino jsem umístil přepínač (jumper), který při použití Arduino IDE vytáhne GPIO 0 na zem a při použití příkazů AT jej nechá plovoucí.
K dispozici je tlačítko, které po stisknutí resetuje modul ESP. To se provádí jednoduchým připojením kolíku RST modulu ESP k uzemňovací liště pomocí tlačítka. Pokaždé, než naprogramujeme náš modul ESP, měli bychom jej resetovat.
Jakmile sestavíte obvod, měl by níže vypadat nějak takto.
Použil jsem desku Perf, ale můžete také použít prkénko, pokud máte zájem (jak je uvedeno výše). Kompletní sestavení a vysvětlení je uvedeno ve videu níže.
Po dokončení připojení. Zapněte desku bez desek ESP a FTDI a zkontrolujte, zda máme správně 3,3 V na svorkách Vcc a Ground na pozici modulů ESP. Nyní se ujistěte, že je vaše deska FTDI v režimu 3,3 V a připojte své moduly FTDI a ESP k desce.
Zapněte adaptér a připojte jej k desce, modul ESP by se měl rozsvítit červenou barvou.
Poté připojte desku FTDI k počítači pomocí kabelu mini-USB na USB a přejděte do Správce zařízení v počítači a měli byste najít desku FTDI připojenou k portu COM, jak je uvedeno níže:
Nyní je čas začít s programováním našeho modulu ESP8266. Můžete začít tím, že použijete AT-příkazy a poté přejdete k použití Arduino IDE. Nezapomeňte zkontrolovat naše další projekty založené na ESP8266.