Cum să începi cu FreeRTOS și ESP8266
- 4 minute de citit
- 13 exemple de cod
- 9 imagini
Disponibil și în English
Pe această pagină
Fotografia de copertă de Matan Segev de pe PexelsCover
Recent, am cumpărat de pe AliExpress un NodeMCU, cam pentru 4 dolari. Motivul a fost să aflu ce e atâta tam-tam cu ESP8266.
NodeMCU este o platformă IoT open source. Include un firmware care rulează pe SoC-ul Wi-Fi ESP8266 de la Espressif Systems și un hardware bazat pe modulul ESP-12.
Sursa: fișa tehnică ESP8266
Comparativ cu Arduino UNO, ESP8266 mea le întrece pe toate la putere de calcul și la preț.
ESP8266 este de 500% mai rapid și de 82% mai ieftin decât Arduino. ESP8266 are și conectivitate WiFi.
Am fost foarte surprins când am vizitat site-ul Espressif pentru ESP8266. Există multă documentație și multe resurse pe care le poți folosi. De exemplu, există o aplicație Android care îi spune ESP8266 să se conecteze la WiFi-ul tău. Aplicația trimite SSID-ul și parola sub formă de pachete, ESP8266 le interceptează și apoi se conectează la WiFi-ul tău. Aceasta se numește SmartConfig și a fost inventată de Texas Instruments.
În acest articol, te voi ghida să configurezi și să rulezi exemplul Smart Config din RTOS SDK-ul Espressif.
Iată ce vei avea nevoie:
- Un calculator modern.
- O placă NodeMCU cu ESP12-E
- VirtualBox ( )
- Ubuntu Server LTS ( )
Configurarea VirtualBox pentru dezvoltare
- Descarcă VirtualBox și instalează Ubuntu Server. Ar trebui să fie ușor de făcut, dar dacă nu știi cum, caută pe Google sau uită-te la acest ghid pas cu pas. Instalarea unui sistem de operare este o abilitate utilă. (Sfat: Când VirtualBox îți cere să selectezi discul, alege-l alocat dinamic și de cel puțin 50GB. Asta te va scuti de multe bătăi de cap mai încolo.)
- Asigură-te că poți accesa internetul din mașina virtuală și configurează serverul DNS:
Fă clic dreapta pe mașină, apoi Settings -> Network
Pentru a configura serverul DNS, uită-te la acest exemplu.
Exemplu:
dns-nameservers 8.8.8.8 8.8.4.4Dacă poți face ping la Google, ești pregătit!
- (Opțional) Instalează serverele OpenSSH și Samba. Asta îți va face viața mult mai ușoară.
- (Opțional) Activează port forwarding. Pentru a te conecta direct prin SSH la mașina virtuală, trebuie să activezi port forwarding. De exemplu, pentru a mapa portul 2222 de pe mașina gazdă la portul 22 al mașinii virtuale.
Activează Port forwarding: Settings -> Network -> Port Forwarding
Dacă ai activat port forwarding, acum te poți conecta prin SSH la mașina virtuală din mașina gazdă, ca în figura de mai jos.
FIG1: ssh -p 2020 denis@localhost
Notă: Dacă folosești Windows, ai nevoie de Putty pentru a te conecta prin SSH la mașina virtuală.
- Conectează NodeMCU și execută următoarea comandă:
tail -f /var/log/kern.log
Ar trebui să vezi că dispozitivul a fost identificat ca /dev/ttyUSB0. Dacă nu se întâmplă nimic, trebuie să adaugi USB-ul la mașina virtuală. După ce adaugi USB-ul, deconectează și reconectează dispozitivul.
Adăugarea USB: Settings -> Ports -> USB
Dacă ai ajuns până aici și totul funcționează, felicitări! Acum ești pregătit să compilezi SDK-ul și să rulezi exemplul SmartConfig. Chiar poți să-mi trimiți un tweet la
Compilarea SDK-ului și flash-uirea plăcii
- Instalează pachetele necesare (ca mai jos). Aceste informații sunt disponibile și în readme.md al SDK-ului.
sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin-
Creează un folder nou și intră în el:
mkdir Development && cd Development -
Clonează Open SDK:
git clone --recursive https://github.com/pfalcon/esp-open-sdk.git -
Rulează make:
make
Avertisment: Acest pas va dura ceva până se termină, așa că fii răbdător. Pe mașina mea virtuală a durat 50 de minute. Pe a ta poate dura mai mult sau mai puțin, dar înainte să rulezi, asigură-te că ești conectat la internet și că DNS-ul este configurat corect. Cel mai bun mod de a verifica este să execuți un ping către Google sau alt site, dacă Google este blocat în regiunea ta.
Comandă ping reușită: $ ping medium.com
Dacă ping-ul reușește, poți minimiza ferestrele și urmări un episod din emisiunea ta TV preferată. Revino după aproximativ 40 de minute (dar asigură-te că nu intră calculatorul în somn).
După ce SDK-ul a fost compilat cu succes, vei vedea un mesaj care îți spune să adaugi ceva în PATH. Pentru asta, execută următoarea comandă:
echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profileComanda va adăuga șirul la fișierul ~/.profile. Acum rulează următoarea comandă:
xtensa-lx106-elf-gcc --version
Dacă comanda se execută cu succes, ești pregătit!
- Testează placa
Conectează NodeMCU și rulează lsusb pentru a verifica dacă dispozitivul este conectat. După aceea, rulează esptool.py chip_id. Ar trebui să vezi acum ID-ul chip-ului plăcii.
esptool.py chip_id
5. Clonează ESP8266_RTOS_SDK
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git- Exportă calea către SDK și calea către SDK/BIN folosind comenzile de mai jos.
echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profileecho 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile- Compilează exemplul SmartConfig
cd /home/denis/Development/ESP8266_RTOS_SDK/examples/<strong>smart_config</strong>/chmod +x ./gen_misc.sh./gen_misc.shAcum acceptă valorile implicite până ajungi la SPI_SIZE_MAP. Aici selectezi 4, deoarece NodeMCU are o memorie flash de 32Mbit, ceea ce înseamnă 4MB. Poți selecta și SPI_SPEED 3=80Mhz
Vei vedea ceva de genul:
!!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDKBIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/binNo boot needed.Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATHeagle.flash.bin — — — →0x00000eagle.irom0text.bin — →0x20000!!!- Flash-uiește placa
cd $BIN_PATHesptool.py erase_flashesptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.binAcum, dacă resetezi placa, ar trebui să nu vezi niciun LED clipind.
- Folosește aplicația de telefon
Captură de ecran de pe dispozitivul meu Android
Deschide aplicația, asigură-te că ești conectat la un AP WiFi, introdu parola și apasă confirm. După câteva secunde, ESP8266 ar trebui să se conecteze la AP-ul tău. Gata. Felicitări că ai ajuns până la capăt!
Dacă vrei să dezvolți mai mult folosind ESP8266-RTOS-SDK, te rugăm să vizitezi site-urile oficiale. Acolo vei găsi multe resurse și documentație. De asemenea, uită-te și la celelalte exemple din folderul SDK-ului.
Mulțumesc foarte mult că ai citit acest articol. Dacă vrei să mă contactezi, poți face asta pe Twitter: MetonymyQT