Para poder realizar el censo de los datos ambientales se realiza un pequeño cliente que permite obtener la lectura de un sensor, utilizando el IDE de Arduino para el desarrollo del Software y el Hardware Nodemcu/ESP8266 para la comunicación por medio de una red doméstica WIFI.
Para mas indicaciones de la libreria del nodemcu para arduino ingresa aquí: Quick Start to Nodemcu (ESP8266) on Arduino IDE.
- Comprima la carpeta "INodeUH" en un .ZIP
- Importe la librería a tu Arduino: Arduino => Sketch => Include Library => Add .ZIP Library...
- Abra la el sensor Ambiental: Arduino => File => Examples => INodeUH => Sensor => NodeEnvironmentalSensor
- Conecte un NodeMCU a su Arduino.
- Abra el Serial Window del Arduino IDE.
Cuando tengamos todo instalado en nuestro PC debemos quemar el Software utilizando el IDE de Arduino, utilizamos la APK para configurar nuestro nodemcu, debemos descargar aquí:
- Conecte el nodemcu al PC y abra la aplicación en Android, luego precione el boton de buscar, es posible que no encuentre al instante el dispositivo, intente varias veces.
- Ingresar los datos de tu red para configurar el nodemcu.
- Realizar un reset al Nodemcu.
- Verificar estado en el nodemcu.
Nota: El sistema se conecta a un servidor local/remoto con una ip estática, que sería nuestro sistema Raspberry u otro configurado con el proyecto: Home Environmental trabajado con nodejs.
#include <INodeUH.h>
INodeUH inode("node002-ambiente", "temperatura,humedad,calidad");//nombre del nodo y tags para los sensores
void setup() {
inode.setup();
}
void loop() {
if(!inode.isConfigurable()) { // si aun no se ha configurado
inode.handleServerAP();
} else {
if (!inode.isConnected()) {//se intenta reconectar si no esta conectado
inode.reconnect();
}
//este nodo tiene dos sensores
inode.addDataToSensor("temperatura", 20); //agrega el valor para el sensor de temperatura
inode.addDataToSensor("humedad", 15);//agrega el valor para el sensor de humedad
//envia todos los datos de cada sensor, realizado una publicacion
inode.publishData();
inode.loop();
}
}