
Enviar datos a ThingSpeak con la Heltec ESP32 WiFi Kit 32 V3
En los dos primeros tutoriales de esta serie comprobamos que la pantalla OLED funcionaba correctamente y aprendimos a conectar la Heltec ESP32 WiFi Kit 32 V3 a una red WiFi.
En este nuevo capítulo damos un paso más y comenzamos a trabajar con Internet de las Cosas (IoT) enviando datos a ThingSpeak, una plataforma desarrollada por MathWorks que permite almacenar, representar y analizar información procedente de dispositivos conectados.
Aunque en este ejemplo únicamente enviamos un número que va aumentando automáticamente, el objetivo es construir una base sólida para que, en los próximos tutoriales, ese número sea sustituido por la lectura de un sensor real.
¿Qué es ThingSpeak?
ThingSpeak es un servicio en la nube pensado para proyectos IoT.
Permite recibir datos mediante Internet y representarlos automáticamente mediante gráficas.
En nuestro caso utilizaremos un canal con un único campo (Field 1), aunque posteriormente podremos enviar varios sensores simultáneamente.
Material necesario
- Heltec ESP32 WiFi Kit 32 V3
- Arduino IDE
- Librerías oficiales de Heltec
- Librería oficial ThingSpeak de MathWorks
- Conexión WiFi
- Cuenta gratuita en ThingSpeak
Funcionamiento del programa
El programa realiza las siguientes tareas:
- Inicializa la pantalla OLED.
- Enciende la alimentación de la pantalla.
- Se conecta a la red WiFi.
- Inicializa la comunicación con ThingSpeak.
- Envía un valor numérico al canal.
- Muestra en la pantalla OLED si el envío ha sido correcto.
- Espera veinte segundos antes de realizar un nuevo envío.
La conexión WiFi
Antes de poder enviar datos debemos indicar el nombre de nuestra red y la contraseña.
const char* ssid = "NombreDeTuRed";
const char* password = "TuContraseña";
En el código publicado en Internet conviene sustituir estos datos por valores genéricos para proteger nuestra red.
Configuración de ThingSpeak
También debemos indicar:
- El identificador del canal.
- La clave de escritura (Write API Key).
unsigned long channelID = XXXXXXX;
const char* writeAPIKey = "XXXXXXXXXXXXXXXX";
Estas dos variables identifican el canal donde se almacenarán nuestros datos.
Envío del dato
El envío resulta muy sencillo gracias a la librería oficial.
ThingSpeak.writeField(
channelID,
1,
valor,
writeAPIKey
);
En esta llamada indicamos:
- El canal.
- El campo donde se almacenará el dato.
- El valor que queremos enviar.
- La clave de escritura.
Comprobación del resultado
La función devuelve un código.
Si devuelve 200, el envío se ha realizado correctamente.
En ese caso mostramos el mensaje correspondiente tanto en el monitor serie como en la pantalla OLED.
Si se produce algún error, el código también se muestra para facilitar la depuración.
¿Por qué enviamos un contador?
En lugar de utilizar ya un sensor, enviamos un número que aumenta automáticamente.
Esto tiene una ventaja muy importante:
Si el dato aparece correctamente en ThingSpeak, sabemos que toda la comunicación WiFi y la configuración de la plataforma funcionan correctamente.
Más adelante solo tendremos que sustituir esa variable por la lectura de un sensor.
Por ejemplo:
int luz = analogRead(A0);
o
float temperatura = leerTemperatura();
El resto del programa permanecerá exactamente igual.

Etiqueta:AIDARAC, arduino, Arduino IDE, Educación, Electrónica, esp32, Heltec ESP32, Heltec ESP32 WiFi Kit 32 V3, HT_SSD1306Wire, ies monterroso, Internet de las Cosas, iot, MathWorks, montesteam, OLED, programación, robótica, stem, tecnología, ThingSpeak, ThingSpeak API, Tutorial Arduino, wifi, WiFiClient


