Adăugare suport pentru ESP8266 în Arduino IDE și programarea unei plăci de dezvoltare NodeMcu.
Una dintre cele mai ieftine plăci de dezvoltare este Lolin NodeMcu. În acest articol am folosit versiunea 3 a acestei plăci. Portul USB al plăcii este folosit pentru programare, fiind doar un convertor USB serial. Integratul USB este diferit la NodeMcu 1.0 (Silabs CP2102) față de NodeMcu 3.0 (WCH CH340G). Acest lucru trebuie avut în vedere la instalarea driver-ului. Placa NodeMcu conține un modul cu ESP8266. Este vorba de modulul ESP-12E sau ESP-12F produs de Ai-Thinker. O memorie flash de 32 Mbit (4 megaocteți) este conectată prin interfața SPI la ESP8266.
Dacă nu ai mai folosit niciodată o astfel de placă, este timpul să instalezi driver-ul urmând unul din linkurile de mai sus. Dacă folosești Linux, driverele sunt incluse în kernel și nu ai nimic de făcut. Instalează Arduino IDE, dacă nu îl ai deja instalat. Lansează-l, și din meniul File accesează Preferences.
Adăugare URL pentru ESP8266 în Arduino IDE |
http://arduino.esp8266.com/stable/package_esp8266com_index.jsonApasă Ok, apoi mergi la Tools – Boards – Boards Manager și așteaptă actualizarea listei de plăci compatibile. În caseta de căutare introdu esp8266 și apasă Install la rezultatul apărut în listă. Cea mai recentă versiune a kitului de dezvoltare va fi descărcată și instalată.
Instalare suport ESP8266 în Arduino IDE |
- Upload speed: cu cât mai mare, cu atât mai rapidă este procedura de programare. Imediat după resetarea microcontroller-ului (și la pornire), câteva informații sunt trimise prin același port serial cu un baudrade de 74880. Ar trebui să poți programa placa cu 921600. Închide Serial Monitor înainte de programare, mai ales dacă ai setat în el alt baudrate. Am observat că încărcarea programului eșuează în această situație.
- Flash size: capacitatea memoriei flash este de 4 Megabyți. Nu poți schimba acest lucru, dar poți alege mărimea spațiului alocat pentru sistemul de fișiere. Orice ai alege, kit-ul Arduino pentru ESP8266 limitează programul (schița) la 1 Megabyte. Sistemul de fișiere poate avea până la 3 Megabyți, pe care poți stoca configurări ce nu se pierd la întreruperea alimentării, fișiere de date culese de diverși senzori conectați la placă, dar și imagini, stiluri CSS sau orice alt fișier de care ai nevoie pentru rularea unui server.
- CPU Frequency: valoarea implicită este 80 MHz. Totuși, ESP8266 poate rula și la 160 MHz.
- Debug port și Debug level: trimite informații de depanare pe unul din porturile seriale.
- Restul configurărilor pot fi lăsate la valorile implicite (în afară de portul serial).
Tot la NodeMcu, lângă portul USB se află două butoane, dintre care unul este pentru resetare (RST). Celălalt este marcat FLASH. În modul normal de funcționare pinul GPIO0 este 1 datorită unui rezistor care-l leagă la alimentare. Încărcătorul de sistem citește programul din memoria flash și îl execută în RAM. Dacă GPIO0 este 0 la apăsarea butonului FLASH, avem acces prin portul serial la încărcătorul de sistem. Astfel, putem programa memoria FLASH. Nu va fi nevoie să apeși vreun buton la programare, deoarece este atât cel de resetare cât și acesta sunt conectate la semnalele auxiliare DTR și RTS ale convertorului USB-serial.
Placa de dezvoltare NodeMcu include pini pe ambele laturi. Problema este distanța dintre acești pini. Dacă vrei să o așezi pe un cablaj de test de tip breadboard, nu mai poți conecta altceva la ea, deoarece ocupă toată lățimea plăcii breadboard. Vei avea nevoie, deci, de două plăci de cablare breadboard.
Spre deosebire de alte plăci de dezvoltare,
Am aflat în cele din urmă că LED-ul aflat pe modulul ESP8266, lângă antenă este de fapt conectat la GPIO2/TXD1. Deci, dacă editezi schița Blink și modifici pinul din LED_BUILTIN în 2 vei acționa LED-ul de pe modul. Reține că acesta interferă cu comunicarea serială (TXD1).
Configurația pinilor plăcii NodeMcu 3.0 |
Este important să știi că pinii din partea stângă a plăcii (S3, S2, S1, SC, SO, SK) sunt interfața SPI a memoriei flash incorporată în modul și nu îi poți folosi. Prin urmare iată care sunt interfețele hardware oferite de modul:
- SPI: D5=SCLK, D6=MISO, D7=MOSI, D8=CS
- PWM: D6, D7, D8
- IR (interfață senzor infraroșu): D1=Rx, D5=Tx
- ADC: A0
- I2C: D4=SDA, D5=SCL
- UART0: RX, TX, D7=CTS, D8=RTS
- UART1: D4=TX (doar Tx pentru depanare)
- I2S: D6=I2SI_DATA, D7=I2SI_BCK, D5=I2SI_WS, D8=I2SO_BCK, RX=I2SO_DATA, D4=I2SO_WS
- LED: D4
Aceiași pini sunt comuni mai multor interfețe. Din acest motiv, unele biblioteci Arduino pentru ESP8266 folosesc implementări software ale protocoalelor. De exemplu, biblioteca Wire implementează I2C pe pinii D1 și D2.
Link-uri utile (în engleză)
- Pieter P. A Beginner's Guide to the ESP8266. 08-03-2017
- Wikipedia. ESP8266
- Roland Pelayo. NodeMCU Pinout Reference @ Teach Me Microcontrollers. 26.04.2018
- ESP8266 Filesystem
- cnlohr. How to directly program an inexpensive ESP8266 WiFi Module @ Hackaday. 18.03.2015
e ok
RăspundețiȘtergere