guia-de-programacion-del-esp32-en-entorno-arduino

Guía de programación del ESP32 en entorno Arduino

  • 5 min

En este artículo vamos a ver cómo programar un *ESP32 con el entorno de Arduino, y las diferencias entre programar un ESP32 y un Arduino.

Espressif ha hecho un esfuerzo muy importante en portar el Core del ESP32 a Arduino para que sea muy similar a programar un Arduino convencional.

Sin embargo, el ESP32 tiene muchas más opciones y posibilidades que un Arduino tradicional. Así que algunas cosas son algo diferentes.

Funciones de tiempo

Millis y Delay

Las funciones de tiempo millis() y micros() funcionan igual que en Arduino.

También funcionan delay() y delayMicroseconds(). Sin embargo, delayes no bloqueante, mientras que delayMicroseconds es bloqueante.

Yielding

Al igual que nos pasaba con el ESP8266, el Yielding es una de las características mas importantes y que dan lugar a más errores y reinicios.

El ESP32 necesita realizar tareas de gestión de la conexión WiFi y la pila TCP/IP. Si no las atiende, probablemente se os va a reiniciar.

Para que todo funcione, necesitamos dejar al ESP32 “respirar”. Para eso, tenemos que llamar a la función yield, que permite al ESP32 atender a sus cositas.

Afortunadamente, la función yield se ejecuta en todo delay y al final del loop. Sin embargo, la función delaymicroseconds() no hace una llamada a yield().

Por lo que, básicamente, se traduce en que no podéis hacer procesos bloqueantes largos (>100ms) o se os va a reiniciar el ESP32.

Conexiones y hardware

Comunicación

Puerto serie

El uso del puerto serie en el ESP32 es muy similar a su uso en Arduino y emplea todas las funciones a las que estamos acostumbrado para enviar y recibir datos (read, write, print, println…)

Pero es en el ESP32 tenemos disponibles varios UART, y funciones adicionales.

Bus I2C

El uso del I2C en el ESP32 es similar a Arduino y emplea las mismas funciones. Pero es en el ESP32 tenemos disponibles varios I2C, y funciones adicionales.

Bus SPI

Nuevamente, el SPI del ESP32 su uso es similar y emplea las mismas funciones que en un Arduino convencional. Pero es en el ESP32 tenemos disponibles varios SPI, y funciones adicionales.

Comunicación WiFI

Al igual que el ESP8266, la capacidad WiFi es uno de los puntos más importantes del ESP32. Por tanto, lo veremos de forma intensiva en el resto de los tutoriales de la serie.

Librerías de Arduino

La última pregunta ¿funcionará mi librería de Arduino en el ESP32? Pues, igual que ocurría en el caso del ESP8266, en general no os va a funcionar.

Si usáis una librería, tendrá que ser una compatible con vuestro ESP32. Es más, con vuestro modelo concreto de ESP32, porque no es lo mismo un ESP32-S2 que un ESP32-S3.