doktorlevi
Üye
- Katılım
- 23 Kas 2020
- Mesajlar
- 25
- Puanları
- 1
Selamlar arkadaşlar; birkaç gün önce attığım bir odayı tıpkı akıllı ev gibi yapma projesinde kilit sistemi ve butonlarla kontrol sistemini yardımlarınız ile başarıyla tamamladım. Şimdi ise bir başka bir sorun var. Butonlarla yaptığım açma kapama işlemini şimdi App Inventor ile yaptığım uygulamada Bluetooth üzerinden yapmak istiyorum. Uygulama kodlarda ve bağlantıda bir sıkıntı olduğunu düşünmediğim halde RFID'den doğru kartı okutmayıp yani kitliyken uygulamadan komut gönderdiğimde izinsiz giriş uyarı yapmıyor kitli değilken herhangi bir komutta ise buzzer hiç kapanmayan bir şekilde sürekli olarak çalıyor ve Lcd ekranda 1 saniyeliğinden kısa bir süreliğine "İzinsiz Giriş" yazısı çıkıp siliniyor. Gerekli kodları ve bağlantıyı atıyorum diğer kısımların herhangi bir kodunu veya bağlantı şemasını paylaşmıyorum haberiniz olsun. Şimdiden teşekkürler.
Kod:
// Kütüphaneler
#include <SPI.h>
#include <RFID.h>
#include <LiquidCrystal.h>
RFID rfid(10, 9); // RFID'in giriş pinlerini tanımlıyoruz
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // LCD'yi ve pinlerini tanımlıyoruz.
// Gerekli pinleri ve değişkenleri tanımlıyoruz.
#define buzzer A4
#define role A5
int kilit;
String readString; // Bluetooth için gereli Serial haberleşmeyi başlatıyoruz.
void setup()
{
Serial.begin(9600); // Serial Haberleşme
lcd.begin(16,2); // LCD'nin boyutunu ayarlıyoruz.
// RFID'yi başlatıyoruz.
SPI.begin();
rfid.init();
// Butonları giriş röleyi çıkış olarak ayarlıyoruz.
pinMode(buzzer, OUTPUT);
pinMode(role, OUTPUT);
// Açılışta gerekli işlemleri yapıyoruz.
digitalWrite(buzzer, LOW);
digitalWrite(role, HIGH);
lcd.clear();
delay(1000);
digitalWrite(buzzer, HIGH);
delay(3000);
digitalWrite(buzzer, LOW);
lcd.print("...");
}
void loop(){
// Blueetooth için gerekli Seri haberleşme ile ile ilgili kodlar
while (Serial.available()) {
delay(3);
char c = Serial.read();
readString += c;
}
//RFID kartın okuma işlemini gerçekleştiriyoruz
if (rfid.isCard()) {
if (rfid.readCardSerial()) {
// Okunan kartları Serial Monitore yazdırıyoruz.
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(" ");
delay(500);
// İzinli kart mı değil mi bakıyoruz.
if(rfid.serNum[0] == 83 && rfid.serNum[1] == 16 && rfid.serNum[2] == 223 && rfid.serNum[3] == 12 && rfid.serNum[4] == 144 ){
lcd.clear();
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
lcd.print("GIRIS YAPILDI");
kilit = 1;
}
else{
lcd.clear();
digitalWrite(buzzer, HIGH);
delay(3000);
digitalWrite(buzzer, LOW);
lcd.print("Izinsiz giris!!!");
kilit = 0;
}
}
}
rfid.halt();
// Bluetooth'tan gelen komutları kontrol etme.
if (readString.length() >0) {
Serial.println(readString);
// Kilit durumunu kontrol etme.
if(kilit == 1){
if(readString == "roleOn"){
lcd.clear();
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
digitalWrite(role, LOW);
lcd.setCursor(0,0);
lcd.print("ROLE ACILDI");
}
if(readString == "roleOff"){
lcd.clear();
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
digitalWrite(role, HIGH);
lcd.setCursor(0,0);
lcd.print("ROLE KAPANDI");
}
if(readString == "kilitle"){
digitalWrite(buzzer, HIGH);
delay(4000);
digitalWrite(buzzer, LOW);
lcd.clear();
lcd.print("SISTEM KILITLENDI");
kilit = 0;
delay(5000);
lcd.clear();
lcd.print("...");
}
} else{
lcd.clear();
digitalWrite(buzzer, HIGH);
delay(3000);
digitalWrite(buzzer, LOW);
lcd.print("Izinsiz giris!!!");
kilit = 0;
}[ATTACH type="full"]68917[/ATTACH][ATTACH type="full"]68918[/ATTACH]
}
}
Bu arada şemada röle bulamadığımdan led kullandımSelamlar arkadaşlar; birkaç gün önce attığım bir odayı tıpkı akıllı ev gibi yapma projesinde kilit sistemi ve butonlarla kontrol sistemini yardımlarınız ile başarıyla tamamladım. Şimdi ise bir başka bir sorun var. Butonlarla yaptığım açma kapama işlemini şimdi App Inventor ile yaptığım uygulamada Bluetooth üzerinden yapmak istiyorum. Uygulama kodlarda ve bağlantıda bir sıkıntı olduğunu düşünmediğim halde RFID'den doğru kartı okutmayıp yani kitliyken uygulamadan komut gönderdiğimde izinsiz giriş uyarı yapmıyor kitli değilken herhangi bir komutta ise buzzer hiç kapanmayan bir şekilde sürekli olarak çalıyor ve LCD ekranda 1 saniyeliğinden kısa bir süreliğine "İzinsiz Giriş" yazısı çıkıp siliniyor. Gerekli kodları ve bağlantıyı atıyorum diğer kısımların herhangi bir kodunu veya bağlantı şemasını paylaşmıyorum haberiniz olsun. Şimdiden teşekkürler.
Kod:// Kütüphaneler #include <SPI.h> #include <RFID.h> #include <LiquidCrystal.h> RFID rfid(10, 9); // RFID'in giriş pinlerini tanımlıyoruz LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // LCD'yi ve pinlerini tanımlıyoruz. // Gerekli pinleri ve değişkenleri tanımlıyoruz. #define buzzer A4 #define role A5 int kilit; String readString; // Bluetooth için gereli Serial haberleşmeyi başlatıyoruz. void setup() { Serial.begin(9600); // Serial Haberleşme lcd.begin(16,2); // LCD'nin boyutunu ayarlıyoruz. // RFID'yi başlatıyoruz. SPI.begin(); rfid.init(); // Butonları giriş röleyi çıkış olarak ayarlıyoruz. pinMode(buzzer, OUTPUT); pinMode(role, OUTPUT); // Açılışta gerekli işlemleri yapıyoruz. digitalWrite(buzzer, LOW); digitalWrite(role, HIGH); lcd.clear(); delay(1000); digitalWrite(buzzer, HIGH); delay(3000); digitalWrite(buzzer, LOW); lcd.print("..."); } void loop(){ // Blueetooth için gerekli Seri haberleşme ile ile ilgili kodlar while (Serial.available()) { delay(3); char c = Serial.read(); readString += c; } //RFID kartın okuma işlemini gerçekleştiriyoruz if (rfid.isCard()) { if (rfid.readCardSerial()) { // Okunan kartları Serial Monitore yazdırıyoruz. 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(" "); delay(500); // İzinli kart mı değil mi bakıyoruz. if(rfid.serNum[0] == 83 && rfid.serNum[1] == 16 && rfid.serNum[2] == 223 && rfid.serNum[3] == 12 && rfid.serNum[4] == 144 ){ lcd.clear(); digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); lcd.print("GIRIS YAPILDI"); kilit = 1; } else{ lcd.clear(); digitalWrite(buzzer, HIGH); delay(3000); digitalWrite(buzzer, LOW); lcd.print("Izinsiz giris!!!"); kilit = 0; } } } rfid.halt(); // Bluetooth'tan gelen komutları kontrol etme. if (readString.length() >0) { Serial.println(readString); // Kilit durumunu kontrol etme. if(kilit == 1){ if(readString == "roleOn"){ lcd.clear(); digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); digitalWrite(role, LOW); lcd.setCursor(0,0); lcd.print("ROLE ACILDI"); } if(readString == "roleOff"){ lcd.clear(); digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); digitalWrite(role, HIGH); lcd.setCursor(0,0); lcd.print("ROLE KAPANDI"); } if(readString == "kilitle"){ digitalWrite(buzzer, HIGH); delay(4000); digitalWrite(buzzer, LOW); lcd.clear(); lcd.print("SISTEM KILITLENDI"); kilit = 0; delay(5000); lcd.clear(); lcd.print("..."); } } else{ lcd.clear(); digitalWrite(buzzer, HIGH); delay(3000); digitalWrite(buzzer, LOW); lcd.print("Izinsiz giris!!!"); kilit = 0; }[ATTACH type="full"]68917[/ATTACH][ATTACH type="full"]68918[/ATTACH] } }