Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- HUERTO DIGITAL
- - TEMPERATURE SENSOR
- - HUMIDITY SENSOR
- - LIGHT SENSOR
- - LCD
- - LEDS
- */
- #include "DHT.h"
- #define DHTPIN 8
- #define DHTTYPE DHT11
- DHT dht(DHTPIN, DHTTYPE);
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(7,6,5,4,3,2);
- const int lightPin = 1;
- const int tempPin = 0;
- // int buzzerPin = 9;
- int lightLevel;
- void setup(){
- Serial.begin(9600); // bound rate
- Serial.println("Medidas para nuestras plantitas!");
- pinMode(10, OUTPUT); // LEDs amarillos
- pinMode(11, OUTPUT); // LEDs rojos
- pinMode(9, OUTPUT); // LED azul para la luminosidad
- dht.begin();
- lcd.begin(16, 2); // activamos todos los cuadros del LCD
- lcd.clear(); // lo reseteamos cada vez que iniciemos la máquina
- lcd.print("TEMP");
- lcd.setCursor(3,1);
- lcd.print("C");
- // lcd.setCursor(14,1);
- // lcd.print("F");
- lcd.setCursor(6,0);
- lcd.print("HUM");
- lcd.setCursor(9,1);
- lcd.print("%");
- lcd.setCursor(11,0);
- lcd.print("LUM");
- lcd.setCursor(14,1);
- lcd.print("%");
- }
- void loop(){
- delay(2000); // tiempo entre medidas (2s)
- lightLevel = analogRead(lightPin);
- manualTune();
- analogWrite(9, 255-lightLevel);
- int h = dht.readHumidity();
- int t = dht.readTemperature(); // en Celsius
- float f = dht.readTemperature(true); // en Fahrenheits (isFahrenheit = true)
- // Check if any reads failed and exit early (to try again).
- if (isnan(h) || isnan(t) || isnan(f)) {
- Serial.println("Failed to read from DHT sensor!");
- return;
- }
- float hif = dht.computeHeatIndex(f, h); // índice de calor
- float hic = dht.computeHeatIndex(t, h, false); // en Fahreheits (isFahreheit = false)
- Serial.print("Humidity: ");
- Serial.print(h);
- Serial.print(" % ");
- Serial.print("Temperature: ");
- Serial.print(t);
- Serial.print(" C ");
- Serial.print(f);
- Serial.print(" F ");
- Serial.print("Heat index: ");
- Serial.print(hic);
- Serial.print(" *C ");
- Serial.print(hif);
- Serial.print(" *F ");
- Serial.print(" Luminosity: ");
- Serial.print(lightLevel*100/255);
- Serial.println(" %");
- lcd.setCursor(1,1);
- lcd.print(t); // saco por el LCD la temp en ºC
- lcd.setCursor(7,1);
- lcd.print(h);
- lcd.setCursor(12,1);
- lcd.print(int(lightLevel*100/255));
- if(t >= 27){
- digitalWrite(10, HIGH); // enciendo los LEDs amarillos
- }
- if(t >= 30){
- digitalWrite(11, HIGH); // enciendo los LEDs rojos
- }
- if(t < 30){
- digitalWrite(11, LOW); // apago los LEDs rojos
- }
- if(t < 27){
- digitalWrite(10, LOW); // apago los LEDs amarillos
- }
- }
- // Regulamos la luz manualmente
- void manualTune(){
- // void autoTune()
- // if (lightLevel < low){
- // low = lightLevel;
- // }
- // if (lightLevel > high){
- // high = lightLevel;
- // }
- // lightLevel = map(lightLevel, low+30, high-30, 0, 255);
- // lightLevel = constrain(lightLevel, 0, 255);
- lightLevel = map(lightLevel, 200, 1023, 0, 255);
- lightLevel = constrain(lightLevel, 0, 255);
- }
Add Comment
Please, Sign In to add comment