
Для реализации данного проекта нам понадобится:
GSM модем NEOWAY M590: http://ali.ski/romQrP
Микроволновой датчик движения: http://ali.ski/yJ3Pc
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Принцип работы скетча простой. При обнаружении движения будем отправлять на указанный в скетче номер телефона слово или фразу которую зададим в нем. Так же при отправке в com port фразы “sendsms” мы получим смс на указанный в скетче номер говорящей нам о готовности модема.
Схема подключения представлена в самом начале этой статьи.
После подключения всех компонентов необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.
#include
SoftwareSerial mySerial(2, 3); // RX, TX
int ch = 0;
int led = 13;
#define pirPin 8 // пин подключения датчика движения
String val = "";
void setup() {
delay(2000); //время на инициализацию модуля
pinMode(pirPin, INPUT);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
Serial.begin(115200); //скорость порта
Serial.println("GSM tester v3.0");
mySerial.begin(115200);
mySerial.println("AT+CLIP=1"); //включаем АОН
delay(100);
mySerial.println("AT+CMGF=1"); //режим кодировки СМС - обычный (для англ.)
delay(100);
mySerial.println("AT+CSCS=\"GSM\""); //режим кодировки текста
delay(100);
}
void loop() {
if (mySerial.available()) { //если GSM модуль что-то послал нам, то
while (mySerial.available()) { //сохраняем входную строку в переменную val
ch = mySerial.read();
val += char(ch);
delay(10);
}
}
if (Serial.available()) { //если в мониторе порта ввели что-то
while (Serial.available()) { //сохраняем строку в переменную val
ch = Serial.read();
val += char(ch);
delay(10);
}
//mySerial.println(val); //передача всех команд, набранных в мониторе порта в GSM модуль
if (val.indexOf("sendsms") > -1) { //если увидели команду отправки СМС
sms(String("ready"), String("+71234567890")); //отправляем СМС на номер +71234567890
}
val = ""; //очищаем
}
int pirVal = digitalRead(pirPin); //Считываем значения с датчика движения. Если обнаружили движение,
//то транслируем сигнал тревоги в монитор порта и включаем светодиод
if(pirVal == HIGH)
{
digitalWrite(led, HIGH);
sms(String("motion"), String("+1234567890"));
delay(2000);
}
else
{
digitalWrite(led, LOW);
delay(1000);
}
}
void sms(String text, String phone) //процедура отправки СМС
{
Serial.println("SMS send started");
mySerial.println("AT+CMGS=\"" + phone + "\"");
delay(500);
mySerial.print(text);
delay(500);
mySerial.print((char)26);
delay(500);
Serial.println("SMS send complete");
delay(2000);
}
Ссылка на скетч: https://yadi.sk/d/Fd21TWHz3JCY69
Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.
Видео: