- Kaj je ESP8266?
- Osnove teorije WiFi:
- Vrste programiranja z ESP8266:
- Strojna oprema za programiranje modula ESP8266:
- Potrebni materiali:
- Pojasnilo vezja:
- Gradbeni odbor za programiranje ESP8266:
Internet stvari in avtomatizacija doma je bila v zadnjih dneh resnično hiper tema. Sami ustvarimo nekaj, kar lahko komunicira s svetovnim spletom in je dostopno od koder koli na svetu, res se sliši kul, kajne?
Ampak počakaj!!! Sliši se tudi zapleteno ???….
Tako sem storil tudi zame, mislil sem, da bo za izgradnjo stvari, ki lahko komunicirajo z internetom, potreben ogromen čas in spretnost. NE, popolnoma sem se zmotil, zahvaljujoč temu fantastičnemu modulu, imenovanemu ESP8266 podjetja Espressif Systems. Zdaj lahko s pomočjo tega modula enostavno odprete vrata za IoT projekte. Ta poceni majhen modul lahko naredi čudeže in je res preprost in enostaven za uporabo, če sledimo pravim korakom.
Cilj teh vadnic je predstaviti vam modul ESP8266-01 in vam pomagati pri začetku. Morda ste že prinesli svoj modul in se zataknili, ko ste ga poskušali uporabiti. Nato niste sami, ne skrbite, marsikomu je zelo težko začeti z modulom, ker za ta modul ni ustreznih navodil ali dokumentacije. To je razlog za izdelavo te vadnice. Sledite navodilom tukaj in vaš modul ESP8266-01 boste lahko hitro zagnali in zagnali, tukaj bomo za programiranje ESP8266 uporabili modul serijskega vmesnika FTDI USB za TTL. Podroben video si oglejte na koncu vadnice.
Preden začnemo s temo, zajemimo nekaj osnov o modulu ESP8266-01.
Kaj je ESP8266?
Večina ljudi ESP8266 imenuje kot modul WIFI, vendar je v resnici mikrokrmilnik. ESP8266 je ime mikrokrmilnika, ki ga je razvilo podjetje Espressif Systems, podjetje iz Šanghaja. Ta mikrokrmilnik lahko izvaja dejavnosti, povezane z WIFI, zato se pogosto uporablja kot modul WIFI.
Na voljo je veliko vrst modulov ESP8266, od ESP8266-01 do ESP8266-12. Tisti, ki ga uporabljamo v tej vadnici, je ESP8266-01, ker je najcenejši in lahko dostopen. Vsi ESP moduli pa imajo samo en tip ESP procesorja, razlikuje pa se le vrsta izbirnega bard-a. Prelomna plošča ESP8266-01 bo imela samo 2 zatiča GPIO, medtem ko bo na drugih ploščah višja.
Popolna specifikacija modula je podana v spodnji tabeli
Napetost |
3.3V |
Trenutna poraba |
10uA-170mA |
Največja poraba toka med utripanjem |
800mA |
Flash pomnilnik |
16 MB (512 K običajno) |
Procesor |
Tensilica L106 32 bit |
Hitrost procesorja |
80-160MHz |
Oven |
32K + 80K |
GPIO |
17 (vendar je večina multipleksiranih) |
Analogno-digitalni pretvornik |
1 (10-bitni) |
Največ povezav TCP |
5. |
V redu, nekaj stvari, ki bi vas lahko presenetile glede specifikacije, je, da DA, modul ESP8266 je opremljen s pretvornikom ADC in med utripanjem vaše naprave porabi zelo visok tok 0,8A.
Oglejte si tudi naše različne zanimive projekte interneta stvari, ki temeljijo na ESP8266.
Osnove teorije WiFi:
Protokol za nadzor prenosa (TCP), internetni protokol (IP), protokol uporabniškega datagrama (UDP), dostopna točka (AP), postaja (Sta), identifikator nabora storitev (SSID), vmesnik za programiranje aplikacij (API), spletni strežnik…..
So vam vsi zgornji izrazi smiselni?
Če je odgovor pritrdilen. Nato lahko BINGO preskočite ta del in se premaknete na naslednji odsek.
Če ne. Potem moraš biti eden izmed številnih študentov elektrotehnike, ki so pravkar pomežiknili večino teh izrazov, tako kot jaz, ko sem se prvič seznanil z vsemi temi stvarmi. Torej, na hitro poglejmo vse te pogoje, kajti le tako smo lahko vstopili v svet IOT.
Protokol za nadzor prenosa (TCP):
Večina od nas bi vedela, kaj to pomeni. Da, to so pravila, na podlagi katerih deluje internet. Ker ima ESP8266 možnost nastavitve povezav WIFI. Na visoki ravni Wi-Fi je možnost sodelovanja v povezavah TCP / IP prek brezžične povezave. ESP lahko nastavite tako, da deluje na protokolu TCP / IP ali UDP.
Uporabniški protokol datagrama (UDP):
UDP je tudi druga vrsta internetnega protokola. Ta vrsta komunikacije je hitrejša od TCP, vendar je manj natančna. Razlog je v tem, da TCP med komunikacijo uporablja potrditev, UDP pa ne. TCP se večinoma uporablja v omrežjih, kjer je potrebna visoka zanesljivost. UDP se uporablja tam, kjer ima hitrost prednost kot zanesljivost. UDP se na primer uporablja pri videokonferencah, saj tudi če se nekatere slikovne pike ne prenesejo, to ne bo toliko vplivalo na kakovost videa, vendar je hitrost zelo pomembna.
Večina projektov in kod ESP8266 deluje okoli TCP / IP, UDP pa bo najmanj moteč.
Dostopna točka (AP) in postaja (STA):
Ko začnete delati z modulom ESP, boste pogosto naleteli na ta dva izraza. Recimo, da bi radi s prijateljem brskali po internetu na svojih pametnih telefonih, a ker nima aktivne internetne povezave, se odločite, da vklopite svojo dostopno točko in se prijatelj poveže z njo. Tu je vaš telefon, ki pridobiva internetno povezavo, dostopna točka (AP), telefon vašega prijatelja, ki uporablja internet, pa se imenuje postaja (STA).
Modul ESP8266 se lahko uporablja v treh načinih, načinu AP, načinu STA ali v načinu STA in AP (kombinirano).
Identifikator nabora storitev (SSID):
To je dokaj preprost izraz. Skoraj vsi smo uporabljali WIFI. Ime omrežja Wi-Fi se imenuje njegov SSID. Ko imamo več dostopnih točk, s katerimi se lahko postaja poveže, mora postaja vedeti, na katero dostopno točko se mora povezati, zato vsaka dostopna točka (AP) dobi identiteto, ki se imenuje SSID.
Vmesnik za programiranje aplikacij (API):
Če poenostavim, je API sel, ki sprejme vaše zahteve, jih obdela in vrne vašemu sistemu želeni rezultat. Večina dejavnosti, ki jih opravljamo v internetu, uporablja API-je, na primer, ko rezervirate let, opravite spletni nakup itd. Vsaka spletna mesta vas povežejo z API-jem, kjer del dela, kot je prijava, plačilo itd., Poteka za vas. tam.
ESP8266 uporablja API za pogovor s svetom interneta. Na primer, če želi vedeti čas, podnebje ali kar koli, kar bi moral v obliki API-ja zahtevati na ustrezni spletni strani. To spletno mesto bo prejelo zahtevo in našemu modulu ESP vrnilo želeni rezultat.
Spletni strežnik:
Spletni strežnik je nekaj, kar je odgovorno za prikaz vsebine spletnega mesta. Vsa vsebina tega spletnega mesta bo naložena na njegov spletni strežnik. Obstajajo namenski računalniki, katerih naloga je, da deluje le kot spletni strežnik. Naš ESP8266 lahko programiramo tudi tako, da deluje kot spletni strežnik in se nanj povežemo od koder koli na svetu.
V redu, to je dovolj, da začnemo. Zdaj pa si oglejmo strojno opremo.
Vrste programiranja z ESP8266:
Modul ESP8266 lahko uporabljate na dva načina. Ta vadnica vam bo pomagala, da začnete z obema. Eden od načinov je uporaba ukazov AT. Druga pot je z uporabo Arduino IDE. Dovolite nam, da razumemo, kaj to pomeni.
Vsi tovarniško dobavljeni moduli ESP8266 bodo imeli naloženo privzeto programsko opremo (SDK + API). Ta vdelana programska oprema vam bo pomagala programirati modul ESP8266 z ukazi AT.
Drugi način je neposredno programiranje modula ESP8266 z uporabo Arduino IDE (plošča ni potrebna) in njegovih knjižnic. Vsi projekti se lahko izvedejo v obeh metodah. Če pa Arduino IDE začnete uporabljati za programiranje vašega ESP8266, morda ne boste mogli uporabljati ukazov AT, ker je privzeti SDK morda pokvarjen. V tem primeru morate ESP utripati s privzetimi nastavitvami. To bomo obravnavali v drugi vadnici.
Strojna oprema za programiranje modula ESP8266:
ESP8266 je 8 terminalni modul. Zatič iz istega je prikazan spodaj.
Na žalost ta modul ni prijazen do plošče, zato ga ne moremo namestiti neposredno na našo ploščo. Prav tako v nasprotju z Arduino nima vgrajenega v USB na serijski voznika; zato moramo za komunikacijo z njim uporabiti "FTDI USB to TTL Serial Adapter Module". Prepričajte se, da lahko plošča FTDI deluje tudi na 3,3 V; tisti, ki ga uporabljamo v tej vadnici, je prikazan spodaj.
Kot vemo, bi morali ESP8266 napajati s 3,3 V. Toda trenutna poraba znaša 0,8 A, zato morda ne bo delovala po pričakovanjih, če jo napaja naša FTDI plošča. Zato moramo zgraditi lastno napajalno vezje. Tu smo uporabili LM317 za napajanje; podrobnosti o izdelavi celotne strojne opreme so podane v poznejših razdelkih.
Potrebni materiali:
- Perf Board
- ESP8266-01
- Odbor FTDI
- LM317
- 0,1uf kondenzator
- 10uf kondenzator
- Sodček Jack
- Bergstik Moški in Ženske
- Pritisni gumb
- Priključne žice
- 12V adapter za napajanje plošče.
Pojasnilo vezja:
Sheme plošče so prikazane spodaj
Nekateri so morda poskusili napajati vaš ESP neposredno z vašega FTDI in deloval, vendar so naslednji razlogi za izdelavo lastne plošče z nekaj dodatnimi komponentami:
- Le malo plošč FTDI lahko dobavi dovolj toka za modul ESP. Le malo modulov ESP lahko med utripanjem porabi več toka kot drugi. Zato je vedno varno imeti lasten vir energije in lažje bo vgraditi napajalno vezje na Dot Board namesto na board.
- Pred nalaganjem kode moramo vedno ponastaviti modul ESP, saj bomo z lastno ploščo lažje ponastavili modul. Za ponastavitev ESP8266 smo uporabili gumb.
- Pri programiranju z uporabo Arduina mora biti pin GPIO0 ozemljen, pri uporabi ukazov AT pa mora biti prost, to lahko enostavno preklopimo, če si izdelamo lastno ploščo. Za preklop med načinom ukazov AT in načinom programiranja Arduino IDE smo uporabili Jumper.
- Celotno programiranje se izvaja s pomočjo serijske komunikacije , če uporabite ploščo, lahko nekateri ohlapni terminali povzročijo napako na pol poti in nas prisilijo, da modul znova zaženemo.
Glede na to lahko izbirate med uporabo plošče in izdelavo lastne plošče za programiranje modula. Če še vedno želite uporabljati ploščo, lahko na zgornji plošči sestavite isto shemo, prikazano zgoraj. Le videz bo drugačen, vsa druga navodila v tej vadnici bodo veljala enako.
Gradbeni odbor za programiranje ESP8266:
Tu torej gradimo ploščo za programiranje modula ESP8266, ki ima lastno napajalno vezje za napajanje ESP8266.
Kot rečeno, bo naš modul med programiranjem potreboval približno 800 mA. Zato smo z uporabo spremenljivega regulatorja napetosti LM317 izdelali lasten napajalni modul, saj je izvorni tok LM317 skoraj 1,2A. Vhodna napetost LM317 bo 12V, ki se bo podala z 12V 2A adapterjem za pritrditev na steno. Izhod LM317 bo z upori 220ohm in 360oh nenehno reguliran na 3.3V. Preverite tudi vezje za polnilnik baterij z uporabo LM317, če želite izvedeti več o LM317.
Formule za izračun izhodne napetosti LM317 so podane spodaj:
Vout = 1,25 * (1+ (R2 / R1))
Kje je R1 220 ohmov in R2 360 ohmov.
Modul ESP8266 je povezan po zatičih, prikazanih v spodnji tabeli.
Pin št. |
Ime PIN ESP |
Povezan z |
1. |
Tla |
Osnova modula FTDI |
2. |
GPIO2 |
Levo prosto ali povezano z berg palico za prihodnjo uporabo |
3. |
GPIO0 |
Preklopite za preklop med načini programiranja |
4. |
Rx |
Tx modula FTDI |
5. |
Tx |
Rx modula FTDI |
6. |
CH_PH |
3,3 V od LM317 |
7. |
Ponastaviti |
Gumb za ponastavitev modula |
8. |
Vcc |
3,3 V od LM317 |
Za enostavno preklapljanje med ukaznim načinom AT in načinom programiranja Arduino sem postavil stikalo (mostiček), ki bo GPIO 0 pri uporabi Arduino IDE potegnil na tla in ga pustil plavati pri uporabi ukazov AT.
Obstaja gumb, ki ob pritisku ponastavi modul ESP. To naredite tako, da prek tipke preprosto priklopite zatič RST modula ESP na tirnico. Vsakič, preden programiramo svoj modul ESP, ga moramo ponastaviti.
Ko sestavite vezje, mora biti spodaj videti približno tako.
Uporabil sem ploščo Perf, lahko pa uporabite tudi ploščo, če vas zanima (kot je razloženo zgoraj). Celotna zgradba in razlaga je prikazana v spodnjem videu.
Ko končate s povezavami. Vklopite ploščo brez plošč ESP in FTDI in preverite, ali dobimo 3,3 V pravilno na priključkih Vcc in Ground položaja modulov ESP. Zdaj se prepričajte, da je vaša plošča FTDI v načinu 3,3 V, in priključite svoje module FTDI in ESP na ploščo.
Vklopite adapter in ga priključite na ploščo, modul ESP naj sveti z rdečo barvo.
Nato povežite ploščo FTDI z računalnikom s kablom mini-USB na USB in se pomaknite do Upravitelja naprav v računalniku, zato bi morali najti ploščo FTDI, priključeno na vrata COM, kot je prikazano spodaj:
Zdaj je čas, da se lotimo programiranja našega modula ESP8266. Začnete lahko z uporabo ukazov AT in nato z uporabo Arduino IDE. Ne pozabite preveriti naših drugih projektov, ki temeljijo na ESP8266.