Arranque del microcontrolador ESP32

Compartir:

Acabo de recibir el microcontrolador ESP32 DevKitC V2 NodeMCU de AZ-Delivery. Es una placa de desarrollo de bajo coste (9€ en Amazon, transporte incluido, ha llegado en 24 horas, link), bajo voltaje (3,3V) y altas prestaciones:

- Wifi integrado

- Bluetooth dual integrado

- Microprocesador Tensilica Xtensa LX6 a 160 o 240 MHz

- Memoria 520 KiB SRAM

- Doble core

 

 

Frontal de la caja

 

 

 

Trasera de la caja

Está fabricado por Espressif Systems (China), fue lanzado en 2016 y es la evolución del ESP8266 al que sustituye. El fabricante final, en mi caso, fue AZ-Delivery de Alemania y viene con los pins ya soldados en la placa pero sin conector. Las etiquetas de identificación de los pines se leen mal (hecho en Alemania?), pero es fácil localizarlos con una foto guía de AZ-Delivery. Ojo con el pin CMD (en rojo) que es un GND (corregido en la placa, pero no en la guía).

I- ARRANQUE

Lo primero que hay que hacer es instalar los drivers de la ESP32 en el IDE de Arduino (si es esa tu elección). Para ello hay que añadir la siguiente dirección (https://dl.espressif.com/dl/package_esp32_index.json) a:

- Arduino / Preferencias / Gestor de URLs Adicionales de Tarjetas.

 

Abrir Preferencias del IDE de Arduino y pegar URL en Gestor de Tarjetas

Una vez añadida la URL para buscar el driver, acudir a:

- Herramientas / Placa / Gestor de Tarjetas

 

Abrir Gestor de Tarjetas

Y escribir en la pestaña de búsqueda ESP32. Darle a buscar. Nos saldrá:

 

Paquete por Espressif Systems para ESP32

A mi ya me sale instalado, pero tú tendrás que instalarlo. A mi me costó 15 minutos bajar el archivo. No debería tardar más de unos segundos (en teoría), pero bueno. A mi me funcionó bien.

 

II- PROBAR LA WIFI

Tras conectar el ESP32 con un cable microUSB-USB al comp, arrancamos el ejemplo WifiScan

 

Abrimos el Ejemplo - WiFi - WiFiScan

Código de WiFiScan:

/*

  • This sketch demonstrates how to scan WiFi networks.
  • The API is almost the same as with the WiFi Shield library,
  • the most obvious difference being the different file you need to include:
    */
  •  

include "WiFi.h"

void setup()
{
Serial.begin(115200);

// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");

}

void loop()
{
Serial.println("scan start");

// WiFi.scanNetworks will return the number of networks found
int n = WiFi.scanNetworks();
Serial.println("scan done");
if (n == 0) {
    Serial.println("no networks found");
} else {
    Serial.print(n);
    Serial.println(" networks found");
    for (int i = 0; i < n; ++i) {
        // Print SSID and RSSI for each network found
        Serial.print(i + 1);
        Serial.print(": ");
        Serial.print(WiFi.SSID(i));
        Serial.print(" (");
        Serial.print(WiFi.RSSI(i));
        Serial.print(")");
        Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
        delay(10);
    }
}
Serial.println("");
// Wait a bit before scanning again
delay(5000);

}

Seleccionamos la placa (ESP32 Dev Module) el puerto (usb), y compilamos + subimos el programa.

Abrimos el Monitor Serie del Arduino IDE:

Y deberíamos ver todas las redes wifi disponibles alrededor de nuestro microcontrolador ESP32:

No te olvides de definir la frecuencia a 115200 baudios (lo especificado en el programa WiFiScan). De otro modo no verás nada en el Serial Monitor.

III- TROUBLSHOOTING Hay dos problemas frecuentes con los que te puedes encontrar: 1. Error: "Failed to connect to ESP32: Timed out waiting for packet header" al intentar subir código a la placa. Hay dos modos de resolverlo, uno temporal y transitorio, el otro permanente. Para el primero (transitorio), hay que presionar permanentemente el botón de "BOOT" en el microcontrolador antes y durante la subida del programa compilado. De no ser así, el ESP32 entra en un modo no receptivo. Hay que realizar este proceso cada vez que subes código a la placa, lo que puede llegar a ser un poco engorroso. La solución permanente pasa por soldar un capacitador electrolítico de 10uF entre el pin E y el GND (link), como explica Randomnerdtutorials (foto tomada de su web).       2. El segundo problema con que nos hemos encontrado es que a veces hay que presionar el botón de "RESET" de la placa tras subir el programa, para que empiece a ejecutarse. Parece ser que este problema es mas frecuente en versiones antiguas del IDE Arduino. Con la versión 1.8.12 no hemos vuelto a ver ese problema, aunque nos de el aviso la pantalla del IDE Arduino.   En resumen: la ESP32 es una placa barata pero muy potente, orientada a desarrolladores, que requiere un poquito más de trabajo en su arranque que una placa Arduino, pero sin grandes problemas. Daremos más información según la vayamos probando.

Contributors:

Compartir: