Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <DHT.h>
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- int sensorPin = 7;
- int relayHumi = 3;
- int relayExtractor = 5;
- int temp;
- int hum;
- int tempminima = 10;
- int tempmax = 30;
- int humedadmin = 40;
- int humedadmax= 70;
- int i = 0;
- DHT dht (sensorPin, DHT22);
- LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
- void setup() {
- Serial.begin(9600);
- lcd.begin(20,4);
- dht.begin();
- pinMode(relayHumi, OUTPUT);
- pinMode(relayExtractor, OUTPUT);
- }
- void loop() {
- ///////////////////////////////////////////////////
- //LECTURA
- //////////////////////////////////////////////////
- int temperatura = getTemperature();
- int humedad = getHumedad();
- int EstadoHumi = digitalRead(relayHumi);
- int EstadoExtractor = digitalRead(relayExtractor);
- i = i + 1;
- //////////////////////////////////////////////////
- /////////////////////////////////////////////////
- /////////////////////////////////////////////////
- //////////////////////////////////////////////////
- // MOSTRAR EN LCD
- /////////////////////////////////////////////////
- lcd.setCursor(0,0);
- lcd.print("Secuencia:");
- lcd.print(i);
- lcd.setCursor(0,1);
- lcd.print("Hum:");
- lcd.print(humedad);
- lcd.print("%");
- lcd.print(" Temp:");
- lcd.print(temperatura);
- lcd.print(" C ");
- lcd.setCursor(0,2);
- if (EstadoHumi == 0) {
- lcd.print("Humi: ON");
- } else {
- lcd.print("Humi: OFF");
- }
- lcd.setCursor(0,3);
- if (EstadoExtractor == 0) {
- lcd.println("Extr: ON");
- } else {
- lcd.println("Extr: OFF");
- }
- //////////////////CONDICIONES///////////////////////////
- /////////////////////////////////////////////////
- /////////////////////////////////////////////////
- /////////////////--70--///////////////////--40--/////
- if (humedad < humedadmax && humedad > humedadmin){
- powerOffAll();
- delay(2000);
- } else if (humedad < humedadmin) {
- powerOnHumi();
- delay(2000);
- } else if (humedad > humedadmax && temperatura > 20 ){
- powerOffHumi();
- delay(2000);
- powerOnExtractor();
- }
- if (temperatura < 20){
- powerOffAll();
- }
- while (humedad == 0 && temperatura == 0){
- lcd.backlight();
- delay(250);
- lcd.noBacklight();
- delay(250);
- }
- }
- //////////////////FUNCIONES DE ENCENDIDO Y APAGADO///////////////////
- /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////////
- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////////////////////*/
- void powerOffAll(){
- digitalWrite(relayHumi, HIGH);
- digitalWrite(relayExtractor, HIGH);
- }
- void powerOnHumi(){
- digitalWrite(relayHumi, LOW);
- }
- void powerOffHumi(){
- digitalWrite(relayHumi, HIGH);
- }
- void powerOnExtractor(){
- digitalWrite(relayExtractor, LOW);
- }
- void powerOffExtractor(){
- digitalWrite(relayExtractor, HIGH);
- }
- //////////FUNCIONES PARA OBTENER DATOS DEL SENSOR///////////////////
- /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////////
- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////////////////////*/
- int getTemperature(){
- temp = dht.readTemperature();
- delay(10000);
- return temp;
- }
- int getHumedad(){
- hum = dht.readHumidity();
- delay(10000);
- return hum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement