Kako započeti s FreeRTOS-om i ESP8266

Nedavno sam kupio NodeMCU od AliExpressa za oko 4 dolara. Razlog zašto sam to učinio bio je kako bih otkrio u čemu je sva frka s ESP8266.

NodeMCU je IoT platforma otvorenog koda. Uključuje firmware koji radi na ESP8266 Wi-Fi SoC tvrtke Espressif Systems i hardver koji se temelji na modulu ESP-12.

U usporedbi s Arduinom UNO, moj ESP8266 ga potpuno izbacuje iz parka što se tiče snage i cijene procesora.

ESP8266 je 500% brži i 82% jeftiniji od Arduina. ESP8266 također ima WiFi povezivost.

Bio sam vrlo iznenađen kada sam posjetio web mjesto Espressif za ESP8266. Postoji mnogo dokumentacije i resursa koje možete koristiti. Na primjer, postoji Android aplikacija koja poručuje vašem ESP8266 da se poveže s WiFi-jem. Aplikacija šalje SSID i lozinku kao pakete, ESP8266 ih njuši, a zatim se spaja na vaš WiFi. To se naziva SmartConfig, a izumio ga je Texas Instruments.

U ovom članku vodit ću vas do postavljanja i pokretanja primjera Smart Config iz Espressif RTOS SDK.

Evo stvari koje će vam trebati:

  • Suvremeno računalo.
  • Ploča NodeMCU s ESP12-E
  • VirtualBox (//www.virtualbox.org/wiki/Downloads)
  • Ubuntu poslužitelj LTS (//www.ubuntu.com/download/server)

Konfiguriranje VirtualBox-a za razvoj

  1. Preuzmite VirtualBox i instalirajte Ubuntu Server. To bi trebalo biti lako učiniti, ali ako ne znate kako, guglajte ih ili pogledajte ovaj grafički vodič korak po korak. Instalacija OS-a je lijepa vještina. (Savjet: Kad vas VirtualBox zatraži da odaberete disk, učinite ga dinamički dodijeljenim i veličine najmanje 50 GB. To će vam uštedjeti neke glavobolje dalje.)
  2. Obavezno pristupite Internetu iz virtualnog stroja i konfigurirajte DNS poslužitelj:

Da biste konfigurirali DNS poslužitelj, pogledajte ovaj primjer.

Primjer: dns-nameservers 8.8.8.8 8.8.4.4Ako možete pingati Google, onda ste spremni!

3. (Izborno) Instalirajte OpenSSH i Samba poslužitelj. Ovo će vam znatno olakšati život.

4. (Izborno) Omogućite prosljeđivanje porta. Da biste SSH izvršili izravno u vaš virtualni stroj, morate omogućiti prosljeđivanje priključaka. Na primjer, za mapiranje porta 2222 na vašem računalu-domaćinu za port 22 vašeg virtualnog stroja .

Ako ste omogućili prosljeđivanje porta, sada možete SSH u svoj virtualni stroj s vašeg računala domaćina, kao na donjoj slici.

Napomena: Ako imate Windows, potreban vam je Putty da biste SSH pretvorili u virtualni stroj.

5. Priključite svoj NodeMCU i izvršite sljedeću naredbu:

tail -f /var/log/kern.log

Ovo bi vam trebalo otkriti da je uređaj identificiran kao / dev / ttyUSB0. Ako se ništa ne dogodi, trebate dodati USB na virtualni stroj. Nakon dodavanja USB-a, ponovo odspojite i priključite uređaj.

Ako ste došli do ove točke i sve funkcionira, čestitamo ! Sada ste spremni za kompajliranje SDK-a i pokretanje primjera SmartConfig. Možete mi čak i poslati tweet na //twitter.com/metonymyqt

Sastavljanje SDK-a i bljeskanje ploče

  1. Instalirajte potrebne pakete (kao u nastavku). Te su informacije također dostupne na readme.md SDK-a.
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. Stvorite novu mapu i dođite do nje: mkdir Development && cd Development

3. Klonirajte Open SDK: //github.com/pfalcon/esp-open-sdk

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

3. Pokreni make: make

Upozorenje: Ovaj će korak trebati neko vrijeme da se završi, pa budite strpljivi. Na mom virtualnom stroju dovršio se nakon 50 minuta. Na vašem bi to moglo potrajati više ili manje, ali prije pokretanja provjerite jeste li povezani s internetom i je li DNS pravilno konfiguriran . Najbolji način da to provjerite je izvršiti ping na Google ili neko drugo mjesto ako je Google blokiran u vašoj regiji.

Ako je vaš ping uspješan, možete minimizirati prozore i pogledati epizodu svoje omiljene TV emisije. Vratite se nakon otprilike 40 minuta (ali pripazite da računalo ne spava).

Nakon što je SDK uspješno izgrađen, vidjet ćete poruku koja vam govori da stavite nešto na put. Da biste to učinili, izvršite sljedeće:

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

Naredba će dodati niz u datoteku ~ / .profile . Sada pokrenite sljedeću naredbu:

xtensa-lx106-elf-gcc --version

Ako se naredba uspješno izvrši, onda ste spremni!

4. Testirajte svoju ploču

Priključite NodeMCU i pokrenuti lsusb potvrditi da je vaš uređaj spojen. Nakon toga pokrenite esptool.py chip_id . Sada biste trebali vidjeti ID čipa ploče.

5. Klonirajte ESP8266_RTOS_SDK

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

6. Izvezite SDK put i SDK / BIN stazu pomoću naredbi u nastavku.

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

7. Sastavite primjer SmartConfig

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

Sada prihvatite zadane vrijednosti dok se ne zatraži SPI_SIZE_MAP. Ovdje odabirete 4, jer NodeMCU ima veličinu bljeskalice 32Mbit, što znači 4MB. Također možete odabrati SPI_SPEED 3 = 80 MHz

Vidjet ćete otprilike ovako:

!!!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. Bljeskanje ploče

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

Now, if you reset the board, you should see no LED blinking.

9. Use the Phone Application

  • Android Application
  • iPhone Application

Open the Application, make sure that you’re connected to a WiFi AP, enter your password, and press confirm. After a few seconds the ESP8266 should connect to your AP. That’s it. Congratulations for reaching the end!

If you want to develop more using the ESP8266-RTOS-SDK, please visit the official websites. You’ll find a lot of resources and documentation there. Also, please take a look at the other examples found in the SDK folder.

Thank you very much for your time reading this. If you want to reach out to me, you can do so on Twitter: MetonymyQT

Resources

  • ESP8266 Overview
  • ESP8266 Resources
  • FreeRTOS Website