Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Zanimljiv
  • ESP8266 firmware, programiranje u Arduino IDE. Ažuriranje firmvera ESP8266

ESP8266 firmware, programiranje u Arduino IDE. Ažuriranje firmvera ESP8266

Ciljevi i razlozi

Ovo je autorov drugi članak o integrirani krug ESP8266, koji sadrži potpuno opremljen 32-bitni RISC mikrokontroler i ugrađeni 802.11 b/g/n Wi-Fi sklop. opisao koristeći Arduino IDE za ESP8266 programiranje i sadrži važna informacija, što se ovdje neće ponavljati. Ako ga niste pročitali, preporučamo da to učinite.

Nema manjka informacija o ESP8266 na internetu; zapravo, možda ga ima previše... krivo. Razvojni programeri čipa, Espressif, očito su odlučili ne samo izbjeći outsourcing proizvodnje, već i izbjeći izravno uključivanje u razvoj linije ESP modula koji koriste ESP8266 čip. Umjesto toga, nude informacije i usluge podrške putem foruma za one koji su voljni uporno i strpljivo upravljati labirintom. Zabunu dodatno povećava postojanje još jednog foruma kojim, iako se zove esp8266.com, ne upravlja Espressif. Osim toga, postoje mnogi preprodavači, vlogeri i pisci koji također nude informacije koje variraju od dobrih do zbunjujućih do točke da su potpuno pogrešne.

ESP moduli dostupni su u razni izvori, a firmware sadržan u ESP8266 čipovima na modulima gotovo je uvijek zastario i često izaziva sumnju u njihovo podrijetlo. Ponekad su sumnjiva i "ažuriranja" i alati koji su dostupni iz istih izvora. Stoga je svrha ovog članka dokumentirati postupak preuzimanja najnovijeg dostupnog firmware-a izravno s Espressifa i njegovu instalaciju pomoću alata za programiranje koji nudi Espressif.

Priključna oprema

Za ažuriranje firmvera na bilo kojem ESP8266, trebate ga pravilno napajati i spojiti na svoje računalo. Osim toga, potrebno je dodati sredstvo za resetiranje čipa i njegovo stavljanje u način pokretanja. Dijagram i fotografija ispod pokazuju preporučenu vezu; Imajte na umu da boje žica na dijagramu odgovaraju bojama na fotografiji. Kao što vidite, ažurirat ću firmware na ESP-01 modulu, ali iste veze će raditi na drugim modulima sve dok se koriste isti ESP8266 I/O kao što je prikazano na dijagramu. dodatne informacije Pogledaj u .

U ovom je članku dana pouzdanija shema firmvera.


PuTTY terminalski program

Nakon što je povezivanje hardvera završeno, sljedeći korak je uključivanje ESP8266 i pokušaj komunikacije s njim. Ovo zahtijeva jednostavan terminalski program; koristit ćemo PuTTY, besplatan program, dostupan ovdje. Možete koristiti drugu terminalski program, ali morat ćete uzeti u obzir razlike između njega i PuTTY-ja.

Otvorite PuTTY i kliknite radio gumb Serial. Unesite broj COM porta (koji bi trebao biti manji od 10) i brzinu prijenosa (najvjerojatnije će biti 115200 ili 9600).

U malom prozoru Spremljene sesije unesite ESP8266 i kliknite gumb Uštedjeti. PuTTY prozor trebao bi izgledati kao na slici ispod.


Pritisnite gumb Otvoren, koji bi trebao otvoriti prozor sesije PuTTY terminala.

Uključite Caps Lock na računalu i upišite AT, ali nemojte pritisnuti Enter. Trebali biste vidjeti AT u prozoru terminala PuTTY. Ako se to ne dogodi, možda ste odabrali krivi COM port ili pogrešna brzina prijenosi. Zatvorite PuTTY i započnite ovaj podčlanak ispočetka. Prihvatljive brzine prijenosa: 9600, 19200, 38400, 74880, 115200, 230400, 460800 i 921600; isprobajte svaki od njih redom dok ne nađete onaj koji radi.

Kada vidite AT u prozoru terminala PuTTY, držite pritisnutu tipku Ctrl, pritisnite tipku M, a zatim J. Otpustite tipku Ctrl. Trebali biste vidjeti OK u prozoru PuTTY terminala kao što je prikazano na slici ispod.


Imajte na umu da ako napravite pogrešku pri tipkanju u prozoru sesije terminala, možda nećete moći ispraviti pogrešku. Umjesto da pokušavate urediti i popraviti pogrešku, često je bolje jednostavno držati pritisnutu tipku Ctrl i pritisnuti prvo tipku M, a zatim tipku J, što će generirati poruku o pogrešci. Zatim možete početi ispočetka i unijeti točan tekst.

Kada vidite prvu poruku OK, to znači da ste svladali veliku prepreku. Sada znate da je oprema ispravno spojena, da ESP modul radi i da ste odabrali ispravan COM port i brzinu prijenosa podataka. u redu

Sada ponovno pokrenite PuTTY, odaberite spremljenu ESP8266 sesiju i kliknite gumb Opterećenje Otvoren


U prvom retku iznad vidite naredbu AT+GMR koju ste upisali. Kao što možda znate ili ste pogodili, shema naredbi koju koristimo za komunikaciju s ESP8266 zove se "AT skup naredbi" jer sve naredbe počinju slovima "AT".

Nažalost, postoje mnoge verzije AT skupova naredbi; sve one sadrže neke od istih naredbi, ali postoje mnoge AT naredbe koje nisu standardne u svim skupovima AT naredbi. Čak i unutar zajednice ESP8266 postoji nekoliko verzija. Drugi red pokazuje da jest određeni uređaj 8266 je programiran firmverom koji koristi verziju 0.25.0.0 AT naredbi. Negdje postoji dokument koji definira naredbe koje su uključene u verziju 0.25.0.0, ali čak i bez tog dokumenta možete koristiti metodu pokušaja i pogreške da odredite koje su AT naredbe podržane. Ovo će u najboljem slučaju biti vrlo dosadan proces, ali srećom postoji rješenje koje ćemo malo objasniti.

Treći red identificira verziju softvera (SDK) koja je korištena za ovaj određeni ESP8266 kao verziju 1.1.1. Svaki SDK također uključuje skup AT naredbi koje su dio firmvera i prikladne su za kontrolu tog firmvera. Navodno verzija 0.25.0.0 AT naredbi radi s verzijom 1.1.1 SDK-a. Ali i dalje vam treba dokument koji opisuje AT verziju 0.25.0.0 da saznate koje su naredbe omogućene. postoji Najbolji način, opisano u sljedećem odjeljku ovog članka, ali prije nego što prijeđemo na to, pokušajmo s još jednom AT naredbom i vidimo što će se dogoditi.

Uključite Caps Lock na računalu i unesite AT+CWLAP. Kada vidite AT+CWLAP u prozoru terminala PuTTY, držite pritisnutu tipku Ctrl i pritisnite prvo tipku M, a zatim tipku J. Otpustite tipku Ctrl. Nakon nekoliko sekundi, prozor terminala trebao bi izgledati kao na slici ispod.


AT+CWLAP prisiljava ESP8266 da ispiše sve dostupan Wi-Fi pristupne točke. U gornjem slučaju pronađene su dvije pristupne točke: jedna se zove "ATT936", a druga se zove "tracecom 2.4". Naravno, vaši će se rezultati razlikovati i trebali bi uključivati ​​vašu vlastitu Wi-Fi mrežu kao i mreže vaših susjeda.

Zatvorite prozor sesije terminala PuTTY i kliknite u redu kada PuTTY pita jeste li sigurni.

Alat za preuzimanje ESP Flasha

Iako se rijetko spominje na internetu, Espressif, programeri čipa ESP8266, napravili su neki softver za ažuriranje firmvera u svojim čipovima. Ovo je ESP Flash alat za preuzimanje i ovaj je alat dostupan. Preuzmite, raspakirajte i instalirajte najnoviju verziju na svoje računalo; u vrijeme pisanja ovo je FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar.

Pokrenite alat i trebali biste vidjeti dva otvorena prozora: prozor grafičkog sučelja (GUI) s poljima za unos informacija i prozor terminala u kojem se čuva dnevnik dovršenih radnji.

Prozor grafičkog korisničkog sučelja (GUI) ESP Flash alata za preuzimanje

Postoji nekoliko stvari koje vrijedi napomenuti, ali nema razloga za brigu:

  • prozor (GUI) identificiran je kao V2.3, dok je prozor dnevnika identificiran kao V2.4. Očito je GUI prozor netočno označen;
  • polja za odabir COM porta i brzine prijenosa u GUI prozoru možda već sadrže podatke;
  • polja za unos adrese u GUI prozoru možda već sadrže podatke;
  • prozor dnevnika možda već sadrži podatke.

Dobivanje najnovijeg firmvera

Espressif ima stranicu koja navodi najnoviji firmware. Idite na bbs.espressif.com, kliknite na unos SDK-a na popisu preuzimanja, a zatim kliknite na "najnovije izdanje" u odjeljku Najave. U vrijeme pisanja teksta, na ovoj stranici moglo se vidjeti sljedeće:


Najnovija verzija Non-OS SDK (Software Development Kit) je ono što nam treba, i izgleda da ćete ako kliknete na "Najnovija verzija: 1.4.0" dobiti najnoviju verziju. Ali nije tako; Imajte na umu da je dostupna zakrpa navedena kao esp_iot_sdk_v1.4.1_15_10_22. Ovo nije zakrpa; Ovo je ispravljena verzija firmvera verzije 1.4.0. Trebamo ga i bin datoteke AT_v0.50. Pritisnite svaki od njih redom i preuzmite datoteke.

Naravno, dok ovo budete čitali, moglo bi ih biti još najnovije verzije SDK-ovi i njihove lokacije podložni su promjenama, ali prema barem, znaš gdje tražiti. Samo pažljivo pročitajte kako biste bili sigurni da preuzimate najnoviju verziju. Kao što smo ranije vidjeli, to nije uvijek očito.

Možda ste primijetili da postoji dio za preuzimanje dokumenata. Sve one sadrže visokokvalitetne informacije, ali ponekad se njihov značajan dio izgubi u prijevodu s kineskog na engleski. Za sada ne zaboravite nabaviti najnovije verzije ESP8266 AT Instruction Set i Espressif IOT SDK korisnički priručnik.

Instalacija firmvera

Pokrenite alat za preuzimanje ESP flasha i uvjerite se da nema potvrdnih okvira s lijeve strane gornji kut GUI prozor nije označen. Unesite COM port koji koristite i brzinu prijenosa od 115200 u polja za unos na dnu prozora. Imajte na umu da se kako unosite podatke, oni bilježe u prozor dnevnika.

Uključite svoj ESP set za programiranje i spojite ga na svoje računalo. Pritisnite i držite tipku Reset, a zatim pritisnite i držite Gumb za bljeskalicu. Otpustite tipku Reset, a zatim otpustite tipku Flash. Pritisnite gumb POČETAK Prozor GUI alata ESP Flash Tool. Program za flash pokretanje trebao bi provjeriti ESP8266 u vašoj verziji i generirati izvješće slično donjem. Pritisnite i pustite tipku Reset na matičnoj ploči da biste izašli iz načina rada firmvera ESP8266 i nastavili s normalnim radom.


Imajte na umu da GUI prozor sada sadrži informacije o ESP8266, uključujući veličinu flash memorije (8 Mbit u primjeru), taktna frekvencija(u primjeru 26 MHz) i dvije MAC adrese za čip. Iste informacije sadržane su u prozoru dnevnika.

Zatim kliknite na potvrdni okvir u GUI prozoru koji kaže " SpiAutoSet", što će uzrokovati da alat za pokretanje automatski odabere ispravnu veličinu bljeskalice i brzinu takta.

Sada moramo odabrati datoteke koje ćemo instalirati u ESP8266 i postaviti početnu memorijsku adresu za svaku datoteku. Za ažuriranje ESP čipa, četiri datoteke moraju biti ispravno instalirane. Otvorite korisnički priručnik Espressif IOT SDK i potražite odjeljak o pisanju slika u flash memoriju. U verziji 1.4 vodiča počinje na stranici 20. Zatim pronađite pododjeljak koji opisuje verziju koju podržava Cloud Update (FOTA) i u tom pododjeljku pronađite tablicu o veličini flash memorije u vašem ESP8266. U ovom primjeru, veličina flash memorije je 8 Mbita, što je jednako 1024 kilobajta, tako da Tablica 2 na stranici 25 priručnika sadrži podatke potrebne za primjer. Pogledajmo sliku ispod.


Potrebne su ove četiri datoteke: esp_init_data_default.bin, blank.bin, boot.bin i user1.bin. Adresa na koju treba instalirati svaku datoteku prikazana je pored naziva datoteke. Prve tri potrebne datoteke nalaze se u direktoriju esp_iot_sdk_v1.4.1_15_10_22, prethodno preuzetom s bbs.espressif.com, a četvrta se nalazi u AT_v0.50 bin datotekama. Dođite do mjesta gdje se nalaze te preuzete datoteke i kopirajte njihove putanje u polja za unos na vrhu prozora GUI programi Flash alat za preuzimanje; Unesite točnu adresu za svaku datoteku u polje pored naziva datoteke. Slijedite ove korake za svaku datoteku:

  • kliknite unutar polja za unos "set firmware path";
  • kliknite na gumb... desno od polja za unos;
  • idite na mjesto gdje je datoteka pohranjena i kliknite na datoteku. GUI će automatski unijeti put datoteke u polje za unos;
  • unesite točnu adresu (iz tablice) za svaku datoteku.

Imajte na umu da datoteke koje je potrebno preuzeti možda neće biti iste kao one navedene u tablici u ovom primjeru, ali će im biti blizu.

Sada kliknite na četiri potvrdna okvira lijevo od naziva svake datoteke. GUI prozor Alata za preuzimanje Flasha trebao bi izgledati kao na slici ispod. Još jednom provjerite adrese u tablici.

Na rasporedu vašeg ESP firmvera pritisnite i držite tipku Reset, a zatim pritisnite i držite tipku Flash. Otpustite tipku Reset, a zatim otpustite tipku Flash. Pritisnite gumb POČETAK Prozor GUI alata ESP Flash Tool. Preuzimanje bi trebalo započeti i napredak bi trebao biti prikazan u GUI prozoru i prozoru dnevnika Flash alata za preuzimanje kao što je prikazano u nastavku.


Kao što je gore prikazano, uspješna operacija flash firmware-a rezultirat će slanjem svih datoteka na ESP8266 i zatvaranjem COM porta.

Provjera uspješnosti firmware-a

Kada je operacija bljeskanja dovršena, zatvorite Flash Download Tool. Isključite napajanje iz rasporeda programiranja ESP-a, a zatim ponovno spojite napajanje.

Ponovno pokrenite PuTTY, odaberite svoju spremljenu ESP8266 sesiju i kliknite Opterećenje. Ovo bi trebalo postaviti vaš prethodno odabrani COM postavke priključak i brzinu prijenosa u odgovarajućim prozorima. Klik Otvoren, i otvorit će se novi prozor sesije PuTTY terminala.

Uključite Caps Lock na računalu i upišite AT, ali nemojte pritisnuti Enter. Trebali biste vidjeti AT u prozoru terminala PuTTY. Unesite + simbol nakon kojeg slijedi GMR. Kada vidite AT+GMR u prozoru terminala PuTTY, držite pritisnutu tipku Ctrl i pritisnite prvo tipku M, a zatim tipku J. Otpustite tipku Ctrl. U prozoru PuTTY terminala trebali biste vidjeti informacije o ESP8266 firmware-u slične onima prikazanim u nastavku.


Kao što vidite, ESP8266 očito ima instaliran novi firmware. Ažuriran je s SDK verzije 1.1.1 na SDK verziju 1.4.0. Osim toga, instalirana je i odgovarajuća verzija 0.50.0.0 skupa AT naredbi.

Zatvorite prozor sesije terminala PuTTY i kliknite u redu kada PuTTY pita jeste li sigurni.

I konačno

Nekoliko vježbi i cijeli proces ažuriranja firmvera trajat će puno manje vremena nego što je potrebno za čitanje ovog članka. Nakon što to učinite, imat ćete povjerenja u ono što se nalazi unutar vašeg ESP8266 i moći ćete se usredotočiti na svoj Wi-Fi projekt umjesto da nagađate ESP firmware i nadate se podršci potreban set AT naredbe.

... Općenito, ovaj materijal nije ograničen samo na jednu Arduino temu.

Tema ESP8266 prilično je teška. Ali ako radite s ovima Wi-Fi moduli u Arduino IDE razvojnom okruženju prag ulaska pada na razinu prihvatljivu za prosječnog Arduino korisnika. I ne samo Arduino tip, nego svaka osoba koja ima želju smisliti nešto na tu temu, a da ne troši puno vremena na čitanje dokumentacije za čip i proučavanje API-ja za te module.

Ovaj video u potpunosti duplicira materijal predstavljen u članku ispod.

Pa, već znamo kako spojiti ESP8266 i staviti ga u način rada za programiranje, a sada prijeđimo na nešto korisnije.

Odmah ću reći da nakon što programiramo modul u Arduino razvojnom okruženju, uništavamo izvorni firmware i više nećemo moći raditi s modulom pomoću AT naredbi. Osobno me ovo ne čini hladnim/vrućim, ali ako nekome treba, pred kraj članka pokazat ću vam kako flashati nativni firmware natrag u modul ili neku vrstu bootloadera poput NodeMcu.

Za početak preuzmite najnoviju verziju Arduino IDE na službenoj web stranici, na ovaj trenutak ovo je 1.6.7. Starije verzije poput 1.0.5. neće odgovarati jer jednostavno nemaju potrebna funkcionalnost, ali ples uz tamburicu nas ne zanima, zar ne?

Pokrećemo razvojno okruženje i odmah idemo na File/Settings:

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

Zatim idite na Tools/Board:/Board Manager...:

Pred nama će se pojaviti prozor upravitelja ploče, pomičite se kroz njega do samog dna i ako je sve ispravno napravljeno vidjet ćemo nešto poput ovoga:

Kliknite kursor na natpis " esp8266 po Zajednica ESP8266"nakon toga imamo gumb "Instaliraj", odaberite potrebnu verziju, uzimam najnoviji, od danas je 2.1.0. i instalirajte ga. Razvojno okruženje će preuzeti datoteke koje su mu potrebne (oko 150 megabajta) i nasuprot natpisu " esp8266 po Zajednica ESP8266 Pojavit će se "INSTALLED", odnosno instalirano:

Pomičemo se nizom popisa ploča i vidimo da imamo mnogo različitih ESP-ova na popisu, uzmite "Generic ESP8266 Module":

Idite na “Alati” i odaberite željeni COM port (za mene je to COM32), zatim postavite Brzinu slanja: “115200”:

Postavljamo brzinu na 74880 i "NL & CR" i ponovno ga isključimo i uključimo napajanje i on će odgovoriti s nekim informacijama o otklanjanju pogrešaka:

Imajte na umu da 74880 nije glavna brzina ESP8266, ona samo šalje informacije o otklanjanju pogrešaka. Ako modul ne šalje ništa na konzolu, onda je nešto možda pogrešno spojeno.

Prema zadanim postavkama, brzina bi trebala biti 115200, ali u nekim slučajevima može biti 9600 i drugima... Pa pokušajte pronaći.

Nakon odabira željene brzine šaljemo modul “AT” i on bi trebao odgovoriti da je sve u redu. Naredba "AT+GMR" prikazuje informacije o firmveru.

Prije nego počnete treptati ESP8266 u Arduino IDE, savjetujem vam da pročitate članak do kraja.

Sada pokušajmo flashati ESP8266 preko Arduino IDE. Stavili smo modul u način rada za programiranje (napisao sam kako to učiniti).

Dodajmo standardnu ​​LED lampicu:

// Autor: g. PodelkinTs youtube.com/RazniePodelki // posebno za site/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite( TXD, HIGH); kašnjenje (1000); digitalWrite (TXD, LOW); kašnjenje (1000); )

bljesnuo? Dakle, sve je učinjeno ispravno. Odakle mi da je LED spojena na prvi pin? U prethodnom članku nalazi se slika s pinoutima različitih modula, a tu je i oznaka portova kada se koristi Arduino bootloader (pinovi su označeni ružičastom bojom).

Treperenje LED diode je naravno dobro, ali moramo instalirati neku vrstu web poslužitelja ili početi kontrolirati LED diodu barem pomoću gumba u pregledniku, zar ne? Ali o tome ću vam pričati neki drugi put.

A sada kako vratiti izvorni firmware, i općenito kako flashati modul utovarivači trećih strana. Za ESP8266 postoji takav program kao što je NodeMCU Flasher, koji je izvorno namijenjen treptanju NodeMCU pokretačkog programa. No, kako se pokazalo, savršeno bljeska drugi firmware.

Članku ću priložiti arhivu s ovim programom i firmverom radi praktičnosti, ali uvijek možete preuzeti novu verziju NodeMCU Flashera.

U mapi “nodemcu-flasher-master” nalaze se 2 mape Win64 i Win32 i ovisno o bitnoj dubini vašeg OS-a odaberite onu koja vam je potrebna. Zatim u mapi Release pokrenite “ESP8266Flasher.exe” i pogledajte sučelje programa:

Odaberite željeni COM port i idite na karticu "Config", uklonite križić pored "INTERNAL://NODEMCU" i stavite ga jednu točku niže, kao na snimci zaslona:

(Ako želite flashati NodeMCU bootloader, uklonite križić tamo gdje nije bio i stavite ga tamo gdje je bio, to jest blizu "INTERNAL://NODEMCU").

Zatim kliknemo na zupčanik i izaberemo gdje se nalazi naš firmware, firmware je obično u *.bin formatu (u priloženoj arhivi to je “v0.9.5.2 AT Firmware.bin” koji se nalazi u glavnoj mapi), i također odaberite “0x00000” kao i više.

Ponovno se vraćamo na karticu "Rad", stavljamo modul u način rada za programiranje i kliknemo "Flash":

To je to, modul je počeo bljeskati, nakon bljeskanja, ne zaboravite ponovno pokrenuti modul i voila, bljeskao je s firmwareom koji nam je potreban.

Provjeravamo AT naredbom “AT+GMR” jesmo li sve dobro napravili:

Kao što vidite, sve je prošlo glatko.

Kako testirati ESP8266

Za testiranje ESP8266 koji ste upravo kupili trebat će vam.

Pažnja!Dopušteni raspon napona napajanja za modul ESP8266 je od 3,0 do 3,6 volta. Inings visoki napon opskrba modula zajamčeno će uzrokovati kvar ESP8266.

Da biste testirali ESP8266 ESP-01, samo spojite tri pina: VCC i CH_PD (omogućavanje čipa) na napajanje od 3,3 volta i GND na masu. Ako nemate ESP-01, ali drugi modul i GPIO15 je izlaz na njemu, onda ćete morati dodatno spojiti GPIO15 na masu.

Ako je tvornički firmver uspješno pokrenut na modulu ESP8266, crveni LED će zasvijetliti (indikator napajanja, na nekim verzijama modula, na primjer ESP-12, može biti odsutan), a plavi LED će zatreptati nekoliko puta (ovo je indikator prijenosa podataka od modula do terminala preko TX-RX linije, može imati drugu boju) i u vašem bežična mreža trebala bi se pojaviti nova pristupna točka s nazivom “ESP_XXXX”, koju možete vidjeti na bilo kojem WiFi uređaji. Naziv pristupne točke ovisi o proizvođaču firmvera i može biti drugačiji, na primjer AI-THINKER_AXXXXC. Ako se pristupna točka pojavi, možete nastaviti s eksperimentima, ako ne, ponovno provjerite napajanje, CH_PD, GND i ako je sve ispravno spojeno, najvjerojatnije imate neispravan modul, ali postoji nada da firmware u modulu ima nestandardne postavke i možda će vam bljeskanje pomoći.

Kako brzo spojiti ESP8266

U minimalni set za spajanje i flashanje ESP8266 modul uključuje:

Pažnja! Na desnoj slici spajate UTXD (TX) i URXD (RX) modula ESP8266 na pet voltnu TTL logiku na vlastitu odgovornost i rizik! Dokumentacija za ESP8266 SoC navodi da je modul tolerantan samo na 3,3 V logiku. U većini slučajeva, spajanje ESP8266 na pet voltnu logiku NEĆE oštetiti ESP8266, ali vaš modul može biti nesretan. Kako bi se uklonio rizik od kvara modula ESP8266, preporučuje se korištenje 3,3-voltnog USB-TTL pretvarača, ili TTL 5v-3,3v pretvarača, ili razdjelnika otpornika (nije prikazano na slici). Više detalja o odobrenju logičke razine možeš čitati. Rizični štreberi poput mene spajaju ESP8266 na pet voltnu TTL logiku izravno i ne gnjave se.

Pažnja! Desna slika prikazuje spajanje stabilizatora snage 1117 bez dodatnog ožičenja. Ovo radi, ali ipak preporučujemo korištenje dijagrama povezivanja s trimom kondenzatora - provjerite dijagram povezivanja s podatkovnom tablicom za vaš stabilizator ili upotrijebite gotov modul temeljen na 1117.

ESP8266 - veza

Crveno - napajanje od 3,3 V

Crna - GND

Žuta - na strani ESP8266 - RX, na strani USB-TTL - TX

Zelena - ESP8266 strana - TX, USB-TTL strana - RX

Narančasto - CH_PD (CHIP ENABLE) - uvijek mora biti priključen na napajanje

Plavo - GPIO0 - spojeno preko prekidača na uzemljenje kako bi se omogućio modus treptanja modula. Za normalno pokretanje modula, GPIO0 se može nigdje ostaviti nepovezan.

Ružičasto na desnom dijagramu - nestabilizirano napajanje 5-8 volti

4. Da biste pokrenuli modul, prekinite krug GPIO0 - GND i možete uključiti napajanje (i to točno ovim redoslijedom: prvo se uvjeravamo da GPIO0 "visi u zraku", zatim napajamo VCC i CH_PD)

Pažnja! U gore navedenim, zapravo radnim, primjerima povezivanja ESP8266, oni koriste spajanje ESP8266 pinova "izravno" na uzemljenje i napajanje, ili "vise u zraku", jer nigdje nemamo spojen RESET, što je apsolutno netočno i prikladan samo za prvih nekoliko eksperimenata, iako prilično dobro radi na velikoj većini modula. Samo VCC pin je povezan "izravno" na napajanje; preostali pinovi: CH_PD, RESET, GPIO0, GPIO2 moraju se povući (pullup) na napajanje (VCC) kroz otpornik od 4,7 do 50 kOhm. "Izravno", povezujemo samo GND s minusom (zajednička žica) napajanja i povlačimo GPIO0 (pulldown) također kroz otpornik do 10k na GND kako bismo stavili modul u način rada za preuzimanje firmvera. Ako planirate nastaviti eksperimentirati s ESP8266, učinite to na isti način kao i za sve druge mikrokontrolere. Detaljan opis pullup i pulldown su izvan opsega ovog članka, ali možete lako guglati opis ispravne veze I/O portova. Veza “ ” omogućit će vam da izbjegnete mnoga “čuda” i probleme i bit će neizbježno potrebna ako naiđete na poteškoće pri pokretanju ili flešovanju modula ESP8266.

Kako pravilno spojiti ESP8266

Ako planirate koristiti ESP8266 dulje od jedne večeri, trebat će vam opcija povezivanja koja nudi veću stabilnost. Ispod su dva dijagrama povezivanja: s podrškom za automatsko učitavanje firmvera iz i bez njega.

Dijagram povezivanja za ESP8266 (bez automatskog učitavanja firmvera, bljeskamo ga prvo instaliranjem BURN kratkospojnika i ponovnim pokretanjem modula)

Dijagram povezivanja s podrškom za automatsko učitavanje firmvera iz Arduino IDE, UDK, Sming. Flash alat za preuzimanje i XTCOM_UTIL možda će morati onemogućiti RTS/DTR. Ako vam nije zgodno onemogućiti RTS i DTR, možete dodati kratkospojnike u krug

Ovi dijagrami ne prikazuju vezu ADC-a i slobodnih GPIO-a - njihova veza ovisit će o tome što želite implementirati, ali ako želite stabilnost, ne zaboravite povući sve GPIO-e na napajanje (pullup), a ADC na masu (pulldown) ) kroz pull-up otpornike .

Otpornici od 10 k mogu se zamijeniti s drugima od 4,7 k do 50 k, s izuzetkom GPIO15 - njegova vrijednost mora biti do 10 k. Vrijednost kondenzatora, koji izglađuje visokofrekventne pulsacije, može biti drugačija.

Morat ćete spojiti RESET i GPIO16 putem otpornika dubokog mirovanja od 470 Ohma ako koristite način dubokog mirovanja: za izlazak iz načina dubokog mirovanja, modul se sam ponovno pokreće primjenom niske razine na GPIO16. Bez ove veze, duboki san će za vaš modul biti vječan.

Na prvi pogled, ovi dijagrami sugeriraju da su GPIO0, GPIO2, GPIO15, GPIO1 (TX), GPIO3 (RX) zauzeti i da ih ne možete koristiti za svoje potrebe, ali to nije slučaj. Visoka razina na GPIO0 i GPIO2, niska razina na GPIO15 potrebne su samo za pokretanje modula, a kasnije ih možete koristiti prema vlastitom nahođenju, samo ne zaboravite osigurati potrebne razine prije ponovnog pokretanja modula.

Možete koristiti TX, RX kao GPIO1 odnosno GPIO3, ne zaboravljajući da će, kada se modul pokrene, bilo koji firmver povući TX, šaljući informacije o otklanjanju pogrešaka na UART0 brzinom od 74480, ali nakon uspješnog učitavanja možete ih koristiti ne samo kao UART0 za razmjenu podataka s drugim uređajem, ali i kao obični GPIO.

Za module s manjim brojem ožičenih pinova, kao što je ESP-01, nije potrebno spajanje poništenih pinova, tj. na ESP-01, samo su VCC, GND, GPIO0, GPIO2, CH_PD i RESET povezani - samo ih zategnite. Nema potrebe za lemljenjem izravno na ESP8266EX čip i privlačenjem neusmjerenih pinova, samo ako vam je to potrebno.

Ovi dijagrami povezivanja rođeni su nakon mnogih eksperimenata koje su proveli naši članovi foruma i prikupljenih malo po malo iz raštrkane i isprva nedostupne dokumentacije naše zajednice, samo sam pokušao kombinirati ovo znanje na jednom mjestu. Naći ćete mnogo savjeta za povezivanje. Tamo možete postaviti pitanja koja vas zanimaju ili pronaći. Ako vidite pogrešku, netočnost u ovom članku ili želite nešto dodati, tada .

Pažnja! Čak se ni ove sheme ne mogu nazvati "idealnima". Ne postoji granica savršenstvu: prikladno je spojiti drugi USB-TTL na UART1 (s ESP8266 možete uzeti samo GND i UTXD1, tj. GPIO2) za spajanje terminala za otklanjanje pogrešaka (trebat će vam drugi USB-TTL pretvarač) - tada možete fleširati ESP8266 modul putem UART0 bez onemogućavanja terminala za otklanjanje pogrešaka na UART1. Bilo bi dobro spojiti male otpornike na pinove oba UART-a, staviti diodu u RTS liniju, dodati kondenzator na strujnu liniju za prigušivanje niskofrekventnih impulsa itd. Vrlo je zgodno, na primjer, učinjeno u ovoj ploči za otklanjanje pogrešaka: LED diode su spojene na sve GPIO, fotootpornik je spojen na ADC, ali šteta je što nema gumba RESET i postoji samo jedan kratkospojnik na GPIO0.

Bilo bi ispravno reći da ne postoji idealno i istovremeno univerzalna shema ESP8266 veze. Stvar je u tome što puno ovisi o firmware-u koji ćete tamo uploadati. Gornji dijagrami dizajnirani su za početnike koji tek počinju svladavati ESP8266 za eksperimentiranje. Za prave projekte, možda ćete morati malo promijeniti dijagram. Na primjer, trebate spojiti RTS na GPIO15, a CTS na GPIO13. također u pravi projekti Preporučujem posebnu pozornost posvetiti prehrani.

Povezivanje ESP8266 putem Arduina

Ako nemate 3,3 V USB-TTL konverter pri ruci, ali imate Arduino s ugrađenim USB-TTL konverterom, tada možete koristiti ovaj dijagram povezivanja

Na što obratiti pozornost:

1. Arduino Reset je spojen na GND (plava žica) kako se mikrokontroler na Arduinu ne bi pokrenuo, u ovom obliku koristimo Arduino kao transparentni USB-TTL pretvarač

2. RX i TX nisu spojeni unakrsno, već direktno - RX - RX (zeleno), TX - TX (žuto)

3. Sve ostalo je povezano na isti način kao u prethodnim primjerima

Pažnja! Ovaj sklop također zahtijeva usklađivanje TTL razina od 5 volti na Arduinu i 3,3 volta na ESP8266, ali ovako dobro radi.

Pažnja!Arduino možda ima instaliran stabilizator snage koji neće izdržati struju koju zahtijeva ESP8266, stoga prije povezivanja provjerite podatkovnu tablicu za stabilizator koji ste instalirali. Ne spajajte druge komponente koje troše energiju istovremeno s ESP8266 zbog rizika od oštećenja regulatora snage ugrađenog u Arduino.

Uz vezu s serijski priključak Morat ćete malo čarati: zbog raznolikosti firmvera za ESP8266, veza se može uspostaviti različitim brzinama. Potrebna brzina se može odrediti jednostavnim pretraživanjem kroz tri opcije: 9600, 57600 i 115200. Kako pretraživati? Spojite se na svoj virtualni serijski priključak u terminalskom programu postavljanjem sljedećih parametara: 9600 8N1, zatim ponovno pokrenite modul isključivanjem CH_PD (chip enable) iz napajanja (USB-TTL ostaje spojen na USB) i ponovnim uključivanjem (tj. jednostavno uključite CH_PD, zašto ne bismo iskrivili napajanje - pročitajte, možete također kratko spojiti RESET na masu za ponovno pokretanje modula) i promatrati podatke u terminalu. Prvo bi LED diode na ESP8266 trebale svijetliti kao što je opisano na početku članka u odjeljku. Drugo, u terminalu biste trebali vidjeti "smeće" iz različiti likovi, završava retkom "spreman". Ako ne vidimo "spremno", tada se ponovno povezujemo s terminalom drugom brzinom i ponovno pokrećemo modul.

Na jednoj od opcija brzine "spreman" i dalje ćete vidjeti - čestitamo, vaš modul je spreman za upotrebu. Ako ne, onda dobrodošli - pokušat ćemo pomoći, ali prvo pročitajte.

Još malo o "smeću". Činjenica je da kada se pokrene firmware, UART modula ESP8266 prebacuje se na brzinu prijenosa od 74.880 (ovi Kinezi su tako smiješni), šalje informacije o ispravljanju pogrešaka na UART, a zatim prebacuje brzinu porta na 115200 (ili 9600 ili 57600, ovisno o verziji firmvera) , pa nam se ove informacije o otklanjanju pogrešaka čine kao smeće, jer povezujemo se s modulom drugom brzinom. Možete se spojiti na ESP8266 pri brzini od 74,880 (podržava ovu brzinu) i vidjet ćete ove informacije o otklanjanju pogrešaka, bit će otprilike ovako:

wdt resetiraj učitavanje 0x40100000, len 25052, soba 16 rep 12 chksum 0x0b ho 0 rep 12 soba 4 učitavanje 0x3ffe8000, len 3312, soba 12 rep 4 chksum 0x53 učitavanje 0x3ffe8cf0, leća 6576, soba 4 rep 12 chk zbroj 0x0d csum 0x0d

wdt resetirati

opterećenje 0x40100000, dužina 25052, soba 16

load 0x3ffe8cf0, len 6576, soba 4

rep 12

chksum 0x0d

csum 0x0d

ALI! nećete vidjeti "spreman" i nećete moći kontrolirati modul dok se ponovno ne povežete na brzinu kojom se pokreće firmware.

Što dalje činiti

Ako imate novi modul, onda najvjerojatnije ima jedan od starih prilagođenih firmwarea za AT. Najvjerojatnije je ovo neka vrsta AI-THINKER AT v0.16 SDK v0.9.2. Možete provjeriti verziju firmvera pomoću naredbe “AT+GMR”, tj. izravno u terminalskom programu upišite AT+GMR bez navodnika i pritisnite Enter. Modul bi trebao odgovoriti "OK" i prikazati verziju firmvera (na primjer, "0016000092" - u različite verzije Izlazni format verzije firmvera AT je drugačiji). Upravljanje ESP8266 modulom s AT naredbama zaslužuje poseban članak, ali to možete lako shvatiti sami koristeći jednu od naših referentnih knjiga o AT naredbama:

U vrijeme pisanja ovog članka)

2. Preuzmite jedan od uslužnih programa za flashanje ESP8266 ovisno o vašem operativnom sustavu iz odjeljka na našoj web stranici

Toliko sjajan da osim firmvera za korištenje ESP8266 kao WiFi modula kojim upravlja vanjski mikrokontroler, postoji mnogo firmvera za korištenje kao mikrokontrolera za različite namjene, uključujući i područje Interneta stvari. U ovoj seriji članaka istražit ćemo mogućnosti ESP8266 s firmwareom NodeMCU i naučite skriptni jezik LUA.

Što je ESP8266?

ESP8266 je mikrokontroler sa WiFi sučelje ohm Može se koristiti kao WiFi modul i kao mikrokontroler.

Prednosti ESP8266: WiFi sučelje, 32-bitna jezgra s dovoljnom izvedbom, niska cijena.
Protiv: U usporedbi s drugim 32-bitnim mikrokontrolerima, periferni uređaji su neuvjerljivi.

ESP8266 je idealan za kućne projekte, Internet of Things. ESP8266 je programiran putem UART serijskog porta, tako da nije potreban poseban programer za flash njegovog firmware-a. Posebnost ovog mikrokontrolera je da može izvršavati program koji se nalazi na vanjskoj Flash memoriji. Ovo proizvođaču omogućuje "povećanje" glasnoće Flasha, što je također plus.

Dostupni su različiti moduli bazirani na ESP8266:

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

Postoje različite verzije ploča s već zalemljenim ESP8266 modulima, stabilizatorima napona, mikro krugom za osiguravanje rada UART serijskog porta putem USB-a i pinovima, gumbima itd., Usmjerenim na češalj. Da biste radili s takvim pločama, samo ih spojite USB priključak Računalo. Nije potrebna dodatna oprema. Vrlo je udoban. Jedna takva ploča je NodeMCU. U primjerima ću koristiti NodeMCU ploču s ESP-12F modulom. Ali, možete jednostavno uzeti modul, recimo ESP-01, spojiti UART-USB adapter na njega i raditi s njim isti način. ESP-01 će imati manje memorije i manje pinova koji se mogu koristiti, ali inače je rad s njim sličan.


Što je NodeMCU?

NodeMCU je otvoreni, besplatni projekt temeljen na Lua skriptnom jeziku. Firmware je prilično moćan i omogućuje vam vrlo brzu implementaciju različitih standardnih projekata. Na primjer, danas ćemo kao uvod napraviti WiFi utičnicu kojom upravlja mobitel i s web sučeljem. Firmware može izvršavati Lua skripte i sa serijskog UART priključka (slično AT naredbama) i iz unutarnje flash memorije (izvršavanje skripti). Lua skripte spremaju se u Flash u interni sustav datoteka. Datotečni sustav je ravan i pojednostavljen. Oni. nema poddirektorija. Ipak, cool je. Ne zaboravite da je ESP8266 samo mikrokontroler. Iz skripti također možete pristupiti datotekama, čitati i spremati razne informacije. NodeMCU je modularan. Što vam, s jedne strane, omogućuje povećanje funkcionalnosti, as druge strane, sastavljanje firmvera samo iz potrebnih modula, bez gubitka memorije.

NodeMCU radi s protokolima za razmjenu podataka - HTTP, MQTT, JSON, CoAP.
Podržano razni senzori
akcelerometri ADXL345,
magnetometri HMC5883L,
L3G4200D žiroskopi,
senzori temperature i vlage AM2320, DHT11, DHT21, DHT22, DHT33, DHT44
senzori temperature, vlažnosti, atmosferskog tlaka BME280,
temperaturni senzori, atmosferski tlak BMP085,
mnogi zasloni koji rade na I2C, SPI sabirnicama. Uz mogućnost rada s različitim fontovima.
TFT zasloni ILI9163, ILI9341, PCF8833, SEPS225, SSD1331, SSD1351, ST7735,
pametne LED diode i LED kontroleri – WS2812, tm1829, WS2801, WS2812,
podržana sučelja – 1-Wire, I2C, SPI, UART,

Također možete koristiti modul za šifriranje, planer zadataka, sat u stvarnom vremenu, protokol za sinkronizaciju sata putem Interneta SNTP, mjerače vremena, ADC kanal (jedan), reproducirati audio datoteke, generirati PWM signal na izlazima (do 6), koristite utičnice, postoji podrška za FatFS, tj. možete spojiti SD kartice i tako dalje.

Što je Lua jezik?

Lua je interpretirani jezik koji, poput većine modernih interpretiranih jezika, može pohranjivati ​​kompajlirane verzije skripti. To vam omogućuje povećanje brzine rada. Lua je pozicioniran kao multi-paradigma. Nije komplicirano, a ako ste već programirali na bilo kojem jeziku, tada ćete vrlo brzo naučiti Lua. Ako tek počinjete programirati, tada će vas Lua iznenaditi svojom dostupnošću za početnike.

Postoje neke osobitosti pri radu s Luom na NodeMCU. To je uglavnom zbog ograničenog kapaciteta memorije mikrokontrolera ESP8266. Treba se držati jednostavna pravila i zadržati stil rada s Luom. Reći ću vam o tim pravilima malo kasnije. Ako zadržite isti stil kao kod pisanja programa u C-u, tada nećete moći osjetiti punu snagu Lua i NodeMCU firmwarea. Kada počnete pisati u Lui, postaje zadivljujuće i počinjete provoditi sve veće zadatke. Gubite osjećaj da radite s mikrokontrolerom i nesvjesno se opterećujete zadacima koji su izvan mogućnosti mikrokontrolera. Mora se imati na umu da ESP8266 ima ograničene resurse i ne treba ga opterećivati ​​zadacima koje mogu obavljati mikroračunala ili potpuna računala.

LUA dokumentacija na ruskom: http://www.lua.ru/doc/
Naučite LUA u 15 minuta: http://tylerneylon.com/a/learn-lua/

Gdje mogu preuzeti NodeMCU?

Naravno, možete preuzeti NodeMCU izvorne kodove (https://github.com/nodemcu/nodemcu-firmware/releases/) i kompajlirati s potrebnim parametrima. Ali nećemo to učiniti. Postoji web stranica https://nodemcu-build.com, na kojem možete sastaviti NodeMCU s modulima koji su vam potrebni. Jednostavno označite module koji su vam potrebni, naznačite svoju e-mail adresu i kliknite gumb “ ispod Započnite svoju izgradnju“. Prvo na navedeni e-mail Dobivam pismo da je skupština počela. A zatim obavijest o završetku i veze za preuzimanje cijeli broj I plutati verzije. Ako u svom projektu nećete koristiti izračune s pomičnim zarezom, preuzmite " cijeli broj“. Nemojte biti pohlepni i uključite module koje ne namjeravate koristiti. U bilo kojem trenutku možete kompajlirati novi firmware dodavanjem modula koji nedostaje. Na primjer, napravio sam NodeMCU sa sljedećim modulima:

Kako prenijeti NodeMCU na ESP8266?

Sada kada imamo NodeMCU firmware datoteku, moramo je prenijeti na ESP8266. Prije svega, kada spojite NodeMCU ploču na svoje računalo, virtualni Kom luka. Obično najnovije verzije Windows instalacija nisu potrebni upravljački programi. Ubuntu će odmah prepoznati povezani uređaj.

NodeMCU firmware za Windows

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

Flash s naredbom:

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

/Dev/ttyUSB0– priključak na kojem visi ESP8266.
The_Path_To_The_NodeMCU_Firmware.bin– put do datoteke firmvera.

Usput, esptool također se može koristiti pod Windowsima. esptool napisano u Pythonu, za rad u Windowsima morate instalirati Python.

esptool koristan nam za punjenje binarne datoteke na sustav datoteka NodeMCU. Možete učitati bilo koje datoteke, uključujući skripte. Možete pisati skripte čak iu Notepadu, ali ja više volim ESPlorer.

ESPlorer, init.lua – pisanje prve skripte

Za pisanje i učitavanje skripti koristit ćemo program ESPlorer. Ovo je višeplatformski program napisan na Java a također ne zahtijeva instalaciju. Radi isto na Windowsima i Ubuntuu.

Raspakirajte arhivu.

U sustavu Windows pokrećemo datoteku ESPlorer.bat

Sudo java-jar ESPlorer.jar

Navedite port i brzinu 9600 :

I pritisnite " Otvoren“. Vidjet ćemo dalje

ESPlorer ima lošu značajku. Ne povezuje se uvijek jasno s NodeMCU. Ako pokušate poslati bilo koju naredbu (pomoću Poslati) u konzoli leti smeće umjesto normalnog odgovora. Ponekad nakon nekoliko ponavljanja sve bude bolje. Ako vam to smeta, pokušajte promijeniti brzinu veze na 115200.


Počnimo stvarati prvu skriptu u Lui. Skripta s imenom init.lua pokreće se automatski nakon pokretanja NodeMCU. Kreirajmo datoteku init.lua.

Ispišimo samo jedan redak:

Ispis ("Da, radi!")

Spremi datoteku kao init.lua. Nakon spremanja, datoteka će se izvršiti i trebali bismo vidjeti kako se izvodi prva skripta.

Prema zadanim postavkama, datoteka se sprema na disk računala i prenosi na ESP8266.

Sada o najvećem problemu koji NodeMCU ima. U slučaju nekih kritičnih pogrešaka (ovo se ne događa često, ali ako se dogodi, pamti se dugo) NodeMCU se može ponovno pokrenuti. A najgore što se može dogoditi je cikličko ponovno pokretanje. To se događa ako napravite kritičnu pogrešku u skripti koja se automatski pokreće. NodeMCU se pokreće, izvršava "buggy" skriptu, nailazi na kritičnu pogrešku i ponovno se pokreće. I tako u nedogled.

Kako bih se zaštitio dok učim NodeMCU, koristim tehniku ​​opisanu u nastavku. U početnoj skripti init.lua pokrećemo mjerač vremena koji će raditi samo jednom i nakon određenog vremena (u ovom slučaju 5 sekundi) provesti proceduru za pokretanje druge skripte (u ovom slučaju glavna.lua). Ništa drugo u scenariju init.lua mi ne Sve operacije izvode se u skripti glavna.lua. Dakle, ako pogriješimo u scenariju glavna.lua, a NodeMCU će otići na cikličko ponovno pokretanje, nakon ponovnog pokretanja imat ćemo 5 sekundi da uklonimo ili popravimo "buggy" skriptu.

init.lua tekst:

Ispis ("Čekanje ...") tmr.register (0, 5000, tmr.ALARM_SINGLE, funkcija (t) tmr.unregister (0); ispis ("Početak ..."); dofile ("main.lua") kraj) tmr.početak (0)

Osim toga, ovaj pristup olakšava uključivanje bilo kojeg potrebna skripta, dovoljno u datoteci init.lua umjesto glavna.lua odredite naziv druge skripte. Ovo je vrlo zgodno kada testirate nekoliko projekata ili nekoliko verzija skripte na jednoj ploči.

Povežite se na Wifi ili stvorite vlastitu Wifi točku

Za spajanje na WiFi, kreirajte main.lua i napišite:

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

Nakon uspješnog spajanja, modul će dobiti IP adresu. Možete ga saznati pomoću naredbe:

Wifi.sta.getip()

Ako želimo da ESP8266 stvori vlastitu WiFi pristupnu točku:

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

Bilješka: WiFi hotspot neće raditi ako je lozinka kraća od 8 znakova. Prema zadanim postavkama, IP adresa točke uvijek je 192.168.4.1

To možete saznati naredbom:

Wifi.ap.getip()

Što se dogodilo skupljati smeće()? Funkcija skupljati smeće je skupljač smeća. Trebalo bi ga pozvati na kraju svake skripte. Obratite pažnju na varijablu cfg deklariran kao lokalni. Bit će dostupan samo u trenutnoj skripti. Ako lokalni ukloniti, zatim varijablu cfg bila bi globalna i dostupna u drugim skriptama.

GPIO. Bljeskanje LED

Da biste kontrolirali relej (uostalom, napravit ćemo WiFi utičnicu), morat ćete naučiti kako raditi s pinovima GPIO. Za sada pokušajmo koristiti GPIO pin kao izlaz i postavite visoku i nisku razinu signala. Radi jasnoće, povežimo LED kao što je prikazano na dijagramu.

My_pin_number = 1 -- Postavite način rada kao izlaz gpio.mode (my_pin_number, gpio.OUTPUT) -- Postavite visoka razina gpio.write (my_pin_number, gpio.HIGH) -- Postavite nisku razinu gpio.write (my_pin_number, gpio.LOW) -- LED trepće 10 puta gpio.serout (1, gpio.HIGH, (+990000,990000), 10, 1)

Numeriranje pinova:

IO indeksESP8266 igla
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) može se koristiti samo kao gpio čitanje/pisanje. Nema podrške za open-drain/interrupt/pwm/i2c/ow

NodeMCU ploča

Napomena: Postoji nekoliko verzija Nodemcu ploča. Pinout vaše ploče može varirati.

Websocket

Sada ćemo napraviti server koji će raditi na navedenom portu (neka bude 333). Zatim ćemo se spojiti na naš poslužitelj pomoću terminalskog programa, navodeći njegov IP i port. A onda ćemo razmijeniti podatke.

Main.lua skripta:

Postavljanje WiFi AP wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --Stvori poslužitelj sv=net.createServer(net.TCP) ) function receiver(sck, data) -- Ispis primljenih podataka print(data) -- Pošalji odgovor sck:send("Recived: "..data) end if sv then sv:listen(333, function(conn) conn:on ("primi", primatelj) conn:send("Zdravo!") end) end print("Pokrenuto.")

Sada naša skripta podiže Wi-Fi točku, stvara poslužitelj koji čeka vezu na portu 333. U trenutku povezivanja, poslužitelj će poslati klijentu niz " Zdravo!“, a primivši podatke od klijenta, vratit će string “ Primljeno:” i onda sve što je prihvatio.

Sada možemo povezati naš mobilni telefon s ESP8266 Wi-Fi točkom. U načelu nije potrebno stvarati točku. Možete ponovno napisati skriptu i natjerati ESP8266 da se poveže s vašim WiFi mreže. Zatim trebate saznati njegov IP i onda ga koristiti umjesto 192.168.4.1, koji se dalje koristi u primjerima.

Ali još uvijek trebamo terminalski program za povezivanje na ESP8266 IP adresu (192.168.4.1) i navedeni port (333). PuTTY možete instalirati na obično računalo. Za Android mobilne telefone koje koristim SokSSH.

Prenesite podatke s mobilnog telefona koristeći JuiceSSH

Instalirajte i pokrenite RoboRemoFree

Stvorite vezu s poslužiteljem. Poželjno je da mobilni telefon/tablet bude spojen na istu WiFi mrežu na kojoj se nalazi poslužitelj. U ovom slučaju, naš ESP8266. Idite na "Izbornik", odaberite "poveži"

Odaberite vrstu veze "Internet (TCP)"

Navedite IP i port

Odabir sučelja. Program vam omogućuje stvaranje nekoliko sučelja s različitim kontrolama.

Zatim prijeđite na način za uređivanje sučelja

Kliknite na slobodan prostor i izaberemo što želimo instalirati. Koristit ćemo gumbe. Odaberite "gumb"

Nakon toga će se na sučelje instalirati gumb. Može se pomicati i mijenjati veličinu.

Da biste promijenili naziv na gumbu, morate kliknuti na njega i odabrati “Postavi tekst”

Zatim ćemo odrediti još jedan parametar - "postavi radnju pritiska". Postavimo ga na "1". Kada kliknete gumb, navedeni niz bit će poslan preko veze koju smo stvorili. Oni. Naš ESP8266 će primiti znak "1" i uključiti LED.

Kreirajmo gumb "Isključeno" na isti način i postavimo akciju pritiska na "0".

Naše sučelje je spremno. Izađite iz načina za uređivanje izvršavanjem stavke izbornika "ne uređuj korisničko sučelje".

Ako je veza s poslužiteljem (ESP8266) bila uspješna, možete ga koristiti. Pritiskom na tipku “On” LED bi trebala svijetliti, a pritiskom na tipku “Off” LED bi se trebala ugasiti.

Web sučelje

Postoji još jedan način - možete napraviti web sučelje i kontrolirati LED preko preglednika.

Ista skripta + web sučelje:

Postavljanje WiFi AP-a wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --Postavi Pin način 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("Hello!") end) end --Create HTTP Server http=net.createServer(net.TCP) function receive_http(sck, 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) 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\nPoslužitelj: NodeMCU na ESP8266\r\nContent-Type: text/html\r\n\r\n".. " NodeMCU na ESP8266".. "

NodeMCU na ESP8266

".. "
".. "Na Isključeno".. "" sck:send(response) end if http then http:listen(80, function(conn) conn:on("receive", receive_http) end) end print("Started.")

Kratko objašnjenje rada web servera općenito, a posebno naše skripte. Standardni port za web poslužitelj je 80. tj. kada upisujete u preglednik http://192.168.4.1/, zatim se preglednik spaja na poslužitelj (192.168.4.1) na portu 80 i šalje zahtjev. Zahtjev izgleda otprilike ovako:

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 Prihvaćam: text/html, application/xhtml + xml, application/xml; q = 0,9, * / *; q = 0,8 Jezik prihvaćanja: ru-RU, ru; q = 0,8, en-US; q = 0,5, en; q = 0.3 Accept-Encoding: gzip, deflate Connection: keep-alive Upgrade-Insecure-Requests: 1

Zanima nas prvi redak upita: “ GET / HTTP/1.1“. Sadrži URL. Ako upisujete u preglednik http://192.168.4.1/ na , tada će prvi redak upita biti " DOBITI /na HTTP/1.1“. A ako utipkate u preglednik http://192.168.4.1/ isključeno onda će biti" DOBITI / isključeno HTTP/1.1“. Upravo taj redak skripta analizira i, ovisno o primljenom URL-u, uključuje ili isključuje LED.

Zatim skripta šalje html stranicu. Ali nakon slanja morate prekinuti vezu. Pošto slanje traje neko vrijeme, a čekanje kraja slanja je tehnički glupo, događaj “ poslao” (poslano) povežite funkciju s nizom sck:close(). To se radi u retku: sck:on(“poslano”, funkcija(sck) sck:close() kraj). P nakon čega se vrši slanje html stranice sck:pošalji(odgovor). S kripta nastavlja s radom. Kada je odgovor u potpunosti poslan, radit će sck:close().

Stranice velika veličina Na ovaj način ga nećete moći poslati. Teški sadržaj mora se slati u komadima. O tome će biti više riječi u drugom članku.

Spojimo relej s opterećenjem

Pažnja! Napon veći od 40 volti je opasan za ljudski život! Budite oprezni i oprezni pri sastavljanju strujnog kruga i spajanju kućanskih aparata. Ne dodirujte dijelove pod naponom.

Sada umjesto LED diode spojimo relejni modul, a kao opterećenje recimo lampu, grijač, kompresor za akvarij, ventilator itd.

Prilikom spajanja releja mogu postojati neke nijanse. Ako je relejni blok optički izoliran (s optokaplerom), tada najvjerojatnije nećete morati ništa ponavljati. Ako je blok releja bez optičke izolacije, kao što je moj, tada ćete morati ponoviti rad s GPIO-om, budući da je prvo relej uključen na niskoj razini, a ne na visokoj, a drugo, visoka razina ESP8266 je 3,3 V , za blok releja od 5 volti to nije dovoljno, pa sam morao postaviti izlaz na OPENDRAIN, nakon čega je sve radilo kako treba.

Konačna verzija skripte izgleda ovako:

Postavljanje WiFi AP wifi.setmode(wifi.STATIONAP) cfg=() cfg.ssid="ESPTEST" cfg.pwd="1234567890" wifi.ap.config(cfg) --Postavi PIN način 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" zatim --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 ("Hello!") end) end --Stvori HTTP poslužitelj http=net.createServer(net.TCP) funkcija receive_http(sck, data) print(data) lokalni zahtjev = 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. LOW) 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) lokalni odgovor = "HTTP/1.0 200 OK\r\nPoslužitelj: NodeMCU na ESP8266\r\nContent-Type: text/html\r\n\r\n".. " NodeMCU na ESP8266".. "

NodeMCU na ESP8266

".. "
".. "Na Isključeno".. "" sck:send(response) end if http then http:listen(80, function(conn) conn:on("receive", receive_http) end) end print("Started.")

Sada možemo uključiti i isključiti “utičnicu” s mobilnog telefona pomoću programa RoboRemoFree ili preglednika. Naravno, njime možete upravljati i s običnog računala putem preglednika.



Sve je to dobro, ali što dalje? Ako imamo 5, 10, 20 sličnih uređaja? Kako ih kombinirati da se ne morate spajati na svaki uređaj posebno. Za to postoji MQTT protokol, ali to će biti posebna tema. U međuvremenu ćemo istražiti mogućnosti ESP8266 i NodeMCU.

Neka pravila za rad s jezikom Lua na NodeMCU

1. Ne pišite dugačke scenarije. Veličina memorije ESP8266 nije beskonačna. Razdvojite program na funkcionalne module i napravite ih kao zasebne skripte, pokrećući ih pomoću dofile(). Na primjer, kod Wi-Fi veze:

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

može se staviti u zasebnu skriptu " wifi.lua” i izvršite ga iz glavne skripte s naredbom dofile(“wifi.lua”).

2. Varijable koje se koriste samo u trenutnoj skripti deklarirajte kao lokalni. Na kraju skripte, kada varijabla više nije potrebna, dodijelite joj vrijednost nula i izričito pozvati skupljača smeća skupljati smeće()

Mnogi su korisnici već obratili pažnju na čip ESP8266-12, koji je objavio Espressif. Cijena mu je znatno jeftinija u odnosu na standardnu ​​Bluetooth adaptersku ploču, a unatoč manjim dimenzijama ima znatno veće mogućnosti. Sada svi kućni entuzijasti imaju priliku raditi na Wi-Fi mreži u dva načina odjednom, odnosno povezati svoje računalo s bilo kojom pristupnom točkom ili ga uključiti kao takvu točku.

S druge strane, morate ispravno shvatiti da takve ploče nisu samo štitovi namijenjeni samo za Wi-Fi komunikaciju. Sam ESP8266 je mikrokontroler koji ima svoja UART, GPIO i SPI sučelja, odnosno može se koristiti kao potpuno autonomna oprema. Nakon izlaska ovog čipa mnogi su ga nazvali pravom revolucijom, a s vremenom će se ovakvi uređaji početi ugrađivati ​​iu većinu jednostavne vrste tehnologije, ali zasad je uređaj relativno nov i ne postoji stabilan firmware nema na njemu. Mnogi stručnjaci diljem svijeta pokušavaju izmisliti vlastiti firmware, uostalom, ulijevanje u ploču zapravo nije teško, ali unatoč raznim poteškoćama, uređaj se već može nazvati sasvim prikladnim za rad.

Trenutačno se razmatraju samo dvije mogućnosti prijave ovog modula:

  • Korištenje pločice u kombinaciji s dodatnim mikrokontrolerom ili računalom koje će upravljati modulom preko UART-a.
  • Neovisno pisanje firmvera za čip, što vam omogućuje da ga kasnije koristite kao samodostatan uređaj.

Sasvim je prirodno da bismo trebali uzeti u obzir neovisni firmware u ovom slučaju nećemo.

Gledajući jednostavnost korištenja i dobre performanse, mnogi ljudi preferiraju model ESP8266 među mnogim mikrokontrolerima. Spajanje i ažuriranje firmware-a ovog uređaja iznimno je jednostavno i pristupačno, a izvodi se na istom hardveru na kojem je oprema spojena na računalo. Odnosno i preko USB-TTL konvertera ili, ako netko više voli druge opcije povezivanja, može i preko RPi i Arduina.

Kako provjeriti?

Da biste provjerili funkcionalnost novokupljenog uređaja, morat ćete koristiti poseban stabilizirani izvor napona od 3,3 volta. Odmah je vrijedno napomenuti da je stvarni raspon napona napajanja ovog modula od 3 do 3,6 volti, a opskrba povećanim naponom odmah će dovesti do činjenice da ćete jednostavno oštetiti svoj ESP8266. Nakon takve situacije, firmware i drugi softver mogu početi raditi neispravno, pa ćete morati popraviti uređaj ili ga nekako popraviti.

Za određivanje funkcionalnosti ovog modela mikrokontrolera potrebno je samo spojiti tri pina:

  • CH_PD i VCC spojeni su na napajanje od 3,3 volta.
  • GND se spaja na masu.

Ako ne koristite ESP-01, već neki drugi modul, a on već u početku ima izlaz GPIO15, tada ćete ga u tom slučaju morati dodatno spojiti na masu.

Ako se tvornički firmver normalno pokrenuo, onda u ovom slučaju možete vidjeti i tada će plavo svjetlo zatreptati nekoliko puta. Međutim, vrijedi napomenuti da nemaju svi uređaji serije ESP8266 crveni indikator napajanja. Firmware na nekim uređajima ne predviđa da crveni indikator svijetli ako ga modul nema (osobito se to odnosi na model ESP-12).

Nakon povezivanja, nova pristupna točka će se aktivirati na vašoj bežičnoj mreži, koja će se zvati ESP_XXXX, i bit će vidljiva sa svih uređaja koji imaju pristup Wi-Fi. U ovom slučaju, naziv pristupne točke izravno ovisi o proizvođaču firmvera koji koristite i stoga može biti nešto drugačije.

Ako se točka ipak pojavi, možete nastaviti s eksperimentiranjem, u protivnom ćete morati ponovno provjeriti napajanje, kao i ispravnost spojeva GND i CH_PD, a ako je sve ispravno spojeno, najvjerojatnije još uvijek pokušavate koristite pokvareni modul ili na Jednostavno ima instaliran firmware s nestandardnim postavkama.

Kako ga brzo spojiti?

Standardni komplet potreban za spajanje ovog modula uključuje sljedeće:

  • sam modul;
  • matična ploča bez lemljenja;
  • kompletan set majka-otac žica dizajniranih za maketa, ili poseban kabel DUPONT M-F;
  • USB-TTL pretvarač baziran na PL2303, FTDI ili nekom sličnom čipu. Najbolja opcija je ako se RTS i DTR također izlaze na USB-TTL adapter, budući da se time može postići dovoljno brzo učitavanje firmware s nekog UDK-a, Arduino IDE-a ili Sminga, a da čak i ne morate ručno prebaciti GPIO0 na masu.

Ako koristite pretvarač od 5 volti, tada ćete u ovom slučaju morati kupiti dodatni stabilizator snage na bazi 1117 čipa ili neki sličan, kao i izvor napajanja (za standardni 1117, čak i obični 5- volt punjač za pametni telefon je sasvim prikladan). Preporuča se ne koristiti Arduino IDE ili USB-TTL kao izvor napajanja za ESP8266, već koristiti poseban, jer se time u konačnici možete riješiti mnogih problema.

Prošireni set kako bi se osigurala udobna i stalni posao s modulom zahtijeva korištenje dodatnih otpornika, LED dioda i DIP sklopki. Osim toga, možete koristiti i jeftini USB monitor koji će vam omogućiti stalno praćenje količine potrošene struje, a također će vam pružiti malu zaštitu USB sabirnica od pojave

Što nam je činiti?

Prije svega, vrijedi napomenuti činjenicu da se u ESP8266 kontrole mogu malo razlikovati ovisno o tome koji model koristite. Danas postoji dosta takvih modula, a prvo što trebate je identificirati model koji koristite i odlučiti se o njegovom rasporedu pinova. U ovoj uputi govorit ćemo o radu s ESP8266 ESP-01 V090 modulom, a ako koristite neki drugi model s GPIO15 pinom (HSPICS, MTDO), morat ćete ga povući na zemlju i za standardno pokretanje modul i za korištenje načina firmvera.

Nakon toga još jednom provjerite je li napon napajanja za spojeni modul 3,3 volta. Kao što je gore spomenuto, dopušteni raspon je od 3 do 3,6 volti, a ako se poveća, uređaj ne radi, ali napon napajanja može čak biti znatno niži od 3 volta navedenih u dokumentima.

Ako koristite 3,3-voltni USB-TTL pretvarač, spojite modul točno kao što je prikazano na lijevoj strani donje slike. Ako koristite isključivo USB-TTL od pet volti, obratite pozornost na desnu stranu slike. Mnogima se može činiti da je pravi krug učinkovitiji zbog činjenice da koristi odvojeni izvor napajanja, ali zapravo, u slučaju korištenja 5-voltnog USB-TTL pretvarača, vrlo je poželjno napraviti i dodatni razdjelnik otpornika kako bi se osiguralo podudaranje logičkih razina od tri i pet volta ili jednostavno upotrijebite modul za pretvorbu razina.

Značajke povezivanja

Desna slika prikazuje spajanje UTXD (TX), kao i URXD (RX) ovog modula na pet voltnu TTL logiku, a takve postupke provodite isključivo na vlastitu odgovornost i odgovornost. Za ESP8266, opis kaže da modul učinkovito radi samo s 3,3-voltnom logikom. U velikoj većini slučajeva, čak i pri radu s pet voltnom logikom, oprema ne kvari, ali takve se situacije povremeno događaju, pa se takav spoj ne preporučuje.

Ako nemate priliku koristiti specijalizirani 3,3-voltni USB-TTL pretvarač, možete koristiti razdjelnik otpornika. Također je vrijedno napomenuti da je na desnoj slici stabilizator snage 1117 spojen bez dodatnog ožičenja i ovo je stvarno radna tehnologija, ali ipak je najbolje koristiti dijagram povezivanja 1117 s ožičenjem kondenzatora - morate ga provjeriti s podatkovnu tablicu ESP8266 za vaš stabilizator ili upotrijebite potpuno gotov jedan modul temeljen na bazi 1117.

Da biste pokrenuli modul, morate otvoriti krug GPIO0-TND, nakon čega možete uključiti napajanje. Vrijedno je napomenuti da sve treba učiniti upravo ovim redoslijedom, odnosno prvo se uvjeriti da GPIO0 "visi u zraku", a tek onda priključiti napajanje na CH_PD i VCC.

Kako se ispravno spojiti?

Ako možete odvojiti više od jedne večeri za ispravno povezivanje modula ESP8266, možete koristiti stabilniju opciju. Na gornjem dijagramu vidite opciju povezivanja s automatsko preuzimanje firmware.

Vrijedno je napomenuti da gornja slika ne prikazuje upotrebu besplatnih GPIO-a ili ADC-ova, a njihovo povezivanje izravno će ovisiti o tome što točno želite implementirati, ali ako želite osigurati stabilnost, ne zaboravite povući sve GPIO-e na napajanje i ADC-ove na uzemljenje pomoću pull-up otpornika.

Ako je potrebno, otpornici od 10k mogu se zamijeniti bilo kojim drugim u rasponu od 4,7k do 50k, isključujući GPIO15, budući da njegova vrijednost ne smije biti veća od 10k. Vrijednost kondenzatora koji izglađuje visokofrekventne pulsacije može biti malo drugačija.

Povezivanje RESET-a i GPIO16 pomoću otpornika dubokog mirovanja od 470 Ohma može postati neophodno kada se koristi odgovarajući način rada, budući da za izlazak iz načina dubokog mirovanja modul izvršava potpuno ponovno pokretanje, prilikom posluživanja niska razina na GPIO16. S odsutnošću ove veze Način dubokog mirovanja za vaš modul trajat će zauvijek.

Na prvi pogled može se činiti da su GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) i GPIO15 zauzeti, pa ih nećete moći koristiti za svoje potrebe, ali zapravo to nije tako. Dovoljno visoka razina na GPIO0 i GPIO2, kao i niska razina na GPIO15, mogu biti potrebne samo za početno pokretanje modula, au budućnosti ih možete koristiti prema vlastitom nahođenju. Jedina stvar vrijedna pažnje je da ne zaboravite osigurati potrebne razine prije izvođenja potpunog resetiranja vaše opreme.

Također možete koristiti TX, RX kao alternativu GPIO1 i GPIO3, ali ne zaboravite da nakon pokretanja modula, svaki firmware počinje "povlačiti" TX, dok istovremeno šalje informacije o ispravljanju pogrešaka na UART0 brzinom od 74480, ali nakon što preuzimanje bude uspješno, mogu se koristiti ne samo kao UART0 za razmjenu podataka s drugim uređajem, već i kao standardni GPIO-ovi.

Za module koji nemaju veliki broj ožičene pinove (na primjer, ESP-01), nema potrebe spajati poništene pinove, odnosno na ESP-01 su ožičeni samo GND, CH_PD, VCC, GPIO0, GPIO2 i RESET, a to su oni koje ćete treba zategnuti. Nema potrebe za lemljenjem izravno na ESP8266EX čip i zatim povlačenjem golih pinova osim ako vam to stvarno ne treba.

Takvi dijagrami ožičenja korišteni su nakon velikog broja eksperimenata koje su proveli kvalificirani stručnjaci i prikupljeni iz mnoštva različitih informacija. Vrijedno je napomenuti da se čak ni takve sheme ne mogu smatrati idealnim, jer se mogu koristiti brojne druge, ne manje učinkovite opcije.

Povezivanje putem Arduina

Ako iz nekog razloga nemate 3,3 voltni USB-TTL pretvarač, tada se WiFi modul ESP8266 može spojiti preko Arduina s ugrađenim pretvaračem. Ovdje ćete najprije morati obratiti pozornost na tri glavna elementa:

  • Kada se koristi s ESP8266, Arduino Reset je inicijalno spojen na GND kako bi se spriječilo pokretanje mikrokontrolera, au ovom obliku se koristio kao transparentni USB-TTL pretvarač.
  • RX i TX nisu bili povezani "na raskrižju", već izravno - RX-RX (zeleno), TX-TX (žuto).
  • Sve ostalo je spojeno točno kako je gore opisano.

Što treba uzeti u obzir

Ovaj sklop također zahtijeva usklađivanje TTL razina od 5 volti na Arduinu, kao i 3,3 volta na ESP8266, ali može funkcionirati prilično dobro u svakom slučaju.

Kada je spojen na ESP8266, Arduino može biti opremljen regulatorom snage koji ne može podnijeti struju potrebnu za ESP8266, tako da ćete morati provjeriti podatkovnu tablicu za onaj koji koristite prije nego što ga aktivirate. Nemojte pokušavati spojiti bilo koje druge komponente koje troše energiju s ESP8266, jer to može uzrokovati kvar regulatora snage ugrađenog u Arduino.

Postoji još jedna shema povezivanja ESP8266 i Arduina koja koristi SoftSerial. Budući da je za SoftSerial biblioteku brzina priključka 115200 previsoka i ne može jamčiti stabilan rad, ovaj način povezivanja se ne preporučuje, iako postoje neki slučajevi u kojima sve radi prilično stabilno.

Povezivanje preko RaspberryPi

Ako uopće nemate USB-TTL pretvarače, onda možete koristiti RaspberryPi. U ovom slučaju, za ESP8266, programiranje i povezivanje provode se gotovo identično, ali ovdje sve nije tako zgodno, a osim toga morat ćete koristiti i stabilizator snage od 3,3 volta.

Za početak spojimo RX, TX i GND našeg uređaja na ESP8266, a GND i VCC uzmemo s onog namijenjenog za 3,3 volta. Ovdje posebnu pozornost treba obratiti na to da je potrebno spojiti sve GND uređaje, odnosno RaspberryPi stabilizator i ESP8266. Ako stabilizator ugrađen u vaš model uređaja može izdržati do 300 miliampera dodatnog opterećenja, tada je u ovom slučaju povezivanje ESP8266 sasvim normalno, ali sve to radite samo na vlastitu odgovornost i rizik.

Postavljanje parametara

Nakon što ste shvatili kako spojiti ESP8266, trebate provjeriti jesu li upravljački programi za vaše uređaje ispravno instalirani, zbog čega je sustavu dodan novi virtualni serijski port. Ovdje ćete morati koristiti program - terminal serijskog porta. U principu, možete odabrati bilo koji uslužni program koji odgovara vašem ukusu, ali morate ispravno shvatiti da svaka naredba koju šaljete na serijski port mora imati znakove na kraju CR+LF na kraju.

Uslužni programi CoolTerm i ESPlorer prilično su rašireni, a potonji vam omogućuje da ne unosite sami ESP8266, a istovremeno olakšava rad s lua skriptama pod NodeMCU, tako da se može koristiti kao standardni terminal.

Da biste se normalno povezali, morat ćete učiniti puno posla, budući da je firmware za ESP8266 uglavnom raznolik i aktivacija se može provesti različitim brzinama. Da biste se odlučili za najbolju opciju, morat ćete proći kroz tri glavne opcije: 9600, 57600 i 115200.

Kako sortirati?

Za početak, spojite terminalski program na serijski virtualna luka, postavljajući parametre na 9600 8N1, zatim izvršite potpuno ponovno pokretanje modula, isključite CH_PD (chip enable) od napajanja, a zatim ga ponovno aktivirajte, iskrivljujući CH_PD. Također možete izvršiti kratko RESETIRANJE na masu kako biste resetirali modul i promatrali podatke u terminalu.

Prije svega, LED diode uređaja trebale bi izgledati točno onako kako je prikazano u postupku testiranja. Također biste trebali promatrati skup različitih znakova u terminalu, koji će završiti s linijom spremnom, a ako ga nema, ponovno se spajanje na terminal provodi drugom brzinom, nakon čega slijedi ponovno pokretanje modula.

Kada vidite ovu liniju u jednoj od opcija brzine, možete smatrati da je modul spreman za rad.

Kako ažurirati firmware?

Nakon što instalirate ESP8266, bit će potrebno samo nekoliko sekundi za povezivanje uređaja, a zatim možete početi ažurirati firmware. Za instalaciju novog softvera morate učiniti sljedeće.

Za početak preuzmite novu verziju firmvera sa službene web stranice, a također preuzmite poseban uslužni program za firmver. Ovdje treba obratiti posebnu pozornost na ono što operacijski sustav instaliran na stroju s kojim radi ESP8266. Najbolje je uređaj spojiti na sustave starije od Windows 7.

Za standardne Windows operativne sustave optimalno bi bilo koristiti program pod nazivom XTCOM UTIL, koji je posebno zgodan za korištenje ako se firmware sastoji od samo jedne datoteke. Najbolja opcija za više platformi je uslužni program esptool, koji, međutim, zahtijeva python, kao i potrebu za određivanjem parametara putem naredbeni redak. Osim toga, u ESP8266, povezivanje osnovnih funkcija omogućuje vam praktično Flash program Alat za preuzimanje, koji ima prilično velik broj postavki, kao i prikladna tehnologija instaliranje firmware-a iz nekoliko datoteka.

Zatim odspojite svoj terminalski program sa serijskog porta, a također potpuno odspojite CH_PD od napajanja, spojite GPIO0 modula na GND, nakon čega se CH_PD može vratiti natrag. U konačnici, samo pokrenite modularni firmware program i učitajte ga u ESP8266 relej.

U velikoj većini slučajeva firmware se učitava u modul brzinom od oko 115200, ali u isto vrijeme poseban način rada osigurava automatsku raspodjelu brzine, zbog čega se firmware može izvršiti brzinom većom od 9600, ažurirajući dostupne funkcije ESP8266. Arduino je korišten za povezivanje ili USB-TTL - ovdje ne igra posebnu ulogu, a ovdje najveća brzina već ovisi o duljini žica, korištenom pretvaraču i nizu drugih čimbenika.

Najbolji članci na temu