Acasă / Console de jocuri / Modul Wifi bazat pe cip ESP8266. Microcontroler ESP8266: conectare și configurare Firmware 1m pentru esp 01

Modul Wifi bazat pe cip ESP8266. Microcontroler ESP8266: conectare și configurare Firmware 1m pentru esp 01

Moule esp-01
Sistem conexiune corectă modul esp-01 pentru programare și firmware.

Modulul se aprinde intermitent trecând în modul de programare, pentru a face acest lucru, țineți apăsat butonul FLASH, apoi, fără a-l elibera, apăsați scurt butonul RESET și eliberați FLASH.
Modulul este comutat în modul de programare.
În terminal puteți vedea în acest moment

ets 8 ianuarie 2013, prima cauză: 2, modul de pornire: (1.6)
modul de pornire:(1,6) - reporniți prin RESET în modul de programare
modul de pornire:(1,7) - repornire la putere în modul de programare - care nu este complet corect.

Pentru firmware voi folosi programul PROGRAMATOR FIRMWARE NODEMCU
(O arhivă cu programul va fi atașată subiectului)
Despachetați arhiva și rulați în cazul meu 32 versiunea bit programe\Win32\Release\ESP8266Flasher.exe
O configuram pentru modul, in cazul meu este de 1 Megabyte de memorie flash sau 8 Megabiti.




Primul pas este să ștergeți memoria cu un fișier gol de 1 MB.
Acesta este un articol opțional. Puteți sări peste ștergere și să accesați firmware-ul.
Cei care au mai multă sau mai puțină memorie au nevoie de un fișier gol de dimensiunea corespunzătoare.
În continuare, determinăm ce firmware este necesar!
Puteți utiliza firmware gata făcut pe NODEMCU sau îl puteți asambla de la un designer cu modulele de care aveți nevoie.
De exemplu, unul dintre vechile NODEMCU dovedite

Constructor wifi-iot.com/
Constructor nodemcu-build.com/
sau descărcați cel mai recent

Probleme cu firmware-ul
Dacă Modulul esp8266 nu clipește, verificați tragerile și conexiunea corectă la GND GPIO0. Și, de asemenea, dacă RX TX sunt amestecate.
În terminal puteți verifica dacă este afișat modul de pornire:(1,6) sau modul de pornire:(1,7).

Dacă după firmware-ul nereușit, modulul nu funcționează, încercați să ștergeți memoria cu un fișier gol gol de dimensiunea memoriei dvs.

Dacă Modulul nu funcționează după firmware-ul reușit și trimite gunoi nesfârșit la port (LED-ul de transmisie de date poate clipi), acest lucru se întâmplă când se afișează intermitent ultimele versiuni Nodemcu, apoi va trebui suplimentar să flashezi fișierul în zona de memorie, în funcție de cip de memorie.
Informațiile despre memorie au fost preluate de pe site-ul nodemcu.
0x7c000 pentru 512 kB, module precum ESP-01,03,07
0xfc000 pentru 1 MB, module precum ESP8285, PSF-A85 dar și unele varietăți de esp-01,01s
0x1fc000 pentru 2 MB
0x3fc000 pentru 4 MB, modul de tip ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini etc.

Dacă totul eșuează, scrie...

Voi adăuga grupul oficial al producătorului de echipamente

Pentru a funcționa cu RemoteXY, modulul ESP8266 trebuie să aibă o versiune de firmware care să accepte comenzi AT nu mai mici decât v0.40. Pentru a verifica versiunea modulului, precum și pentru a schimba firmware-ul dacă este necesar, conectați modulul la computer printr-un port serial. Modulul poate fi conectat printr-o placă Arduino sau printr-un adaptor USB-UART.

Conexiune prin placa Arduino

Când utilizați Arduino, cipul ATmega principal este pus în modul de resetare, doar convertorul USB-UART încorporat rămâne activ. Pentru a face acest lucru, contactul RESET este conectat la masă. Pinii RX și TX sunt conectați direct la ESP8266, mai degrabă decât încrucișați, deoarece ar funcționa cu un controler.

Conexiune prin adaptor USB-UART

Convertorul trebuie să aibă o sursă de ieșire de 3,3 V pentru a alimenta ESP8266. De asemenea, această sursă trebuie să furnizeze curentul necesar de cel puțin 200mA.



Contactul CPIO0 determină modul de funcționare al modulului. Când contactul nu este conectat, modulul funcționează în modul normal și execută comenzi AT. Când contactul este închis la masă, modulul este comutat în modul de actualizare a firmware-ului. Comutarea modulului în modul firmware necesită ca pinul CPIO0 să fie conectat la masă atunci când modulului este alimentat. Dacă închideți contactul în timp ce modulul rulează, modulul nu va comuta în modul de actualizare a firmware-ului.

Verificarea versiunii curente

Pentru a trimite comenzi AT și a vizualiza răspunsurile, trebuie să utilizați orice program de monitorizare a portului serial. Programul terminal de la Arduino IDE. Programul trebuie să fie setat să trimită comenzi cu un avans de linie în urmă și un caracter de întoarcere a căruciorului. Viteza implicită de funcționare a modulului este de 115200 bps. Pentru ca modulul să funcționeze în modul normal, contactul CPIO0 trebuie să fie dezactivat.

Puteți verifica versiunea actuală a firmware-ului rulând comanda AT: AT+GMR. Exemplu de răspuns al modulului:

Versiunea AT:0.40.0.0(8 august 2015 14:45:58)
Versiunea SDK: 1.3.0

Build:1.3.0.2 11 septembrie 2015 11:48:04
Bine

De asemenea, merită să aflați dimensiunea memoriei flash a modulului dvs., setările pentru adresele de descărcare a datelor la actualizarea firmware-ului depind de aceasta. Acest manual descrie firmware-ul unui modul cu o dimensiune de memorie flash de 8Mbit(512KB+512KB) sau 16Mbit(1024KB+1024KB), ca fiind cel mai comun. Dimensiunea memoriei flash poate fi găsită executând comanda AT pentru a reseta modulul: AT+RST.

Ets 8 ianuarie 2013, prima cauză:2, modul de pornire:(3,1)

Încărcați 0x40100000, len 1396, camera 16
coada 4
chksum 0x89
încărcare 0x3ffe8000, len 776, camera 4
coada 4
chksum 0xe8
încărcare 0x3ffe8308, len 540, camera 4
coada 8
chksum 0xc0
csum 0xc0

A doua versiune de boot: 1.4(b1)
Viteza SPI: 40MHz
Mod SPI: DIO
Dimensiune și hartă Flash SPI: 8 Mbit (512KB+512KB)
săriți pentru a rula user1 @ 1000

#t#n"nu folosiți datele rtc mem
slЏ‚rlМя
Ai-Thinker Technology Co.,Ltd.

Program de firmware

Pentru a actualiza firmware-ul, trebuie să descărcați programul firmware și firmware-ul în sine. Programul pentru flash-ul ESP8266 va folosi Flash Download Tools v2.4 de pe site-ul oficial al Espressif Systems. Link către pagina de descărcare de pe site-ul oficial: . Trebuie să mergeți la secțiunea „Instrumente”.

Link către programul din stocul nostru de fișiere: FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar

Firmware

Firmware-ul poate fi descărcat și de pe site-ul oficial. Link către pagina de descărcare de pe site-ul oficial: . Trebuie să accesați secțiunea „SDK-uri și demonstrații” și să descărcați versiunea de firmware ESP8266 NONOS SDK nu mai puțin decât v1.3.0. Cu această versiune de firmware este implementat suportul pentru comenzile AT v0.40 și ulterioare.

Link către firmware-ul din stocarea noastră de fișiere: esp8266_nonos_sdk_v1.4.0_15_09_18_0.rar

Toate fișierele descărcate trebuie să fie despachetate și plasate într-un director în care calea completă către fișiere constă numai din caractere latine, adică fără caractere de localizare a limbii.

Setări

Lansați programul Firmware flash Descărcați Instrumente v2.4 (fișier cu același nume). În fereastra care se deschide, trebuie să specificați corect fișierele descărcate și setările de conexiune.


Fișierele descărcate se află în directorul bin al arhivei cu firmware-ul. Pentru fiecare fișier trebuie să specificați adresa corectă de descărcare. Utilizați următorul tabel pentru a selecta fișiere și a atribui adrese:

Setați următoarele setări:

  • SPIAutoSet - instalat;
  • CrystalFreq - 26M;
  • DIMENSIUNEA FLASH – 8Mbit sau 16Mbit in functie de dimensiunea memoriei flash;
  • PORT COM – selectați portul la care este conectat ESP;
  • BAUDRATE – 115200

Pentru a porni firmware-ul, trebuie să apăsați butonul „START”.

Secvența de pași pentru intermiterea firmware-ului ESP8266

1. Conectați modulul la computer conform diagramei de conectare din acest articol.

2. Porniți monitorul portului serial. Emiteți comenzile AT AT+RST și AT+GMR pentru a determina versiunea curentă firmware-ul și dimensiunea memoriei modulului. Acest pas vă permite, de asemenea, să verificați dacă modulul este conectat corect.

3. Rulați programul de firmware Flash Download Tools, configurați corect fișierele descărcate și setați setările.

4. Opriți alimentarea modulului ESP8266.

5. Conectați pinul CPIO0 la masă.

6. Alimentați modulul ESP8266.

7. Apăsați butonul START din programul de firmware

8. Așteptați până când firmware-ul modulului este finalizat. Când firmware-ul este finalizat, mesajul FINISH va apărea în verde.

9. Deconectați alimentarea de la modulul ESP8266. Deconectați împământarea de la pinul CPIO0.

10. Porniți modulul, porniți monitorul portului serial. Asigurați-vă că modulul funcționează și noua versiune firmware prin executarea comenzii AT AT+GMR.

Cum să utilizați modulul ESP-01 pentru a controla LED-ul prin Internet, un modul care vă permite să controlați orice dispozitiv electric.

În acest tutorial ESP8266, folosim modulul ESP-01 pentru a controla un LED prin Internet. ESP8266 este o platformă ieftină, dar eficientă pentru comunicarea prin Internet.

De asemenea, este ușor de utilizat cu Arduino. După finalizarea acestei lecții, veți dobândi cunoștințele de bază despre controlul oricărui dispozitiv electric prin Internet de oriunde în lume!

Aici vom folosi un convertor USB-to-TTL pentru a programa ESP8266 ESP-01. Și vom folosi pentru a dezvolta un server web pentru telecomanda LED.

Cum funcţionează asta

ESP8266 poate fi controlat dintr-o rețea locală Wi-Fi sau de pe Internet (după redirecționarea portului). Modulul ESP-01 are pini GPIO care pot fi programați pentru a porni sau opri un LED sau un releu prin Internet. Modulul poate fi programat folosind un convertor Arduino USB-to-TTL prin pini seriali (RX, TX).

Conectarea hardware-ului la ESP8266

Putem folosi un convertor USB-to-TTL sau putem folosi Arduino pentru a programa ESP8266. Iată trei metode pe care le puteți urma pentru a încărca codul în ESP8266 - alegeți-o pe cea care vi se potrivește cel mai bine. Consultați diagramele pentru fiecare opțiune și configurați echipamentul în consecință.

1. Convertor USB-TTL folosind conectorul DTR

Dacă utilizați un convertor USB-to-TTL cu ieșire DTR, descărcarea va decurge fără probleme. Vă rugăm să rețineți că monitorul serial nu va funcționa atunci când faceți acest lucru.

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
RTS → RST
DTR → GPIO0

2. Convertor USB la TTL fără ieșire DTR

Pentru a conecta un convertor USB la TTL fără pin DTR, trebuie să folosim transmisia manuală. Pentru aceasta folosim două butoane - vezi următoarea diagramă:

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
Buton de resetare → RST
Buton Flash → GPIO0

Când descărcați codul, faceți clic pe butonul „Descărcări” (Flash). Țineți butonul apăsat în timp ce apăsați butonul Reset o dată. Acum puteți elibera butonul Flash. ESP8266 este acum într-un mod în care puteți încărca o schiță.

3. Folosind Arduino Uno pentru a încărca codul în ESP8266

Puteți utiliza ESP8266 ESP-01 pentru a rula codul. Când descărcați codul, urmați aceeași procedură ca în al doilea punct - mențineți apăsat butonul „Descărcare” în timp ce apăsați o dată pe resetare, apoi eliberați butonul Flash.

ARDUINO → ESP8266 ESP-01
GND → GND
TX → TX
RX → RX
Buton de resetare → RST
Buton flash → GPIO0

Descărcarea codului ESP8266

Utilizați oricare dintre metodele de mai sus și deschideți , apoi selectați placa ESP8266 din meniu:

Instrumente → Placă → Modul ESP8266 generic
(Instrumente → Placă → Modul ESP8266)

Nota. Dacă nu ați instalat și configurat placa ESP8266 Arduino, vă rugăm să faceți acest lucru urmând pașii de mai sus din acest tutorial. Apoi poți trece mai departe.

Acum copiați codul de mai jos în Arduino IDE și faceți clic pe butonul de descărcare. Schimbați SSID în punct Acces Wi-Fiși schimbați parola la parola dvs. wifi și compilați.

#include const char* ssid = "YOUR_SSID";//introduceți ssid-ul dvs. const char* password = "YOUR_PASSWORD";//introduceți parola int ledPin = 2; // GPIO2 al serverului ESP8266 WiFiServer(80);//Service Port void setup() ( Serial.begin(115200); delay(10); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); // Conectați-vă la Rețea WiFi Serial.println(); Serial.print("Se conectează la "); "); ) Serial.println(""); Serial.println("WiFi conectat"); // Porniți serverul server.begin(); "Serverul pornit"); // Imprimați adresa IP Serial.print(" Utilizați această adresă URL pentru a vă conecta: "); .println("/"); void loop() ( // Verificați dacă un client a conectat WiFiClient client = server.available(); if (!client) ( return; ) // Așteptați până când clientul trimite câteva date Serial .println("new client" while(!client.available())( delay(1); ) // Citiți prima linie a cererii String request = client.readStringUntil("); \r"); (cerere); client.flush(); // Potriviți valoarea int solicitată = LOW; if (request.indexOf("/LED=ON") != -1) ( digitalWrite(ledPin, HIGH); valoare = HIGH; ) if (request.indexOf("/LED=OFF") != -1)( digitalWrite(ledPin, LOW); valoare = LOW; // Returnează răspunsul client.println("HTTP/1.1 200 OK"); client.println("Tip de conținut: text/html"); client.println(""); // nu uitați de acest client.println(""); client.println(" "); client.print("Pinul LED este acum: "); if(valoare == HIGH) ( client.print("On"); ) else ( client.print("Off"); ) client.println( "

"); client.println("Clic Aici porniți LED-ul pinului 2
"); client.println("Clic aici stingeți LED-ul pinului 2
"); client.println(""); întârziere(1); Serial.println("Client deconectat"); Serial.println(""); )

Deschideți monitorul serial și deschideți adresa URL afișată pe monitorul serial prin browser-ul dvs. web. Conectați GPIO 2 de la ESP8266 la pinul LED mai lung. Acum vă puteți controla LED-ul de la distanță prin Internet!

Scoateți toate firele necesare pentru a descărca codul. Modulul LM1117 este utilizat pentru a oferi o ieșire reglată de 3,3 V. Acest lucru vă va permite să faceți modulul ESP8266 sau ESP-01 independent.

Conectarea ESP8266 la Internet

În prezent, modulul ESP8266 este accesibil doar prin Wi-Fi local. Pentru a gestiona dispozitivele de pe Internet, trebuie să efectuați redirecționarea portului pe router.

Pentru a face acest lucru, găsiți adresa IP a sistemului dvs. fie folosind comanda „ifconfig” din terminalul dvs., fie accesați whatsmyip.org. Copiați adresa IP. Acum deschideți setarea routerului și accesați Setările de redirecționare. Introduceți detaliile pentru „Portul de serviciu” și „Adresa IP”. Portul de serviciu este numărul portului din codul dvs. Arduino (portul de serviciu: 80):

Server WiFiServer(80);//Port de serviciu

Adresa IP este cea specificată mai devreme. Lăsați restul setărilor ca implicite. Acum accesați browserul și introduceți adresa: xxx.xxx.xx.xx:80 Ar trebui să se deschidă o pagină pentru a controla LED-ul.

Modulul Wi-Fi ESP-01 este cel mai popular modul din seria ESP8266. Comunicarea cu un computer sau microcontroler se realizează prin UART folosind un set de comenzi AT. În plus, modulul poate fi utilizat ca dispozitiv independent, pentru a face acest lucru, trebuie să vă încărcați propriul firmware; Puteți programa și descărca firmware prin versiunea Arduino IDE de mai sus 1.6.5. Pentru a flash-ul firmware-ului modulului, veți avea nevoie de un adaptor UART-USB. Modulul ESP-01 poate fi utilizat pe scară largă în dispozitivele IoT (Internet of Things).

Specificațiimodul

  • Wi-Fi 802.11 b/g/n
  • Moduri WiFi: client, punct de acces
  • Puterea de ieșire - 19,5 dB
  • Tensiune de alimentare - 1,8 -3,6 V
  • Consum de curent - 220 mA
  • Porturi GPIO: 4
  • Frecvența ceasului procesorului - 80 MHz
  • Capacitatea memoriei codului
  • RAM - 96 KB
  • Dimensiuni - 13×21 mm

Conexiune

Să luăm în considerare modul de comandă AT. Pentru a face acest lucru, conectați modulul la computer printr-un adaptor USB-UART. Scopul pinilor modulului (vezi Figura 1):
  • VCC - +3,3 V
  • GND - pământ
  • Pini RX, TX - UART
  • Ieșire CH_PD - Activare cip
  • GPIO0, GPIO2 - contacte digitale
Modulul necesită alimentare externă de 3,3 V.

Figura 1. Atribuirea pinilor modulului ESP-01

Schema de conectare pentru comunicarea cu modulul în modul de comandă AT (Figura 2):

Figura 2. Diagrama de conectare a modulului ESP-01 la un computer printr-un port serial

Figura 3. Circuitul de asamblare

Pentru a trimite comenzi AT în Mac OS X, puteți utiliza programul CoolTerm, iar în sistemul de operare Windows, programul Termite. Puteți afla doar viteza portului COM pentru conectarea la modul în mod experimental, aceasta poate fi diferită pentru un firmware diferit. Pentru modulul meu, viteza sa dovedit a fi de 9600 baud. În plus, a fost posibil să se stabilească schimbul numai după deconectarea și reconectarea pinului CH_PD la sursa de alimentare. După conectare, tastați AT în terminal și ar trebui să primească un răspuns OK de la modul. Comanda AT+GMR dă numărul versiunii firmware-ului modulului, comanda AT+RST repornește modulul (vezi Fig. 4). O listă de comenzi AT de bază poate fi găsită în acest document (ESP8266ATCommandsSet.pdf).

Figura 4. Trimiterea comenzilor AT către modul de la Termite

Dacă modul de comandă AT nu este convenabil pentru dvs., placa poate fi configurată folosind programul AppStack ESP8266 Config, care poate fi descărcat de la linkul http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip. Aspect Programul este prezentat în Figura 5. Modulul este configurat folosind o interfață grafică, iar execuția comenzilor poate fi văzută în monitorul programului (vezi Figura 6). Monitorul poate trimite și comenzi AT din linia de comandă.

Figura 5. Programul AppStack ESP8266 Config

Figura 6. Monitor serial al programului AppStack ESP8266 Config

Există două opțiuni pentru utilizarea acestui modul:

  • împreună cu un microcontroler (de exemplu Arduino), care va controla modulul prin UART;
  • scrierea propriului firmware pentru a utiliza ESP8266 ca dispozitiv independent.

Exemplu de utilizare

Să luăm în considerare un exemplu de conectare a unui senzor de umiditate și temperatură DHT11 la modulul ESP-01 și trimiterea datelor către serviciul cloud ThingSpeak (https://thingspeak.com/). Vom avea nevoie de următoarele piese:
  • modulul ESP-01
  • consiliu de dezvoltare
  • senzor de umiditate și temperatură DHT11
  • rezistență 10 kOhm
  • fire de conectare
  • alimentare 3 - 3.6V
Mai întâi, să conectăm senzorul DS18B20 la modulul ESP-01. DS18B20 este un senzor digital de temperatură care funcționează printr-o interfață cu un singur fir. Schema de conectare a senzorului DS18B20 la modul este prezentată în Fig. 7.

Figura 7. Schema de conectare a senzorului DHT11 la modulul ESP-01.

Apoi trebuie să creați un profil în serviciul ThingSpeak. Serviciul are instrucțiuni pentru trimiterea datelor către serviciu și primirea datelor de la serviciu.

Figura 8. Circuit complet.

Vom scrie programul în Arduino IDE pentru ESP8266. Vom folosi bibliotecile ESP8266WiFi.h (încorporate) și OneWire.h. Să încărcăm schița din Lista 1 pe placa Arduino - primim date de la senzorul de temperatură și trimitem datele către serviciul ThingSpeak. Trebuie să introduceți datele pentru punctul de acces WiFi pentru modulul ESP-01:

  • const char *ssid;
  • const char *parolă;
precum și parametrul privateKey pentru aplicația dvs. din serviciul ThingSpeak. Lista 1 // site-ul web // Includeți biblioteca pentru a lucra cu esp8266 #include // Includeți biblioteca DHT pentru a funcționa cu DHT11 #include // pin connection DATA #define DHTPIN 4 // senzor DHT11 #define DHTTYPE DHT11 // crearea unei instanțe a obiectului DHT DHT dht(DHTPIN, DHTTYPE); //ssid Rețele WiFi conexiuni const char ssid = "********"; // Parola WiFi rețele de conexiune const char parola = "*****"; // ThingSpeak Server const char* host = "184.106.153.149"; // CHEIA API a aplicației dvs. ThingSpeak const char* privateKey = "****************"; // variabile pentru stocarea temperaturii și umidității float temp; umiditatea plutitoare // variabilă pentru intervalul de măsurare unsigned long millis_int1=0; void setup() ( // pornește portul serial Serial.begin(115200); delay(10); Serial.print("Conectează-te la WiFi"); Serial.println(ssid); // Conectați prin WiFi WiFi.begin( ssid , parola); while (WiFi.status() != WL_CONNECTED) ( delay(500); ) Serial.println("WiFi conectat" // start dht.begin(); if(milis()-millis_int1>=10*60000) ( Serial.print("conectează-te la ThingSpeak"); Serial.println(gazdă); // Folosește clientul WiFi Client WiFiClient; if (!client.connect (gazdă, 80)) ( Serial.println("conexiune a eșuat"); return; ) // obțineți temperatura datelor temp = get_data_temperature(); update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += umiditate; // Trimite o cerere către server client.print(String (" GET ") + url + " HTTP/1.1\r\n" + "Gazdă: " + gazdă + "\r\n" + "Conexiune: închidere\r\n\r\n" (10 );

// Răspunsul serverului ThingSpeak while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) ) Acum, în serviciul ThingSpeak putem vizualiza un grafic al citirilor a senzorului nostru de temperatură DHT11 (Figura 9).

Figura 9. Graficul citirilor senzorului de temperatură DS18B20 în serviciul ThingSpeak.

Întrebări frecvente Întrebări frecventecomenzi AT
  • Verificați dacă modulul este conectat corect;
  • Verificați dacă contactele Rx, Tx sunt conectate corect la adaptorul UART-USB;
  • Verificați conectarea pinului CH_PD la 3,3 V;
  • Selectați experimental viteza de comunicare pe portul serial.
2. Modulul ESP-01 nu primește date de temperatură de la senzorDHT11
  • Verificați dacă senzorul DHT11 este conectat corect la modul.
3. Datele nu sunt transferate către serviciul ThingSpeak
  • Verificați conexiunea modulului la punctul de acces WiFi;
  • Verificați conexiunea punctului de acces WiFi la Internet;
  • Verificați dacă solicitarea către serviciul ThingSpeak este corectă.