Smart Home
Smart Home
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define outPin 12
dht DHT;
int pos = 0;
Servo myservo;
LiquidCrystal_I2C lcd(0x27,16,2);
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6, 7, 8, 9}; //connect to the column pinouts of the keypad
const String password = "1234"; // change your password here
String input_password;
String pass;
void setup(){
Serial.begin(9600);
lcd.backlight();
pinMode(11, INPUT);
pinMode(buz, OUTPUT);
input_password.reserve(32);
myservo.attach(10);
myservo.write(160);
void loop(){
lcd.setCursor(0,0);
lcd.setCursor(0,1);
if (digitalRead(11) == LOW) {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.setCursor(0,0);
char opkey;
while (true){
opkey = keypad.getKey();
Serial.println(opkey);
if (opkey == 'A') {
Serial.println("if block");
break;
break;
delay(200);
if (opkey == 'A') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
lcd.clear();
lcd.setCursor(0,0);
if (key){
Serial.println(key);
if(key == '*') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
pass = "";
lcd.setCursor(0,1);
lcd.print(" ");
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
if(input_password == password) {
lcd.clear();
lcd.setCursor(0,1);
delay(3000);
lcd.setCursor(0,1);
for (pos = 160; pos >= 40; pos -= 5) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
lcd.setCursor(0,1);
delay(10000);
lcd.setCursor(0,1);
for (pos = 40; pos <= 160; pos += 5) { // goes from 180 degrees to 0 degrees
delay(1000);
lcd.clear();
pass = "";
break;
else {
lcd.setCursor(0,1);
digitalWrite(buz, HIGH);
delay(2000);
digitalWrite(buz, LOW);
pass = "";
else {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
pass += "*";
lcd.setCursor(6,1);
lcd.print(pass);
delay(100);
if (opkey == 'B'){
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
lcd.clear();
lcd.setCursor(0,0);
int h = DHT.humidity;
lcd.setCursor(0,1);
lcd.print(t);
lcd.setCursor(2,1);
lcd.print("C");
lcd.setCursor(5,1);
lcd.print((t*9)/5+32);
lcd.setCursor(8,1);
lcd.print("F");
lcd.setCursor(11,1);
lcd.print(h);
lcd.setCursor(13,1);
lcd.print("% H");
delay(1000);
lcd.clear();
delay(500);
#include <Servo.h>
#include <SoftwareSerial.h>
#define outPin 4
dht DHT;
Servo roomTwoServo;
int roomOneLight = 5;
int roomTwoLight = 6;
int roomHallLight = 8;
int roomHallFan = 7;
int roomOneLightSt = 0;
int roomTwoLightSt = 0;
int roomHallLightSt = 0;
int roomHallFanSt = 0;
int buz = 9;
int pos = 0;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
roomOneServo.attach(10);
roomTwoServo.attach(11);
roomOneServo.write(50);
roomTwoServo.write(180);
pinMode(roomOneIR, INPUT);
pinMode(roomTwoIR, INPUT);
pinMode(roomOneLight, OUTPUT);
pinMode(roomTwoLight, OUTPUT);
pinMode(roomHallLight, OUTPUT);
pinMode(roomHallFan, OUTPUT);
pinMode(buz, OUTPUT);
void loop() {
if (digitalRead(roomOneIR) == LOW) {
digitalWrite(buz, HIGH);
delay(500);
digitalWrite(buz, LOW);
roomOneServo.write(pos);
delay(50);
delay(7000);
roomOneServo.write(pos);
delay(50);
}
if (digitalRead(roomTwoIR) == LOW) {
digitalWrite(buz, HIGH);
delay(500);
digitalWrite(buz, LOW);
roomTwoServo.write(pos);
delay(50);
delay(7000);
roomTwoServo.write(pos);
delay(50);
if (mySerial.available()) {
char d = mySerial.read();
if (d == 'A') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
digitalWrite(roomOneLight, HIGH);
roomOneLightSt = 1;
else if (d == 'B') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
digitalWrite(roomOneLight, LOW);
roomOneLightSt = 0;
else if (d == 'C') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
digitalWrite(roomTwoLight, HIGH);
roomTwoLightSt = 1;
else if (d == 'D') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
digitalWrite(roomTwoLight, LOW);
roomTwoLightSt = 0;
else if (d == 'E') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
digitalWrite(roomHallLight, HIGH);
roomHallLightSt = 1;
else if (d == 'F') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
digitalWrite(roomHallLight, LOW);
roomHallLightSt = 0;
else if (d == 'G') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
digitalWrite(roomHallFan, HIGH);
roomHallFanSt = 1;
else if (d == 'H') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
digitalWrite(roomHallFan, LOW);
roomHallFanSt = 0;
else if (d == 'I') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
delay(50);
delay(7000);
roomOneServo.write(pos);
delay(50);
else if (d == 'J') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
roomTwoServo.write(pos);
delay(50);
delay(7000);
roomTwoServo.write(pos);
delay(50);
else if (d == 'K') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
mySerial.println("===================");
mySerial.println("Tempratur");
mySerial.println("===================");
int h = DHT.humidity;
mySerial.print("Celcius : ");
mySerial.println(t);
mySerial.print("Fahrenheit : ");
mySerial.println((t*9)/5+32);
mySerial.print("Humidity : ");
mySerial.print(h);
mySerial.println("%");
mySerial.println("===================");
delay(1000);
else if (d == 'L') {
digitalWrite(buz, HIGH);
delay(200);
digitalWrite(buz, LOW);
mySerial.println("===================");
mySerial.println("===================");
if (roomOneLightSt == 1){
else {
if (roomTwoLightSt == 1){
else {
if (roomHallLightSt == 1){
else {
if (roomHallLightSt == 1){
else {
mySerial.println("Room Tempratur");
int h = DHT.humidity;
mySerial.print("Celcius : ");
mySerial.println(t);
mySerial.print("Fahrenheit : ");
mySerial.println((t*9)/5+32);
mySerial.print("Humidity : ");
mySerial.print(h);
mySerial.println("%");
mySerial.println("===================");
delay(200);