de Denis Nuțiu
Cum să începeți cu FreeRTOS și ESP8266

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.

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:
- Un computer modern.
- O placă NodeMCU cu ESP12-E
- VirtualBox (https://www.virtualbox.org/wiki/Downloads)
- Ubuntu Server LTS (https://www.ubuntu.com/download/server)
Configurarea VirtualBox pentru dezvoltare
- 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.)
- Asigurați-vă că puteți accesa internetul din mașina virtuală și configurați serverul DNS:

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ă.

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.

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.

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
- 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.

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.

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

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