Arduino M66 ile Röle Kontrolü

PROJE DETAYI

Merhaba,bu Çalışmamızda Arduino Uno kartına bağladığımız Quectel m66 ile Sms okuyup röle kontrol edeceğiz.

Bu çalışmamız internet olmayan her heryerde kullanılabilmektedir Örneğin;

 

  • Tarla Sulama sistemlerinde,
  • Çiftliklerde,
  • Araçlarda
  • Ve daha sayamadığımız bir çok alanda kullanılmaktadır.

 

Kullandığımız Malzemeler

1-Arduino Uno karı (Elinizde hangisi varsa)

2-Quectel M66 Gsm/Gprs modülü

3-Sim kart

4-Röle modülü

 

Quectel M66 detaylı bilgi için blogumuza Buradan gidebilirisin

 

Kullanıcağımız At komutları

 

AT + CMGF: Bu komutu GSM modülünü SMS Metin Modunda veya SMS PDU Modunda ayarlar.

Metin Modunda, SMS mesajları okunabilir metin olarak gösterilir. PDU Modunda ise , tüm SMS mesajları onaltılık karakterlerle kodlanmış ikili dizeler halinde gösterir.

Metin Modunun kullanımı daha kolay olmasına rağmen, PDU Modu farklı GSM Modemlerinde daha tutarlıdır.

 

AT+CNMI: Yeni gelen mesajları işlemek içi kullanılan komuttur.

 

AT+CMGL="REC UNREAD": Okunmamış Mesajları Okumak için kullanılan komuttur.

 

AT+CMGDA="DEL ALL": Mesajı silen Komuttur.

 

Devre şeması 

 

 

Arduino Kodu:

//Muharremarslan.com

#include 
SoftwareSerial M66Serial(10, 11); //RX-TX

char GelenByte;
String GelenString;
int Role = 13; // Role kontrol pini

void setup()
{
  pinMode(Role, OUTPUT);
  digitalWrite(Role, LOW); //Rölenin başlangıç durumu
  Serial.begin(9600);
  M66Serial.begin(9600); //M66 baud hızı ile aynı olduğundan emin olun
  Serial.println("Muharremarslan.com");
M66Serial.println("AT"); while (!M66Serial.available()) { M66Serial.println("AT"); delay(1000); Serial.println("Baglaniliyor..."); } Serial.println("Baglandi!"); M66Serial.println("AT+CMGF=1"); //SMS'i Metin Moduna Ayarla delay(1000); M66Serial.println("AT+CNMI=1,2,0,0,0"); //Yeni gelen mesajları işlemek için girilen komut delay(1000); M66Serial.println("AT+CMGL=\"REC UNREAD\""); //Okunmamış Mesajları Oku } void loop() { if (M66Serial.available()) { delay(200); while (M66Serial.available()) { GelenByte = M66Serial.read(); GelenString += GelenByte; } delay(50); Serial.println(GelenString); GelenString.toUpperCase(); // Alınan mesajı büyük harflere çevir //Röleyi Aç if (GelenString.indexOf("ON") > -1) { digitalWrite(Role, HIGH); } //Röleyi Kapat if (GelenString.indexOf("OFF") > -1) { digitalWrite(Role, LOW); } delay(50); //İşlem bittikten sonra mesajı sil if (GelenString.indexOf("OK") == -1) { M66Serial.println("AT+CMGDA=\"DEL ALL\""); delay(1000); } GelenString = ""; } }

 

Kodu arduino kartımıza attıktan sonra M66 modülüne takılı olan sim kart numarasına  "ON" mesajını gönderidiğinizde röle aktif olacak, "OFF" mesajını gönderdiğinizde röle aktif olacaktır.

Eğer Devreniz çalışmıyorsa aşağıdaki nedenlerden biri olabilir.

  • Quectel M66'ya yeterli voltaj ve akım gelmiyor olabilir.
  • Bağlantı şemasını yanlış bağlamış olabilirsiniz.
  • Telefon numarasını yanlış yazmış olabilirsiniz.
  • M66 ile Arduino arasındaki baud hızın aynı olduğundan emin olun
  • Röle modülünün Sağlamlığını kontrol ediniz.(Arduino Uno üstündeki L ledinden kontrol edebilirsiniz)

 

Bu nedenler kontrol ettikten sonra halen devreniz çalışmadıysa,

Bana ulaşmaktan Çekinmeyin

WhatsApp