Kullandığımız sensör ve malzemeler:
LDR
IR recivier
Water Sensor
Gas Sensor
DHT 11 Isı Nem senörü
Servo Motorlar
Lcd Display
Buzzer ve Ledler
Akıllı evimizin özellikleri:
Kapı açma kapama işlemini Ir sensör yardımıyla kumanda kontrolü ile yapmaktayız.Penceredeki perdeleri LDR sensör yardımıyla ışığa bağlı kontrol ettik.DHT 11 Isı ve nem sensöründen aldığımız verileri LCD ekrana yazdırıp evin ortam sıcaklıklığını anlık takip edebiliyoruz.Kullanmış olduğumuz Water Sensor ile evde oluşabilecek su taşkınını buzzer ve ledleri kullanarak kullanıcıyı uyarabiliyoruz.Gas sensörü ile olası gaz sızıntısını led yardımıyla kullanıcıya bildirdik.
Projede kullandığımız kodları aşağıda paylaşmaktayım
ısı nem kodu:
#include <dht.h>
dht DHT;
#define DHT11_PIN 2
void setup(){
Serial.begin(9600);
}
void loop()
{
int chk = DHT.read11(DHT11_PIN);
Serial.print(“Temperature = “);
Serial.println(DHT.temperature);
Serial.print(“Humidity = “);
Serial.println(DHT.humidity);
delay(1000);
}
servo motor kontrol kodu :
#include <Servo.h>
Servo myservo;
const int ldr = A0;
int val = 0;
void setup()
{
myservo.attach(3);
}
void loop()
{
val = analogRead(ldr);
val = map(val, 0, 180, 0, 1023);
Serial.println(val);
if (ldr > 40) {
val = 0;
}
if (ldr > 400) {
val = 180;
}
myservo.write(val);
delay(1000);
}
su baskını kodu:
int WaterAlarm = 6;
int Buzzer = 4;
int Led = 5;
boolean val1; //simply reads 1 or 0 as a value 1 when detecting water
int tones[] = {261, 277, 293, 311, 329, 349, 369, 392, 415, 440, 466, 493, 523 ,554};
// 1 2 3 4 5 6 7 8 9 10 11 12 13 14
//you see ” tone(Buzzer, tones[12]); ” below, digitalWrite(Buzzer, HIGH);
// here you can change the tones by filling in a number between 1 and 14
void setup() {
Serial.begin(9600);
pinMode (WaterAlarm, INPUT);
pinMode (Buzzer, OUTPUT);
pinMode (Led, OUTPUT);
}
void loop() {
val1 = digitalRead(WaterAlarm);
if (val1 == 1)
{
digitalWrite(Led, HIGH);
digitalWrite(Buzzer, HIGH);
tone(Buzzer, tones[6]);
delay(200);
digitalWrite(Led, LOW);
digitalWrite(Buzzer, LOW);
noTone(Buzzer);
delay(200);
digitalWrite(Led, HIGH);
digitalWrite(Buzzer, HIGH);
tone(Buzzer, tones[14]);
delay(200);
digitalWrite(Led, LOW);
digitalWrite(Buzzer, LOW);
noTone(Buzzer);
delay(200);
}
else
{
digitalWrite(Led, LOW);
digitalWrite(Buzzer, LOW);
}
}
kapı kontrolü kodu:
#include <IRremote.h>
#include <Servo.h>
Servo myservomotor;
int INFRARED_PIN = 7; // Arduino nun 7 nolu pini alıcının girişi olarak belirledik
IRrecv irrecv(INFRARED_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
myservomotor.attach(8); // Arduinonun 8. pinini servo motor için çıkış yaptık.
myservomotor.write(0); // (Kapı Kapalı durumu)
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value);
irrecv.resume();
}
if(0x4CBC8==results.value)
{
Serial.println(“1”); // 1 tuşuna basıldıysa ekrana 1 yazdır.
myservomotor.write(90); //(kapıyı aç)
results.value=0;
}
else if(0xCCBC8==results.value)
{
Serial.println(“2”); // 2 tuşuna basıldıysa ekrana 2 yazdır.
myservomotor.write(0); // (kapıyı kapat)
results.value=0;
}
}