Chisme 180 del Lince: ThingSpeak EducaCont
Sierra Bermeja, noche despejada. Víctor Vílchez, el Lince de la Noche, mira la estación EducaCont midiendo el aire y se pasea nervioso.
—Los cinco sensores funcionan —dice—. Pero los números se quedan en mi pantalla. Quiero que cualquiera, desde cualquier sitio, vea cómo respira Sierra Bermeja.
La Gata Montesa le acerca el portátil.
—Entonces tus datos tienen que viajar a la nube. Pídele ayuda a CABRA: ella te explica el camino, pero la llave de tu canal la guardas tú.
CABRA, el Cerebro Autónomo de Búsqueda, Razonamiento y Análisis, responde en la pantalla: «Un canal en ThingSpeak, un dispositivo MQTT y tus bloques. Pero ojo: nada de enseñar las claves a nadie».
El Lince se rasca la oreja.
—¿Y si me las dejo a la vista en una captura?
—Entonces cualquiera podrá escribir en tu canal —dice la Gata—. Empecemos por lo importante.
Introducción
Hoy hacemos el Chisme 180: ThingSpeak EducaCont, es decir, enviar los datos de la estación EducaCont a ThingSpeak. Crearemos un canal, daremos de alta un dispositivo MQTT, configuraremos los bloques de STEAMakersBlocks con tus datos y comprobaremos que los cinco valores llegan a tu canal.
Continúa el Chisme 177, que pone en marcha la placa, y el Chisme 178, que lee el DHT22. En el Chisme 179 leímos los cinco sensores por la consola serie. Aquí añadimos Wi-Fi, MQTT y ThingSpeak.
Puedes hacerlo de dos maneras en la página del Chisme 180: paso a paso (cada paso se abre al terminar el anterior) o todo visible (los 11 pasos a la vez y el programa ya relleno). Las instrucciones son las mismas.
⚠ AVISO: saca el cable del puerto naranja COM antes de cargar
Antes de cargar el programa hay que sacar el cable del puerto naranja COM de la placa (el que va al módulo Wi-Fi) y volver a enchufarlo después. Si lo olvidas, la carga falla con el error avrdude: stk500_getsync(): not in sync. Lo detallamos en el paso 8.
Tus datos son solo tuyos
Donde veas [TU_…] pones tus valores, solo dentro de STEAMakersBlocks. No los escribas en el cuaderno, en un chat, en una captura ni en un repositorio. Si haces una captura, tapa esos datos o pon «xxxx».
| Marcador | Qué es | De dónde sale |
|---|---|---|
| [TU_CHANNEL_ID] | Número de tu canal | Paso 1 |
| [TU_CLIENT_ID] | Cliente MQTT | Paso 2 |
| [TU_USERNAME] | Usuario MQTT | Paso 2 |
| [TU_PASSWORD] | Clave MQTT | Paso 2 |
| [TU_WIFI] | Nombre de tu Wi-Fi (2,4 GHz) | Tu red |
| [TU_CLAVE_WIFI] | Clave de tu Wi-Fi | Tu red |
Cinco ideas antes de empezar
La nube y el IoT. El Internet de las Cosas son objetos con sensores que mandan datos por internet. La nube son servidores de otros que los guardan para que los veas desde cualquier sitio.
ThingSpeak, canal y campos. ThingSpeak recibe, guarda y dibuja datos. Un canal es tu cuaderno de datos y cada campo (field) es una columna. Nuestra estación usa cinco campos.
MQTT. Piensa en un tablón de anuncios. El broker es el tablón (mqtt3.thingspeak.com), tu placa es un cliente que se acerca y publicar es pegar un papelito con un dato en el sitio que toca. Puedes leer más en la explicación de MQTT de MathWorks y repasarlo con el Chisme 79.
Credenciales. Cliente, usuario y clave son como la llave de tu casa: quien las tenga puede escribir en tu canal y estropear tus datos. Por eso no se comparten ni se publican.
El orden y la espera. El campo 1 del canal tiene que recibir lo que los bloques mandan al field1, y así los cinco. Además, la cuenta gratuita admite una actualización cada 15 segundos y hasta 3 millones de mensajes al año, según las preguntas de licencia de ThingSpeak.
Qué necesitamos
- Estación EducaCont 986 (Easy Plug) con los cinco sensores y el módulo Wi-Fi ESP-01 en el puerto COM.
- Placa Keyestudio Easy Plug Control Board V2.0 (Arduino UNO).
- Ordenador con Windows, STEAMakersBlocks Connector 6.0 y cuenta en steamakersblocks.com.
- Cuenta de ThingSpeak y una red Wi-Fi de 2,4 GHz.
Los 11 pasos
Paso 1. Crea el canal en ThingSpeak
- Entra en ThingSpeak e inicia sesión con tu cuenta de MathWorks.
- Pulsa Channels → My Channels → New Channel.
- En Name pon el nombre de tu estación.
- Rellena los campos en este orden exacto: Field 1
humedad, Field 2temperatura, Field 3no2, Field 4particulas, Field 5co. - Pulsa Save Channel.
- Apunta el Channel ID como [TU_CHANNEL_ID].

Paso 2. Da de alta el dispositivo MQTT
- Pulsa Devices → MQTT → Add a new device.
- Ponle un nombre.
- En Authorize channels to access elige tu canal y pulsa Add Channel.
- Deja marcado Allow Publish.
- Pulsa Add Device.
- Copia Client ID, Username y Password: son [TU_CLIENT_ID], [TU_USERNAME] y [TU_PASSWORD].
- Guárdalos en un sitio seguro.

Paso 3. Abre el proyecto en STEAMakersBlocks
- Abre el proyecto público de la estación con tu cuenta.
- Guarda una copia en tu cuenta.
- Comprueba que cada bloque Publicar lleva solo Channel ID y Field, sin «Write API Key». ThingSpeak ya no la pide para publicar por MQTT.
Paso 4. Rellena el bloque Inicializar
| Casilla | Valor |
|---|---|
| Rx / Tx | COM-TX / COM-RX |
| Baudios | 115200 |
| WiFi red | [TU_WIFI] |
| clave (Wi-Fi) | [TU_CLAVE_WIFI] |
| Broker | mqtt3.thingspeak.com |
| Puerto | 1883 |
| Cliente Id | [TU_CLIENT_ID] |
| Usuario | [TU_USERNAME] |
| Clave (MQTT) | [TU_PASSWORD] |
Hay dos «clave»: la del Wi-Fi y la del dispositivo MQTT. El Wi-Fi debe ser de 2,4 GHz y sin portal de acceso.

Paso 5. Rellena los cinco bloques de publicar
En los cinco bloques, Channel ID = [TU_CHANNEL_ID]. Comprueba el campo y la variable de cada uno, entre pausas de 2000 ms:
| Bloque | Field | Valor |
|---|---|---|
| 1.º | field1 | humedad |
| 2.º | field2 | temperatura |
| 3.º | field3 | no2_ug_m3 |
| 4.º | field4 | particulas_ug_m3 |
| 5.º | field5 | co_mg_m3 |
El orden tiene que coincidir con el canal del paso 1.
Paso 6. Acorta la espera para las pruebas
En detener medición, cambia repetir de 15 a 1 (esperar 60000 ms). Cuando todo funcione, lo volverás a poner en 15.
Paso 7. Abre el STEAMakersBlocks Connector 6.0

Abre el Connector en tu ordenador y déjalo en ejecución. Sin el Connector, la web no ve la placa.
Paso 8. ⚠ Saca el cable del puerto COM
- Desconecta el USB.
- Aprieta la lengüeta del puerto naranja COM y saca el cable por el lado de la placa (el otro extremo se queda en el adaptador Wi-Fi).
- Vuelve a conectar el USB.
Paso 9. Conecta la placa, compila y carga
⚠ Antes de pulsar «Compilar y cargar»: ¿has sacado el cable del puerto naranja COM? Si no, vuelve al paso 8.
Conecta la placa desde la web, pulsa Compilar y cargar y espera a que termine sin errores.
Paso 10. Vuelve a enchufar el cable y reinicia
Enchufa el cable en el puerto naranja COM hasta oír el clic y reinicia la placa (desconecta y conecta el USB). Aquí no se mira la consola serie, porque el puerto COM comparte línea con el USB: se comprueba en ThingSpeak.
Paso 11. Comprueba que llegan los cinco gráficos
Entra en tu canal, abre Private View y espera unos minutos: deben aparecer cinco gráficos, de Field 1 a Field 5.

Si algo falla
⚠ Si ves avrdude: stk500_getsync(): not in sync, la causa más probable es que el cable siga puesto en el puerto COM. Repite los pasos 8, 9 y 10.
- La web no ve la placa: abre el Connector (paso 7).
- No llega nada: revisa tu Wi-Fi (2,4 GHz, sin portal), las credenciales MQTT y que Allow Publish esté marcado.
- Llegan pocos campos: revisa los cinco bloques y alarga la pausa de 2000 ms.
- Un gráfico muestra otro dato: el orden de los campos no coincide con el canal.
- Dejó de enviar: el programa no reconecta el Wi-Fi (visto en los bloques, sin probarlo). Reinicia la placa.
Déjala funcionando: ThingSpeak EducaCont a largo plazo
Para dejarla, pon repetir 15 (esperar 60000 ms) y mantén las pausas de 2000 ms. Cambiar de 1 a 15 obliga a repetir los pasos 8, 9 y 10.
Cada ciclo manda 5 mensajes: unos 480 al día con 15 minutos y unos 1.440 con 5 minutos. El límite gratuito es de 3 millones al año.
Lista de comprobación:
- Cable enchufado en el puerto naranja COM y placa reiniciada.
- Detener medición cambiado de 1 a 15 y programa cargado.
- A los 30 minutos aparecen dos puntos nuevos en cada gráfica.
Dónde montarla (enchufe de 5 V y Wi-Fi de 2,4 GHz): en exterior bajo cubierto, a la sombra y a 1,5–2 m, lejos de cocina, cantina y escapes; cerca de la zona de coches para ver el tráfico; o en un aula cerca de una ventana, sin sol directo ni radiador. Habla antes con el coordinador TIC, usa un cargador de 5 V y 1 A o más y ponla donde nadie pueda tocarla.
Qué estamos midiendo realmente
Son prototipos educativos, no instrumentos certificados. El CO y las partículas pueden dar valores altos que no son medidas fiables: los sensores no están calibrados y pueden necesitar tiempo de rodaje. Míralos como indicativos y observa cómo evolucionan durante horas o días.
Para el aula
- ¿Qué pasa si cambias el orden de dos campos en los bloques? ¿Qué ves en ThingSpeak?
- ¿Por qué no se pueden compartir el usuario y la clave MQTT?
- ¿Cuántos mensajes manda la estación al día con 15 minutos? ¿Y con 5?
- Compara dos sitios (aula y exterior) y formula una hipótesis.
Retos
- Reto 1: haz que lleguen los cinco gráficos.
- Reto 2: cambia el tiempo entre envíos y calcula los mensajes diarios.
- Reto 3: coloca la estación en otro sitio y compara los datos.
Qué hemos aprendido
Con ThingSpeak EducaCont hemos llevado los datos a la nube con MQTT, hemos cuidado nuestras credenciales y hemos comprobado que el orden de los campos importa. El Lince ya tiene su canal; la Gata sonríe y CABRA anota: «Llave guardada».
Etiqueta:AIDARAC, calidad del aire, educacont, ies monterroso, iot, montesteam, mqtt, STEAMakersBlocks, ThingSpeak
