Для работы нам понадобится:
Sim900: http://got.by/1ojy8r
Sim900 как у меня в видео: http://ali.ski/wV37dV , http://grbe.st/ttat_Q
Микроволновой датчик движения: http://ali.ski/HGYsQv
Arduino uno: http://ali.ski/BHUqd
Корпус: http://ali.pub/1bl0fg
Контактные провода: http://ali.pub/1m0h4y
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
В данной статье показано, как с помощью gsm shield sim900 можно реализовать простейшую сигнализацию.
Принцип работы простейший, как только датчик движения улавливает какое либо движения, то посылается звонок на указанный в скетче номер телефона, его нужно изменить на свой номер.
Подключение:
Подключаем светодиод к 13 пину ардуино
Подключаем датчик движения к 7 пину Ардуино
После подключения всех компонентов необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.
#include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // RX, TX int ch = 0; int led = 13; #define pirPin 7 // пин подключения датчика движения #define boot 9 String val = ""; void setup() { mySerial.begin(9600); delay(2000); //время на инициализацию модуля pinMode(pirPin, INPUT); pinMode(led, OUTPUT); pinMode(boot, OUTPUT); mySerial.println("AT"); // смотрим есть ли ответ от модема delay(100); if (!mySerial.find("OK")){ // если нет, дергаем ногу включения digitalWrite(boot, HIGH); delay(1000); digitalWrite(boot, LOW); } // нужно дождатся включения модема и соединения с сетью delay(2000); mySerial.println("ATE0"); // выключаем эхо while(1){ // ждем подключение модема к сети mySerial.println("AT+COPS?"); if (mySerial.find("+COPS: 0")) break; } Serial.begin(9600); //скорость порта Serial.println("GSM tester v4.0"); } void loop() { int pirVal = digitalRead(pirPin); //Считываем значения с датчика движения. Если обнаружили движение, //то транслируем сигнал тревоги в монитор порта и включаем светодиод if(pirVal == HIGH) { digitalWrite(led, HIGH); ring(); delay(2000); } else { digitalWrite(led, LOW); delay(1000); } } void ring() //процедура звонка { Serial.println("ring send started"); mySerial.println("ATD+79204460858;"); delay(500); Serial.println("ring send complete"); delay(2000); }
Ссылка на скетч: https://yadi.sk/d/DZz7XXdl3LHQrt
Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.
Видео: