» » » Делаем простейшую сигналку на GSM SIM800L и Аrduino для дачи, гаража

Делаем простейшую сигналку на GSM SIM800L и Аrduino для дачи, гаража


С наступлением дачного сезона возникла необходимость охраны дачного домика. Хотелось сделать простенькую но надежную охранную сигнализацию с передачей сигнала на сотовый телефон. Решено было собрать устройство с передачей тревоги на сотовый телефон на базе электронных плат приобретенных на Алиэкспресс. Как говорится дешево но сердито. Основными элементами данной конструкции являются модуль GSM SIM800L и плата Aрдуино(можно применить любую- Nano ,Uno,Pro Mini и тому подобные).

Устройство на пять тревожных входов для контактных датчиков. К каждому входу можно подключить один или несколько датчиков последовательно соединенных В скетче присвоить каждому охранному шлейфу свое название (например-входная дверь, окно 1, окно 2 и так далее). Охранное устройство работает так: при разрыве электрической цепи первого шлейфа блок сперва дает вызов на первый телефон абонента, следом прекращает звонок и также на №2. №2 нужен в виду того что если вдруг первый абонент не в сети или подсел аккумулятор и прочие неприятности). Если срабатывают шлейфа следующие за первым, тогда происходит отсылка СМС сообщения с названием сработавшего шлейфа, в том же случае на оба номера абонентов.

Перечень инструментов и материалов.
-литий –ионный аккумулятор от старого телефона 3,7В\1600мА-1шт
-соединительные провода;
-паяльник;
-тестер;
-прозрачная пластмассовая коробка -1шт;
-плата Arduino Nano -1 шт;
-резисторы 10кОм-7шт;
- макетная плата из фольгированного текстолита;
- выключатель питания-1шт;
-модуль SIM800L -1шт;
-понижающая плата 1-2А -1шт;
-клеммные разъемы.

Шаг первый. Сборка схемы охранного GSM устройства.
Фото схемы.


На макетную плату припаиваем разъемные колодки для GSM модуль SIM800L и модуль Arduino это упрощает монтаж и позволяет при необходимости легко заменять модули. Распаиваем резисторы и остальные соединения. Резисторы от контакта RX модуля SIM800L подключаются к цифровому входу D3 Arduino для согласования по напряжению входов обоих модулей. Входы Arduino D4-D8 подтягиваются через резисторы. Выключатель монтируется в разрыв питания GSM модуля SIM800 и платы Ардуино для постановки на охрану всей системы. Применение аккумулятора, что позволит устройству функционировать два три дня при отсутствии сети 220 В. Преобразователь напряжения в моем случае из напряжения 12 В выдает напряжение 4,2 В и заодно заряжает аккумулятор(можно применить другую плату, например ТР4056 с защитой).

Шаг второй. Программирование устройства.
В СИМ карте должны быть удалены пинкоды и все ненужные функции. Еще предварительно нужно настроить сам модуль SIM800L-в сети есть много видео по этой теме, ничего сложного в этом нет. В скетче указываем ваши номера телефонов, корректируем названия охранных зон, можно установить время контроля системы (если прибор работает нормально через заданное время придет контрольная СМС). Заливаем скетч в Arduino и проверяем работу устройства.

Скетч:


String numberCall_1 = "79123456789"; // Номер абонента №1 для звонка
String numberSMS_1 = "+79123456789"; // Номер абонента №1 для СМС (отличается только знаком +)

String numberCall_2 = "79123456782"; // Номер абонента №2 для звонка
String numberSMS_2 = "+79123456782"; // Номер абонента №2 для СМС (отличается только знаком +)

String textZone_1 = "Alarm! Zone1";    // Свое название зоны ,  на латинице.
String textZone_2 = "Alarm! Zone2";    // Свое название зоны ,  на латинице.
String textZone_3 = "Alarm! Zone3";    // Свое название зоны ,  на латинице.
String textZone_4 = "Alarm! Zone4";    // Свое название зоны ,  на латинице.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); 

#define pinSensor_0 4 
#define pinSensor_1 5 
#define pinSensor_2 6 
#define pinSensor_3 7 
#define pinSensor_4 8 

void initGSM(void) {
  delay(2000);                            
  mySerial.begin(9600);                   // Выставляем скорость общения с GSM-модулем 9600 Бод/сек.  
  mySerial.println("AT+CLIP=1");          
  delay(300);                             
  mySerial.println("AT+CMGF=1");          
  delay(300);                             
  mySerial.println("AT+CSCS=\"GSM\"");    
  delay(300);                             
  mySerial.println("AT+CNMI=2,2,0,0,0");  
  delay(300);                             
}

/* Отправка SMS */
void sendSMS(String text, String phone) {
  mySerial.println("AT+CMGS=\"" + phone + "\""); 
  delay(500);
  mySerial.print(text);                         
  delay(500);
  mySerial.print((char)26);       
  delay(2500);  
}


unsigned long timerTemp = 0;  
uint8_t hours = 0;            

uint8_t flagSensor_0 = 0;
uint8_t flagSensor_1 = 0;
uint8_t flagSensor_2 = 0;
uint8_t flagSensor_3 = 0;
uint8_t flagSensor_4 = 0;

void setup() {
  mySerial.begin(9600);
  initGSM(); 
  
  pinMode(pinSensor_0, INPUT);
  pinMode(pinSensor_1, INPUT);
  pinMode(pinSensor_2, INPUT);
  pinMode(pinSensor_3, INPUT);
  pinMode(pinSensor_4, INPUT);

  timerTemp = millis();
}

void loop() {
    if(millis() - timerTemp >= 3600000) {timerTemp = millis(); hours++;}

  if(hours >= 144) {// Меняем время контроля системы на свое,144 часа.кол-во часов .
    sendSMS(String("The system works normally.OK"), numberSMS_1); 
    delay(10000);                                  
    sendSMS(String("The system works normally.OK"), numberSMS_2); 
    delay(10000);                                  
    hours = 0;                                     
    timerTemp = millis();                         
  }
 
  if(flagSensor_0 == 0 && digitalRead(pinSensor_0) == 0) flagSensor_0 = 1; 
  if(flagSensor_1 == 0 && digitalRead(pinSensor_1) == 0) flagSensor_1 = 1; 
  if(flagSensor_2 == 0 && digitalRead(pinSensor_2) == 0) flagSensor_2 = 1; 
  if(flagSensor_3 == 0 && digitalRead(pinSensor_3) == 0) flagSensor_3 = 1;
  if(flagSensor_4 == 0 && digitalRead(pinSensor_4) == 0) flagSensor_4 = 1;

  if(flagSensor_0 == 1) {
    String command;

    command = "ATD+" + numberCall_1 + ";";  
    mySerial.println(command);              
    delay(20000);                           
    mySerial.println("ATH");                
    delay(1000);                            

   
    command = "ATD+" + numberCall_2 + ";";  
    mySerial.println(command);              
    delay(20000);                           
    mySerial.println("ATH");                
    delay(1000);                            

    flagSensor_0 = 2;                       
  }


  if(flagSensor_1 == 1) {
    sendSMS(textZone_1, numberSMS_1); 
    delay(10000);                     
    sendSMS(textZone_1, numberSMS_2); 
    delay(10000);                     
    flagSensor_1 = 2;                 
  }


  if(flagSensor_2 == 1) {
    sendSMS(textZone_2, numberSMS_1); 
    delay(10000);                     
    sendSMS(textZone_2, numberSMS_2); 
    delay(10000);                     
    flagSensor_2 = 2;                 
  }


  if(flagSensor_3 == 1) {
    sendSMS(textZone_3, numberSMS_1); 
    delay(10000);                     
    sendSMS(textZone_3, numberSMS_2); 
    delay(10000);                     
    flagSensor_3 = 2;                 
  }


  if(flagSensor_4 == 1) {
    sendSMS(textZone_4, numberSMS_1); 
    delay(10000);                    
    sendSMS(textZone_4, numberSMS_2); 
    delay(10000);                     
    flagSensor_4 = 2;                
  }

  if(flagSensor_0 == 2 && digitalRead(pinSensor_0) != 0) flagSensor_0 = 0;
  if(flagSensor_1 == 2 && digitalRead(pinSensor_1) != 0) flagSensor_1 = 0;
  if(flagSensor_2 == 2 && digitalRead(pinSensor_2) != 0) flagSensor_2 = 0;
  if(flagSensor_3 == 2 && digitalRead(pinSensor_3) != 0) flagSensor_3 = 0;
  if(flagSensor_4 == 2 && digitalRead(pinSensor_4) != 0) flagSensor_4 = 0;
}


Шаг третий. Проверка работоспособности устройства.
Делаем простейшую сигналку на GSM SIM800L и Аrduino для дачи, гаража

При подаче напряжения питания пока загружаются модуль SIM800L и плата Arduino у вас есть примерно 20 секунд чтобы покинуть охраняемое помещение. На модуле SIM800L светодиод указывает на работу в сети- часто мигает это поиск сети, раз в пять секунд- работа в сети. Когда прибор найдет сеть разорвите соответствующие охранные входы, после этого произойдет дозвон или присылка СМС. Значит прибор работает нормально.

Фото СМС. К этому прибору можно будет включить любые охранные извещатели с выходами в виде контактов, реле от исполнительных устройств, только в соответствие с вашими потребностями и фантазией. В целом мы изготовили несложный, охранный прибор. Такой самодельный сторож можно сделать для организации охраны любых объектов. Чтобы включить прибор сигнализации нужно через выключатель на SIM800 и Аrduino подать 4,2 Вольта. При первого входа пройдет звонок на абонента №1, после переключится на №2. Дополнительный №2 предусмотрен для дублирования. Обрыв шлейфа №2,3,4,5 делает выдачу SMS с конкретным названием нарушенного шлейфа, соответственно на оба телефона. Все платы поместим в любом в подходящем корпусе. В общем я думаю это неплохой интересный приборчик который можно в дальнейшем развить далее-добавить функции GSM розетки, управление по DMTF и многое другое.

Подробнее можно посмотреть в видео

Всем желаю здоровья и успехов в жизни и творчестве!
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Оцените самоделку по критериям

10
Идея
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
10
Описание
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
10
Исполнение
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Итоговая оценка: 10 из 10 (голосов: 1)
Чтобы написать комментарий необходимо войти на сайт через соц. сети (или зарегистрироваться):
Обычная регистрация
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
1 комментарий
  1. Иван_Похмельев
    можно применить другую плату, например ТР4056 с защитой
    Не можно, а нужно. Причём не абы какую, а, как правильно сказано, с защитой, то есть, кроме TP4056 должны быть ещё две мелкие ИС, включая DW01 или её аналог.
    Очень желательно кроме охранных шлейфов контролировать и напряжение на входе TP4056.

Добрый день, Гость!


Зарегистрируйтесь

Или войдите на сайт, если уже зарегистрированы...

Войти

А затем...

Добавьте самоделку

Или...

Добавьте тему

Онлайн чат

Опрос
Сколько по времени, чаще всего, Вы делаете самоделку?

Последние комментарии

Мне кажется липучка это не очень хорошее решение. Обычно приклеивают термоклеем....
Что имеется в виду под словом "сечение"?...
Если напрямую, то, естественно, никак. Через EasyCAP (простой модуль видеозахвата, цена вопроса 500 рублей) RCA преобразуется в USB, качество приемлемое....
Никак, должен быть вход, а не выход. На ноуте. Нужна карта видеозахвата., если нет входа....
Задам традиционный вопрос: "Опять в Гугле с Яндексом забанили?". Или халява так сладка? Было бы что сложное, так ведь нет - EasyCAP ищется за 2 минуты. Вместо этого составляется огромная...
Все комментарии