Интернет-магазин

Просмотр корзины
В корзине:

товаров - 0 шт.



Статьи / KA047 / Laurent-5G: Автоматика GSM. Часть 1



§ 47. Laurent-5G: Автоматика GSM. Часть 1

Дмитрий Иванов, 01 Октября 2020


Рассмотрим решение следующей практической задачи:


Имеем датчик температуры и влажности типа DHT-11. Помимо мониторинга показаний датчика по проводной сети Ethernet необходимо иметь возможность проверить показания по GSM (с помощью SMS) а так же получать звонок на указанный номер в том слуаче если показания влажности превысили тревожный порог.



Задачу будем решать с помощью модуля Laurent-5G у которого на борту в том числе есть GSM модем. Подключаем датчик влажности и температуры DHT-11 к модулю, к каналу 'B' шины 1-Wire.

Laurent-5G: Мониторинг температуры и влажности DHT-11 по GSM


Можно в том числе использовать готовый датчик KHT-11 с длинным 10 метровым кабелем.

Подключение датчика температуры и влажности DHT-11

Подключение датчика температуры и влажности DHT-11



Заходим в WEB интерфейс платы по проводному Ethrenet соединению (IP по умолчанию 192.168.0.101) и в секции посвященной датчику влажности убеждаемся что все подключено верно и датчик выдает корректные показания.



Теперь наладим и настромим GSM. Считаем что SIM карта вставлена, GSM антенна подключена. Заходим в раздел посвященный GSM. Пока связи по GSM нет, модем не работает.


Проведем пуско-наладку GSM функционала. Наистроим его так что бы модуль сам автоматически выходил на связь (достаточно настроить один раз). Первым делом, укажем PIN код установленной SIM карты. Вводим код и нажимаем на кнопку "Изменить". Данные сохранятся в энергонезависимой памяти.


Далее, выбираем AUTO режим работы GSM модема - т.е. при наличии установленной SIM карты и коректном PIN коде модуль будет всегда пытаться выйти в сеть GSM и зарегестрироваться в ней что бы быть готовым к приему входящих SMS и звонков с управляющими командами а так же иметь возможность отправть SMS или совершить звонок в случае срабатывания логического правила CAT.


После этого автоматически будет произведена попытка выхода и регистрации в сети GSM. На рисунке ниже показан случай, когда регистрация в сети GSM успешно проведена, модуль готов к работе с SMS и звонками.


Если необходимо перезапустить процесс регистрации в сети (например, после исправления ошибки с установкой SIM карты или неверным PIN кодом), можно нажать на ссылку ниже (или воспрользоваться Ke-командой) что бы перезапустить процесс инициализации модема и регистрации в сети GSM.


Последним шагом, добавим наш телефонный номер (на который должен придти тревожный звонок от модуля в случае тревоги) в базу "белых" номеров. В дальнейшем по ID этого номера (в данном случае, ID=1) мы сможем автоматически отправлять SMS и совершать звноки с модуля при возникновении событий.



Теперь приступим непосредственно к автоматике. Предположим, что нам нужно "бить" тревогу если показания датчика влажности превысили порог в 70%. В качестве реакции, мы включим на 5 сек 1-ое реле (например, к нему подключена тревожная лампа или электропривод который открывает окно что бы уменьшить влажность в помещении) а так же совершим аварийный звонок на наш телефонный номер. Будем использовать систему логических правил CAT.


Создаем новое событие, тип [H] - показания датчика влажности DHT-11:


Задаем тревожный порог в 70%:


Указываем реакцию модуля на событие в виде списка Ke-команд управления. Полное описание всех поддерживаемых Ke-команд можно посмотреть в разделе Документация, "Описание Ke-команд управления".


С помощью команды $KE,REL мы включим реле, а с помощью $KE,RNG,DO совершим звонок на "белый" номер сохраненный в памяти модуля под ID=1.

$KE,REL,1,1,5
$KE,RNG,DO,1

Для собственного удобства, присвоим текстовое имя вновь создаваемому событию.


Правило CAT создано. Включаем его соответствующей кнопочкой в панели управления CAT событиями (по умолчанию, вновь созданное событие выключено).


Для теста, можно просто подуть на датчик DHT-11. Влага содержащяяся в выдыхаемом воздухе будет незамедлительно обработана датчиком и на короткое время его показания "подскочат" выше указанного нами порога что вызовет срабатывание события и выполнение заказанных действий. В скором времени раздастся звонок на телефон предупреждая нас о "аварийном" событии.


При этом, пока показания датчика не вернуться обратно в "зеленую" зону, событие будет находится в состоянии "ВЗВЕДЕНО". После того как влажность вернется в штатное положение, событие вновь будет в активном состоянии в ожидании превышения порога.




Теперь решим задачу контроля показаний датчика по GSM. Хочется сделать так что бы в любой момент времени с помощью SMS можно было бы запросить текущие показания датчика DHT-11. Создаем новое CAT событие на входящую SMS.


Настроим событие так что бы оно срабатывало когда на номер GSM модема в модуле Laurent-5G приходит SMS с текстом MONITOR.


Теперь самое интересное - реакция. Нам хотелось бы получить ответную SMS с показаниями датчика. Т.е. в текст SMS нужно динамически подставить текущие показания датчика DHT-11. Так же в теле SMS хочется увидеть текущее время и дату, т.к. иногда SMS могут быть задержены в доставке и придти заметно позже. Поэтому нам нужно подставить в текст SMS дату и время на момент отправки сообщения самим модулем.


Для отправки SMS сообщения следует использовать команду $KE,SMS,SND. Для реализации передачи динамических данных, будем использовать т.н. Динамические переменные, которые подменяются модулем на соответствующее значение непосредственно при формировании финального текста для отправки. Подробнее о этом можно почитать в разделе "Динамичсекие перемнные" в Описание Ke-команд управления.


Реакция на событие оформлена в виде вызова следующей KE-команды. Она произведет отправку SMS сообщения с текстом H=~Dh1~%~LF~T=~Dt1~C~LF~~DT~ ~TM~ (содержащим динамические переменные) на "белый" номер под ID=1.


$KE,SMS,SND,1,C,H=~Dh1~%~LF~T=~Dt1~C~LF~~DT~ ~TM~

Все динамические переменные начинаются и заканчиваются символами ~ (Тильда). Немного пояснений по использорванным переменным:

~Dh1~ данная переменная будет заменена на текущие показания влажности датчика DHT-11
~LF~ перенос строки (хочется видеть SMS отформатированной, так что бы показания температуры и влажности были на разных строках)
~Dt1~ данная переменная будет заменена на текущие показания температуры датчика DHT-11
~DT~ текущая дата (год, месяц, день) из RTC (часы реального времени)
~TM~ текущее время в рамках дня (часы, минуты, секунды) из RTC (часы реального времени)


Достаточно теперь отправить SMS с текстом "MONITOR" (регистр символом имеет значение) на номер SIM карты в модуле Laurent-5G как в скором времени нам придет ответная SMS с текущими показаниями датчика DHT-11:






© Дмитрий Иванов
01 Октября 2020 года
http://www.kernelchip.ru



© KERNELCHIP 2006 - 2020