viernes, 18 de noviembre de 2022

Enviando datos a Tingspeak

Utilizando la placa ESP32 Plus STEAMaker se puede realizar un proyecto que recoja datos de diversos sensores y los envíe a algún lugar como Tingspeak.


Las características más importantes de esta placa son:

 Microcontrolador Tensilica Xtensa 32-bit LX6 a 160MHz.
 Conectividad Wifi 802.11 b/g/n/e/i.
 Conectividad Bluetooth 4.2 y modo BLE.
 Zócalo para tarjetas μSD.
 14 entradas y salidas digitales con alimentación.
 Conector serie hembra con alimentación.
 Conector I2C para conectar hasta 5 dispositivos a la vez sobre la misma placa.
 Conector hembra I2C para conexión de una pantalla OLED.
 Conector de Reset.
 Conector de 5V
 Conector de 3.3V
 Interruptor 3.3-5V seleccionable para cambiar entre estas dos tensiones en algunos pines de alimentación.
 Entradas y salidas analógicas.
 Sensor Hall y de temperatura integrado.
 2 convertidores Digital-Analógico (DAC) de 8 bits.
 16 convertidores Analógico-Digital (ADC) de 12 bits.
 16 canales PWM.
 2 UART.
 2 canales I2C.
 4 canales SPI.
 448Kb ROM.
 520 KB SRAM.
 8KB+8KB SRAM en RTC.
 1kbit eFUSE.
 512 bytes Memoria Flash (EEPROM).
 10 sensores táctiles.
 4 temporizadores internos de 64 bits.

Si se utiliza ESP32 Plus STEAMaker conjuntamente con una placa TdrSTEAM es muy importante que el potenciómetro esté en la posición izquierda (punto de color amarillo), ya que comparte una señal con el sistema de grabación del programa. Si no colocamos el potenciómetro en esta posición, cuando intentemos cargar un programa, encenderá el led RGB de color blanco y mostrará un mensaje de error.


Las conexiones de la placa Imagina TDR STEAM con la placa ESP32 Plus STEAMakers son las siguientes (igual que si utilizamos cualquier placa compatible con Arduino UNO):


Importante: Todos los pines IOxx son entradas y salidas digitales, algunas con más funciones. Utilizando la comunicación Wifi no funciona el ADC2.


Para poder comenzar a programar la placa con Arduino Blocks se ha de descargar y ejecutar el Connector.

Se ha de ejecutar cada vez que queramos tener comunicación con la placa Arduino o compatible.


Para iniciar un nuevo proyecto se ha de escoger la placa o el conjunto de placas a utilizar.


Esto nos dará acceso a sus bloques específicos.


Antes de comenzar la programación de la placa abriremos una cuanta gratuita en Thingspeak, que tiene una duración de un año. A continuación creamos un canal y en este caso tres campos correspondientes a la recogida de datos de humedad, temperatura y luz. Es importante la información sobre el Channel ID que después se ha de poner en alguno de los bloques de programación de Arduino.


Ahora es necesario crear un dispositivo (device) que llamaremos NodeMcu, pero que puede tener cualquier nombre, y que tendrá estas características.


Estos tres datos: Client ID, Username y Password se necesitan para introducirlos en los bloques de programación. La contraseña se puede ver en el momento en que se crea el dispositivo aunque después la oculta. También es necesario asociar un canal o varios a este dispositivo.


Ahora ya podemos comenzar a programar la placa. En la configuración están los datos que me permiten conectarme a la red Wifi disponible. A continuación Broker indica la dirección web a la que se han de enviar los datos. El puerto siempre ha de ser este 1883. Cliente ID (Client ID) y Usuario (Username) son iguales y son los que hemos obtenido al crear el dispositivo en la página de Thingspeak, al igual que la Clave (Password). A continuación también declaramos las tres variables, luz, humedad y temperatura.


Desde el bucle se llama a las dos funciones leer sensores y datos nube.


Estas dos funciones se muestran a continuación. La función leer sensores asigna a cada variable humedad, temperatura y luz, el valor proporcionado por los sensores correspondientes.


A continuación se puede ver la función datos nube. Se repite para cada una de las tres variables la operación Publicar Tema, introduciendo el valor del Channel ID y de los diferentes campos (Field).

Una vez cargado el programa, cada 16 segundos, que es el tiempo que le hemos marcado (con tiempos inferiores a veces no funciona), envía uno de los datos alternativa y continuamente. 

A la vez que se van cargando los datos podemos ver las gráficas en tiempo real en la página de ThingSpeak.

Si queremos ver los datos en el teléfono móvil, podemos instalar la aplicación
ThingView. Para hacer la instalación hemos de seguir los siguientes pasos:


Add channel → Channel ID: ponemos el código de nuestro canal de ThingSpeak (Channel ID).





El siguiente video muestra las posibilidades de los gráficos de la versión de pago de ThingSpeak.


























No hay comentarios: