Paso 4: Poner todo junto
Código:
Lluvia
const int sensorMin = 0; sensor mínimo const int sensorMax = 1024; sensor máximo
Temp #include "DHT.h" #define DHTPIN 2 / / Qué pin digital estamos conectados a #define DHTTYPE DHT11 / / 11 de DHT
Luz int ledPin = 13; Apagado de int = 1; int lightSensivity = 0; int lightBarier = 600;
DHT dht (DHTPIN, DHTTYPE); void setup() {/ / Pon tu código de instalación, para ejecutar una vez: dht.begin(); pinMode (ledPin, salida);}
void loop() {/ / Pon tu código principal, para ejecutar varias veces: Serial.begin(9600); Rain(); Delay(1000); Light(); Delay(2000); Temp(); Delay(1000); }
void Rain() {/ leer el sensor analógico A0: int sensorReading = analogRead(A0); / / mapa de la gama del sensor (cuatro opciones): / / ex: gama de int 'mapa de largo int (int largo, int largo, int largo, int largo, int largo)' = mapa (sensorReading, sensorMin, sensorMax, 0, 3); / / valor de rango: interruptor (rango) {caso 0: / / Sensor de conseguir mojado Serial.println("Flood"); break; caso 1: / / Sensor de conseguir mojado Serial.println ("ADVERTENCIA de lluvia"); break; caso 2 : / / Sensor seco - a callar esto eliminar la "Serial.println ("no llueve");" a continuación. Serial.println ("no llueve"); rotura; } }
void Temp() {}
Lectura de temperatura o la humedad toma alrededor de 250 milisegundos. Lecturas del sensor también pueden ser de hasta 2 segundos 'old' (es un sensor muy lento) flotador h = dht.readHumidity(); Leer temperatura Celsius (predeterminado) flotador t = dht.readTemperature(); Leer temperatura Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true);
Compruebe si cualquier Lee falló y salir temprano (para intentarlo de nuevo). Si (isnan(h) || isnan(t) || isnan(f)) {Serial.println ("error al leer del sensor DHT!"); vuelta;}
Calcular el índice de calor en grados Fahrenheit (predeterminado) flotador hif = dht.computeHeatIndex (f, h); Calcular el índice de calor en grados Celsius (isFahreheit = false) flotador hic = dht.computeHeatIndex (t, h, false);
Serial.Print ("humedad:"); Serial.Print(h); Serial.Print ("% \t"); Serial.Print ("temperatura:"); Serial.Print(t); Serial.Print ("* C"); Serial.Print(f); Serial.Print ("* F\t"); Serial.Print ("índice de calor:"); Serial.Print(HIC); Serial.Print ("* C"); Serial.Print(HIF); Serial.println ("* F"); }
void Light() {/ / Pon tu código principal, para ejecutar varias veces: lightSensivity = analogRead(lightPin); Serial.println(lightSensivity); if(lightSensivity < lightBarier) {digitalWrite (ledPin, HIGH);} Else {digitalWrite (ledPin, LOW);}}