Найти тему
Как бы Electronics!

GSM Сигнализация, прошивка! Часть 9.

После того, как изготовлен загрузчик, или опробован способ загрузки на основе модуля UNO. Необходимо настроить модуль SIM800L. Обращаю внимание, что все элементы и модули бедующей сигнализации спаяны в единую систему. Как уже было сказано, модуль SIM800L требует питания 4,2 вольта, максимальное напряжение его логики  2,8 вольта. В собранной схеме сигнализации эти условия соблюдены. При загрузке скетча в контроллер arduino мини , загрузчик будет питаться от USB порта компьютера, а модули сигнализации от литиевого аккумулятора.

Выбираем один из способов описанных постом выше и подключаем сигнализацию к загрузчику. Я использовал переделанный модуль ардуино нано. Соответственно схему подключения выкладываю для этого способа.

И так включаем сигнализацию и подключаемся к USB порту компьютера. Светодиод «Regist» на сигнализации (а также светодиод «L» на модуле arduino)  мигает с частотой раз в секунду.

Подключаем загрузчик к сигнализации
Подключаем загрузчик к сигнализации
Схема включения как на фото. Питание не подключено, так как модуль MINI запитан от аккумулятора, а NANO от USB компьютера. Нa схеме NANO показан с чипом, на самом деле его не должно быть.
Схема включения как на фото. Питание не подключено, так как модуль MINI запитан от аккумулятора, а NANO от USB компьютера. Нa схеме NANO показан с чипом, на самом деле его не должно быть.

Если нажать кнопку RESET на плате NANO, то перезагрузка произойдет так же на плате MINI. В программе Arduino IDE, заходим настройки/порт. Выбираем из списка порт к которому подключен наш загрузчик. Заходим в раздел «плата», выбираем Arduino Pro Mini, также указываем тип процессора  16МГц. Потому что скетч написан именно для такого процессора.

Выбираем порт.
Выбираем порт.
Выбираем процессор.
Выбираем процессор.

Теперь копируем в IDE и загружаем этот скетч:

#include <SoftwareSerial.h>

SoftwareSerial SIM800(3, 2);        // 8 - RX Arduino (TX SIM800L), 9 - TX Arduino (RX SIM800L)

void setup() {

Serial.begin(9600);               // Скорость обмена данными с компьютером

Serial.println("Start!");

SIM800.begin(9600);               // Скорость обмена данными с модемом

SIM800.println("AT");

}

void loop() {

if (SIM800.available())           // Ожидаем прихода данных (ответа) от модема...

Serial.write(SIM800.read());    // ...и выводим их в Serial

if (Serial.available())           // Ожидаем команды по Serial...

SIM800.write(Serial.read());    // ...и отправляем полученную команду модему

}

Открываем монитор порта.

Можно открыть через меню Инструменты/монитор порта
Можно открыть через меню Инструменты/монитор порта

Устанавливаем /новая строка/ и /9600 бод/, видим сообщение.

Start!

Вводим команду AT, нажимаем Enter и видим ответ SIM800L — OK.

Вводим поочередно следующие команды:

1)  AT+IPR=9600 (Установка скорости порта)

2)  AT+CLTS=1 (Установка автоматической настройки времени по сети)

3)  AT&W (Сохранение введённых настроек)

Теперь модуль готов к работе. Если вставить сим карту, то SIM800L начнет процесс регистрации в сотовой сети. Можно наблюдать, что после подачи питания, светодиод на модуле SIM800L, начинает мигать. После регистрации в сети светодиод примерно в 2 раза уменьшает частоту своего мигания. Таким образом можно судить об успешности проделанной операции.

Хочу обратить внимание, что после первой прошивки, светодиод «Regist», который сигнализирует о регистрации в сети перестает вообще мигать, поскольку заводскую прошивку мы стерли из памяти при заливки новой.

Теперь скачиваем файл со скетчем непосредственно самой сигнализации, вот ссылка: https://cloud.mail.ru/public/NKv3/91h2xjFdn

Открываем файл в блокноте и вносим в него изменения. С помощью встроенной в блокнот функции поиска (Правка/Найти...), в появившимся окошке, в поле «Что:» следует ввести _gtv5 = без пробелов.

-6

нажимаем «Найти далее». Если не выходит пробуем переключить направление поиска (Вверх/Вниз). В найденной строке вписываем номера телефонов в формате "+79ххххххххх", те, с которых можно будет управлять сигнализацией смс командами:

_gtv5 = ((((String("+79xxxxxxxxx")).equalsIgnoreCase(GSM_T_Nomer))) || (((String("+79yyyyyyyyy")).equalsIgnoreCase(GSM_T_Nomer))));

В строке можно указать второй номер "+79yyyyyyyyy"

_gtv5 = ((((String("+79xxxxxxxxx")).equalsIgnoreCase(GSM_T_Nomer))) || (((String("+79yyyyyyyyy")).equalsIgnoreCase(GSM_T_Nomer))));

Если второй номер не будет использоваться, то строку "+79yyyyyyyyy" оставляем без изменений.

Далее, в режиме поиска в txt документе находим строку содержащую +79xxxxxxxxx.

-7

Видим найденную строку:

GSM_Phone = String("+79xxxxxxxxx");

Вводим сюда номер на который будут приходить смс уведомления и осуществляться звонки от сигнализации.

Теперь копируем отредактированный скетч в IDE и загружаем в контроллер сигнализации. Предварительно указав тип процессора, 16МГц.

После загрузки скетча, отсоединим загрузчик и перезагрузим нашу сигнализацию (отключим и включим питание). Если сим карта установлена, то после регистрации в сети, зелёный светодиод «Regist» начнет светится, что говорит об готовности сигнализации к работе .

Следующая статья: https://dzen.ru/a/ZFrgJLFR6xjsp7aU