Adafruit IO es una plataforma en la nube que permite interactuar desde un panel virtual con las tarjetas de desarrollo a través de la conexión a internet.
Este sistema permite el intercambio de datos a través de TCP/IP usando el protocolo MQTT, con una integración muy simple gracias a las librerías y la documentación proporcionada por Adafruit.
Esta grandiosa herramienta es muy simple de implementar en placas muy baratas basadas en los famosos microcontroladores ESP8266 y ESP32 entre otras.
La seguridad de este servicio está garantizada y es recomendable usar una red Wifi segura para evitar ataques a nuestro dispositivo. El protocolo MQTT es muy liviano y el tráfico de datos en un proyecto de este tipo es muy pequeño y económico si usas un modem Wifi inalámbrico conectado a 3G o 4G.
Reto:
Vamos a medir temperatura y la humedad relativa del ambiente con el módulo sensor DHT11 cada 5 segundos. Los datos obtenidos los enviamos por el puerto serial hacia el PC y hacia el servidor de Adafruit a través del Wifi de nuestra casa. Accederemos a las lecturas desde internet en un panel de instrumentación muy amigable usando un servicio gratuito y seguro.
Materiales:
• Un punto de acceso Wifi
• NodeMCU o cualquier otra placa programable basada en ESP8266 como la Wemos D1 mini o el módulo ESP01
• Sensor DHT11 o módulo. Revisar las conexiones marcadas en la placa
• Cables para puentes
• Cable USB
• PC portátil o de escritorio (S.O: Windows, Linux, Mac)
• Tener instalado Arduino IDE
• Instalar soporte para ESP8266 al Arduino IDE
• Banco de poder o fuente de 5v (Usaremos el cable USB para alimentar la placa, así es más seguro si eres principiante)
Servicio en la nube
Debes crear una cuenta en io.adafruit.com totalmente gratis, solo necesitas un correo y llenar los campos, es muy fácil con el correo.
Sensor DHT11
Es un sensor de humedad relativa y temperatura ambiente con una precisión de 1 °C para temperatura y 1% para humedad, se consigue a bajo precio en el mercado.
La salida suministrada es de tipo digital utilizando solamente 1 pin de datos y tiene su propio protocolo de comunicación. Para este proyecto vamos a usar una librería para facilitar la lectura de los datos ambientales.
Conectando el hardware
El circuito es muy simple solo hay que agregar una resistencia de pull-up en caso de usar solo el sensor.
Hay que tener en cuenta que existen muchos módulos y sus conexiones pueden tener un orden diferente, por lo general viene marcado en la placa.
Prepara Arduino IDE
Debes instalar el soporte para ESP8266, con esto vas a poder programar casi cualquier tarjeta basada en este microcontrolador aquí el tutorial
Instalarla las librerías con sus dependencias, eso si todo disponible desde el menú Herramientas – Administrar bibliotecas. Cuando abras el gestor de bibliotecas en el recuadro de búsqueda verificas que esté instalada “DHT” si no le das clic en instalar, buscas “adafruit io” e instalas.
Este es el sencillo esquema en caso de que uses cualquier versión de modulo o solo el sensor DHT11
El programa
En el video les dejo la explicación de cómo funciona, es muy simple y está basado en el ejemplo más básico de la librería adafruit io.
Puedes descargar el proyecto en este link
Aquí les dejo el código .ino:
#include "DHT.h" /************************** Config. comunicacion ***********************************/ #include "config.h" /************************ Example Starts Here *******************************/ #define DHTPIN D1 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); AdafruitIO_Feed *temperatura = io.feed("temperatura"); AdafruitIO_Feed *humedad = io.feed("humedad"); void setup() { Serial.begin(115200); while(! Serial); Serial.print("Conectando a Adafruit IO"); io.connect(); while(io.status() < AIO_CONNECTED) { Serial.print("."); delay(500); } Serial.println(); Serial.println(io.statusText()); dht.begin(); } void loop() { delay(5000); io.run(); float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print("temperatura: "); Serial.print(t); Serial.print(" humedad: "); Serial.println(h); temperatura->save(t); humedad->save(h); }Aquí les dejo el código config.h que va por separado y ahí se deben escribir las credenciales:
/************************ Adafruit IO Config *******************************/
#define IO_USERNAME "usuario"
#define IO_KEY "llave"
/******************************* WIFI **************************************/
#define WIFI_SSID "tu-red-wifi"
#define WIFI_PASS "clave"
#include "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
Espero que sea de ayuda déjenme sus comentarios.
Este proyecto fue patrocinado por NextPCB. Aprovechemos estos descuentos para llevar nuestros proyectos a otro nivel:
Regístrate y obtén un cupón de $5 dólares
Fabricación confiable de placas de circuito multicapa:
10 placas de circuito impreso de 4 capas por solo $12 dolares:
20% de descuento en pedidos de PCB y 15 % en SMT:
1 Comentarios
Amigo se ponen en el config.h para que quede más ordenado el código, si quieres puedes pasar lo del config.h al inicio del programa principal.
ResponderEliminar