doktorlevi
Üye
- Katılım
- 23 Kas 2020
- Mesajlar
- 25
- Puanları
- 1
Selamlar arkadaşlar; ben odamdaki elektronik eşyaları tıpkı bir akıllı evde olduğu gibi kontrol etmek, izinsiz çalışmamalarını sağlamak, blueetooth ve uzaktan internetle açıp kapama rfid ile bu tarz kontrollere erisim izni verme ve lcd ile neyin açılıp neyin kapalı olduğunu görmek istiyorum. Projenin yarısında iken kodlarda sanırım bir hata var ama çözemiyorum. Acaba yardım edebilir misiniz?
Kodlar ve sorun
Sorun: daha 220v bağlı deilken sadece arduinodan güç ve sinyal pini bağla olan röle ben daha Arduinoyu açar açmaz aşırı hızlı bir şekilde açılıp kapanıyor rfid okumam veya butonlar üzerinden kapatmam işe yaramıyor anlayamadım. RFID ise okunmuyor normalde okunduğunda lcd üzerinde giriş başarılı yazması gerekirken hiçbir şey yazmıyor ve üstüne butonlara bu nedenle erişim sunamıyorum.
Kodlar ise;
Bağlantılarda hata olabilir ama sırf bu nedenle onlarca kabloyu çıkartıp yeniden bağladım ek olarak çok karmaşık bir kablo düzeni var sayıdan dolayı hata olsada kolay bulunamıyor ama yinede dediğim gibi çıkartıp yeniden yaptım bağlantıları
Kodlar ve sorun
Sorun: daha 220v bağlı deilken sadece arduinodan güç ve sinyal pini bağla olan röle ben daha Arduinoyu açar açmaz aşırı hızlı bir şekilde açılıp kapanıyor rfid okumam veya butonlar üzerinden kapatmam işe yaramıyor anlayamadım. RFID ise okunmuyor normalde okunduğunda lcd üzerinde giriş başarılı yazması gerekirken hiçbir şey yazmıyor ve üstüne butonlara bu nedenle erişim sunamıyorum.
Kodlar ise;
C++:
#include <dht11.h>
#include <LiquidCrystal.h>
#include <SPI.h>
#include <RFID.h>
RFID rfid(32, 33);
#define dhtpin 8
int buton1 = 9;
int buton2 = 10;
int buton3 = 49;
int buton4 = 48;
int role = 51;
int buzzer = 50;
int kilit;
dht11 DHT11;
String readString;
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
lcd.begin(16,2);
pinMode(buton1, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(buton2, INPUT);
pinMode(buton3, INPUT);
pinMode(buton4, INPUT);
pinMode(role, OUTPUT);
SPI.begin();
rfid.init();
digitalWrite(buzzer, LOW);
digitalWrite(role, HIGH);
delay(1000);
digitalWrite(buzzer, HIGH);
delay(3000);
digitalWrite(buzzer, LOW);
lcd.print("HOS GELDİN.");
Serial.begin(9600);
}
void loop() {
int chk = DHT11.read(dhtpin);
while (Serial.available()) {
delay(3);
char c = Serial.read();
readString += c;
}
if (rfid.isCard()) {
if (rfid.readCardSerial()) {
Serial.println("Kart Bulundu ID : ");
Serial.print(rfid.serNum[0]);
Serial.print(" , ");
Serial.print(rfid.serNum[1]);
Serial.print(" , ");
Serial.print(rfid.serNum[2]);
Serial.print(" , ");
Serial.print(rfid.serNum[3]);
Serial.print(" , ");
Serial.print(rfid.serNum[4]);
Serial.println(" ");
if(rfid.serNum[0] == 83 && rfid.serNum[1] == 16 && rfid.serNum[2] == 223 && rfid.serNum[3] == 12 && rfid.serNum[4] == 144) {
Serial.println("doğru kart");
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.print("Giris Basarili");
delay(1000);
kilit = 1;
}
else{
Serial.println("yok yanlış");
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.print("Izinsiz giris");
delay(1000);
kilit = 0;
}
}
}
if (readString.length() >0) {
Serial.println(readString);
if(kilit == "1"){
if (readString == "roleac")
{
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
digitalWrite(role, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Role acildi!");
lcd.setCursor(0,1);
lcd.print("1saat icinde kpnck");
}
if(readString == "rolekapa"){
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
digitalWrite(role, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Role kapandi!");
}
if(readString == "sicaklik"){
digitalWrite(buzzer, HIGH);
lcd.clear();
delay(1000);
digitalWrite(buzzer, LOW);
lcd.setCursor(0,0);
lcd.print("SICAKLIK:");
lcd.setCursor(0,1);
lcd.print((float)DHT11.temperature);}
} else{
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.print("Lutfen giris yapiniz");
delay(1000);
}readString="";}
if(digitalRead(buton1) == 1 || digitalRead(buton1) == 1 || digitalRead(buton1) == 1 || digitalRead(buton1) == 1 ){
if(kilit == 1){
if(digitalRead(buton1) == 1 ){
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
digitalWrite(role, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Role acildi!");
lcd.setCursor(0,1);
lcd.print("1 saat icinde kpnck");
}
if(digitalRead(buton2) == 1){
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
digitalWrite(role, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Role kapandi!");
}
if(digitalRead(buton3) == 1){
digitalWrite(buzzer, HIGH);
lcd.clear();
delay(1000);
digitalWrite(buzzer, LOW);
lcd.setCursor(0,0);
lcd.print("SICAKLIK:");
lcd.setCursor(0,1);
lcd.print((float)DHT11.temperature);
}
if(digitalRead(buton4) == 1){
digitalWrite(buzzer, HIGH);
delay(4000);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.print("SISTEM KILITLENDI");
kilit = 0;
delay(5000);
lcd.clear();
lcd.print("...");
}
}else{ digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.print("Lutfen giris yapiniz");
delay(1000);}}
}
Bağlantılarda hata olabilir ama sırf bu nedenle onlarca kabloyu çıkartıp yeniden bağladım ek olarak çok karmaşık bir kablo düzeni var sayıdan dolayı hata olsada kolay bulunamıyor ama yinede dediğim gibi çıkartıp yeniden yaptım bağlantıları
Son düzenleme: