/*
Ejemplo de uso de Arduino IoT Cloud
Utiliza la biblioteca Arduino IoT Cloud y sus dependencias
https://github.com/arduino-libraries/ArduinoIoTCloud
Las siguientes variables son automaticamente generadas y actualizadas cuando ocurren
cambios en la cosa (Thing).
float humedad;
float temperatura;
bool luces;
Las variables marcadas como READ/WRITE ademas tienen una función asociada que son
llamadas cuando ocurren cambios en sus valores desde el Dashboard.
*/
#include "thingProperties.h"
#include <WiFi.h>
#include "DHT.h"
const int DHT_PIN = 4;
const int RELE = 33;
const int PERIODO = 2000;
unsigned long tiempoActual;
DHT dht(DHT_PIN, DHT22);
void setup() {
pinMode(RELE, OUTPUT);
dht.begin();
Serial.begin(9600);
delay(1500);
// Definido en el archivo thingProperties.h
initProperties();
// Conectar a Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
/*
La siguiente función permite obtener información relacionada
con el estado de la red y la conexión a la nube de IoT. Cuanto
mayor sea el número, más información granular obtendrá. El
valor predeterminado es 0 (solo errores). El máximo es 4.
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update();
// Obtener datos desde el sensor cada dos segundos
if (millis() >= tiempoActual + PERIODO) {
humedad = dht.readHumidity();
temperatura = dht.readTemperature();
tiempoActual = millis();
Serial.print("Humedad: ");
Serial.println(humedad);
Serial.print("Temperatura: ");
Serial.println(temperatura);
}
}
/*
La variable "luces" es del tipo READ_WRITE, por lo que la
función onLucesChange() es ejecutada cada vez que un nuevo
valor es recibido desde Arduino IoT Cloud.
*/
void onLucesChange() {
// Mostrar el valor recibido y cambiar el estado del rele
Serial.print("onLucesChange(): ");
Serial.println(luces);
digitalWrite(RELE, luces);
}