Delphi Can
MCU İLE RÖLE KONTROLÜ - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mikrodenetleyiciler ve Gömülü Sistemler (https://www.delphican.com/forumdisplay.php?fid=1128)
+---- Forum: Gömülü Sistemler (https://www.delphican.com/forumdisplay.php?fid=1132)
+---- Konu Başlığı: MCU İLE RÖLE KONTROLÜ (/showthread.php?tid=4992)



MCU İLE RÖLE KONTROLÜ - arsl01 - 20-06-2020

Merhaba,
Bu sefer Telefondan M66 cihazına sms göndereceğiz ve bu sms içeriğine göre Röle açıp kapatacağız.
Kısaca Röleden bahsedecek olursak;
Röle, düşük voltaj ile yüksek voltajı kontrol etmemize olanak sağlamaktadır.

kullandığım malzeme listesi
1-Arduino Uno
2-Quectel M66
3-Röle Kartı
4-Sim Kart

Kullanacağımız AT Komutları

AT+CMGF: M66 modülünü Sms moduna getirir.
AT+CNMI: Yeni gelen mesajları işlemek için yazılan komuttur.
AT+CMGDA="DEL ALL": Gelen tüm mesajları silen komuttur.

Devre Şeması
Arduino_M66_SMS_ile_role_kontrol_Muharremarslan.com.png
Kod:
#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 yükledikten sonra herhangi bir sorun yoksa M66 modülüne takılı olan sim kart'a ON mesajını gönderirsek röle aktif olacak, OFF komutunu gönderdiğimizde iste röle pasif olacaktır.

IEHPnz.png