de Denis Nuțiu

Cum să începeți cu FreeRTOS și ESP8266

Cum sa incepeti cu FreeRTOS si ESP8266
Fotografie de copertă de Matan Segev de la PexelsCover

Recent, am achiziționat un NodeMCU de la AliExpress pentru aproximativ 4 USD. Motivul pentru care am făcut acest lucru a fost să aflu despre ce e vorba despre ESP8266.

NodeMCU este o platformă IoT open source. Include firmware care rulează pe ESP8266 Wi-Fi SoC de la Espressif Systems și hardware care se bazează pe modulul ESP-12.

Cum sa incepeti cu FreeRTOS si ESP8266
Sursa: Foaie de date ESP8266

Comparativ cu Arduino UNO, ESP8266-ul meu îl scoate din parc în ceea ce privește puterea și prețul procesorului.

ESP8266 este cu 500% mai rapid și cu 82% mai ieftin decât Arduino. ESP8266 are și conectivitate WiFi.

Am fost foarte surprins când am vizitat Site-ul web Espressif pentru ESP8266. Există o mulțime de documentație și resurse pe care le puteți folosi. De exemplu, există o aplicație Android care îi spune ESP8266 să se conecteze la WiFi. Aplicația trimite SSID-ul și parola ca pachete, ESP8266 le adulmecă și apoi se conectează la WiFi. Aceasta se numește SmartConfig și a fost inventată de Texas Instruments.

În acest articol, vă voi ghida să configurați și să rulați exemplul Smart Config din Espressif RTOS SDK.

Iată lucrurile de care aveți nevoie:

Configurarea VirtualBox pentru dezvoltare

  1. Descărcați VirtualBox și instalați Ubuntu Server. Acest lucru ar trebui să fie ușor de realizat, dar dacă nu știi cum, Google-l sau aruncă o privire la această imagine ghid pas cu pas. Instalarea unui sistem de operare este o abilitate plăcută. (Sfat: Când VirtualBox vă solicită să selectați discul, faceți-l să fie alocat dinamic și să aibă o dimensiune de cel puțin 50 GB. Acest lucru vă va economisi unele dureri de cap mai jos de pe linie.)
  2. Asigurați-vă că puteți accesa internetul din mașina virtuală și configurați serverul DNS:
1611040026 664 Cum sa incepeti cu FreeRTOS si ESP8266
Faceți clic dreapta pe aparat, apoi Setări -> Rețea

Pentru a configura serverul DNS, aruncați o privire la aceasta exemplu.

Exemplu: dns-nameservers 8.8.8.8 8.8.4.4 Dacă poți trimite ping la Google, atunci ești bine să mergi!

3. (Opțional) Instalați OpenSSH și Samba Server. Acest lucru vă va face viața mult mai ușoară.

4. (Opțional) Activați redirecționarea porturilor. Pentru a trimite SSH direct în mașina dvs. virtuală, trebuie să activați redirecționarea porturilor. De exemplu, pentru a mapa harta portul 2222 pe dumneavoastră mașină gazdă la portul 22 de dumneavoastră mașină virtuală.

1611040026 422 Cum sa incepeti cu FreeRTOS si ESP8266
Activați redirecționarea portului: Setări -> Rețea -> Port Forwînflăcărat

Dacă ați activat redirecționarea porturilor, puteți acum SSH în mașina dvs. virtuală de pe mașina gazdă, ca în figura de mai jos.

1611040026 11 Cum sa incepeti cu FreeRTOS si ESP8266
FIG1: ssh -p 2020 denis @ localhost

Notă: Dacă sunteți pe Windows, aveți nevoie Chit pentru a SSH în mașina virtuală.

5. Conectați NodeMCU și executați următoarea comandă:

tail -f /var/log/kern.log

Acest lucru ar trebui să vă dezvăluie faptul că dispozitivul a fost identificat ca / ​​dev / ttyUSB0. Dacă nu se întâmplă nimic, atunci trebuie să adăugați USB-ul la mașina virtuală. După adăugarea USB-ului, deconectați-vă și conectați din nou dispozitivul.

1611040026 70 Cum sa incepeti cu FreeRTOS si ESP8266
Adăugarea USB: Setări -> Porturi -> USB

Dacă ați atins acest punct și fiecare lucru funcționează, Felicitări! Acum sunteți gata să compilați kitul SDK și să rulați exemplul SmartConfig. Puteți chiar să-mi trageți un tweet la https://twitter.com/metonymyqt

Compilarea SDK-ului și intermitentul plăcii

  1. Instalați pachetele necesare (ca mai jos). Aceste informații sunt disponibile și pe readme.md al kitului SDK.
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

2. Creați un folder nou și navigați în el: mkdir Development && cd Development

3. Clonați Open SDK: https://github.com/pfalcon/esp-open-sdk

git clone --recursive https://github.com/pfalcon/esp-open-sdk.git

3. Rulați marca: make

Avertisment: acest pas va dura ceva timp pentru a finaliza, deci vă rugăm să aveți răbdare. Pe mașina mea virtuală s-a finalizat după 50 de minute. Pe al tău ar putea dura mai mult sau mai puțin, dar înainte de a fugi, asigură-te că ești conectat la internet și DNS este configurat corect. Cel mai bun mod de a verifica acest lucru este să executați un ping către Google sau un alt site dacă Google este blocat în regiunea dvs.

1611040026 672 Cum sa incepeti cu FreeRTOS si ESP8266
Comandă ping de succes: $ ping medium.com

Dacă ping-ul dvs. are succes, puteți minimiza ferestrele și puteți urmări un episod din emisiunea dvs. TV preferată. Reveniți după aproximativ 40 de minute (dar asigurați-vă că computerul nu se culcă).

După ce SDK-ul a fost construit cu succes, veți vedea un mesaj care vă spune să vă puneți ceva în cale. Pentru aceasta, executați următoarele:

echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profile

Comanda va adăuga șirul la ~ / .profil fişier. Acum, rulați următoarea comandă:

xtensa-lx106-elf-gcc --version

Dacă comanda se execută cu succes, atunci sunteți bine să mergeți!

4. Testează-ți tabloul

Conectați-vă NodeMCU și rulați lsusb pentru a verifica dacă dispozitivul dvs. este conectat. După aceea, fugi esptool.py chip_id. Acum ar trebui să vedeți ID-ul cipului de bord.

1611040026 754 Cum sa incepeti cu FreeRTOS si ESP8266
esptool.py chip_id

5. Clonează ESP8266_RTOS_SDK

git clone https://github.com/espressif/ESP8266_RTOS_SDK.git

6. Exportați calea SDK și calea SDK / BIN utilizând comenzile de mai jos.

echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile

7. Compilați exemplul SmartConfig

cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
chmod +x ./gen_misc.sh
./gen_misc.sh

Acum acceptați valorile implicite până când vi se solicită SPI_SIZE_MAP. Aici selectați 4 deoarece NodeMCU are o dimensiune a blițului de 32Mbit și acest lucru se traduce la 4MB. De asemenea, puteți selecta SPI_SPEED 3 = 80Mhz

Veți vedea așa ceva:

!!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDKBIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/bin
No boot needed.Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATHeagle.flash.bin — — — →0x00000eagle.irom0text.bin — →0x20000!!!

8. Blițează placa

cd $BIN_PATH
esptool.py erase_flash
esptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.bin

Acum, dacă resetați placa, nu ar trebui să vedeți niciun LED care să clipească.

9. Utilizați aplicația pentru telefon

1611040026 422 Cum sa incepeti cu FreeRTOS si ESP8266
Captură de ecran de pe dispozitivul meu Android

Deschideți aplicația, asigurați-vă că sunteți conectat la un punct de acces WiFi, introduceți parola și apăsați confirmare. După câteva secunde, ESP8266 ar trebui să se conecteze la AP. Asta e. Felicitări pentru că ați ajuns la final!

Dacă doriți să dezvoltați mai multe folosind ESP8266-RTOS-SDK, vă rugăm să vizitați site-urile oficiale. Veți găsi o mulțime de resurse și documentație acolo. De asemenea, vă rugăm să aruncați o privire la celelalte exemple găsite în folderul SDK.

Vă mulțumesc foarte mult pentru timpul petrecut citind acest lucru. Dacă doriți să ajungeți la mine, puteți face acest lucru pe Twitter: MetonimieQT

Resurse