Erste Schritte mit FreeRTOS und ESP8266

Kürzlich habe ich eine NodeMCU von AliExpress für etwa 4 US-Dollar gekauft. Der Grund, warum ich das getan habe, war herauszufinden, worum es bei ESP8266 geht.

NodeMCU ist eine Open Source IoT-Plattform. Es enthält Firmware, die auf dem ESP8266 Wi-Fi SoC von Espressif Systems ausgeführt wird, und Hardware, die auf dem ESP-12-Modul basiert.

Im Vergleich zum Arduino UNO schlägt mein ESP8266 ihn in Bezug auf CPU-Leistung und Preis völlig aus dem Park.

Der ESP8266 ist 500% schneller und 82% billiger als der Arduino. Der ESP8266 verfügt auch über WiFi-Konnektivität.

Ich war sehr überrascht, als ich die Espressif-Website für den ESP8266 besuchte. Es gibt viele Dokumentationen und Ressourcen, die Sie verwenden können. Zum Beispiel gibt es eine Android-Anwendung, die Ihren ESP8266 anweist, eine Verbindung zu Ihrem WLAN herzustellen. Die App sendet die SSID und das Kennwort als Pakete, der ESP8266 schnüffelt sie und stellt dann eine Verbindung zu Ihrem WLAN her. Dies heißt SmartConfig und wurde von Texas Instruments erfunden.

In diesem Artikel werde ich Sie zum Einrichten und Ausführen des Smart Config-Beispiels über das Espressif RTOS SDK führen.

Hier sind die Dinge, die Sie brauchen:

  • Ein moderner Computer.
  • Eine NodeMCU-Karte mit ESP12-E
  • VirtualBox (//www.virtualbox.org/wiki/Downloads)
  • Ubuntu Server LTS (//www.ubuntu.com/download/server)

VirtualBox für die Entwicklung konfigurieren

  1. Laden Sie VirtualBox herunter und installieren Sie Ubuntu Server. Dies sollte einfach sein, aber wenn Sie nicht wissen wie, googeln Sie es oder sehen Sie sich diese grafische Schritt-für-Schritt-Anleitung an. Das Installieren eines Betriebssystems ist eine nette Fähigkeit. (Tipp: Wenn Sie von VirtualBox aufgefordert werden, die Festplatte auszuwählen, müssen Sie sie dynamisch zuweisen und mindestens 50 GB groß machen. Dies erspart Ihnen später einige Kopfschmerzen.)
  2. Stellen Sie sicher, dass Sie von der virtuellen Maschine aus auf das Internet zugreifen können, und konfigurieren Sie den DNS-Server:

Schauen Sie sich dieses Beispiel an, um den DNS-Server zu konfigurieren.

Beispiel: dns-nameservers 8.8.8.8 8.8.4.4Wenn Sie Google anpingen können, können Sie loslegen!

3. (Optional) Installieren Sie den OpenSSH- und Samba-Server. Dies wird Ihr Leben viel einfacher machen.

4. (Optional) Aktivieren Sie die Portweiterleitung. Um SSH direkt in Ihre virtuelle Maschine zu integrieren, müssen Sie die Portweiterleitung aktivieren. Zum Beispiel, um den Port 2222 auf Ihrer Host-Maschine dem Port 22 Ihrer virtuellen Maschine zuzuordnen .

Wenn Sie die Portweiterleitung aktiviert haben, können Sie jetzt von Ihrem Host-Computer aus wie in der folgenden Abbildung SSH auf Ihre virtuelle Maschine übertragen.

Hinweis: Wenn Sie unter Windows arbeiten, benötigen Sie Putty , um SSH in die virtuelle Maschine zu integrieren.

5. Schließen Sie Ihre NodeMCU an und führen Sie den folgenden Befehl aus:

tail -f /var/log/kern.log

Dies sollte Ihnen zeigen, dass das Gerät als / dev / ttyUSB0 identifiziert wurde. Wenn nichts passiert, müssen Sie den USB zur virtuellen Maschine hinzufügen. Ziehen Sie nach dem Hinzufügen des USB den Stecker aus der Steckdose und schließen Sie das Gerät wieder an.

Wenn Sie diesen Punkt erreicht haben und alles funktioniert, herzlichen Glückwunsch ! Sie können jetzt das SDK kompilieren und das SmartConfig-Beispiel ausführen. Sie können mir sogar einen Tweet unter //twitter.com/metonymyqt senden

Kompilieren des SDK und Flashen der Karte

  1. Installieren Sie die erforderlichen Pakete (wie unten). Diese Informationen finden Sie auch in der readme.md des 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. Erstellen Sie einen neuen Ordner und navigieren Sie hinein: mkdir Development && cd Development

3. Klonen Sie das Open SDK: //github.com/pfalcon/esp-open-sdk

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

3. Führen Sie make aus: make

Warning: This step will take a while to finish so please be patient. On my virtual machine it completed after 50 minutes. On yours it might take more or less, but before you run, make make sure that you’re connected to the internet and DNS is properly configured. The best way to check this is to execute a ping to Google or some other site if Google is blocked in your region.

If your ping is successful, you can minimize the windows and watch an episode of your favorite TV show. Come back after about 40 minutes (but make sure your computer doesn’t go to sleep).

After the SDK has been built successfully, you’ll see a message telling you to put something in your path. To do so, execute the following:

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

The command will append the string to the ~/.profile file. Now please run the following command:

xtensa-lx106-elf-gcc --version

If the command executes successfully, then you’re good to go!

4. Test your board

Plug your NodeMCU and run lsusb to verify that your device is connected. After that, run esptool.py chip_id. You should now see the board’s chip id.

5. Clone ESP8266_RTOS_SDK

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

6. Export the SDK path and SDK/BIN path using the commands below.

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

7. Compile the SmartConfig example

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

Now accept the default values until you’re asked for SPI_SIZE_MAP. This is where you select 4 because the NodeMCU has a flash size of 32Mbit and this translates to 4MB. You can also select SPI_SPEED 3=80Mhz

You’ll see something like this:

!!!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. Flash the board

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