Для реализации данного проекта нам понадобится:
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
Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.
Видео: