// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor
#include "DHT.h"
#define DHTPIN A0 // Digital pin connected to the DHT sensor
// Feather HUZZAH ESP8266 note: use pins 3, 4, 5, 12, 13 or 14 --
// Pin 15 can work but DHT must be disconnected during program upload.
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dhtPlanta1(DHTPIN, DHTTYPE);
// declaro las variables de los LED a usar para el semáforo de Humedad
int H_bajo = 10;
int H_medio = 9;
int H_alto = 8;
// declaro las variables de los LED a usar para el semáforo de Temperatura
int T_bajo = 4;
int T_medio = 3;
int T_alto = 2;
void setup() {
// inicializa el puerto serial
Serial.begin(9600);
Serial.println(F(" PUERTO SERIAL INICIADO PARA DHT11"));
// inicializa el sensor DHT
dhtPlanta1.begin();
// genero la cabecera del archivo CSV
Serial.println("Máquina,Humedad,Temp_Celsius,TempF,Estado_Temp,Estado_Hum,");
// declaro los pines de los LED como tipo SALIDA
pinMode(H_bajo, OUTPUT);
pinMode(H_medio, OUTPUT);
pinMode(H_alto, OUTPUT);
pinMode(T_bajo, OUTPUT);
pinMode(T_medio, OUTPUT);
pinMode(T_alto, OUTPUT);
}
void loop() {
// activo la captura de el sensor DHT
int HumedadPlanta1 = dhtPlanta1.readHumidity();
float tempPlanta1 = dhtPlanta1.readTemperature();
float tempPlanta1F = dhtPlanta1.readTemperature(true);
HumedadPlanta1 = random(1,100);
tempPlanta1 = random(15,45);
tempPlanta1F = random(15,45);
Serial.print("'Mq 1',");
Serial.print(HumedadPlanta1); Serial.print("%,");
Serial.print(tempPlanta1); Serial.print(",");
Serial.print(tempPlanta1F); Serial.print(",");
// Activa el led de acuerdo al cambio de estado de la Temperatura
if(tempPlanta1<25)
{
// cuando temperatura esta en baja
digitalWrite(T_bajo, HIGH);
Serial.print("Bajo,");
}
else {
digitalWrite(T_bajo, LOW);
}
// Activa el led de acuerdo al cambio de estado de la Temperatura
if(tempPlanta1>=25 && tempPlanta1<=30)
{
digitalWrite(T_medio, HIGH);
Serial.print("Medio,");
}
else {
digitalWrite(T_medio, LOW);
}
// Activa el led de acuerdo al cambio de estado de la Temperatura
if(tempPlanta1>30)
{
// cuando temperatura esta en alto
digitalWrite(T_alto, HIGH);
Serial.print("Alto,");
}
else {
digitalWrite(T_alto, LOW);
}
// Activa el led de acuerdo al cambio de estado de la Humedad
if(HumedadPlanta1<60)
{
// cuando Humedad esta en baja
digitalWrite(H_bajo, HIGH);
Serial.print("Bajo,");
}
else {
digitalWrite(H_bajo, LOW);
}
// Activa el led de acuerdo al cambio de estado de la Humedad
if(HumedadPlanta1>=60 && HumedadPlanta1<=80)
{
digitalWrite(H_medio, HIGH);
Serial.print("Medio,");
}
else {
digitalWrite(H_medio, LOW);
}
// Activa el led de acuerdo al cambio de estado de la Humedad
if(HumedadPlanta1>80)
{
// cuando Humedad esta en alta
digitalWrite(H_alto, HIGH);
Serial.print("Alto,");
}
else {
digitalWrite(H_alto, LOW);
}
Serial.println("");
delay(3000);
}