Cómo empezar con FreeRTOS y ESP8266

Recientemente, compré un NodeMCU de AliExpress por alrededor de $ 4. La razón por la que hice esto fue para averiguar de qué se trata todo el alboroto con ESP8266.

NodeMCU es una plataforma IoT de código abierto. Incluye firmware que se ejecuta en el SoC Wi-Fi ESP8266 de Espressif Systems y hardware que se basa en el módulo ESP-12.

Comparado con el Arduino UNO, mi ESP8266 lo saca totalmente del parque cuando se trata de potencia y precio de la CPU.

El ESP8266 es 500% más rápido y 82% más barato que el Arduino. El ESP8266 también tiene conectividad WiFi.

Me sorprendió mucho cuando visité el sitio web de Espressif para el ESP8266. Hay mucha documentación y recursos que puede utilizar. Por ejemplo, hay una aplicación de Android que le dice a su ESP8266 que se conecte a su WiFi. La aplicación envía el SSID y la contraseña como paquetes, el ESP8266 los detecta y luego se conecta a su WiFi. Esto se llama SmartConfig y fue inventado por Texas Instruments.

En este artículo, lo guiaré para configurar y ejecutar el ejemplo de Smart Config desde Espressif RTOS SDK.

Estas son las cosas que necesitará:

  • Una computadora moderna.
  • Una placa NodeMCU con ESP12-E
  • VirtualBox (//www.virtualbox.org/wiki/Downloads)
  • Ubuntu Server LTS (//www.ubuntu.com/download/server)

Configuración de VirtualBox para desarrollo

  1. Descarga VirtualBox e instala Ubuntu Server. Esto debería ser fácil de hacer, pero si no sabe cómo hacerlo, busque en Google o eche un vistazo a esta guía gráfica paso a paso. La instalación de un sistema operativo es una buena habilidad. (Consejo: cuando VirtualBox le pida que seleccione el disco, hágalo asignado dinámicamente y con al menos 50 GB de tamaño. Esto le ahorrará algunos dolores de cabeza en el futuro).
  2. Asegúrese de que puede acceder a Internet desde la máquina virtual y configurar el servidor DNS:

Para configurar el servidor DNS, eche un vistazo a este ejemplo.

Ejemplo: dns-nameservers 8.8.8.8 8.8.4.4si puedes hacer ping a Google, ¡estás listo!

3. (Opcional) Instale OpenSSH y el servidor Samba. Esto le facilitará la vida.

4. (Opcional) Habilite el reenvío de puertos. Para SSH directamente en su máquina virtual, debe habilitar el reenvío de puertos. Por ejemplo, para asignar el puerto 2222 de su máquina host al puerto 22 de su máquina virtual .

Si ha habilitado el reenvío de puertos, ahora puede SSH en su máquina virtual desde su máquina Host como se muestra en la siguiente figura.

Nota: Si está en Windows, necesita Putty para SSH en la máquina virtual.

5. Conecte su NodeMCU y ejecute el siguiente comando:

tail -f /var/log/kern.log

Esto debería revelarle que el dispositivo ha sido identificado como / dev / ttyUSB0. Si no sucede nada, debe agregar el USB a la máquina virtual. Después de agregar el USB, desconecte y vuelva a conectar su dispositivo.

Si ha llegado a este punto y todo está funcionando, ¡ felicidades ! Ahora está listo para compilar el SDK y ejecutar el ejemplo de SmartConfig. Incluso puedes enviarme un tweet en //twitter.com/metonymyqt

Compilar el SDK y flashear la placa

  1. Instale los paquetes necesarios (como se muestra a continuación). Esta información también está disponible en el archivo readme.md del 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. Cree una carpeta nueva y navegue hasta ella: mkdir Development && cd Development

3. Clona el SDK abierto: //github.com/pfalcon/esp-open-sdk

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

3. Ejecute make: make

Advertencia: este paso tardará un poco en finalizar, así que tenga paciencia. En mi máquina virtual se completó después de 50 minutos. En el suyo, puede tardar más o menos, pero antes de ejecutarlo, asegúrese de estar conectado a Internet y de que el DNS esté configurado correctamente . La mejor manera de verificar esto es ejecutar un ping a Google o algún otro sitio si Google está bloqueado en su región.

Si su ping tiene éxito, puede minimizar las ventanas y ver un episodio de su programa de televisión favorito. Vuelve después de unos 40 minutos (pero asegúrate de que tu computadora no entre en suspensión).

Una vez que el SDK se haya creado correctamente, verá un mensaje que le indica que ponga algo en su camino. Para hacerlo, ejecute lo siguiente:

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

El comando agregará la cadena al archivo ~ / .profile . Ahora ejecute el siguiente comando:

xtensa-lx106-elf-gcc --version

Si el comando se ejecuta correctamente, ¡está listo para comenzar!

4. Prueba tu tabla

Conecte su NodeMCU y ejecute lsusb para verificar que su dispositivo esté conectado. Después de eso, ejecute esptool.py chip_id . Ahora debería ver la identificación del chip de la placa.

5. Clonar ESP8266_RTOS_SDK

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

6. Exporte la ruta del SDK y la ruta del SDK / BIN utilizando los siguientes comandos.

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 el ejemplo de SmartConfig

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

Ahora acepte los valores predeterminados hasta que se le solicite SPI_SIZE_MAP. Aquí es donde selecciona 4 porque el NodeMCU tiene un tamaño de flash de 32 Mbit y esto se traduce en 4 MB. También puede seleccionar SPI_SPEED 3 = 80Mhz

Verás algo como esto:

!!!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. Destella la pizarra

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