Laurent-5G: Автоматика GSM. Часть 1
Laurent-5G: Автоматика GSM. Часть 1
Рассмотрим решение следующей задачи: Имеем датчик температуры и влажности типа DHT-11. Помимо мониторинга показаний датчика по проводной сети Ethernet необходимо иметь возможность проверить показания по GSM (с помощью SMS) а так же получать звонок на указанный номер в том случае если показания влажности превысили тревожный порог.
Laurent-5G, датчик температуры, DHT-11, мониторинг, Ethernet, GSM, SMS
Статьи

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

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

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


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

 

Мастер Кит Laurent-5G: Автоматика GSM. Часть 1 Laurent-5G: Мониторинг температуры и влажности DHT-11 по GSM

 

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

Мастер Кит Laurent-5G: Автоматика GSM. Часть 1 Подключение датчика температуры и влажности DHT-11

Мастер Кит Laurent-5G: Автоматика GSM. Часть 1 Подключение датчика температуры и влажности 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:




© Дмитрий Иванов

Рейтинг@Mail.ru

Почему выбирают Мастер Китнас


Мы в Сети


© 1999-2022 Мастер Кит