Vassilis Serasidis
Устройство предназначено для удаленного управления питанием различных устройств (например, ADSL модемы, персональные компьютеры, комнатное освещение, различные бытовые устройства), а также может отслеживать состояние восьми цифровых линий и затем сообщать пользователю о состоянии этих линий, т.е. может использоваться в качестве своеобразной охранной системы. Управление и информирование пользователя осуществляется с помощью SMS.
Основные характеристики устройства:
- управление 4 реле (вкл./выкл.);
- возможность отслеживания состояния реле и 8 цифровых входов для дальнейшей отправки SMS пользователю с целью информирования о текущем состоянии;
- простая схема, небольшое количество используемых компонентов;
- управление с помощью SMS. Команды управления защищены паролем (может быть изменен пользователем) с целью предотвращения ложного срабатывания.
Принципиальная схема устройства изображена на рис. 1.
Рис.1 Принципиальная схема устройства (кликните для увеличения)
Основой устройства является микроконтроллер ATtiny2313 корпорации Atmel и GSM модуль GM-47 производства фирмы Sony Ericsson.
Микроконтроллер IC2 работает на частоте 4 МГц, которая задается внешним кварцевым резонатором X1.
Рис.2 Внешний вид GSM модуля GM-47
Для работы GSM модуля необходима SIM карта, которая подключается непосредственно к модулю с помощью специального держателя. Питание микроконтроллера и GSM модуля осуществляется от регулятора IC1 LM1117T 3.3 с выходным напряжением 3.3 В. Вообще, микроконтроллер сохраняет работоспособность в пределах 2.7 В – 5.5 В (при рабочей частоте до 10 МГц), поэтому для обеспечения согласования логических уровней GSM модуля и микроконтроллера мы можем запитать его от регулятора IC1.
Коммуникация с GSM модулем осуществляется на скорости 9600 бит/с с помощью AT команд. Стоит заметить, что уровни напряжения при данной коммуникации составляют 3.3 В со стороны микроконтроллера AVR и 2.75 В со стороны GSM модуля. Поэтому для адаптации уровней был применен транзистор T5 BC547.
Модуль подключается с помощью коннектора на печатной плате.
Рис.3 Печатная плата с установленным коннектором под модуль GM-47
Подключение SIM карты осуществляется с помощью слота K15, который имеет встроенный концевой переключатель SW для обнаружения присутствия карты в держателе.
Управление реле осуществляется посредством ключей выполненных на транзисторах BC547
Рис.4 Внешний вид печатной платы с установленным модулем
Светодиод D6 предназначен для индикации статуса подключения к сети, и если он мигает, то это означает удачное подключение к сотовой GSM сети, которую поддерживает SIM карта. Если светодиод постоянно светится – это означает, что модуль не может подключиться к сотовой сети.
GSM модуль имеет цифровые и аналоговые входы/выходы, но в этом проекте автор их не использовал, чтобы исключить опасность повреждения модуля.
Какие задачи выполняет микроконтроллер AVR
После подачи питания на плату микроконтроллер ожидает пока пройдет инициализация GSM модуля, т.е. модуль должен считать SIM карту и подключиться к GSM сети, которую она поддерживает.
После удачной инициализации микроконтроллер посылает AT команду , что означает выбор памяти модуля в качестве хранилища SMS. Должен быть ответ модуля на эту команду, в противном случае команда посылается еще раз.
После выбора памяти микроконтроллер посылает следующую команду . Данная команда указывает модулю, что сообщения будут считываться в текстовом формате (а не формате PDU, который также поддерживается модулем).
Затем следует команда, благодаря которой из текста SMS сообщения будет удаляться некоторая информация, например номер SMS сервера, дата и время. Это сделано с целью уменьшения SMS и упрощения работы микроконтроллера с ними.
Следующая команда предназначена для чтения SMS, сохраненного по первому адресу в памяти модуля.
При наличии текста SMS микроконтроллер считывает его и проверяет наличие корректного пароля. По умолчанию пароль – 1234, который затем может быть изменен пользователем. После проверки пароля проверяется наличие символа «*», который означает смену пароля на следующие после символа «*» 4 цифры (буквы).
После этого SMS обрабатывается далее с целью обнаружения зарезервированной команды где X – означает номер реле (1-4), Y – команда вкл./выкл. реле, может принимать значения 1 (вкл.) или 0 (выкл.). Например, команда Relay2=1 означает включить реле №2.
После этого микроконтроллер обрабатывает SMS далее на предмет наличия команды Status,
После всех этих операций микроконтроллер удаляет SMS сообщение находящееся по первому адресу в памяти модуля и переходит к ожиданию получения следующего SMS-сообщения.
Посылка команд с помощью SMS с мобильного телефона осуществляется с соблюдением определенного синтаксиса. Рассмотрим его на примере команд:
- Команда: 1234*5678 Relay1=1 Relay2=0 Relay3=1 Relay4=1 Status
Здесь мы имеем самую насыщенную команду. Сначала мы посылаем пароль (1234) и указываем, что он будет сменен (*) на 5678. Затем мы включаем реле №1, 3, 4 и выключаем реле №2. Кроме того, затем посылая командумы запрашиваем информацию о состоянии 8 датчиков и всех реле.
- Команда: 1234 Relay1=1 Relay2=0 Relay3=1 Relay4=1 Status
В этой SMS-команде мы включаем реле №1, 3, 4, выключаем реле №2 и запрашиваем информацию о состоянии датчиков и реле.
- Команда: 1234 1=1 2=0 3=1 4=1 Status
Данная команда аналогична рассмотренной команде 2), здесь мы опустили слова.
- Команда: 1234 Status
При помощи мы только запрашиваем информацию о состоянии датчиков и реле.
- Команда: 1234 Relay2=0
В этой команде, как видно, мы только отключаем реле №2
Принципиальная схема, рисунок печатной платы, исходный код (AVR ассемблер) – скачать.