// se incluyen dos sensore más: el de humedad del suelo y el del voltaje de la bateria
#include "DHT.h"
#define DHTTYPE DHT11 // DHT 11
const int DHTPIN = 4; // Sensor temperatura y humedad
const int Trigger = 12; //Pin digital 2 para el Trigger del sensor
const int Echo = 13; //Pin digital 3 para el Echo del sensor de distancia
DHT dht(DHTPIN, DHTTYPE);
int SensorPin = A1; // sensor de suelo
const int portPin = A0; // sensor de voltaje
int i = 10;
void setup() {
Serial.begin(9600);
Serial.println("DHT11 test!");
pinMode(Trigger, OUTPUT); //pin como salida
pinMode(Echo, INPUT); //pin como entrada
digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
dht.begin();
pinMode(11,INPUT);
delay(2000);
}
void loop() {
// Wait a few seconds between measurements.
delay(5000);
if (i > 9) {
cabecera(); i = 0;}
// Reading temperature or humidity takes about 250 milliseconds!
float h = dht.readHumidity();
float t = dht.readTemperature();
long td; //timepo que demora en llegar el eco
long d; //distancia en centimetros
digitalWrite(Trigger, HIGH);
delayMicroseconds(10); //Enviamos un pulso de 10us
digitalWrite(Trigger, LOW);
td = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso
d = td/59; //escalamos el tiempo a una distancia en cm
if (isnan(h) || isnan(t)) {
Serial.println("Fallo de lectura en sensor DHT");
// return;
}
int suelo = analogRead(SensorPin);
float por100 = map(suelo,0,1023,100,0);
int hsuelo = digitalRead(11);
int lectura = analogRead(portPin);
float voltaje = lectura * 0.023706;
Serial.print("| ");
Serial.print(h);
Serial.print("| ");
Serial.print(t);
Serial.print("| ");
Serial.print(d);
Serial.print("| ");
Serial.print(suelo);
Serial.print("| ");
Serial.print(por100);
Serial.print("| ");
Serial.print(voltaje);
Serial.print("| ");
Serial.println(suelo);
i++;
}
void cabecera() {
Serial.println("|_____________________________________________________|");
Serial.println("|%Humed.|Temp ºC|Niv.cm|suelo|%suelo| voltios|hdigital|");
Serial.println("|-----------------------------------------------------|");
}