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