Rutan sovrum Automation (24 / 26 steg)
Steg 24: Överför koden
Ta bort arduino shield eller ta bort rx och tx trådarna från bluetooth-modulen. Kopiera koden nedan och klistra in den till din arduino ide. Ladda upp koden till din arduino.
/ * Rutan sovrum automation
Gjord av Saiaym Agrawal
*/
#include "DHT.h" / / Lägg till alla bibliotek
#include < LiquidCrystal.h >< br > #include < NewPing.h >
Sträng state = "OFF"; initiera alla värden
int temppin = A0;
int pir = A1;
int mic = A5;
int ldr = A6;
int inkommande = 0;
int count = 1;
int thres1 = 0;
int thres2 = 0;
int thres3 = 0;
int thres4 = 0;
int thres5 = 0;
int state1 = 0;
int state2 = 0;
int state3 = 0;
int ljus = 0;
int avstånd = 0;
int ljud = 0;
int minut = 0;
int timme = 0;
float temp = 1;
flyta fuktighet = 0;
DHT dht (A4, DHT11); tala om dht PIN-koden och typ av sensor
LiquidCrystal lcd (8, 7, 6, 5, 4, 3); berätta för lc stiften
NewPing sonar (A2, A3, 400); berätta sensorn stift och det maximala avståndet < /p >< p > void setup()
{
pinMode (13, OUTPUT); Ange stift
pinMode (12, OUTPUT);
LCD.BEGIN(16,2); starta upp lcd
DHT.BEGIN();
Serial.BEGIN(9600);
Serial.println ("sovrum hem Automation");
LCD.Clear();
LCD.Print ("sovrum hem");
lcd.setCursor(0,1);
LCD.Print ("Automation");
Delay(3000);
} < /p >< p > void loop()
{
LCD.Clear();
LCD.Print ("Välj en läge");
Serial.println ("Välj en mode genom knappar");
Delay(2000);
While(digitalRead(11) == låg) / / avsluta loopen när andra knappen trycks
{
IF(digitalRead(10) == hög)
{
Delay(500);
greve ++; räkna hur många gånger på knappen trycks
}
LCD.Clear();
LCD.Print("Choice:");
LCD.Print(Count);
Delay(100);
} < /p >< p > switch(count) / / ange läge efter antalet valdes tidigare
{< /p >< p > fall 1: / / växla läge
{
Delay(1000);
Serial.println ("växla läge markerat");
Serial.println ("Tryck på knappen Växla utlopp on/off");
int a8 = 0;
While(A8 == 0)
{
LCD.Clear();
LCD.Print ("Curr. Tillstånd: ");
LCD.Print(State);
lcd.setCursor(0,1);
LCD.Print ("Tryck på knappen");
IF(digitalRead(10) == hög & & state3 == 0) / / om knappen nedtryckt och utlopp är avstängd, slå på den
{
digitalWrite 13, hög.
State = "ON";
state3 ++;
Serial.println ("påslagen");
Delay(1000);
}
IF(digitalRead(10) == hög & & state3 == 1) / / om knappen nedtryckt och utlopp är på, stänga av
{
digitalWrite 13, låg.
State = "OFF";
state3--;
Serial.println ("Switched off");
Delay(1000);
}
Delay(100);
}
}
fall 2: / / temperatur sensor läge
{
Delay(1000);
Serial.println ("temperatur läge markerat");
Serial.println ("Ange tröskelvärde");
LCD.Clear();
LCD.Print ("Ange tröskelvärde");
Delay(2000);
While(digitalRead(11) == låg) / / Ställ tröskel genom knappar
{
IF(digitalRead(10) == hög)
{
Delay(500);
thres1 ++;
}
LCD.Clear();
LCD.Print("Threshold:");
LCD.Print(thres1);
Delay(100);
}
Serial.Print ("tröskel temperatur:");
Serial.Print(thres1);
int en = 0;
While(a == 0)
{
Temp = analogRead(temppin);
Temp = temp * 0.48828125;
LCD.Clear();
LCD.Print ("Curr. Tillstånd: ");
LCD.Print(State);
lcd.setCursor(0,1);
LCD.Print("Temp:");
LCD.Print(temp);
LCD.Print("*C");
om (temp > = thres1)
{
digitalWrite 13, hög.
State = "ON";
}
IF(temp < thres1)
{
digitalWrite 13, låg.
State = "OFF";
}
Delay(1000);
}
}
bryta;
fall 3: / / luftfuktighet sensor läge
Delay(1000);
Serial.println ("luftfuktighet sensor läge markerat");
Serial.println ("Ange tröskelvärde");
LCD.Clear();
LCD.Print ("Ange tröskelvärde");
{
While(digitalRead(11) == låg)
{
IF(digitalRead(10) == hög)
{
Delay(500);
thres2 ++;
}
LCD.Clear();
LCD.Print("Threshold:");
LCD.Print(thres2);
Delay(100);
}
Serial.Print ("tröskel luftfuktighet %:");
Serial.Print(thres2);
Serial.Print("%");
int a1 = 0;
While(a1 == 0)
{
fukt = dht.readHumidity();
LCD.Clear();
LCD.Print ("Curr. Tillstånd: ");
LCD.Print(State);
lcd.setCursor(0,1);
LCD.Print("humid:");
LCD.Print(humidity);
LCD.Print("%");
om (luftfuktighet < = thres2)
{
digitalWrite 13, hög.
State = "ON";
}
IF(humidity > thres2)
{
digitalWrite 13, låg.
State = "OFF";
}
Delay(1000);
}
}
bryta;
fall 4: / / ljus sensor läge
{
Delay(1000);
Serial.println ("ljussensor valt");
Serial.println ("Ange tröskelvärde");
LCD.Clear();
LCD.Print ("Ange tröskelvärde");
While(digitalRead(11) == låg)
{
IF(digitalRead(10) == hög)
{
Delay(500);
thres3 += 10.
}
LCD.Clear();
LCD.Print("Threshold:");
LCD.Print(thres3);
Delay(100);
}
Serial.Print ("tröskel intensitet:");
Serial.Print(thres3);
Serial.Print ("enheter av 999");
int a2 = 0;
While(a2 == 0)
{
ljus = analogRead(ldr);
ljus = karta (ljus, 0, 1023, 999, 0);
LCD.Clear();
LCD.Print ("Curr. Tillstånd: ");
LCD.Print(State);
lcd.setCursor(0,1);
LCD.Print("Light:");
LCD.Print(Light);
LCD.Print("UN.");
om (ljus < = thres3)
{
digitalWrite 13, hög.
State = "ON";
}
IF(Light > thres3)
{
digitalWrite 13, låg.
State = "OFF";
}
Delay(1000);
}
}
Break; < /p >< p > ärende 5: / / klappa sensor läge
{
Serial.println ("klappa sensor läge markerat");
Serial.println ("Clap att slå på/av");
int a3 = 0;
While(a3 == 0)
{
LCD.Clear();
LCD.Print ("Curr. Tillstånd: ");
LCD.Print(State);
lcd.setCursor(0,1);
LCD.Print ("Clap Clap!");
IF(analogRead(MIC) > 5 & & state1 == 0)
{
digitalWrite 13, hög.
State = "ON";
state1 ++;
Delay(1000);
}
IF(analogRead(MIC) > 5 & & state1 == 1)
{
digitalWrite 13, låg.
State = "OFF";
state1--;
Delay(1000);
}
Delay(100);
}
}
bryta;
mål 6: / / motion sensor läge
{
Serial.println ("Motion sensor läge markerat");
för (int b = 30, b > 0, b--)
{
Serial.println ("förbereda 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. Tillstånd: ");
LCD.Print(State);
lcd.setCursor(0,1);
LCD.Print ("Motion Sensor");
IF(digitalRead(PIR) == hög & & state2 == 0)
{
digitalWrite 13, hög.
State = "ON";
state2 ++;
Delay(4100);
}
IF(digitalRead(PIR) == hög & & state2 == 1)
{
digitalWrite 13, låg.
State = "OFF";
state2--;
Delay(4100);
}
Delay(100);
}
}
Break; < /p >< p > ärende 7: / / närvaro sensor läge
{
Delay(1000);
Serial.println ("närvaro sensor läge markerat");
Serial.println ("Ange tröskelvärde");
LCD.Clear();
LCD.Print ("Ange tröskelvärde");
While(digitalRead(11) == låg)
{
IF(digitalRead(10) == hög)
{
Delay(500);
thres4 += 10.
}
LCD.Clear();
LCD.Print("Threshold:");
LCD.Print(thres4);
Delay(100);
}
int a5 = 0;
While(A5 == 0)
{
Delay(50);
avståndet = sonar.ping();
avståndet = avstånd / US_ROUNDTRIP_CM;
LCD.Clear();
LCD.Print ("Curr. Tillstånd: ");
LCD.Print(State);
lcd.setCursor(0,1);
LCD.Print("dist.");
LCD.Print(Distance);
LCD.Print("cm");
om (avstånd < = thres4)
{
digitalWrite 13, hög.
State = "ON";
}
IF(Distance > thres4)
{
digitalWrite 13, låg.
State = "OFF";
}
Delay(1000);
}
}
Break; < /p >< p > ärende 8: / / säkerhetsläge
{
Serial.println ("säkerhetsläge markerat");
Serial.println ("förberedelser sensor...");
Delay(1000);
för (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 ("Security Mode");
Delay(10000);
int a6 = 0;
While(A6 == 0)
{
IF(digitalRead(PIR) == hög)
{
digitalWrite 13, hög.
Serial.println ("tjuv upptäcktes");
LCD.Clear();
LCD.Print ("tjuv upptäckta");
lcd.setCursor(0,1);
LCD.Print("!!!");
int c = 0;
While(c == 0)
{
digitalWrite 12, hög.
Delay(1000);
digitalWrite 12, låg.
Delay(1000);
}
}
Delay(1000);
}
}
bryta; < /p >< p > ärende 9: / / timerläge
{
Delay(1000);
Serial.println ("timerläge valt");
LCD.Clear();
LCD.Print ("Enter timmar");
Delay(2000);
While(digitalRead(11) == låg)
{
IF(digitalRead(10) == hög)
{
Delay(500);
timme ++;
}
LCD.Clear();
LCD.Print(Hour);
Delay(100);
}
LCD.Clear();
LCD.Print ("Enter minuter");
Delay(2000);
While(digitalRead(11) == låg)
{
IF(digitalRead(10) == hög)
{
Delay(500);
minut ++;
}
LCD.Clear();
LCD.Print(Minute);
Delay(100);
}
Delay(1000);
int e2 = minut.
int e3 = 0;
för (int e1 = timme; e1 > = 0; e1--)
{
för (e2; e2 > = 0; e2--)
{
för (e3, e3 > = 0; e3--)
{
digitalWrite 13, hög.
LCD.Clear();
LCD.Print ("tid:");
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, låg.
LCD.Print ("tid avslutad");
LCD.Clear();
Delay(100);
}
}
bryta;
mål 10: / / väder visningsläge
{
int a7 = 0;
While(A7 == 0)
{
flyta t = dht.readTemperature();
flyta f = dht.readTemperature(true);
fukt = dht.readHumidity();
Serial.Print ("temperatur:");
Serial.Print(t);
Serial.Print("*C");
Serial.Print("");
Serial.Print(f);
Serial.Print("*F");
Serial.println();
Serial.Print ("luftfuktighet:");
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);
}
}
bryta;
}
} < /p >