#include <SoftwareSerial.h>
// Yazılım seri bağlantı noktasını yapılandırma
SoftwareSerial SIM900(7, 8);
// Gelen SMS karakterlerini kaydetmek için değişken
char incoming_char=0;
//Allarm status
byte allarmSent = LOW;
void setup() {
// Vin algılama için pin 2'yi giriş olarak ayarlayın
pinMode(2,INPUT);
// Arduino, SIM900 GSM shield ile 19200 baud hızında iletişim kurar
SIM900.begin(19200);
// GSM shield ağda oturum açması için zaman verin
delay(30000);
// SIM900'ü SMS moduna ayarlamak için AT komutu
SIM900.print("AT+CMGF=1\
");
delay(100);
sendSMSready();
// Modülü, SMS verilerini alındıktan sonra seri çıkışa gönderecek şekilde ayarlayın
// SIM900.print("AT+CNMI=2,2,0,0,0\
");
// delay(100);
}
void loop()
{
// GSM kalkanının gönderdiği herhangi bir metni seri monitörde görüntüleme
if(SIM900.available() >0) {
// Hücresel seri bağlantı noktasından karakteri al
incoming_char=SIM900.read();
// Gelen karakteri terminale yazdırır
Serial.print(incoming_char);
}
while (digitalRead(2) == HIGH) {}
if(digitalRead(2) == LOW && allarmSent == LOW) {
// 1" daha bekleyin ve pin 2 zaten DÜŞÜK ise mesaj gönderin
delay(1000);
if(digitalRead(2) == LOW) sendSMSallarm();
}
while (digitalRead(2) == LOW) {}
if(digitalRead(2) == HIGH && allarmSent == HIGH) sendSMSallarmOFF();
}
void sendSMSallarm()
{
// Alıcının cep telefonu numarasını uluslararası formatta ayarlayın
SIM900.println("AT + CMGS = \\"+905458587878\\"");
delay(100);
// SMS mesajını ayarla
SIM900.println("*** test3 ***");
delay(100);
// AT komutunu ^Z ile sonlandırın, ASCII kodu 26
SIM900.println((char)26);
delay(100);
SIM900.println();
// Modüle SMS göndermesi için zaman verin
delay(5000);
allarmSent = HIGH;
}
void sendSMSallarmOFF()
{
// Alıcının cep telefonu numarasını uluslararası formatta ayarlayın
SIM900.println("AT + CMGS = \\"+905458587878\\"");
delay(100);
// SMS mesajını ayarla
SIM900.println("*** test 2 ***");
delay(100);
// AT komutunu ^Z ile sonlandırın, ASCII kodu 26
SIM900.println((char)26);
delay(100);
SIM900.println();
// Modüle SMS göndermesi için zaman verin
delay(5000);
allarmSent = LOW;
}
void sendSMSready()
{
// Alıcının cep telefonu numarasını uluslararası formatta ayarlayın
SIM900.println("AT + CMGS = \\"+905458587878\\"");
delay(100);
// SMS mesajını ayarla
SIM900.println("*** test 1 ***");
delay(100);
// AT komutunu ^Z ile sonlandırın, ASCII kodu 26
SIM900.println((char)26);
delay(100);
SIM900.println();
// Modüle SMS göndermesi için zaman verin
delay(5000);
}