Paso 24: Cargar el código
Retire el arduino el escudo o Retire los cables rx y tx del módulo bluetooth. Copie el código siguiente y péguelo en el ide de arduino. Subir el código a tu arduino.
/ * La caja de automatización de dormitorio hecho por Saiaym Agrawal * / #include "DHT.h" / / añadir todas las bibliotecas #include < LiquidCrystal.h >< br > #include < NewPing.h > Estado cadena = "OFF"; inicializar todos lo temppin de valores int = A0; pir int = A1; mic int = A5; int ldr = A6; int entrada = 0; int cuenta = 1; int thres1 = 0; int thres2 = 0; int thres3 = 0; int thres4 = 0; int thres5 = 0; estado1 int = 0; state2 int = 0; state3 int = 0; luz int = 0; int distancia = 0; sonido de int = 0; int minutos = 0; int hora = 0; temp de flotador = 1; humedad del flotador = 0; DHT dht (A4, DHT11); Dile el pin de la dht y el tipo de sensor lcd LiquidCrystal (8, 7, 6, 5, 4, 3); Dile a los pasadores de lc NewPing sonar (A2, A3, 400); Dile el sensor pernos y la distancia máxima < /p >< p > void setup() {pinMode (13, salida); / / configurar los pines como salida pinMode (salida 12,); lcd.begin(16,2); / / puesta en marcha del dht.begin() del lcd; Serial.Begin(9600); Serial.println ("dormitorio domótica"); LCD.Clear(); LCD.Print ("casa habitación"); lcd.setCursor(0,1); LCD.Print ("automatización"); Delay(3000); } < /p >< p > void loop() {lcd.clear(); lcd.print ("Seleccione un modo de"); Serial.println ("seleccionar un modo a través de botones"); Delay(2000); while(digitalRead(11) == LOW) / / salir del bucle cuando se presiona el segundo botón {if(digitalRead(10) == HIGH) {delay(500); cuenta ++; / / contar el número de veces que se presiona el botón} lcd.clear(); lcd.print("Choice:"); LCD.Print(Count); Delay(100); } < /p >< p > switch(count) / / entrar en el modo según el número seleccionado anteriormente {< /p >< p > caso 1: / / activar el modo de {delay(1000); Serial.println ("cambiar modo seleccionado"); Serial.println ("Presione el botón para la salida del interruptor de encendido/apagado"); a8 int = 0; while(A8 == 0) {lcd.clear(); lcd.print ("Curr. Estado: "); LCD.Print(State); lcd.setCursor(0,1); LCD.Print ("botón"); if(digitalRead(10) == alto & & state3 == 0) / / Si presiona el botón y salida está apagado, enciéndalo {digitalWrite (13, HIGH); estado = "ON"; state3 ++; Serial.println ("conectado"); Delay(1000); } if(digitalRead(10) == alto & & state3 == 1) / / Si presiona el botón y salida es en, lo apague {digitalWrite (13, bajo); estado = "OFF"; state3--; Serial.println ("Switched off"); Delay(1000); } delay(100); caso de}} 2: / / modo de sensor de temperatura {delay(1000); Serial.println ("modo de temperatura seleccionado"); Serial.println ("umbral fijado"); LCD.Clear(); LCD.Print "(umbral fijado del); Delay(2000); while(digitalRead(11) == LOW) / / establecer el umbral a través de botones {if(digitalRead(10) == HIGH) {delay(500); thres1 ++;} lcd.clear(); lcd.print("Threshold:"); LCD.Print(thres1); Delay(100); } Serial.print("Threshold Temperature:"); Serial.Print(thres1); int a = 0; while(a == 0) {temp = analogRead(temppin); temp = temp * 0.48828125; lcd.clear(); lcd.print ("Curr. Estado: "); LCD.Print(State); lcd.setCursor(0,1); LCD.Print("Temp:"); LCD.Print(Temp); LCD.Print("*C"); Si (temp > = thres1) {digitalWrite (13, HIGH); estado = "ON";} if(temp < thres1) {digitalWrite (13, bajo); estado = "Desconectado";} delay(1000); rotura de}}; caso 3: / / delay(1000) de modo de sensor de humedad; Serial.println ("humedad sensor modo seleccionado"); Serial.println ("umbral fijado"); LCD.Clear(); LCD.Print "(umbral fijado del); {while(digitalRead(11) == LOW) {if(digitalRead(10) == HIGH) {delay(500); thres2 ++;} lcd.clear(); lcd.print("Threshold:"); LCD.Print(thres2); Delay(100); } Serial.print("Threshold Humidity %:"); Serial.Print(thres2); Serial.Print("%"); int a1 = 0; while(a1 == 0) {humedad = dht.readHumidity(); lcd.clear(); lcd.print ("Curr. Estado: "); LCD.Print(State); lcd.setCursor(0,1); LCD.Print("humid:"); LCD.Print(Humidity); LCD.Print("%"); Si (humedad < = thres2) {digitalWrite (13, HIGH); estado = "ON";} if(humidity > thres2) {digitalWrite (13, bajo); estado = "Desconectado";} delay(1000); rotura de}}; caso 4: / / {delay(1000); el modo sensor de luz Serial.println ("sensor de luz seleccionada"); Serial.println ("umbral fijado"); LCD.Clear(); LCD.Print "(umbral fijado del); while(digitalRead(11) == LOW) {if(digitalRead(10) == HIGH) {delay(500); thres3 += 10;} lcd.clear(); lcd.print("Threshold:"); LCD.Print(thres3); Delay(100); } Serial.print("Threshold intensity:"); Serial.Print(thres3); Serial.Print ("unidades de 999"); int a2 = 0; while(a2 == 0) {luz = analogRead(ldr); = luz mapa (luz, 0, 1023, 999, 0); lcd.clear(); lcd.print ("Curr. Estado: "); LCD.Print(State); lcd.setCursor(0,1); LCD.Print("Light:"); LCD.Print(Light); LCD.Print("un."); Si (luz < = thres3) {digitalWrite (13, HIGH); estado = "ON";} if(light > thres3) {digitalWrite (13, bajo); estado = "Desconectado";} delay(1000); }} pausa; < /p >< p > caso 5: / / clap modo sensor {Serial.println ("Clap sensor modo seleccionado"); Serial.println ("Clap para activar/desactivar"); a3 int = 0; while(a3 == 0) {lcd.clear(); lcd.print ("Curr. Estado: "); LCD.Print(State); lcd.setCursor(0,1); LCD.Print ("Clap Clap!"); if(analogRead(MIC) > 5 & & estado1 == 0) {digitalWrite (13, HIGH); estado = "ON" estado1 ++; delay(1000);} if(analogRead(mic) > 5 & & estado1 == 1) {digitalWrite (13, bajo); estado = "OFF"; estado1--; delay(1000);} delay(100); rotura de}}; caso 6: / / modo de sensor de movimiento {Serial.println ("Motion sensor modo seleccionado"); para (int b = 30; b > 0; b--) {Serial.println ("preparación de Sensor..."); LCD.Clear(); LCD.Print("Preparing"); lcd.setCursor(0,1); LCD.Print("sensor..."); LCD.Print(b); Delay(1000); } int a4 = 0; while(A4 == 0) {lcd.clear(); lcd.print ("Curr. Estado: "); LCD.Print(State); lcd.setCursor(0,1); LCD.Print "(Sensor de movimiento del); if(digitalRead(PIR) == alto & & state2 == 0) {digitalWrite (13, HIGH); estado = "ON" state2 ++; delay(4100);} if(digitalRead(pir) == alto & & state2 == 1) {digitalWrite (13, bajo); estado = "OFF"; state2--; delay(4100);} delay(100); }} pausa; < /p >< p > caso 7: / / modo de sensor de presencia {delay(1000); Serial.println ("presencia sensor modo seleccionado"); Serial.println ("umbral fijado"); LCD.Clear(); LCD.Print "(umbral fijado del); while(digitalRead(11) == LOW) {if(digitalRead(10) == HIGH) {delay(500); thres4 += 10;} lcd.clear(); lcd.print("Threshold:"); LCD.Print(thres4); Delay(100); } int a5 = 0; while(A5 == 0) {delay(50); distancia = sonar.ping(); distancia = distancia / US_ROUNDTRIP_CM; lcd.clear(); lcd.print ("Curr. Estado: "); LCD.Print(State); lcd.setCursor(0,1); LCD.Print("Dist."); LCD.Print(Distance); LCD.Print("cm"); Si (distancia < = thres4) {digitalWrite (13, HIGH); estado = "ON";} if(distance > thres4) {digitalWrite (13, bajo); estado = "Desconectado";} delay(1000); rotura de}}; < /p >< p > caso 8: / / modo de seguridad {Serial.println ("modo de seguridad seleccionado"); Serial.println ("preparación sensor..."); Delay(1000); para (int d = 30; d > 0; d--) {lcd.clear(); lcd.print("Preparing"); lcd.setCursor(0,1); lcd.print("Sensor..."); LCD.Print(d); Delay(1000); } lcd.clear(); LCD.Print ("modo de seguridad"); Delay(10000); int a6 = 0; while(A6 == 0) {if(digitalRead(pir) == HIGH) {digitalWrite (13, HIGH); Serial.println ("ladrón detectado"); LCD.Clear(); LCD.Print ("ladrón detectado"); lcd.setCursor(0,1); LCD.Print("!!!"); int c = 0; while(c == 0) {digitalWrite (12, HIGH); digitalWrite (12, bajo), delay(1000); delay(1000);}} Delay(1000); rotura de}}; caso de < /p >< p > 9: / / modo {delay(1000); Serial.println ("temporizador modo seleccionado"); LCD.Clear(); LCD.Print ("Enter horas"); Delay(2000); while(digitalRead(11) == LOW) {if(digitalRead(10) == HIGH) {delay(500); hora ++;} lcd.clear(); lcd.print(hour); delay(100);} lcd.clear(); LCD.Print ("Enter minutos"); Delay(2000); while(digitalRead(11) == LOW) {if(digitalRead(10) == HIGH) {delay(500); minuto ++;} lcd.clear(); lcd.print(minute); delay(100);} delay(1000); int e2 = minutos; e3 int = 0; para (int e1 = hora; e1 > = 0; e1--) {para (e2; e2 > = 0; e2--) {para (e3; e3 > = 0; e3--) {digitalWrite (13, HIGH); lcd.clear(); lcd.print ("Time Left:"); lcd.setCursor(0,1); LCD.Print(E1); LCD.Print(":"); LCD.Print(E2); LCD.Print(":"); LCD.Print(E3); Delay(1000); } e3 = 59; } e2 = 59; } int a9 = 0; while(A9 == 0) {digitalWrite (13, bajo); lcd.print ("tiempo terminado"); lcd.clear(); delay(100);}} rotura; caso 10: / / modo de visualización del tiempo {int a7 = 0; while(a7 == 0) {float t = dht.readTemperature(); float f = dht.readTemperature(true); humedad = dht.readHumidity(); Serial.Print ("temperatura:"); Serial.Print(t); Serial.Print("*C"); Serial.Print(""); Serial.Print(f); Serial.Print("*F"); Serial.println(); Serial.Print ("humedad:"); Serial.Print(Humidity); Serial.Print("%"); Serial.println(); LCD.Clear(); LCD.Print("T:"); LCD.Print(t); LCD.Print ("C"); LCD.Print(f); LCD.Print("F"); lcd.setCursor(0,1); LCD.Print("H:"); LCD.Print(Humidity); LCD.Print("%"); Delay(1000); rotura de}}; }} < /p >