Esp 01 arduino firmver. ESP8266 firmver, programiranje u Arduino IDE

22.02.2024

Kineska kompanija Espressif je 2014. godine počela prodaju Wi-Fi modula baziranih na ESP8266 čipovima. koji je odmah stekao veliku popularnost među radio-amaterima zbog svoje niske cijene i velikih mogućnosti. Danas postoji veliki broj različitih modula baziranih na ESP8266 čipu u ovom članku ću govoriti o ESP-01.

Technical Parameters

Napon napajanja: 3V ~ 3.6V
Maksimalna radna struja: 220mA
Radna frekvencija: 2,4 GHz
Načini rada: P2P (klijent), soft-AP (pristupna tačka)
Broj GPIO-a: 2.
Flash memorija: 1024 kb.
Izlazna snaga u 802.11b modu: +19,5dBm
Bežična standardna podrška: 802.11 b/g/n
Dimenzije: 24,8 mm x 14,3 mm x 8 mm

Opće informacije o ESP-01

U suštini, ESP8266 čip je minijaturni mikrokontroler sa Wi-Fi predajnikom koji može raditi potpuno autonomno, bez dodatne Arduino ploče. Pomoću modula ESP-01 možete prenositi podatke o temperaturi, vlažnosti, uključiti relej i tako dalje. Za jednostavnu upotrebu ESP8266 čipa, proizvođač je proizveo niz modula od ESP-01 do ESP-14. Prvi u ovoj seriji je modul ESP-01 (postoji i ESP-01S, o tome nešto kasnije), koji je jedan od poznatih zbog svoje cijene i male veličine, samo 14,3 mm x 24,8 mm. Ali ima dva nedostatka: ograničen broj programabilnih GPIO pinova i njihova nezgodna lokacija (nezgodna za raspored).


ESP-01 modul je mala ploča, crna, na kojoj su smještena dva glavna čipa, mikrokontroler ESP8266 i fleš memorija od 1 MB. U blizini je kvarcitni rezonator i štampana antena. Ploča ima dvije LED diode, crvenu i plavu. Crvena LED dioda svijetli kada je modul uključena, a plava treperi kada se komande izvršavaju (crvena LED dioda je uklonjena sa NSP-01S zbog konstantne potrošnje energije). Za povezivanje ESP-01 modula predviđeno je osam pinova (dva reda po četiri pina, korak 2,54 mm), dva gotova su digitalni ulaz-izlaz, podržavaju pulsno-širinsku modulaciju. Iako modul podrazumevano ima dva GPIO pina, možete koristiti druge dostupne pinove ako imate potreban alat za lemljenje.


Pin assignment
GND:"-" napajanje modula
GPIO2:(Digitalni I/O programabilan)
GPIO0:(Digitalni I/O programabilan, također se koristi za režime pokretanja)
RX: UART prijem
TX: UART prijenos
CH_PD:(uključivanje/isključivanje, mora biti izlaz na 3.3V direktno ili preko otpornika)
RST: resetujte, morate ga povući na 3.3V
VCC: Napajanje modula “3.3V”.

Povezivanje modula
Za rad modula ESP-01 potreban je izvor istosmjerne struje, koji mora osigurati 3,3 V i struju od najmanje 250 mA. Nažalost, standardni stabilizator instaliran na Arduinu nije u stanju da isporuči struju potrebnu za rad ESP-01 (ako ipak odlučite da povežete ESP-01, očekujte nestabilan rad i stalno ponovno pokretanje). Osim toga, logički signal ovog modula je dizajniran za 3,3 V, odnosno napon od 3,3 V mora se primijeniti na RX pin, a napon od 3,3 V će se napajati sa TX pina (isto za ostale pinove ). Ako trebate spojiti modul na Arduino ili druge kontrolere koji izlaze 5V na logički pin, morate koristiti otpornike ili modul logičkog nivoa ako se povežete direktno, modul neće uspjeti.

Pažnja! ESP-01 su vrlo hiroviti kada je u pitanju napajanje, potrebno je koristiti eksterni regulator napona od 3.3V, ja ću koristiti USB adapter kao prvi primjer

Iz gornje tabele se može vidjeti da modul ESP-01 može raditi u nekoliko režima mirovanja, uz minimalnu potrošnju struje, pozivaju se softverski, osim posljednjeg “Power Off”, da biste omogućili ovaj način rada, potrebno je instalirajte kratkospojnik između GPIO16 i RST, kasnije ću vam dati primjer.

Instaliranje ESP8266 u Arduino IDE

Preuzmite Arduino IDE program sa web stranice arduino.cc
Zatim morate instalirati ESP ploču u Arduino IDE Da biste to učinili, pokrenite Arduino IDE program i otvorite: Datoteka -> Postavke.
U novom otvorenom prozoru, u polju “ Dodatne veze za PCB Manager:» dodaj link:

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

U otvorenom prozoru potražite " esp8266 od strane ESP8266 zajednice y" i pritisnite " Instaliraj". Instalacija će trajati nekoliko minuta, a zatim će se pojaviti poruka “ Instalirano", kliknite " Zatvori«

kliknite na " Alati -> Ploče -> Generis ESP8266 modul«.

Sada morate povezati ESP-01 modul na računar preko posebnog USB adaptera na CH340G čipu


Podešavanje frekvencije procesora " Frekvencija procesora: "80 MHz"", brzina" Brzina učitavanja: "115200"" i odaberite " Port«.

Zatim učitavamo skicu zbog koje će ESP8266 treperiti LED.

/* Testirano na Arduino IDE 1.8.5 Datum testiranja 15.06.2018. */ #define TXD 1 // GPIO1 / TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); kašnjenje (1000); digitalWrite(TXD, LOW); kašnjenje( 1000);

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

Tema ESP8266 je prilično teška. Ali, ako radite sa ovim Wi-Fi modulima u razvojnom okruženju Arduino IDE, ulazni prag pada na nivo prihvatljiv za prosječnog korisnika Arduina. I ne samo Arduino tip, već bilo koja osoba koja ima želju da napravi nešto na temu IoT-a (Internet of Things), a da ne troši puno vremena na čitanje dokumentacije za čip i proučavanje API-ja za ove module.

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

Pa, već znamo kako da povežemo ESP8266 i stavimo ga u režim programiranja, a sada idemo na nešto korisnije.

Odmah ću reći da kada programiramo modul u razvojnom okruženju Arduino, uništavamo izvorni firmver i više nećemo moći raditi s modulom koristeći AT naredbe. Lično, ovo me ne čini hladnim/vrućim, ali ako nekome zatreba, pred kraj članka ću vam pokazati kako da vratite izvorni firmver nazad u modul, ili neku vrstu bootloadera kao što je NodeMcu.

Za početak preuzmite najnoviju verziju Arduino IDE na službenoj web stranici, trenutno je 1.6.7. Starije verzije poput 1.0.5. neće odgovarati jer jednostavno nemaju potrebnu funkcionalnost, a ples uz tamburu 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 menadžera odbora, skrolujte ga do samog dna i ako je sve urađeno kako treba videćemo nešto ovako:

Kliknite kursorom na natpis " esp8266 by ESP8266 Zajednica"nakon toga imamo dugme "Instaliraj", biramo željenu verziju, ja uzimam najnoviju, danas je 2.1.0 i instaliram je. Razvojno okruženje će preuzeti potrebne fajlove (oko 150 megabajta) i nasuprot natpis " esp8266 by ESP8266 Zajednica""INSTALLED" će se pojaviti, odnosno instalirano:

Pomičemo se niz listu ploča i vidimo da imamo mnogo različitih ESP-ova na listi, uzmite “Generic ESP8266 Module”:

Idite na "Alati" i odaberite željeni COM port (za mene je to COM32) Arduino ili USB UART konverter, a zatim postavite brzinu prijenosa: "115200":

Postavili smo brzinu na 74880 i "NL & CR" i ponovo isključili i uključili napajanje i ona će odgovoriti s nekim informacijama o otklanjanju grešaka:

Imajte na umu da 74880 nije glavna brzina ESP8266, već samo šalje informacije o otklanjanju grešaka. Ako modul ne šalje ništa na konzolu, možda nešto nije ispravno povezano.

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

Nakon odabira potrebne brzine, šaljemo modul “AT” i on bi trebao odgovoriti da je sve “OK”. Komanda "AT+GMR" prikazuje informacije o firmveru.

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

Sada pokušajmo da flešujemo ESP8266 preko Arduino IDE. Modul smo stavili u režim programiranja (pisao sam kako to učiniti u prethodnom članku).

Dodajmo standardnu ​​LED lampicu:

// Autor g. PodelkinTs youtube.com/RazniePodelki // posebno za geektimes.ru/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite (TXD, HIGH);

Flashed? Dakle, sve je urađeno kako treba. Odakle sam dobio da je LED spojen na prvi pin? U prethodnom članku nalazi se slika sa pinoutima različitih modula, a tu je i označavanje portova kada se koristi Arduino bootloader (pinovi su označeni roze).

Treptanje LED-a je naravno dobro, ali moramo instalirati neku vrstu web servera ili početi kontrolisati LED barem pomoću dugmadi u pretraživaču, zar ne? Ali o ovome ću vam reći neki drugi put.

I sada kako vratiti izvorni firmver, i kako čak i flešovati modul pomoću pokretača treće strane. Za ESP8266 postoji program kao što je NodeMCU Flasher, koji je izvorno namijenjen za flešovanje NodeMCU pokretača. Ali kako se ispostavilo, savršeno treperi drugi firmver.

Priložit ću arhivu s ovim programom i firmverom uz članak radi praktičnosti, ali uvijek možete preuzeti novu verziju NodeMCU Flasher-a.

U fascikli “nodemcu-flasher-master” nalaze se 2 fascikle, Win64 i Win32, a u zavisnosti od dubine bita vašeg OS-a, izaberite onaj koji vam je potreban. Zatim, u folderu 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 tačku niže, kao na snimku ekrana:

(Ako želite da flešujete NodeMCU bootloader, uklonite krstić tamo gde nije bio i stavite ga tamo gde je bio, odnosno blizu „INTERNAL://NODEMCU“).

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

Ponovo se vraćamo na karticu "Operacija", stavite modul u režim programiranja i kliknite "Flash":

To je to, modul je počeo da se flešuje, nakon flešovanja, ne zaboravite ponovo pokrenuti modul i voila, flešuje se sa firmverom koji nam je potreban.

Provjeravamo AT komandom “AT+GMR” da li smo sve uradili ispravno:

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

Moule esp-01
Dijagram ispravnog povezivanja esp-01 modula za programiranje i firmver.

Modul se treperi prelaskom u režim programiranja da biste to uradili, držite pritisnut taster FLASH, a zatim, ne puštajući ga, kratko pritisnite dugme RESET i otpustite FLASH.
Modul se prebacuje u režim programiranja.
U terminalu u ovom trenutku možete vidjeti

ets 8. januara 2013., prvi uzrok:2, način pokretanja:(1.6)
Boot mode:(1,6) - restartovanje putem RESET-a u režim programiranja
režim pokretanja:(1,7) - ponovno pokretanje u režimu programiranja - što nije sasvim ispravno.

Za firmver koristiću program NODEMCU FIRMWARE PROGRAMER
(Temi će biti priložena arhiva sa programom)
Raspakujte arhivu i pokrenite u mom slučaju 32-bitnu verziju programa\Win32\Release\ESP8266Flasher.exe
Konfigurišemo ga za modul, u mom slučaju to je 1 megabajt fleš memorije ili 8 megabita.




Prvi korak je brisanje memorije sa praznim fajlom od 1 MB.
Ovo je opciona stavka. Možete preskočiti brisanje i otići na firmver.
Onima koji imaju više ili manje memorije potreban je prazan fajl odgovarajuće veličine.
Zatim određujemo koji je firmver potreban!
Možete koristiti gotov firmver na NODEMCU-u ili ga sastaviti od dizajnera sa modulima koji su vam potrebni.
Na primjer, jedan od starih dokazanih NODEMCU-a

Konstruktor wifi-iot.com/
Konstruktor nodemcu-build.com/
ili preuzmite najnovije

Problemi sa firmverom
Ako Modul esp8266 ne treperi, provjerite podizanje i ispravnu vezu sa GND GPIO0. I da li su RX TX pomiješani.
U terminalu možete provjeriti da li je prikazan način pokretanja:(1,6) ili režim pokretanja:(1,7).

Ako nakon neuspješnog firmware-a modul ne radi, pokušajte obrisati memoriju sa praznim praznim fajlom veličine vaše memorije.

Ako Modul ne radi nakon uspješnog firmware-a i šalje beskonačno smeće na port (LED za prijenos podataka može treptati), to se događa prilikom flešovanja najnovijih verzija Nodemcu-a, tada ćete dodatno morati flešovati datoteku u memorijski prostor, ovisno o memorijski čip.
Informacije o memoriji preuzete su sa web stranice nodemcu.
0x7c000 za 512 kB, moduli kao što su ESP-01,03,07
0xfc000 za 1 MB, moduli poput ESP8285, PSF-A85 ali i neke varijante esp-01,01s
0x1fc000 za 2 MB
0x3fc000 za 4 MB, tip modula ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini itd.

Ako ništa drugo ne uspije, pišite...

Dodaću zvaničnu grupu proizvođača opreme

U procesu proučavanja i osmišljavanja sve složenijih projekata, dolazi vrijeme kada se javlja potreba i želja da naučite kako raditi s tako uobičajenom vrstom komunikacije kao što je WiFi. Budući da vam ova vrsta komunikacije može omogućiti da udobno kreirate jedinstvenu mrežu za svoje pametne kućne uređaje i upravljate njima, na primjer, s mobilnog telefona, tableta ili računara, odnosno, drugim riječima, napravite pravi pametni dom koji će koštati desetine puta manje od kupovine gotovih rješenja u trgovini. Upotreba WiFi-a, naravno, nije ograničena na ovo i postoji toliko mnogo primjera korištenja ove vrste komunikacije da ih nema smisla nabrajati, a ako ste dospjeli na ovu stranicu, to znači da već trebate koristite WiFi iz nekog razloga, samo trebate shvatiti kako pravilno raditi s njim.

Mi ćemo to shvatiti na osnovu najjeftinijeg i najpopularnijeg WiFi modula ESP8266-01. ESP8266-01 WiFi modul možete kupiti na našoj web stranici.

Jedna od glavnih prednosti ovakvog modula je prisustvo memorije i vlastitog mikrokontrolera na ploči, što mu omogućava samostalan rad učitavanjem skice direktno u sam modul.

U stvari, postoji dosta modifikacija ESP8266 WiFi modula i nećemo ih ovdje navoditi kada naučite kako raditi s jednim, lako ćete početi raditi s drugima. Želio bih odmah napomenuti da se rad s WiFi-om može činiti prilično teškim zadatkom, a ako imate nekoliko završenih projekata u svom prtljagu, bolje je za sada odustati od WiFi komunikacije i koristiti radio komunikacije u svojim projektima, radeći s kojima je mnogo lakše razumjeti. Čitave zajednice i tematski forumi kreirani su za rad sa WiFi modulima, što još jednom dokazuje koliko je većini ljudi teško odmah razumjeti ovu vrstu komunikacije, a nakon ponovnog čitanja svih informacija većina jednostavno odustane. Najvjerovatnije neću moći sam uklopiti sve važne informacije u ovaj članak, i nema smisla to činiti, inače će rezultirati još jednom zbrkom. Pokušat ću slijediti striktan slijed najvažnijih tačaka, tako da možete početi razumijevati princip rada ove vrste komunikacije, a zatim jednostavno razviti vlastite vještine u tom smjeru.

Dakle, počnimo i prvo pogledajmo pinove WiFi modula ESP8266-01.

VCC- napajanje modula od 3V do 3.6V

GND- Zemlja.

RST- Resetujte izlaz odgovoran za ponovno pokretanje modula.

CH_PD- "isključivanje čipa" kada se na njega napaja napajanje, rad modula je aktiviran.

TX- prijenos podataka (UART interfejs)

RX- prijem podataka (UART interfejs)

GPIO0

GPIO2- I/O port opšte namene

GPIO0 i GPIO2 pinovi su potpuno isti digitalni pinovi sa kojima radimo na Arduino pločama za međusobno povezivanje sa različitim senzorima, a koriste se u slučaju implementacije nezavisnog rada na internom WiFi mikrokontroleru modula ESP8266-01.

Da biste pouzdano napajali modul ESP8266-01, koristite eksterno stabilizovano napajanje od 3,3 V i bolje je da ne pokušavate da preuzmete napajanje sa vaše Arduino ploče, jer modul troši struju do 215 mA i to može loše da se završi za vašu ploču za otklanjanje grešaka. Gdje nabaviti stabilizirano napajanje od 3,3V nadam se da vam nije problem, inače vam je očito prerano da se bavite ovim modulom. Na primjer, volim da koristim ovaj 3.3V i 5.0V YWRobot modul napajanja za brzo sklapanje kola na matičnim pločama, što vam omogućava da brzo dobijete stabilizirani napon od 3,3V ili 5V na odgovarajućim stazama napajanja matične ploče.

Povezivanje plusa (+) od našeg napajanja od 3,3 V na pin VCC modul ESP8266-01, i minus (-) dovedite izvor napajanja na izlaz GND. U ovom stanju, crvena LED dioda na modulu će se upaliti, signalizirajući nam da je napajanje ispravno priključeno. Da bi se modul aktivirao, potrebno je priključiti i plus (+) napajanje sa izlazom CH_PD modul ESP8266-01 i preporučljivo je to učiniti direktno preko 10 kOhm otpornika. Sada, kada uključimo napajanje, crvena LED dioda na modulu bi trebala zasvijetliti, a plava LED bi trebala brzo treptati nekoliko puta. Ako vam se to dogodi, onda je sve u redu, sve ste ispravno spojili i vaš modul radi. U suprotnom, ponovo provjerite vezu ili zamijenite modul, jer najvjerovatnije ne radi.

Idemo dalje. Za rad sa ESP8266 WiFi modulom potreban nam je USB-UART adapter. Postoje različiti adapteri, na primjer: FT232RL, CP2102, PL2303. Ali pretpostavit ćemo da nemate takve adaptere, a mi ćemo koristiti Arduino ploču kao USB-UART adapter. Za ovo ću koristiti Arduino NANO ploču, ali možete koristiti bilo koju drugu koja vam je na raspolaganju. Veza na bilo kojoj ploči je identična. Povezivanje vršimo prema sljedećem dijagramu.

Pogledajmo šta smo uradili ovde. Odmah imajte na umu da smo spojili pinove na Arduino ploči sa kratkospojnikom RST I GND. Ova manipulacija onemogućava mikrokontroler i omogućava nam da napravimo pravi USB-UART adapter od naše Arduino ploče.

Budući da napajamo ESP8266-01 WiFi modul iz zasebnog vanjskog izvora napajanja, zapamtite da uvijek moramo spojiti uzemljenje svih izvora napajanja u našim projektima. Stoga povezujemo izlaz GND Arduino ploče sa uzemljenjem (-) naše eksterno napajanje od 3,3 V dizajnirano za napajanje modula ESP8266-01.

Zaključak TX povežite vašu Arduino ploču na pin TX ESP8266-01 modul. Ova linija će prenositi podatke iz WiFi modula na Arduino ploču. Svako ko je upoznat s UART sučeljem može se zapitati: „Ali kako to može biti svugdje gdje su učili da se TX mora povezati na TX, a RX prima. I bićeš u pravu. Tako je, TX je uvijek povezan na RX, ali u slučaju kada pravimo UART adapter od Arduina, potrebno je uređaje direktno povezati. Smatrajte ovo izuzetkom od pravila.

Linija RX Također povezujemo vašu Arduino ploču direktno na liniju RX ESP8266-01 modul. Ova linija će prenositi informacije sa Arduino ploče na ploču WiFi modula. Ali ovu vezu vršimo kroz takozvani razdjelnik napona, koji se sastoji od dva otpornika nominalnih vrijednosti od 1 kOhm i 2 kOhm. Moramo smanjiti napon na ovoj liniji pomoću dva otpornika (razdjelnik napona), budući da Arduino ploča prenosi logički signal naponom od 5V, a WiFi modul radi s naponom od 3,3V. Za konvertovanje logičkog signala, mogli bismo koristiti posebnu karticu pretvarača logičkog nivoa, što bi naravno bilo ispravnije, ali opet, pretpostavimo da je nemate, a morali smo ići jednostavnijim putem i to učiniti koristeći razdjelnik napona.

Sada smo spojili sve što je potrebno za dalji rad, ali imamo još 3 pina neiskorištena ( GPIO0, GPIO2 I RST) uključeno WiFi modul ESP8266-01. Za stabilan rad WiFi modula, ove preostale neiskorištene pinove moramo povući na plus (+) modula strujnih vodova kroz 10 kOhm otpornike.

To će nas spasiti od raznih smetnji (smetnji) i učiniti rad modula stabilnim. Bolje je to učiniti odmah. U suprotnom, nemojte se iznenaditi što je vaš modul stalno preopterećen, proizvodi nerazumljive informacije ili uopće ne želi raditi. Korištenje pull-up otpornika na neiskorištenim pinovima mikrokontrolera trebalo bi biti pravilo ako želite stabilan rad u svojim projektima.

I opet provjeravamo funkcionalnost ESP8266-01 WiFi modula. Uključite napajanje i vidite da crvena LED dioda svijetli, a plava LED dioda treperi nekoliko puta. Ako sve bude ovako, onda super, idemo dalje. Inače, provjeravamo ispravnost spojeva, kao i kvalitet svih kontakata. Možda je samo trivijalna situacija kada ste deset puta sve provjerili i uvjerili se da je sve ispravno spojeno, ali kada uključite modul, vidite da se plavi LED ne ponaša adekvatno, da stalno svijetli, stalno treperi, ili ne reaguje ni na šta. Ovo može biti zbog lošeg kontakta na nekoj liniji. Na primjer, kada sastavljate krug na matičnoj ploči, jedan od otpornika ne sjedi čvrsto na svom mjestu i to uzrokuje smetnje. Provjerite kvalitet veze. Modul je veoma osetljiv. Nemojte ovo zanemariti. Ovo je čest razlog za nestabilan rad.

Generalno, završili smo sa vezom. Sada moramo pripremiti Arduino IDE program za rad sa ESP8266-01 WiFi modulom. Da bismo to učinili, moramo preuzeti i instalirati u Arduino IDE potrebnu arhivu s bibliotekama, primjerima i ESP pločama, što će nam naknadno omogućiti da učitamo skice direktno u mikrokontroler modula ESP8266-01, promijenimo firmver itd. Za potrebe ovog članka, najvjerovatnije nam ove postavke neće trebati, ali čini mi se da će nakon što smo shvatili kako spojiti modul, procedura biti ispravna ako odmah preuzmemo sve što je potrebno za rad sa Arduino IDE . Ovdje je sve u principu jednostavno.

Pokrenite program Arduino IDE i idite na meni "Datoteka" - "Postavke"

U prozoru koji se pojavi, u gornjem polju pišemo "esp8266". Kao rezultat toga, u prozoru ćemo imati samo potreban firmver. Kada kliknete na firmver, pojaviće se dugme "Instalacija". Kliknite na dugme "Instalacija" i sačekajte da se sve instalira. Arhiva je prilično velika, oko 150 megabajta, tako da ćete morati pričekati.

Nakon završetka instalacije. Ponovo pokrećemo Arduino IDE i vidimo kako su se nove ESP ploče pojavile u meniju "Alati" - "Plaće". To je sve. Završili smo sa postavljanjem Arduino IDE. Za sada nam ove postavke nisu potrebne, ali u budućem radu nećemo moći bez njih.

Imamo sve povezano i pripremljeno, sada možemo početi razumijevati kontrole. Zapravo, sada ćemo nastaviti provjeravati i konfigurirati modul pomoću AT naredbi, a bez toga nema načina. WiFi moduli su implementirani na način da se sva komunikacija s njima odvija korištenjem takozvanih AT naredbi, koje su hardverski povezane u firmver modula. Ovdje nećemo navoditi sve AT komande, ima ih dosta i ako želite sve pažljivo proučiti, lako ih možete pronaći na internetu. A sada ćemo koristiti samo ono najpotrebnije za početak.

I tako, povezujemo našu Arduino ploču preko USB kabla na računar. I vanjski izvor napajanja koji napaja WiFi modul ESP8266-01 Još ga nije potrebno uključiti. Pokrećemo Arduino IDE program, biramo našu Arduino ploču iz menija „Alati“, u mom slučaju to je Arduino NANO, a vi birate svoju. Također, ne zaboravite odabrati port na koji je povezan naš Arduino. Nadam se da sve ovo razumete i znate kako da to uradite.

Nadgledanje otvorenog porta "Alati" - "Monitor porta". Odabir brzine porta 74880 (pri ovoj brzini modul se pokreće) i odaberite “NL & CR” na listi na lijevoj strani

Sada povezujemo vanjski izvor napajanja koji napaja naš WiFi modul. Nakon toga biste trebali vidjeti otprilike sljedeće informacije na monitoru porta.

Ovdje vidimo neke informacije o našem WiFi modulu (brzina, količina memorije na ploči, itd.). Primljene informacije mogu se razlikovati ovisno o verziji firmvera WiFi modula. Nemojmo se fokusirati na ovo. Nešto drugo je važno. Ispod vidimo skup besmislenih znakova, što znači da je brzina porta (74880 baud) koju smo postavili prikladna samo za početno učitavanje modula kako bi se ove informacije normalno vidjeli, ali ova brzina nije prikladna za normalnu komunikaciju sa WiFi modula.

Da bismo odabrali ispravnu brzinu porta, jednostavno ćemo promijeniti brzinu porta i poslati simbole na port (polje na vrhu i dugme za slanje) AT dok ne dobijemo odgovor OK. Ako pokušate odmah poslati znakove AT na port brzinom od 74880, dobićete još jedan ili dva besmislena znaka kao odgovor.

Pokušajte odmah postaviti brzinu na 115200 baudova i poslati AT komandu. Najčešće se moduli bljeskaju ovom brzinom.

Ovo je slika koju biste trebali vidjeti na monitoru vašeg porta. Ako i dalje dobijete nerazumljiv skup znakova kao odgovor, smanjite brzinu i pošaljite ponovo AT komande dok se odgovor ne vrati OK. Ako ste isprobali sve brzine i niste dobili tačan odgovor, onda nemate sreće i modul se flešuje sa firmverom nestandardnom brzinom. Zatim ostaje samo da se modul ponovo flešuje normalnim firmverom, ali ovo je tema za poseban članak.

Nadam se da je sve u redu i da ste odabrali pravu brzinu. Usput, ako pokušate isključiti i ponovo uključiti WiFi modul nakon što odaberete ispravnu brzinu, tada ćete umjesto istih početnih informacija koje su ispravno prikazane brzinom od 74880 bauda, ​​naprotiv, vidite zbrkani skup znakova, ali na kraju ćete vidjeti riječ "spreman" ". Ali imamo priliku da pogledamo ove početne informacije u normalnom obliku pri ispravnoj brzini, za ovo moramo programski ponovo pokrenuti modul koristeći AT naredbu AT+RST.

Da biste saznali verziju firmvera vašeg ESP8266-01 WiFi modula, morate poslati naredbu monitoru porta AT+GMR a kao odgovor ćete dobiti otprilike sljedeće informacije:

ESP8266-01 WiFi modul može raditi iu pristupnoj tački iu načinu rada klijenta. Da biste omogućili modulu da radi u svim režimima odjednom, pošaljite naredbu monitoru porta AT+CWMODE=3 a kao odgovor treba da dobijete OK.

Tim AT+CWLAPće vam omogućiti da vidite sve WiFi pristupne tačke koje vaš modul trenutno vidi. Moj modul, na primjer, trenutno vidi samo tri WiFi pristupne tačke u svom području pokrivenosti. Odgovor bi trebao biti otprilike ovako:

Na primjer, znamo lozinku za treću pristupnu tačku i da se povežemo na nju izvršavamo naredbu AT+CWJAP="ime","lozinka", u mom slučaju ova komanda izgleda tako AT+CWJAP="dsl_unlim_512_home","11111111", na koji dobijamo uspješan odgovor:

Parametri komande se upisuju u fleš memoriju ESP8266-01 WiFi modula, a ako isključimo modul i ponovo ga upalimo, on će se automatski povezati na ovu pristupnu tačku. Gledajte, slučajno ne dozvolite razmak u komandi, inače ćete dobiti odgovor GREŠKA. Imajte na umu da se u najnovijim verzijama firmvera preporučuje korištenje naredbe AT+CWJAP_CUR, odnosno naredba će izgledati ovako AT+CWJAP_CUR="ime","lozinka". Ako smo iznenada zaboravili na koju pristupnu tačku je povezan naš modul, moramo poslati naredbu AT+CWJAP? ili AT+CWJAP_CUR? i kao odgovor ćemo dobiti pristupnu tačku na koju je WiFi modul trenutno povezan.

Sa priključkom i početnim podešavanjem WiFi modul ESP8266-01 shvatili smo. Modul radi i spreman je za realizaciju vaših budućih projekata. Jednostavno nije moguće analizirati sve moguće primjere rada sa ovim modulom u okviru jednog članka, a time ćemo se baviti u sljedećim člancima. A za one koji nisu baš upoznati s programiranjem, ali zaista žele brzo početi upravljati svojim projektima koristeći WiFi, preporučujem da ih upoznaju sa RemoteXY WiFi dizajnerom projekta. Ova stranica će vam pomoći da jednostavno kreirate kontrolno sučelje za vaš mobilni telefon ili tablet i koristite ga za kontrolu uređaja na koji povezujete WiFi modul.

Mnogi korisnici su već skrenuli pažnju na ESP8266-12 čip, koji je objavio Espressif. Njegova cijena je znatno jeftinija u odnosu na standardnu ​​Bluetooth adaptersku ploču, a unatoč svojim 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 svoj računar na bilo koju pristupnu tačku ili ga uključiti kao takvu tač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 vlastita 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 takvi uređaji početi ugrađivati ​​čak i u najjednostavnije vrste opreme, ali za sada je uređaj relativno nov i za njega ne postoji stabilan firmware. Mnogi stručnjaci širom svijeta pokušavaju izmisliti vlastiti firmware, jer njihovo postavljanje na ploču zapravo nije teško, ali unatoč raznim poteškoćama, uređaj se već može nazvati prilično upotrebljivim.

Trenutno se razmatraju samo dvije opcije za korištenje ovog modula:

  • Korišćenje ploče u kombinaciji sa dodatnim mikrokontrolerom ili računarom koji će upravljati modulom preko UART-a.
  • Nezavisno pisanje firmvera za čip, što vam omogućava da ga kasnije koristite kao samostalan uređaj.

Sasvim je prirodno da u ovom slučaju nećemo razmatrati nezavisni firmver.

Gledajući jednostavnost korištenja i dobre performanse, mnogi ljudi preferiraju model ESP8266 među mnogim mikrokontrolerima. Povezivanje i ažuriranje firmvera ovog uređaja izuzetno je jednostavno i pristupačno, a vrši se na istom hardveru na kojem je oprema povezana sa računarom. Odnosno, i preko USB-TTL konvertera ili, ako nekome više odgovara druge opcije povezivanja, to se može učiniti preko RPi i Arduina.

Kako provjeriti?

Da biste provjerili funkcionalnost novokupljenog uređaja, morat ćete koristiti poseban stabilizirani izvor napona od 3,3 volta. Vrijedi odmah napomenuti da je stvarni raspon napona napajanja ovog modula od 3 do 3,6 volti, a napajanje povećanog napona odmah će dovesti do činjenice da ćete jednostavno oštetiti svoj ESP8266. Firmver i drugi softver mogu početi raditi pogrešno nakon takve situacije i morat ćete popraviti uređaj ili ga nekako popraviti.

Da biste utvrdili funkcionalnost ovog modela mikrokontrolera, potrebno je samo spojiti tri pina:

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

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

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

Kada se povežete, nova pristupna tačka će se aktivirati na vašoj bežičnoj mreži, koja će se zvati ESP_XXXX, i biće vidljiva sa bilo kog uređaja koji ima pristup Wi-Fi. U ovom slučaju, naziv pristupne točke direktno ovisi o proizvođaču firmvera koji koristite, pa stoga može biti nešto drugačije.

Ako se tačka ipak pojavi, možete nastaviti eksperimentirati, inače ćete morati ponovo provjeriti napajanje, kao i ispravnost GND i CH_PD veza, a ako je sve ispravno spojeno, onda najvjerovatnije još uvijek pokušavate koristite pokvareni modul ili na Jednostavno ima instaliran firmver sa nestandardnim postavkama.

Kako ga brzo povezati?

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

  • sam modul;
  • matična ploča bez lemljenja;
  • kompletan set ženskih i muških žica namijenjenih za matičnu ploču, ili poseban DUPONT M-F kabel;
  • USB-TTL konverter baziran na PL2303, FTDI ili nekom sličnom čipu. Najbolja opcija je da se RTS i DTR također izlaze na USB-TTL adapter, jer zbog toga možete postići prilično brzo učitavanje firmvera iz nekog UDK, Arduino IDE ili Sminga, čak i bez potrebe da ručno prebacite GPIO0 na masu.

Ako koristite 5-voltni pretvarač, tada ćete u ovom slučaju morati kupiti dodatni stabilizator snage na bazi 1117 čipa ili nečeg sličnog, kao i izvor napajanja (za standardni 1117, čak i obični 5-voltni punjač za pametne telefone je sasvim prikladan). Preporučljivo je da ne koristite Arduino IDE ili USB-TTL kao izvor napajanja za ESP8266, već da koristite poseban, jer se na taj način može riješiti mnogo problema.

Prošireni set koji osigurava udoban i stalan rad modula zahtijeva korištenje dodatnih otpornika, LED dioda i DIP prekidača. Osim toga, možete koristiti i jeftin USB monitor, koji će vam omogućiti da stalno pratite količinu potrošene struje, a također će pružiti malu zaštitu za USB sabirnicu od

šta da radim?

Prije svega, vrijedno je napomenuti činjenicu da se u ESP8266 kontrole mogu malo razlikovati ovisno o tome koji model koristite. Danas je dostupno dosta takvih modula, a prva stvar koju ćete trebati je identificirati model koji koristite i odlučiti o njegovom pinoutu. U ovom uputstvu ćemo govoriti o radu sa ESP8266 ESP-01 V090 modulom, a ako koristite neki drugi model sa GPIO15 pinom (HSPICS, MTDO), moraćete da ga povučete na zemlju i za standardni start modul i da koristite režim firmvera.

Nakon toga, još jednom provjerite da li je napon napajanja za priključeni 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 pokvari, ali napon napajanja može biti čak i znatno niži od 3 volta navedenih u dokumentima.

Ako koristite USB-TTL pretvarač od 3,3 volta, spojite modul točno kao na lijevoj strani donje slike. Ako koristite isključivo pet-voltni USB-TTL, onda obratite pažnju na desnu stranu slike. Mnogima se može učiniti da je pravo kolo efikasnije zbog činjenice da koristi poseban izvor napajanja, ali u stvari, u slučaju korištenja 5-voltnog USB-TTL pretvarača, vrlo je poželjno napraviti i dodatni otpornički razdjelnik kako bi se osiguralo podudaranje logičkih nivoa od tri i pet volti, ili jednostavno koristite modul za konverziju nivoa.

Mogućnosti povezivanja

Desna slika prikazuje povezivanje UTXD (TX), kao i URXD (RX) ovog modula na pet-voltnu TTL logiku, a takve procedure izvodite samo na vlastitu odgovornost i rizik. Za ESP8266, opis kaže da modul efikasno radi samo sa 3,3-voltnom logikom. U velikoj većini slučajeva, čak i pri radu sa pet-voltnom logikom, oprema ne kvari, ali se takve situacije povremeno dešavaju, pa se takvo povezivanje ne preporučuje.

Ako nemate priliku koristiti specijalizirani 3,3-voltni USB-TTL pretvarač, možete koristiti otpornički razdjelnik. Također je vrijedno napomenuti da je na desnoj slici stabilizator snage 1117 povezan bez dodatnog ožičenja, a ovo je stvarno funkcionalna tehnologija, ali je ipak najbolje koristiti dijagram povezivanja 1117 s ožičenjem kondenzatora - morate ga provjeriti sa ESP8266 datasheet za vaš stabilizator ili koristite potpuno spreman jedan modul baziran na bazi 1117.

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

Kako pravilno povezati?

Ako možete odvojiti više od jedne večeri da pravilno povežete ESP8266 modul, možete koristiti stabilniju opciju. Na dijagramu iznad vidite opciju povezivanja sa automatskim preuzimanjem firmvera.

Vrijedi napomenuti da gornja slika ne prikazuje korištenje besplatnih GPIO-ova ili ADC-ova, a njihova veza će direktno ovisiti o tome šta točno želite implementirati, ali ako želite osigurati stabilnost, ne zaboravite povući sve GPIO-ove na napajanje i ADC-ove uzemljenje pomoću pull-up otpornika.

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

Povezivanje RESET-a i GPIO16 korištenjem otpornika dubokog mirovanja od 470 Ohma može biti potrebno kada se koristi odgovarajući način rada, jer da bi izašao iz režima dubokog mirovanja, modul vrši potpuno ponovno pokretanje primjenom niskog nivoa na GPIO16. Bez ove veze, način dubokog mirovanja za vaš modul će trajati zauvijek.

Na prvi pogled može izgledati da su GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) i GPIO15 zauzeti, pa ih nećete moći koristiti za svoje potrebe, ali u stvari to je daleko od slučaja. Dovoljno visok nivo na GPIO0 i GPIO2, kao i nizak nivo na GPIO15, može biti potreban samo za početno pokretanje modula, a u budućnosti ih možete koristiti po sopstvenom nahođenju. Jedina stvar koju vrijedi napomenuti je da zapamtite da osigurate potrebne nivoe prije nego što izvršite potpuno resetiranje vaše opreme.

Možete koristiti i TX, RX kao alternativu GPIO1 i GPIO3, ali ne zaboravite da nakon pokretanja modula svaki firmver počinje da „vuče“ TX, dok istovremeno šalje informacije za otklanjanje grešaka u UART0 brzinom od 74480, ali nakon preuzimanje će biti uspješno, mogu se koristiti ne samo kao UART0 za razmjenu podataka sa drugim uređajem, već i kao standardni GPIO.

Za module koji imaju mali broj ožičenih pinova (na primjer, ESP-01), nema potrebe za povezivanjem poništenih pinova, odnosno na ESP-01 su ožičeni samo GND, CH_PD, VCC, GPIO0, GPIO2 i RESET , a ovo su one koje trebate zategnuti. Nema potrebe da lemite direktno na ESP8266EX čip, a zatim povlačite gole pinove osim ako vam to zaista nije potrebno.

Takvi dijagrami ožičenja korišteni su nakon velikog broja eksperimenata koje su proveli kvalificirani stručnjaci i prikupljeni iz mnogo različitih informacija. Vrijedi napomenuti da se čak i takve sheme ne mogu smatrati idealnim, jer se može koristiti niz drugih, ne manje učinkovitih opcija.

Povezivanje preko Arduina

Ako iz nekog razloga nemate USB-TTL konvertor od 3,3 volta, onda se ESP8266 WiFi modul može povezati preko Arduina sa ugrađenim pretvaračem. Ovdje ćete prvo morati skrenuti pažnju na tri glavna elementa:

  • Kada se koristi sa ESP8266, Arduino Reset je inicijalno povezan na GND kako bi spriječio pokretanje mikrokontrolera, i u ovom obliku je korišten kao prozirni USB-TTL konvertor.
  • RX i TX nisu bili povezani "na raskršću", već direktno - RX-RX (zeleno), TX-TX (žuto).
  • Sve ostalo je povezano tačno kako je gore opisano.

Šta uzeti u obzir

Ovo kolo također zahtijeva usklađivanje TTL nivoa od 5 volti na Arduinu, kao i 3,3 volta na ESP8266, ali može funkcionisati prilično dobro na bilo koji način.

Kada je povezan na ESP8266, Arduino može biti opremljen regulatorom snage koji ne može podnijeti struju koju zahtijeva ESP8266, tako da ćete morati provjeriti tablicu podataka za onu koju koristite prije nego što ga aktivirate. Ne pokušavajte da povežete bilo koju drugu komponentu koja troši energiju sa ESP8266, jer to može dovesti do jednostavnog otkaza regulatora snage ugrađenog u Arduino.

Postoji još jedna šema ESP8266 i Arduino veze koja koristi SoftSerial. Budući da je za SoftSerial biblioteku brzina porta od 115200 previsoka i ne može garantirati stabilan rad, ovaj način povezivanja se ne preporučuje, iako postoje slučajevi u kojima sve radi prilično stabilno.

Povezivanje preko RaspberryPi

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

Za početak, povezujemo RX, TX i GND našeg uređaja na ESP8266, a uzimamo GND i VCC od onog dizajniranog za 3,3 volta. Ovdje posebnu pažnju treba obratiti na činjenicu da trebate povezati 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, onda je u ovom slučaju povezivanje ESP8266 sasvim normalno, ali sve to radite samo na vlastitu odgovornost i rizik.

Postavljanje parametara

Kada shvatite kako da povežete ESP8266, morate se uveriti da su drajveri za vaše uređaje ispravno instalirani, zbog čega je sistemu dodat novi virtuelni 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 razumjeti da svaka naredba koju pošaljete serijskom portu mora imati završne znakove CR+LF na kraju.

Uslužni programi CoolTerm i ESPlorer su prilično rasprostranjeni, a potonji vam omogućava da sami ne ulazite u ESP8266, a ujedno olakšava rad sa lua skriptama pod NodeMCU, tako da se može koristiti kao standardni terminal.

Da biste se normalno povezali, morat ćete obaviti dosta posla, jer je firmver za ESP8266 uglavnom raznolik i aktivacija se može izvršiti 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, povežite se na virtualni serijski port u terminalskom programu, postavljajući parametre na 9600 8N1, zatim izvršite potpuno ponovno pokretanje modula, odspojite CH_PD (omogućavanje čipa) iz napajanja, a zatim ga ponovno aktivirajte trzanjem CH_PD. Također možete izvesti kratki RESET na masu kako biste resetirali modul i promatrali podatke u terminalu.

Prije svega, LED diode uređaja trebale bi se pojaviti točno onako kako je prikazano u proceduri testiranja. Također biste trebali promatrati skup različitih znakova u terminalu, koji će završiti sa spremnom linijom, a ako ga nema, vrši se ponovno povezivanje na terminal 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 firmver?

Nakon što instalirate ESP8266, biće potrebno samo nekoliko sekundi da povežete uređaj, a zatim možete započeti ažuriranje firmvera. Da biste instalirali novi softver potrebno je da uradite sledeće.

Za početak preuzmite novu verziju firmvera sa službene web stranice, a također preuzmite poseban uslužni program za firmver. Ovdje posebnu pažnju treba obratiti na to koji operativni sistem je instaliran na mašini sa kojom ESP8266 radi. Najbolje je da uređaj povežete sa sistemima starijim od Windows 7.

Za standardne Windows operativne sisteme bilo bi optimalno koristiti program pod nazivom XTCOM UTIL, koji je posebno pogodan za korištenje ako se firmver 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 specificiranjem parametara putem komandne linije. Osim toga, ESP8266 vam omogućava da jednostavno povežete glavne funkcije pomoću Flash Download Tool-a, koji ima prilično veliki broj postavki, kao i zgodnu tehnologiju za instaliranje firmvera iz nekoliko datoteka.

Zatim odspojite svoj terminalski program sa serijskog porta, i također potpuno isključite CH_PD iz napajanja, spojite GPIO0 modula na GND, a nakon toga CH_PD možete vratiti nazad. Na kraju, samo pokrenite modularni program firmvera i učitajte ga u relej ESP8266.

U velikoj većini slučajeva, firmver se učitava u modul brzinom od oko 115200, ali poseban način pruža automatsku distribuciju brzine, zbog čega se firmver može izvršiti brzinom većom od 9600, ažuriranjem dostupne funkcije ESP8266. Za povezivanje je korišten Arduino ili USB-TTL - on ovdje ne igra posebnu ulogu, a ovdje maksimalna brzina već ovisi o dužini žica, korištenom pretvaraču i nizu drugih faktora.