Para usar el sensor de humedad y temperatura DHT11 se requiere la libreria Dht11.h
En este caso usaremos el pin digital 7. Seguiremos el artículo de instructables "Sensor de humedad y temperatura"
Hay que recordar que este artículo es la continuación de http://tecnonaranjal.blogspot.com.co/2016/03/cagei-configuracion-del-modulo-reloj.html que corresponde a un temporizador digital, que además mostrará la temperatura y humedad del cultivo hidropónico interno en android.
Ahora les presento el código con el modulo ds1307 y la temperatura funcionando a la par.
#include <Wire.h> #include "RTClib.h" #include "DHT.h" #define DHTPIN 7 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); RTC_DS1307 RTC; int hora=0; int minutos=0; int segundos=0; int luz=13; int aire=12; void setup () { //Inicializamos el puerto serie, wire y el modulo RTC Serial.begin(9600); dht.begin(); Wire.begin(); RTC.begin(); //Si quitamos el comentario de la linea siguiente, se ajusta la hora y la fecha con la del ordenador //RTC.adjust(DateTime(__DATE__, __TIME__)); pinMode(luz,OUTPUT); pinMode(aire,OUTPUT); } void loop () { // Se llama a la función fecha() para imprimir la fecha en el monitor serie ----- fecha(); //------------------------------------------- //lee el tiempo del modulo ds1307, previamente se ha configurado con la hora. DateTime now = RTC.now(); hora=(now.hour(),DEC); minutos=(now.minute(),DEC); segundos=(now.second(),DEC); // tanto el temporizador de luz como aire se puede incluir en un if mayor // para dar la opción de manual o automático y poder mostrar desde el celular // como se puede accionar con la app. //-------------------------- TEMPORIZADOR DIGITAL PARA ENCENDER LA ILUMINACION ------------------------ // el foto periodo inicia a las 6am y termina a las 20:00 horas o 8pm. // 14 horas de luz, con un periodo de 10 sin la misma. // hay que buscar la manera de modificar esto desde android, pero que quede grabado en rom. if (now.hour()>= 6 && now.hour()<20) { digitalWrite(luz,HIGH); Serial.println("led on"); } else { digitalWrite(luz,LOW); Serial.println("led off"); } //--------------------TEMPORIZADOR PARA ENCENDER Y APAGAR EL AIREADOR ----------------------------------- // Este se encenderá 4 veces al día, de las 1:00 a las 3:00; 2 horas // de las 9:00 a las 11:00 2 horas // de las 13:00 a las 14:00 1 hora // de las 18:00 a las 20:00 2 horas total 7 horas, potencia del aireador 5W if (now.hour()>= 1 && now.hour()<3) { digitalWrite(aire,HIGH); Serial.println("aireador on"); } else if (now.hour()>= 9 && now.hour()<11) { digitalWrite(aire,HIGH); Serial.println("aireador on"); } else if (now.hour()>= 13 && now.hour()<14) { digitalWrite(aire,HIGH); Serial.println("aireador on"); } else if (now.hour()>= 18 && now.hour()<20) { digitalWrite(aire,HIGH); Serial.println("aireador on"); } else { digitalWrite(aire,LOW); Serial.println("aireador off"); } //--------------------- LEER SENSOR DHT11 ---------------------------- int h = dht.readHumidity();// Lee la humedad int t = dht.readTemperature();//Lee la temperatura //////////////////////////////////////////////////Humedad Serial.print(" Humedad Relativa: "); Serial.print(h);//Escribe la humedad Serial.println(" %"); ///////////////////////////////////////////////////Temperatura Serial.print(" Temperatura: "); Serial.print(t);//Escribe la temperatura Serial.println(" C"); /////////////////////////////////////////////////// delay(1000); }//cierre del void loop //-------------- función para leer la fecha del ds1307----- //-------------- también escribe en el monitor serie ------ void fecha(){ //lee el tiempo del modulo ds1307, previamente se ha configurado con la hora. DateTime now = RTC.now(); hora=(now.hour(),DEC); minutos=(now.minute(),DEC); segundos=(now.second(),DEC); //imprimimos por el monitor serial para ver la información en el pc //Imprimimos el dia Serial.print(now.day(), DEC); Serial.print('/'); //Imprimimos el mes Serial.print(now.month(), DEC); Serial.print('/'); //Imprimimos el año Serial.print(now.year(), DEC); Serial.print(' '); //Imprimimos la hora Serial.print(now.hour(), DEC); Serial.print(':'); //Imprimimos los minutos Serial.print(now.minute(), DEC); Serial.print(':'); //Imprimimos los segundos Serial.print(now.second(), DEC); Serial.println(); } //---------------- FIN FUNCION FECHA-------------------------------------------
No hay comentarios:
Publicar un comentario