А.В.Пахомов
Простое охранное GSM устройство. Часть 2.
Статья является логическим продолжением и развитием статьи "Простое охранное GSM устройство". Она была написана и отправлена в журнал "Радио" в апреле 2009 года, но... дальше подтверждения получения и "разборок" с рисунками "дело не пошло" (и, естественно, публикации не было)... На мой взгляд, в статье есть интересные (хоть сейчас и не актуальные) моменты, описывающие структуру SMS и EMS сообщения - жаль было бы "похоронить" такую информацию.
В предлагаемой статье рассмотрены вопросы использования GSM телефонов для организации канала связи при дистанционном контроле и управлении различными электронными устройствами. Статью можно рассматривать как продолжение ранее опубликованной [1]. В статье дается описание некоторых дополнительных АТ команд и их использования в доработанном устройстве контроля и управления. Дано описание и раскрыты алгоритмы работы действующей системы охранной сигнализации, выполненной на микроконтроллере MCS-51 и GSM телефоне Siemens.
В предлагаемой статье рассмотрены вопросы использования GSM телефонов для организации канала связи при дистанционном контроле и управлении различными электронными устройствами. Статью можно рассматривать как продолжение ранее опубликованной [1]. В статье дается описание некоторых дополнительных АТ команд и их использования в доработанном устройстве контроля и управления. Дано описание и раскрыты алгоритмы работы действующей системы охранной сигнализации, выполненной на микроконтроллере MCS-51 и GSM телефоне Siemens.
Введение
Действующий макет устройства дистанционного контроля, описанный в [1] (далее - Устройство), являясь простым прибором, обладает многими недостатками, затрудняющими работу с ним. Ниже описаны некоторые новые функции, добавленные Устройству. Их реализация осуществлена благодаря ряду дополнительных АТ-команд, описание и методы применения этих АТ-команд также представлены в статье.
Аппаратная часть устройства доработана и ее описание приводится ниже.
Аппаратная часть устройства доработана и ее описание приводится ниже.
Функции Устройства
Упоминаемое выше Устройство [1], по большому счету выполняло две функции: самостоятельно оповещало "хозяина" о "произошедших событиях" (в активном режиме), либо делало это "по команде хозяина" (в пассивном режиме"). Напомню: под Событием понимается изменение состояния входных линий Устройства. В описываемом ниже Устройстве предпринята попытка расширить функциональность за счет
- введения гибкости настройки: все параметры, определяющие режим работы задаются с клавиатуры телефона;
- введения специальной стадии работы Устройства: период постановки на охрану, в течении которого Устройство не реагирует на внешние события (время на "покидание зоны охраны");
- введения контроля работоспособности: Устройство автоматически и по запросу сообщает звонком "хозяину" о своем "нормальном" состоянии;
- введения функции управления внешними устройствами: по заданному временному графику и по команде извне (входящая СМС);
- использования EMS для оповещения "хозяина": вместо текстовых сообщений передаются "картинки" о происходящих событиях и состоянии Устройства;
- использования журнала регистрации событий: в памяти телефона фиксируются все происходящие События с привязкой к времени их свершения.
- введения гибкости настройки: все параметры, определяющие режим работы задаются с клавиатуры телефона;
- введения специальной стадии работы Устройства: период постановки на охрану, в течении которого Устройство не реагирует на внешние события (время на "покидание зоны охраны");
- введения контроля работоспособности: Устройство автоматически и по запросу сообщает звонком "хозяину" о своем "нормальном" состоянии;
- введения функции управления внешними устройствами: по заданному временному графику и по команде извне (входящая СМС);
- использования EMS для оповещения "хозяина": вместо текстовых сообщений передаются "картинки" о происходящих событиях и состоянии Устройства;
- использования журнала регистрации событий: в памяти телефона фиксируются все происходящие События с привязкой к времени их свершения.
Методы реализации функций (АТ команды)
Общая методика подключения телефона по последовательному интерфейсу и формат АТ-команд, используемых для "общения" с сотовым телефоном описаны в предыдущей статье [1].
Существенным недостатком прежнего Устройства является жестко прописанный в памяти микроконтроллера номер абонента-"хозяина" и включение активного режима работы только по команде в СМС. Обычно, в подобных устройствах начальные параметры работы определяются в ячейках адресной книги телефона. В описываемом ниже Устройстве применен аналогичный метод. Для работы с адресной (телефонной) книгой телефона используется специальная АТ команда: AT+CPBR - чтение номеров книжки по ячейкам (формат используемых АТ-команд описан в [2]).
Команда производит считывание ячейки (диапазона ячеек) из записной книжки телефона. Сотовые телефоны, как правило, имеют несколько мест хранения адресов абонентов - как минимум: на SIM и в памяти телефона. Место, откуда считывается командой AT+CPBR информация определяется командой: AT+CPBS - текущее место записной книжки. По умолчанию считывание производится из записной книжки на SIM карте. Проверить это можно используя программу HiperTerminal:
at+cpbs? - делаем запрос о месте хранения
+CPBS: "SM",3,220 - телефон отвечает: "по умолчанию" используется SIM, из 220 ячеек занято 3
OK - команда выполнена успешно
Попробуем прочитать первую ячейку записной книжки:
at+cpbr=1 - обращаемся к ячейке 1 (а, например, для ячейки 3 будет: at+cpbr=3 и т.д.)
+CPBR: 1,"+79051234567",145,"CUDAKOB " - ответ телефона
OK
Разберем формат ответа телефона. Для нас интересна цифра 1 после двоеточия - номер считанной ячейки, номер в кавычках - это и есть сохраненный в ячейке номер и текст заключенный во второй паре кавычек - это содержимое поля "имя" ячейки записной книжки.
В Устройстве поле номера используется по прямому назначению. При инициализации считывается номер, перекодируется в формат PDU (см описание команд AT+CMGS/CMGW в [1]) и затем в нужный момент подставляется в тело PDU передаваемой СМС. Поле "имя" ячейки используется для хранения команд настройки Устройства. Надо отметить, что стоит использовать в этом поле только латинские (желательно большие) буквы, т.к. кодировка русских символов весьма своеобразна...
Список применяемых в Устройстве команд настройки параметров приведен в таблице 1.
Команда состоит из двухсимвольного названия, разделителя (знак "=") и символьного значения, например:
CL=1 - включить режим посылки вызова "хозяину" при наступлении События.
Команды не должны содержать внутри себя пробелов или иных непредусмотренных символов. Команды можно отделять друг от друга пробелами. Не стоит задавать много команд, память "однокристалки" невелика - под буфер приема удалось выделить только 50 байт, т.е. для команд остается максимум 25 символов. Чтобы как-то побороться с ограничением введена команда "С=..." см таблицу 1.
Интерпретация содержимого первой ячейки разобрана, остается задача: с клавиатуры телефона записать нужные параметры именно в ячейку SIM карты. В Siemense C60 это легко сделать в телефонном справочнике указав номер ячейки и место хранения "SIM". В более старших моделях придется сменить справочник "по умолчанию" на телефонную книгу и только после этого получить записную книжку, аналогичную С60, где можно указать и номер ячейки и место - SIM-карта.
Ведение "Журнала" (Log): Ряд задач удаленного контроля состояния объекта не требует немедленного оповещения о происходящих событиях. Часто требуется что-то вроде простого регистратора, который бы фиксировал (как "черный ящик") События и давал, впоследствии, возможность просмотреть лог событий. Описываемое устройство реализует функцию "журнала": в пассивном режиме все события пишутся в память телефона (другой, достаточного объема у нас просто нет) в раздел "черновики" сообщений. Записываемое сообщение имеет следующий формат:
20:16 12.04.09 IN=0000>0030 OUT=0000
Здесь:
20:16 - время события (часы:минуты), секунды, с целью экономии места убраны.
12.04.09 - "нормальное" представление даты (день.месяц.число)
IN=0000>0030 - собственно, Событие: состояние входных линий было пассивным (0000), стало - на линии 3 из пассивного перешло в "сработало" (на языке логических сигналов: на входе L3 была логическая "1", стал логический "0".
OUT=0000 - выходные линии находятся в пассивном (выключеном) состоянии (если, например, открыт симистор U2 (рис.1), то будет OUT=0004)
Программно журнал реализован следующим образом. Первым делом надо определить область памяти телефона с сохраняемыми командой AT+CMGW сообщениями. По умолчанию это SIM-карта, где места не так много (обычно 20 ячеек). Выбрав подходящее по объему место, надо узнать текущее время для происшедшего События (к сожалению, сообщения в "черновиках" сохраняются без указания даты и времени записи). Далее собираем сообщение PDU из даты, времени, самого события и состояния выходных линий и пишем его в память телефона.
Место для сохранения сообщений журнала выбираем командой AT+CPMS:
at+cpms=? - проверим: каковы места хранения для СМС есть в телефоне
+CPMS: ("MT","SM","ME"),("MT","SM","ME"),("MT","SM","ME") - ответ телефона
OK
Трактовка ответа: первая область для принятых СМС - чтение, просмотр, удаление; вторая для записываемых и отсылаемых СМС; третья - для нас не интересна "MT" и "ME" - память телефона, "SM" - SIM карта
at+cpms? - узнаем, какие области памяти сейчас определены для хранения
+CPMS: "MT",17,120,"SM",2,20,"SM",2,20 - ответ телефона
OK
Таким образом, в примере: область для принимаемых СМС в память телефона - всего 120 ячеек, занято 17; область для отправляемых и записываемых СМС - SIM (20 ячеек, 2 заняты)
Практика показала, что если оставить все "как есть": на 21-ой записи в журнал телефон выдаст ошибку - и "все События пропадут"...
Необходимо включить более емкую область для сохраняемых СМС:
at+cpms="mt","me" - переключаем отправку в более емкую память
+CPMS: 17,120,15,100,2,20 - ответ телефона: 120, 100 и 20 ячеек для трех областей
OK
Данная команда и использована в Устройстве. Про первый параметр "MT" подробно написано в [1].
Второй параметр "ME" дает для журнала 100 ячеек памяти
Отдельно отметим, что команда ATZ сбрасывает размещение всех областей на SIM-карту:
atz
OK
at+cpms?
+CPMS: "SM",2,20,"SM",2,20,"SM",2,20
OK
Следующая задача - получение текущего времени, решается командой управления часами: AT+CCLK.Данная команда используется для установки и считывания текущей даты и времени на часах
реального времени мобильного устройства.
at+cclk? - мы время устанавливать не будем, узнаем текущее
+CCLK: "09/02/01,22:18:57" - вполне понятный ответ телефона (обратим внимание: в дате год указан первым)
OK
Полученную дату и время временно сохраняем в памяти микроконтроллера для последующей подстановки в PDU СМС, записываемого командой AT+CMGW.
Состояние входных линий Устройство получает из памяти микроконтроллера (очередь событий). Состояние выходных линий считывается с порта. Таким образом вся информация для формирования строки в журнале регистрации есть, остается собрать все в единое PDU СМС и отправить в телефон командой AT+CMGW (см статью [1]).
Оповещение "хозяина" о происходящих событиях с помощью СМС очень удобное средство, но, отнюдь, не бесплатное. Другим, и даже бесплатным, каналом связи с "хозяином" может выступать обычный телефонный звонок. Информацией о случившемся событии является сам факт поступления вызова, отвечать на него совсем не обязательно...
В Устройстве реализован двусторонний обмен "звонками".
Посылка вызова Устройством реализуется с помощью "стандартной" АТ-команды: ATD. В общем случае, ATD команда используется для задания голосового, информационного или факсового вызова. В Устройстве используется голосовой вызов на номер, указанный в первой ячейке записной книжки. Формат такой команды таков:
atd>1*#;
OK
При этом набирается номер из ячейки 1 установленной памяти записной книжки, по умолчанию "SM" (память на SIM-карте, определяется командой АТ+CPBS, которая, за ненадобностью, в статье не рассматривается). Обратите внимание - совсем не очевидные и не описанные завершающие: *# - символы, означающие голосовой вызов, при этом команда должна завершаться ";"!
Посылка формируется устройством при наступлении События (разрешающая команда настройки "CL=1" - см Таблицу 1) и, как контрольный звонок, при смене часа (команда настройки "KZ=..."). Режим подачи контрольных звонков введен для оповещения "хозяина" с заданной периодичностью (через 1,2,4,8 часов) о "работоспособности" Устройства. Для прекращения звонка, через 3 секунды Устройство подает в телефон команду АТН. Команда АТН используется для отключения удаленного абонента.
Прием входящего вызова Устройством производится путем проверки наличия строки "RING" в буфере приема последовательного интерфейса. При поступлении звонка, телефон самостоятельно выдает эту последовательность по последовательному каналу. Вариант отклика Устройства на поступивший вызов задается командой настройки "AN=..." - см таблицу 1 и, в рассматриваемой версии программы, имеет два значения: сразу "отбить" звонок и "принять" звонок ("снять трубку"). В первом случае: через 3 секунды Устройство подает АТ-команду АТН ("отбой"). Во втором случае - подается АТ-команда АТА ("принять вызов"). В этом режиме включается микрофон телефона (микротелефонной гарнитуры) и вызывающий (не бесплатно) может послушать, что творится на объекте... Отбой, при этом, инициирует вызывающий.
Иногда, на "охраняемом объекте" требуется продемонстрировать присутствие "хозяина", например, периодически включать на даче свет, телевизор, радиоприемник или другой электрический прибор. "Эффект присутствия" реализован в Устройстве с помощью описанной выше АТ-команды: AT+CPBR - чтение номеров книжки по ячейкам. В таблице 2 описаны команды, определяющие временной график управления выходами Устройства.
При наступлении очередного часа (определяется АТ-командой AT+CCLK), считывается содержимое поля "ИМЯ" второй ячейки записной книжки телефона. В этих данных содержится последовательность НЕХ цифр, определяющих состояние выходных линий Устройства в заданный час.
Рассмотрим пример: команда "Q4=CF0F0F" - определяется четырех-часовой (шесть цифр, на каждую по 4 часа - итого: сутки) период смены состояния выходных линий Устройства. В данном примере в 0 часов (первая цифра "C" - соответствует двоичному числу "1100") на выходах 1 и 2 устанавливается логический "0", на выходах 3 и 4 - логическая "1" (оптроны симисторных ключей выключены - см принципиальную схему Устройства ниже). В 4 часа (вторая цифра) - на всех выходах "1". В 8 часов (третья цифра) включаются все ключи - логические "0", и т.д.
Аналогично работают и другие команды: Q1 - с периодом 1 час, Q2 - 2 часа.
В Устройстве реализована функция посылки сообщений (СМС) при наступлении События в активном режиме работы (команда настройки "RR=A" см таблицу 1). Отсылка СМС производится АТ-командой AT+CMGS, которая подробно рассмотрена в [1]. Формат передаваемого сообщения различается: в текстовом режиме - это обычное текстовое сообщение, в режиме "картинка" - EMS (Enhanced Messaging Service - служба обмена расширенными сообщениями) с картинкой и состоянием входных линий, описание в следующем параграфе. Отсылаемое текстовое сообщение имеет следующий формат:
LIN=XXXX>YYYY<CR>
OUT=ZZZZ Q=Y(N) <CR>
RR=A(P) CL=0(1)<CR>
AN=M(...) KZ=0(1..)
, где в первой строке передается состояние входных линий (прежнее(ХХХХ) - нынешнее(YYYY)), во
второй - состояние выходных линий (ZZZZ) и признак управления выходными линиями по времени (управление разрешено или запрещено),
в третьей строке - передаются сведения о режиме работы Устройства (активный/пассивный) и формировании вызова при наступлении события (нет/есть),
и в последней строке - сведения о режиме ответа на входящий звонок (снять трубку/отбой) и наличии контрольного звонка.
В Устройстве сохранен режим управления поступащими сообщениями СМС. Формат команд, "понимаемых" Устройством в принятых СМС-ках приведен в таблице 3. Алгоритм приема и формат используемой для считывания принятых СМС АТ-команды AT+CMGL были описаны в [1].
Принятое короткое сообщение Устройство подтверждает отсылкой "ответного" СМС вышеописанного содержания.
Существенным недостатком прежнего Устройства является жестко прописанный в памяти микроконтроллера номер абонента-"хозяина" и включение активного режима работы только по команде в СМС. Обычно, в подобных устройствах начальные параметры работы определяются в ячейках адресной книги телефона. В описываемом ниже Устройстве применен аналогичный метод. Для работы с адресной (телефонной) книгой телефона используется специальная АТ команда: AT+CPBR - чтение номеров книжки по ячейкам (формат используемых АТ-команд описан в [2]).
Команда производит считывание ячейки (диапазона ячеек) из записной книжки телефона. Сотовые телефоны, как правило, имеют несколько мест хранения адресов абонентов - как минимум: на SIM и в памяти телефона. Место, откуда считывается командой AT+CPBR информация определяется командой: AT+CPBS - текущее место записной книжки. По умолчанию считывание производится из записной книжки на SIM карте. Проверить это можно используя программу HiperTerminal:
at+cpbs? - делаем запрос о месте хранения
+CPBS: "SM",3,220 - телефон отвечает: "по умолчанию" используется SIM, из 220 ячеек занято 3
OK - команда выполнена успешно
Попробуем прочитать первую ячейку записной книжки:
at+cpbr=1 - обращаемся к ячейке 1 (а, например, для ячейки 3 будет: at+cpbr=3 и т.д.)
+CPBR: 1,"+79051234567",145,"CUDAKOB " - ответ телефона
OK
Разберем формат ответа телефона. Для нас интересна цифра 1 после двоеточия - номер считанной ячейки, номер в кавычках - это и есть сохраненный в ячейке номер и текст заключенный во второй паре кавычек - это содержимое поля "имя" ячейки записной книжки.
В Устройстве поле номера используется по прямому назначению. При инициализации считывается номер, перекодируется в формат PDU (см описание команд AT+CMGS/CMGW в [1]) и затем в нужный момент подставляется в тело PDU передаваемой СМС. Поле "имя" ячейки используется для хранения команд настройки Устройства. Надо отметить, что стоит использовать в этом поле только латинские (желательно большие) буквы, т.к. кодировка русских символов весьма своеобразна...
Список применяемых в Устройстве команд настройки параметров приведен в таблице 1.
Команда состоит из двухсимвольного названия, разделителя (знак "=") и символьного значения, например:
CL=1 - включить режим посылки вызова "хозяину" при наступлении События.
Команды не должны содержать внутри себя пробелов или иных непредусмотренных символов. Команды можно отделять друг от друга пробелами. Не стоит задавать много команд, память "однокристалки" невелика - под буфер приема удалось выделить только 50 байт, т.е. для команд остается максимум 25 символов. Чтобы как-то побороться с ограничением введена команда "С=..." см таблицу 1.
Интерпретация содержимого первой ячейки разобрана, остается задача: с клавиатуры телефона записать нужные параметры именно в ячейку SIM карты. В Siemense C60 это легко сделать в телефонном справочнике указав номер ячейки и место хранения "SIM". В более старших моделях придется сменить справочник "по умолчанию" на телефонную книгу и только после этого получить записную книжку, аналогичную С60, где можно указать и номер ячейки и место - SIM-карта.
Ведение "Журнала" (Log): Ряд задач удаленного контроля состояния объекта не требует немедленного оповещения о происходящих событиях. Часто требуется что-то вроде простого регистратора, который бы фиксировал (как "черный ящик") События и давал, впоследствии, возможность просмотреть лог событий. Описываемое устройство реализует функцию "журнала": в пассивном режиме все события пишутся в память телефона (другой, достаточного объема у нас просто нет) в раздел "черновики" сообщений. Записываемое сообщение имеет следующий формат:
20:16 12.04.09 IN=0000>0030 OUT=0000
Здесь:
20:16 - время события (часы:минуты), секунды, с целью экономии места убраны.
12.04.09 - "нормальное" представление даты (день.месяц.число)
IN=0000>0030 - собственно, Событие: состояние входных линий было пассивным (0000), стало - на линии 3 из пассивного перешло в "сработало" (на языке логических сигналов: на входе L3 была логическая "1", стал логический "0".
OUT=0000 - выходные линии находятся в пассивном (выключеном) состоянии (если, например, открыт симистор U2 (рис.1), то будет OUT=0004)
Программно журнал реализован следующим образом. Первым делом надо определить область памяти телефона с сохраняемыми командой AT+CMGW сообщениями. По умолчанию это SIM-карта, где места не так много (обычно 20 ячеек). Выбрав подходящее по объему место, надо узнать текущее время для происшедшего События (к сожалению, сообщения в "черновиках" сохраняются без указания даты и времени записи). Далее собираем сообщение PDU из даты, времени, самого события и состояния выходных линий и пишем его в память телефона.
Место для сохранения сообщений журнала выбираем командой AT+CPMS:
at+cpms=? - проверим: каковы места хранения для СМС есть в телефоне
+CPMS: ("MT","SM","ME"),("MT","SM","ME"),("MT","SM","ME") - ответ телефона
OK
Трактовка ответа: первая область для принятых СМС - чтение, просмотр, удаление; вторая для записываемых и отсылаемых СМС; третья - для нас не интересна "MT" и "ME" - память телефона, "SM" - SIM карта
at+cpms? - узнаем, какие области памяти сейчас определены для хранения
+CPMS: "MT",17,120,"SM",2,20,"SM",2,20 - ответ телефона
OK
Таким образом, в примере: область для принимаемых СМС в память телефона - всего 120 ячеек, занято 17; область для отправляемых и записываемых СМС - SIM (20 ячеек, 2 заняты)
Практика показала, что если оставить все "как есть": на 21-ой записи в журнал телефон выдаст ошибку - и "все События пропадут"...
Необходимо включить более емкую область для сохраняемых СМС:
at+cpms="mt","me" - переключаем отправку в более емкую память
+CPMS: 17,120,15,100,2,20 - ответ телефона: 120, 100 и 20 ячеек для трех областей
OK
Данная команда и использована в Устройстве. Про первый параметр "MT" подробно написано в [1].
Второй параметр "ME" дает для журнала 100 ячеек памяти
Отдельно отметим, что команда ATZ сбрасывает размещение всех областей на SIM-карту:
atz
OK
at+cpms?
+CPMS: "SM",2,20,"SM",2,20,"SM",2,20
OK
Следующая задача - получение текущего времени, решается командой управления часами: AT+CCLK.Данная команда используется для установки и считывания текущей даты и времени на часах
реального времени мобильного устройства.
at+cclk? - мы время устанавливать не будем, узнаем текущее
+CCLK: "09/02/01,22:18:57" - вполне понятный ответ телефона (обратим внимание: в дате год указан первым)
OK
Полученную дату и время временно сохраняем в памяти микроконтроллера для последующей подстановки в PDU СМС, записываемого командой AT+CMGW.
Состояние входных линий Устройство получает из памяти микроконтроллера (очередь событий). Состояние выходных линий считывается с порта. Таким образом вся информация для формирования строки в журнале регистрации есть, остается собрать все в единое PDU СМС и отправить в телефон командой AT+CMGW (см статью [1]).
Оповещение "хозяина" о происходящих событиях с помощью СМС очень удобное средство, но, отнюдь, не бесплатное. Другим, и даже бесплатным, каналом связи с "хозяином" может выступать обычный телефонный звонок. Информацией о случившемся событии является сам факт поступления вызова, отвечать на него совсем не обязательно...
В Устройстве реализован двусторонний обмен "звонками".
Посылка вызова Устройством реализуется с помощью "стандартной" АТ-команды: ATD. В общем случае, ATD команда используется для задания голосового, информационного или факсового вызова. В Устройстве используется голосовой вызов на номер, указанный в первой ячейке записной книжки. Формат такой команды таков:
atd>1*#;
OK
При этом набирается номер из ячейки 1 установленной памяти записной книжки, по умолчанию "SM" (память на SIM-карте, определяется командой АТ+CPBS, которая, за ненадобностью, в статье не рассматривается). Обратите внимание - совсем не очевидные и не описанные завершающие: *# - символы, означающие голосовой вызов, при этом команда должна завершаться ";"!
Посылка формируется устройством при наступлении События (разрешающая команда настройки "CL=1" - см Таблицу 1) и, как контрольный звонок, при смене часа (команда настройки "KZ=..."). Режим подачи контрольных звонков введен для оповещения "хозяина" с заданной периодичностью (через 1,2,4,8 часов) о "работоспособности" Устройства. Для прекращения звонка, через 3 секунды Устройство подает в телефон команду АТН. Команда АТН используется для отключения удаленного абонента.
Прием входящего вызова Устройством производится путем проверки наличия строки "RING" в буфере приема последовательного интерфейса. При поступлении звонка, телефон самостоятельно выдает эту последовательность по последовательному каналу. Вариант отклика Устройства на поступивший вызов задается командой настройки "AN=..." - см таблицу 1 и, в рассматриваемой версии программы, имеет два значения: сразу "отбить" звонок и "принять" звонок ("снять трубку"). В первом случае: через 3 секунды Устройство подает АТ-команду АТН ("отбой"). Во втором случае - подается АТ-команда АТА ("принять вызов"). В этом режиме включается микрофон телефона (микротелефонной гарнитуры) и вызывающий (не бесплатно) может послушать, что творится на объекте... Отбой, при этом, инициирует вызывающий.
Иногда, на "охраняемом объекте" требуется продемонстрировать присутствие "хозяина", например, периодически включать на даче свет, телевизор, радиоприемник или другой электрический прибор. "Эффект присутствия" реализован в Устройстве с помощью описанной выше АТ-команды: AT+CPBR - чтение номеров книжки по ячейкам. В таблице 2 описаны команды, определяющие временной график управления выходами Устройства.
При наступлении очередного часа (определяется АТ-командой AT+CCLK), считывается содержимое поля "ИМЯ" второй ячейки записной книжки телефона. В этих данных содержится последовательность НЕХ цифр, определяющих состояние выходных линий Устройства в заданный час.
Рассмотрим пример: команда "Q4=CF0F0F" - определяется четырех-часовой (шесть цифр, на каждую по 4 часа - итого: сутки) период смены состояния выходных линий Устройства. В данном примере в 0 часов (первая цифра "C" - соответствует двоичному числу "1100") на выходах 1 и 2 устанавливается логический "0", на выходах 3 и 4 - логическая "1" (оптроны симисторных ключей выключены - см принципиальную схему Устройства ниже). В 4 часа (вторая цифра) - на всех выходах "1". В 8 часов (третья цифра) включаются все ключи - логические "0", и т.д.
Аналогично работают и другие команды: Q1 - с периодом 1 час, Q2 - 2 часа.
В Устройстве реализована функция посылки сообщений (СМС) при наступлении События в активном режиме работы (команда настройки "RR=A" см таблицу 1). Отсылка СМС производится АТ-командой AT+CMGS, которая подробно рассмотрена в [1]. Формат передаваемого сообщения различается: в текстовом режиме - это обычное текстовое сообщение, в режиме "картинка" - EMS (Enhanced Messaging Service - служба обмена расширенными сообщениями) с картинкой и состоянием входных линий, описание в следующем параграфе. Отсылаемое текстовое сообщение имеет следующий формат:
LIN=XXXX>YYYY<CR>
OUT=ZZZZ Q=Y(N) <CR>
RR=A(P) CL=0(1)<CR>
AN=M(...) KZ=0(1..)
, где в первой строке передается состояние входных линий (прежнее(ХХХХ) - нынешнее(YYYY)), во
второй - состояние выходных линий (ZZZZ) и признак управления выходными линиями по времени (управление разрешено или запрещено),
в третьей строке - передаются сведения о режиме работы Устройства (активный/пассивный) и формировании вызова при наступлении события (нет/есть),
и в последней строке - сведения о режиме ответа на входящий звонок (снять трубку/отбой) и наличии контрольного звонка.
В Устройстве сохранен режим управления поступащими сообщениями СМС. Формат команд, "понимаемых" Устройством в принятых СМС-ках приведен в таблице 3. Алгоритм приема и формат используемой для считывания принятых СМС АТ-команды AT+CMGL были описаны в [1].
Принятое короткое сообщение Устройство подтверждает отсылкой "ответного" СМС вышеописанного содержания.
"Мечтой" разработчика охранного GSM устройства является получение картинки с "места происшествия". В принципе, это возможно и такие системы существуют. Для решения задачи используются мультимедийные сообщения (ММС). Принципы работы с ММС описаны в [3]. Не вдаваясь в подробности, последовательность действий можно описать так: Устройство должно получить с камеры изображение, переслать полученный файл на сервер оператора, передать сообщение корреспонденту со ссылкой на место расположения файла с картинкой на сервере. Далее "хозяин" получает сообщение о наличии ММС с предложением его скачать. Описываемое устройство ... этого делать не умеет.
Для внесения разнообразия в семейство охранных GSM устройств, описываемый прибор формирует EMS (Enhanced Messaging Service - служба обмена расширенными сообщениями) сообщение с простенькими картинками (см рисунок 4 - выше). Формат EMS подробно описан в [3].
Рассмотрим пример: отправка черно-белой картинки формата 16х16.
Все происходит следующим образом: командой AT+CMGS отсылается обычное СМС сообщение как описано в [1], но в текст сообщения PDU вносятся некоторые изменения. В ответ на приглашение "> " телефона, передается следующее сообщение:
'00' - первый октет обычный - "берем СМС настройки из телефона"
'5100' - тут главное изменение: присутствует заголовок данных пользователя (во втором октете D5=1), в текстовом СМС было '11'
'0B81' - начало адреса - без изменений
'9851999999F9' - на номер 8-915-999-99-99 - также без изменений
'0004A8' - начало PDU ,8 бит - без изменений
'29' - длина самого сообщения (HEX) = 41 символов (тоже как в СМС)
Далее, собственно, идет сообщение с картинкой и текстом.
Сначала передается описание картинки
'23' - длина описания картинки (сама картинка IED + ее длина IEDL + код IEI)
'11' - IEI = 11h - "мелкое" изображение 16х16 (10h - для картнки 32х32)
'21' - IEDL - длина картинки с октетом ее места в текстовом сообщении
'02' - место картинки в тексте СМС (тут - картинка идет после второго символа)
Далее идет последовательность октетов с побитным описанием изображения:
'8001081008100810083C1C1036001C0008400840004000E00FB800E000408001' - КАРТИНКА 16х16 - четвертый фрагмент из рисунка 4
'5349473D39' - сам текст сообщения PDU 'SIG=9'
26 - Ctrl-Z - завершение передачи сообщения командой AT+CMGS.
Описанное выше PDU EMS даст нам на телефоне следующее изображение:
'SI'<картинка со звездочками 16x16>'G=9'
Простенькая программа для формирования HEX последовательности из черно-белого BMP файла картинки формата 16х16 или 32х32 находится в архиве (bmp2hex.zip).
Картинки Устройство передает в случае наступления События: "все хорошо" (активный режим) - первый фрагмент из приведенных на рисунке 4, "все хорошо" (пассивный режим) - второй фрагмент (в конкретной реализации программы - не передается), "тревога" - третий фрагмент. Картинки имеют формат 32х32.
Включение режима передачи "картинки" при наступлении События производится командами "LN=" (таблица 1) и "SM=" (таблица 3).
В отличие от [1] в описываемое устройство введен период "ожидания начала работы". Это время "нечувствительности" Устройства к происходящим Событиям. За это время нужно покинуть "охраняемый объект". Период ожидания определяется командой ТА - таблица 1.
Для внесения разнообразия в семейство охранных GSM устройств, описываемый прибор формирует EMS (Enhanced Messaging Service - служба обмена расширенными сообщениями) сообщение с простенькими картинками (см рисунок 4 - выше). Формат EMS подробно описан в [3].
Рассмотрим пример: отправка черно-белой картинки формата 16х16.
Все происходит следующим образом: командой AT+CMGS отсылается обычное СМС сообщение как описано в [1], но в текст сообщения PDU вносятся некоторые изменения. В ответ на приглашение "> " телефона, передается следующее сообщение:
'00' - первый октет обычный - "берем СМС настройки из телефона"
'5100' - тут главное изменение: присутствует заголовок данных пользователя (во втором октете D5=1), в текстовом СМС было '11'
'0B81' - начало адреса - без изменений
'9851999999F9' - на номер 8-915-999-99-99 - также без изменений
'0004A8' - начало PDU ,8 бит - без изменений
'29' - длина самого сообщения (HEX) = 41 символов (тоже как в СМС)
Далее, собственно, идет сообщение с картинкой и текстом.
Сначала передается описание картинки
'23' - длина описания картинки (сама картинка IED + ее длина IEDL + код IEI)
'11' - IEI = 11h - "мелкое" изображение 16х16 (10h - для картнки 32х32)
'21' - IEDL - длина картинки с октетом ее места в текстовом сообщении
'02' - место картинки в тексте СМС (тут - картинка идет после второго символа)
Далее идет последовательность октетов с побитным описанием изображения:
'8001081008100810083C1C1036001C0008400840004000E00FB800E000408001' - КАРТИНКА 16х16 - четвертый фрагмент из рисунка 4
'5349473D39' - сам текст сообщения PDU 'SIG=9'
26 - Ctrl-Z - завершение передачи сообщения командой AT+CMGS.
Описанное выше PDU EMS даст нам на телефоне следующее изображение:
'SI'<картинка со звездочками 16x16>'G=9'
Простенькая программа для формирования HEX последовательности из черно-белого BMP файла картинки формата 16х16 или 32х32 находится в архиве (bmp2hex.zip).
Картинки Устройство передает в случае наступления События: "все хорошо" (активный режим) - первый фрагмент из приведенных на рисунке 4, "все хорошо" (пассивный режим) - второй фрагмент (в конкретной реализации программы - не передается), "тревога" - третий фрагмент. Картинки имеют формат 32х32.
Включение режима передачи "картинки" при наступлении События производится командами "LN=" (таблица 1) и "SM=" (таблица 3).
В отличие от [1] в описываемое устройство введен период "ожидания начала работы". Это время "нечувствительности" Устройства к происходящим Событиям. За это время нужно покинуть "охраняемый объект". Период ожидания определяется командой ТА - таблица 1.
Аппаратная реализация Устройства
Принципиальная электрическая схема Устройства показана на рисунке выше.
Питание Устройства осуществляется либо от аккумулятора сотового телефона, либо от сетевого источника питания. Питание от сети производится через стандартное зарядное устройство (на схеме не показано) для телефона, подключаемое к контактам VPP и GND разъема Х3.
Для реализации функции питания от аккумулятора телефона используется особенность телефонов Siemense: при наличии резисторов R2 и R3, телефон "думает", что к нему подключено периферийное устройство (например такой аксессуар, как внешняя камера - были такие для С60) и подает на него питание через контакт 1 разъема Х1. Напряжение не велико (3,6...3,9В), но, практика показала, что Устройство стабильно работает на заряженном аккумуляторе более 20 часов.
Диод VD2 (любой диод с максимально допустимым прямым током не менее 500мА) препятствует разряду аккумулятора телефона через зарядное устройство при отсутствии напряжения в сети. Функции защитного стабилитрона VD1 описаны в [1], на плате Устройства (рис.2) этот элемент не установлен, т.к. напряжение VPP не превышает допустимого для DD1.
Подключение сигнальных линий последовательного интерфейса не отличается от [1].
Управление нагрузкой, подключенной к сети 220В осуществляется через симисторы VS1, VS2. Включение симисторов производится оптронами U1, U2. Светодиоды оптронов потребляют небольшой ток (5 мА), поэтому подключены прямо к выводам порта P0 микроЭВМ. Схема включения этих приборов стандартная для MOC3063 и подробно описана в [4]. Теоретически, выбранные симисторы ВТ134 без радиатора позволяют управлять нагрузкой до 500Вт (реально - более 150Вт не проверял). При большей мощности нагрузки следует применить более мощные симисторы с током включения не более 1 А в пике. Применение симисторов в данном узле вместо реле имеет ряд преимуществ: цена, габариты, потребляемый ток. Контакты разъема Х5, QS1-1 и QS1-2 (или QS2-1 и QS2-2) подключаются, например параллельно контактам выключателя освещения на кухне или в комнате - теперь включить свет можно с помощью СМС.
Контакты разъема Х4 на реальной плате не распаяны. Эти выводы предназначены для включения недорогой "китайской" сирены 100dB, изначально предназначеной для установки на окнах и дверях в качестве "звуковой охранной системы".
На плате Устройства распаяны защитные цепи по двум входам L3 и L4 разъема Х2. Диоды VD4..VD7 (КД522 или любые другие кремниевые импульсные) ограничивают положительные и отсекают отрицательные выбросы напряжения, которое может наводиться в "длинных" проводах от контактов датчиков. Конденсаторы устраняют короткие помехи.
Контрольный светодиод VD3 подключен напрямую к линии порта Р0, т.к. текущий через него ток не превышает допустимого для DD1.
Микросхема АТ89С51 по цепям питания, синхронизации и сброса включена стандартным образом. Кнопка сброса S1, наряду с включением питания, может использоваться для включения Устройства. После ее нажатия Устройство переходит в режим ожидания запуска (определяется наличием команды ТА в первой ячейке записной книжки телефона - таблица 1).
Выключатель S2 - это перемычка на плате. Замкнутое состояние - это рабочий режим, в котором производится реальная отсылка СМС. В разомкнутом состоянии - вместо отсылки СМС производится их запись в память телефона (используется на этапе отладки).
Питание Устройства осуществляется либо от аккумулятора сотового телефона, либо от сетевого источника питания. Питание от сети производится через стандартное зарядное устройство (на схеме не показано) для телефона, подключаемое к контактам VPP и GND разъема Х3.
Для реализации функции питания от аккумулятора телефона используется особенность телефонов Siemense: при наличии резисторов R2 и R3, телефон "думает", что к нему подключено периферийное устройство (например такой аксессуар, как внешняя камера - были такие для С60) и подает на него питание через контакт 1 разъема Х1. Напряжение не велико (3,6...3,9В), но, практика показала, что Устройство стабильно работает на заряженном аккумуляторе более 20 часов.
Диод VD2 (любой диод с максимально допустимым прямым током не менее 500мА) препятствует разряду аккумулятора телефона через зарядное устройство при отсутствии напряжения в сети. Функции защитного стабилитрона VD1 описаны в [1], на плате Устройства (рис.2) этот элемент не установлен, т.к. напряжение VPP не превышает допустимого для DD1.
Подключение сигнальных линий последовательного интерфейса не отличается от [1].
Управление нагрузкой, подключенной к сети 220В осуществляется через симисторы VS1, VS2. Включение симисторов производится оптронами U1, U2. Светодиоды оптронов потребляют небольшой ток (5 мА), поэтому подключены прямо к выводам порта P0 микроЭВМ. Схема включения этих приборов стандартная для MOC3063 и подробно описана в [4]. Теоретически, выбранные симисторы ВТ134 без радиатора позволяют управлять нагрузкой до 500Вт (реально - более 150Вт не проверял). При большей мощности нагрузки следует применить более мощные симисторы с током включения не более 1 А в пике. Применение симисторов в данном узле вместо реле имеет ряд преимуществ: цена, габариты, потребляемый ток. Контакты разъема Х5, QS1-1 и QS1-2 (или QS2-1 и QS2-2) подключаются, например параллельно контактам выключателя освещения на кухне или в комнате - теперь включить свет можно с помощью СМС.
Контакты разъема Х4 на реальной плате не распаяны. Эти выводы предназначены для включения недорогой "китайской" сирены 100dB, изначально предназначеной для установки на окнах и дверях в качестве "звуковой охранной системы".
На плате Устройства распаяны защитные цепи по двум входам L3 и L4 разъема Х2. Диоды VD4..VD7 (КД522 или любые другие кремниевые импульсные) ограничивают положительные и отсекают отрицательные выбросы напряжения, которое может наводиться в "длинных" проводах от контактов датчиков. Конденсаторы устраняют короткие помехи.
Контрольный светодиод VD3 подключен напрямую к линии порта Р0, т.к. текущий через него ток не превышает допустимого для DD1.
Микросхема АТ89С51 по цепям питания, синхронизации и сброса включена стандартным образом. Кнопка сброса S1, наряду с включением питания, может использоваться для включения Устройства. После ее нажатия Устройство переходит в режим ожидания запуска (определяется наличием команды ТА в первой ячейке записной книжки телефона - таблица 1).
Выключатель S2 - это перемычка на плате. Замкнутое состояние - это рабочий режим, в котором производится реальная отсылка СМС. В разомкнутом состоянии - вместо отсылки СМС производится их запись в память телефона (используется на этапе отладки).
Описание программы
Коды программы представлены в таблице 4 (файл GSM219.HEX). Текст программы на ассемблере – в таблице 5 (файл gsm219.asm). Детально работу программы можно понять из ее текста, снабженного комментариями.
Все участки работы программы сопровождаются своим режимом работы контрольного светодиода VD3.
При инициализации (светодиод погашен) производится настройка таймера Т0 на формирование прерываний с периодом 30 мс. Таймер Т1 программируется на работу с последовательным портом и настраивается для получения скорости работы приемопередатчика 2400 бод. Последовательный порт настраивается на работу в режиме 1 (8 бит, без контроля четности, 1 стоп бит). Очищаются буфер приема последовательного порта и очередь событий (где впоследствии будут накапливаться события - факты смены состояния линий охраны). Устанавливается "пассивный" режим работы Устройства. В отличие от "активного", в этом режиме при наступлении события, СМС автоматически не отправляется, а событие фиксируется в памяти телефона (журнале).
Включается режим "частого" мигания светодиода. В телефон отправляются команды ATZ и AT+CPMS="MT","ME" (об их назначении написано выше). В случает отсутствия телефона программа остается в цикле подачи команды ATZ и ожидания ответа.
Далее светодиод выключается, производится считывание первой ячейки записной книжки и устанавливаются параметры работы Устройства в соответствии с командами таблицы 1.
Светодиод включается, считывается текущее время. Включается режим мигания, формируется контрольная запись в "черновиках" СМС телефона с указанием времени включения.
Далее включается режим "двойного" мигания (две вспышки с длинной паузой). Устройство переходит в режим паузы перед включением рабочего режима - см описание команды "ТА=" в таблице 1.
Начинается основной цикл программы, состояние индицируется короткими одиночными вспышками светодиода. В цикле анализируется состояние очереди событий. При наличии в очереди события, в "активном" режиме отправляется СМС, далее событие удаляется из очереди и на время включается контрольный светодиод. После анализа очереди событий, производится проверка наличия в буфере приема "слова" RING (признака наличия вызова). При его наличии отрабатывается входящий звонок в соответствие с командой "AN=".
Далее производится считывание новых СМС из телефона (командой AT+CMGL=0). При наличии сообщения, в тексте которого есть команды - последовательности символов из таблицы 3, отрабатывается соответствующая команда. Любая команда подтверждается отправкой СМС с отображением состояния Устройства.
После этого примерно раз в пять минут Устройство считывает с телефона текущее время. При смене часа, в соответствии с значением команды "KZ=" формируется контрольный звонок. Далее отрабатываются действия, определяемые второй ячейкой записной книжки (таблица 2).
Подпрограмма обработки прерывания от таймера "следит" за состоянием линий охраны и, при изменении их состояния, помещает информацию об этом в очередь событий.
Подпрограмма обработки прерывания от последовательного порта помещает принятый байт в буфер приема. Буфер имеет длину 50 байт и зациклен, т.е. для анализа сообщения в буфере остаются последние 50 принятых байт. Анализ ответа телефона производится после окончания приема всей последовательности, на прием (заполнение буфера) отводится три секунды.
В программе не предусмотрены команды включения телефона и ввода PIN кода, поэтому к Устройству телефон подключается во включенном состоянии и, лишь затем подается питание на Устройство. В программе также нет специальных команд на удаление прочитанных сообщений, поэтому необходимо вручную периодически вычищать память принятых СМС и "журнала событий" (отправляемые сообщения, в памяти телефона не сохраняются).
Все участки работы программы сопровождаются своим режимом работы контрольного светодиода VD3.
При инициализации (светодиод погашен) производится настройка таймера Т0 на формирование прерываний с периодом 30 мс. Таймер Т1 программируется на работу с последовательным портом и настраивается для получения скорости работы приемопередатчика 2400 бод. Последовательный порт настраивается на работу в режиме 1 (8 бит, без контроля четности, 1 стоп бит). Очищаются буфер приема последовательного порта и очередь событий (где впоследствии будут накапливаться события - факты смены состояния линий охраны). Устанавливается "пассивный" режим работы Устройства. В отличие от "активного", в этом режиме при наступлении события, СМС автоматически не отправляется, а событие фиксируется в памяти телефона (журнале).
Включается режим "частого" мигания светодиода. В телефон отправляются команды ATZ и AT+CPMS="MT","ME" (об их назначении написано выше). В случает отсутствия телефона программа остается в цикле подачи команды ATZ и ожидания ответа.
Далее светодиод выключается, производится считывание первой ячейки записной книжки и устанавливаются параметры работы Устройства в соответствии с командами таблицы 1.
Светодиод включается, считывается текущее время. Включается режим мигания, формируется контрольная запись в "черновиках" СМС телефона с указанием времени включения.
Далее включается режим "двойного" мигания (две вспышки с длинной паузой). Устройство переходит в режим паузы перед включением рабочего режима - см описание команды "ТА=" в таблице 1.
Начинается основной цикл программы, состояние индицируется короткими одиночными вспышками светодиода. В цикле анализируется состояние очереди событий. При наличии в очереди события, в "активном" режиме отправляется СМС, далее событие удаляется из очереди и на время включается контрольный светодиод. После анализа очереди событий, производится проверка наличия в буфере приема "слова" RING (признака наличия вызова). При его наличии отрабатывается входящий звонок в соответствие с командой "AN=".
Далее производится считывание новых СМС из телефона (командой AT+CMGL=0). При наличии сообщения, в тексте которого есть команды - последовательности символов из таблицы 3, отрабатывается соответствующая команда. Любая команда подтверждается отправкой СМС с отображением состояния Устройства.
После этого примерно раз в пять минут Устройство считывает с телефона текущее время. При смене часа, в соответствии с значением команды "KZ=" формируется контрольный звонок. Далее отрабатываются действия, определяемые второй ячейкой записной книжки (таблица 2).
Подпрограмма обработки прерывания от таймера "следит" за состоянием линий охраны и, при изменении их состояния, помещает информацию об этом в очередь событий.
Подпрограмма обработки прерывания от последовательного порта помещает принятый байт в буфер приема. Буфер имеет длину 50 байт и зациклен, т.е. для анализа сообщения в буфере остаются последние 50 принятых байт. Анализ ответа телефона производится после окончания приема всей последовательности, на прием (заполнение буфера) отводится три секунды.
В программе не предусмотрены команды включения телефона и ввода PIN кода, поэтому к Устройству телефон подключается во включенном состоянии и, лишь затем подается питание на Устройство. В программе также нет специальных команд на удаление прочитанных сообщений, поэтому необходимо вручную периодически вычищать память принятых СМС и "журнала событий" (отправляемые сообщения, в памяти телефона не сохраняются).
Описание монтажа
Печатная плата для Устройства специально не разрабатывалась. Детали схемы распаяны на макетной плате небольших размеров, позволяющих установить Устройство в корпус КР-04, фотография платы показана на рисунке 2 (см выше), в корпусе на рисунке 3 (справа).
Кабель с разъемом X1, идущий к телефону, выполнен из четырехжильного телефонного провода, подпаян к соответствующим контактам на плате и закреплен стяжкой на плате. Резисторы R2 и R3 распаяны непосредственно на разъеме Х1.
Двухжильный провод от зарядного устройства также закреплен стяжкой и подпаян к контактным площадкам (VPP и GND) на плате (на принципиальной схеме условно показаны как разъем Х3).
Из четырех, анализируемых программой входов на плате распаяны два (двойная зеленая колодка с клеммами "под винт"). Рядом с входными клеммами размещена колодка красного цвета на которую выведен общий провод и вывод питания (в будущем это позволит легко поключать активные датчики, требующие питания, например ШИМ датчики температуры).
На противоположной строне платы распаяны две двойные клеммные колодки управления внешними устройствами (зеленого цвета).
В стандартном корпусе КР-04 сделаны отверстия для контрольного светодиода и кнопки сброса (нажатие торцевой кнопки можно осуществить, например, с помощью спички).
Печатная плата для Устройства специально не разрабатывалась. Детали схемы распаяны на макетной плате небольших размеров, позволяющих установить Устройство в корпус КР-04, фотография платы показана на рисунке 2 (см выше), в корпусе на рисунке 3 (справа).
Кабель с разъемом X1, идущий к телефону, выполнен из четырехжильного телефонного провода, подпаян к соответствующим контактам на плате и закреплен стяжкой на плате. Резисторы R2 и R3 распаяны непосредственно на разъеме Х1.
Двухжильный провод от зарядного устройства также закреплен стяжкой и подпаян к контактным площадкам (VPP и GND) на плате (на принципиальной схеме условно показаны как разъем Х3).
Из четырех, анализируемых программой входов на плате распаяны два (двойная зеленая колодка с клеммами "под винт"). Рядом с входными клеммами размещена колодка красного цвета на которую выведен общий провод и вывод питания (в будущем это позволит легко поключать активные датчики, требующие питания, например ШИМ датчики температуры).
На противоположной строне платы распаяны две двойные клеммные колодки управления внешними устройствами (зеленого цвета).
В стандартном корпусе КР-04 сделаны отверстия для контрольного светодиода и кнопки сброса (нажатие торцевой кнопки можно осуществить, например, с помощью спички).
Заключение
Описанное устройство не претендует на серьезное название "Система охранной сигнализации" и предназначено для иллюстрации применения АТ команд управления GSM телефоном. Устройство может стать базой для разработки практической системы. Вместе с тем, данная конструкция реально работает и выполняет заложенные в ней функции. Для "будущих конструкторов" необходимо указать на явные недостатки описанного примера: проблема питания (низкое качество блока питания можно компенсировать менее прихотливым микроконтроллером), возможные "зависания" опять же из-за проблем с питанием (надо доработать схему сброса, либо использовать современный микроконтроллер со встроенной схемой watch-dog). В части алгоритма работы - бескрайнее поле деятельности, например, кажется удобным фиксация событий с привязкой к времени и дате и просмотр такого журнала.
Данной статьей мне хотелось показать простоту и удобство использования GSM телефонов в решении ряда часто возникающих задач дистанционного управления.
Данной статьей мне хотелось показать простоту и удобство использования GSM телефонов в решении ряда часто возникающих задач дистанционного управления.
Литература
1. предыдущая статья Простое охранное GSM устройство А.В.Пахомов (17.01.2009)
2. AT-команды. Руководство по использованию АТ-команд для GSM/GPRS модемов.: Пер. с англ. – М.: Серия «Библиотека Компэла». ЗАО «Компэл», 2005. – 432 с.
3. Ле-Бодик Г. Мобильные сообщения: службы и технологии SMS, EMS, MMS. Пер. с англ. – М.: КУДИЦ-ОБРАЗ, 2005. – 448 с.
4. Datasheet MOC3063
Таблицы
Упоминаемые в тексте таблицы сохранены в файле Excel и PDF.
опубликовано 24.10.2015
2. AT-команды. Руководство по использованию АТ-команд для GSM/GPRS модемов.: Пер. с англ. – М.: Серия «Библиотека Компэла». ЗАО «Компэл», 2005. – 432 с.
3. Ле-Бодик Г. Мобильные сообщения: службы и технологии SMS, EMS, MMS. Пер. с англ. – М.: КУДИЦ-ОБРАЗ, 2005. – 448 с.
4. Datasheet MOC3063
Таблицы
Упоминаемые в тексте таблицы сохранены в файле Excel и PDF.
опубликовано 24.10.2015