- Componentes requeridos
- Diagrama de circuito
- Configuración de Thinger.io para registrador de temperatura ESP8266
- Configuración de IFTTT para el registrador de datos NodeMCU
- Programación de NodeMCU para registro de datos
- Registro de datos en Thinger.io desde NodeMCU
- Creación de un punto final en Thinger.io para enviar una alerta por correo electrónico
Anteriormente usamos NodeMCU para registrar datos de temperatura en la hoja de Google. Ahora aquí vamos a enviar datos a la nube Thinger.io IoT y mostrarlos en un atractivo formato gráfico. Un sensor BMP180 está interconectado con NodeMCU ESP8266 para recopilar los datos de temperatura, humedad y altitud, que se enviarán a la plataforma Thinger.io. En este tutorial, aprenderemos cómo administrar diferentes características de la plataforma thinger.io, como dispositivos, puntos finales, depósitos de datos o tokens de acceso.
Componentes requeridos
- NodeMCU ESP8266
- Sensor de presión BMP180
- Cables de puente
- Tablero de circuitos
Diagrama de circuito
El diagrama de circuito para este registrador de datos ESP8266 es muy sencillo, aquí solo el sensor BMP180 está interconectado con NodeMCU.
El sensor BMP180 utiliza el protocolo de comunicación I2C. Por lo tanto, debe conectar los pines SCL y SDA de BMP180 a los pines SCL y SDA (D1 y D2) de NodeMCU. Además, conecte el pin V IN y GND de BMP180 a 3.3V y GND de NodeMCU. No conecte el sensor directamente a 5 V porque puede dañar el sensor de forma permanente.
Para obtener más información sobre NodeMCU, consulte varios proyectos de IoT basados en NodeMCU ESP8266.
Configuración de Thinger.io para registrador de temperatura ESP8266
Thinger.io es una plataforma de código abierto para Internet de las cosas. Proporciona todas las herramientas necesarias para crear prototipos, escalar y gestionar productos conectados de una forma muy sencilla. Thinger.io proporciona tres herramientas esenciales, es decir, Data Bucks, Dashboard y Endpoint para trabajar con datos de dispositivos; estas herramientas se pueden utilizar para visualizar los datos del dispositivo y ampliar la interoperabilidad de los dispositivos.
Data Bucks: la herramienta Data Bucks se puede utilizar para almacenar datos del dispositivo de forma escalable, programando diferentes intervalos de muestreo o registrando eventos generados por los dispositivos.
Tablero: la herramienta Tablero tiene algunos Paneles con widgets personalizables que se pueden crear en minutos usando tecnología de arrastrar y soltar para visualizar los datos almacenados y en tiempo real.
Puntos finales: los puntos finales se pueden utilizar para integrar la plataforma con otros servicios como IFTTT, servicios web personalizados, correos electrónicos o llamar a otros dispositivos.
En este registro ESP8266, exploraremos estas herramientas.
Para enviar datos a Thinger.io, debe crear una cuenta gratuita en la plataforma Thinger.io y seguir los pasos a continuación para conectar su dispositivo.
Paso 1: el primer paso es crear un nuevo dispositivo. Para crear un nuevo dispositivo, haga clic en Dispositivos en la pestaña del menú y luego haga clic en el botón Agregar dispositivo.
Luego complete el formulario con el ID del dispositivo, la descripción y las Credenciales o genere credenciales aleatorias para su dispositivo y haga clic en ' Agregar dispositivo '.
Eso es todo; su dispositivo está listo para conectarse. En el siguiente paso, programaremos el NodeMCU para enviar los datos a la plataforma Thinger.io.
Configuración de IFTTT para el registrador de datos NodeMCU
Aquí usamos IFTTT para enviar advertencias por correo electrónico cuando la temperatura supera un límite. IFTTT (If This Then That) es un servicio basado en web mediante el cual podemos crear cadenas de declaraciones condicionales, llamadas applets. Usando estos applets, podemos enviar correos electrónicos, Twitter, notificaciones de Facebook.
Para usar IFTTT, inicie sesión en la cuenta IFTTT si ya tiene una o cree una.
Ahora busque ' Webhooks ' y haga clic en Webhooks en la sección Servicios.
Luego, en la ventana de Webhooks, haga clic en 'Documentación' en la esquina superior derecha para obtener la clave privada. Copie esta clave, esta clave se utilizará al crear Endpoint en Thinger.io.
Después de eso, cree un subprograma utilizando Webhooks y servicios de correo electrónico . Para crear un subprograma, haga clic en su perfil y luego haga clic en ' Crear. '
Ahora, en la siguiente ventana, haga clic en el icono ' Esto '. Ahora busque Webhooks en la sección de búsqueda y haga clic en ' Webhooks '.
Ahora elija el disparador ' Recibir una solicitud web' e ingrese el nombre del evento como temporal y luego haga clic en crear un disparador.
Después de esto, haga clic en ' Entonces eso' y luego haga clic en Correo electrónico.
Ahora en el correo electrónico, haga clic en 'enviarme un correo electrónico' e ingrese el asunto y el cuerpo del correo electrónico y luego haga clic en crear acción. En el último paso, haga clic en ' Finalizar ' para completar la configuración del Applet.
Programación de NodeMCU para registro de datos
El código completo para enviar datos a Thinger.io se encuentra al final de la página. A continuación, explicamos algunas partes importantes.
Inicie el código incluyendo todas las bibliotecas necesarias. El ThingerESP8266.h se utiliza para establecer una conexión entre la plataforma de la IO y la NodeMCU mientras Adafruit_BMP085.h se utiliza para leer los datos del sensor de BMP. Puede instalar la biblioteca ThingerESP8266.h desde el administrador de bibliotecas de Arduino IDEs.
#incluir
Luego, ingrese las credenciales en el código, para que el dispositivo pueda ser reconocido y asociado con su cuenta.
#define USERNAME "Su cuenta Nombre de usuario" #define DEVICE_ID "NodeMCU" // Su nombre de dispositivo #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Luego, ingrese el nombre de su punto final. El punto final se utiliza para integrar la plataforma con servicios externos como IFTTT, solicitud HTTTP, etc.
#define EMAIL_ENDPOINT "IFTTT"
Defina las variables para almacenar los datos de presión, temperatura y altitud.
int Presión, temperatura, altitud;
Dentro del bucle vacío (), lea los datos del sensor. El tipo de datos pson puede contener diferentes tipos de datos. Entonces, el tipo de datos Pson se usa para recibir múltiples valores al mismo tiempo.
cosa >> (pson & out) {out = bmp.readPressure () / 100; out = bmp.readAltitude (); out = bmp.readTemperature (); };
Utilice la condición if para llamar al punto final si el valor de temperatura supera los 15 grados. Aquí los datos son el nombre del punto final.
if (Temperatura> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "datos");} Serial.print ("Enviando datos");
Registro de datos en Thinger.io desde NodeMCU
Ahora conecte el sensor BMP a NodeMCU y cargue el código. NodeMCU usará las credenciales de su cuenta para conectarse con el dispositivo que creó anteriormente. Si se conecta correctamente, se mostrará conectado, como se muestra en la siguiente imagen:
Puede verificar las estadísticas de su dispositivo, como datos transmitidos, datos recibidos, dirección IP, tiempo de conexión, etc. , simplemente haciendo clic en el nombre del dispositivo en el menú Dispositivos.
Como ahora estamos recibiendo los datos, crearemos un tablero para visualizar los datos usando los widgets.
Para crear un panel, haga clic en Paneles en la pestaña del menú y luego haga clic en ' Agregar panel '.
Ahora, en la siguiente ventana, ingrese los detalles del tablero, como el nombre del tablero, la ID y la Descripción y luego haga clic en Tablero.
Después de esto, acceda al nuevo panel haciendo clic en el nombre del panel. De forma predeterminada, el panel aparecerá vacío. Para agregar los widgets, primero debe habilitar el modo de edición haciendo clic en el interruptor superior derecho del tablero. Luego haga clic en el botón ' Agregar widget' .
Al hacer clic en el botón ' Agregar widget' , se mostrará una ventana emergente donde puede seleccionar el tipo de widget, color de fondo, etc. En mi caso, he seleccionado el widget de indicador.
Cuando haga clic en guardar, lo llevará a la siguiente pantalla donde debe seleccionar el valor de origen, el dispositivo, el recurso, el valor y el modo de actualización. Seleccione todos los valores y luego haga clic en el botón Guardar.
Ahora repita el mismo procedimiento para el resto de variables. Mi tablero se veía así:
Creación de un punto final en Thinger.io para enviar una alerta por correo electrónico
Ahora crearemos un Endpoint para integrar Thinger.io con IFTTT. El dispositivo puede llamar a un punto final para realizar cualquier acción, como enviar un correo electrónico, enviar un SMS, llamar a una API REST, interactuar con IFTTT, llamar a un dispositivo desde una cuenta diferente o llamar a cualquier otro punto final
Para crear un punto final, haga clic en la opción 'Punto final' de las pestañas del menú y luego haga clic en 'Agregar punto final'.
Ahora, en la siguiente ventana, ingrese los detalles requeridos. Los detalles son:
Id de punto final: identificador único para su punto final.
Descripción del punto final: escriba una descripción o información detallada sobre su punto final.
Tipo de punto final: seleccione el tipo de punto final de las opciones dadas.
Maker Event Name: Ingrese el nombre de su subprograma IFTTT.
Maker Channel Key: su clave secreta de Webhooks.
Después de esto, haga clic en Probar punto final para verificar si todo está funcionando. Debería enviarle un correo electrónico con una advertencia sobre los datos de temperatura.
En lugar de utilizar IFTTT Webhook Trigger, puede enviar un correo electrónico o un mensaje de telegrama, o puede enviar una solicitud HTTP utilizando las funciones de Endpoint.
Así es como se puede usar un NodeMCU ESP8266 para registrar datos de temperatura, presión y altitud desde el sensor BMP180 en Internet.
Un video de trabajo y un código completo se encuentran al final de la página.