Муфты электромонтажные от производителя Fucon

Удаленное управление устройствами с помощью SMS

Vassilis Serasidis

Устройство предназначено для удаленного управления питанием различных устройств (например, ADSL модемы, персональные компьютеры, комнатное освещение, различные бытовые устройства), а также может отслеживать состояние восьми цифровых линий и затем сообщать пользователю о состоянии этих линий, т.е. может использоваться в качестве своеобразной охранной системы. Управление и информирование пользователя осуществляется с помощью SMS.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Основные характеристики устройства:

  • управление 4 реле (вкл./выкл.);
  • возможность отслеживания состояния реле и 8 цифровых входов для дальнейшей отправки SMS пользователю с целью информирования о текущем состоянии;
  • простая схема, небольшое количество используемых компонентов;
  • управление с помощью SMS. Команды управления защищены паролем (может быть изменен пользователем) с целью предотвращения ложного срабатывания.

Принципиальная схема устройства изображена на рис. 1.

Устройство удаленного управления с помощью SMS

Рис.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-команда. При этом не забудьте, что на SIM карте для отправки SMS должны быть средства.

После всех этих операций микроконтроллер удаляет SMS сообщение находящееся по первому адресу в памяти модуля и переходит к ожиданию получения следующего SMS-сообщения.

Посылка команд с помощью SMS с мобильного телефона осуществляется с соблюдением определенного синтаксиса. Рассмотрим его на примере команд:

  1. Команда: 1234*5678 Relay1=1 Relay2=0 Relay3=1 Relay4=1 Status
    Здесь мы имеем самую насыщенную команду. Сначала мы посылаем пароль (1234) и указываем, что он будет сменен (*) на 5678. Затем мы включаем реле №1, 3, 4 и выключаем реле №2. Кроме того, затем посылая команду мы запрашиваем информацию о состоянии 8 датчиков и всех реле.
     
  2. Команда: 1234 Relay1=1 Relay2=0 Relay3=1 Relay4=1 Status
    В этой SMS-команде мы включаем реле №1, 3, 4, выключаем реле №2 и запрашиваем информацию о состоянии датчиков и реле.
     
  3. Команда: 1234 1=1 2=0 3=1 4=1 Status
    Данная команда аналогична рассмотренной команде 2), здесь мы опустили слова .
     
  4. Команда: 1234 Status
    При помощи мы только запрашиваем информацию о состоянии датчиков и реле.
     
  5. Команда: 1234 Relay2=0
    В этой команде, как видно, мы только отключаем реле №2

Принципиальная схема, рисунок печатной платы, исходный код (AVR ассемблер) – скачать.

seserasidis.gr

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: The SMS remote controller

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • а возможно ли использовать вместо SM модуля GM-47 мобильник ,по моему мобильник легче достать и дешевле
  • Таких модулей и нет в продаже. А так интересное устройство. Вообще здесь много интересных вещей печатают, если бы ещё и всё это доступно было бы нам...
  • Управление посредством SMS возможно с использованием GSM модема или телефона, используемого в качестве модема, подключенного к компьютеру. Вас интересуют детали реализации? Или этот вариант с применением компьютера для Вас слишком громоздок!? Можно использовать микро PC или контроллер совместимого типа с GSM модулем, этот вариант компактнее. Так что упоминаемые выше специализированные устройства, это и есть по сути GSM модем + компьютер, можно реализовать и самостоятельно из более широко доступных компонентов.
  • Можно, я так думаю, использовать совместимые модули, у которых система команд совпадает...
  • В GSM модулях и мобильных телефонах для управления и контроля используется специализированные АТ команды, набор которых, в основном, для различных фирм изготовителей и различных подобного рода устройств один и тот же, и в зависимости от специализации устройства и особенностей набор команд включаются дополнительные спец команды. Это устройство можно переделать практически под любой GSM модуль или мобильный телефон. Делаем на плате разъем управления, которое осуществляется по 2-х проводному интерфейсу UART, вместо 20 – 40 ног для модема, и немного правим исходный код АSM, который нам доступен (что может даже и не понадобится!) ну и само собой под новый проект новая разводка платы. И получаем универсальное устройство управления и контроля.
  • Вот вариант реализации удалённого управления на доступном GSM модуле SIM300D - [URL="http://electromost.com/index/mnogofunkcionalnoe_ustrojstvo_upravlenija_i_kontrolja/0-35"]http://electromost.com/index/mnogofunkcionalnoe_ustrojstvo_upravlenija_i_kontrolja/0-35[/URL] При использовании SMS есть один момент - доставка SMS оператором по времени не нормируется. Поэтому управлять ответственными устройствами таким способом не рекомендуется. Кроме того, в обязательном порядке нужно отслеживать подтверждение выполненной команды - иначе "пульнули" SMS и неизвестно - выполнена команда или нет :). Поэтому при использовании сотовой связи управлять нагрузками нужно в "режиме реального времени" с подтверждением выполненых команд. Например, использовать GPRS. Или хотя бы DTMF - как в устройстве, ссылку на которое давал выше.
  • Господа, всем доброго времени суток! Кто-нибудь пробовал собирать сей девайс? Мои попытки с использованием модуля Neoway M590 не увенчались успехом. После чтения принятого СМС микроконтроллер делает паузу на пару секунд, затем удаляет его из памяти и продолжает посылку в модуль АТ-команды по циклу. При этом не происходит ни изменений состояния реле, ни отправки сообщения по команде "Status". У кого-нибудь есть мысли по этому поводу?
  • Пошивка устройства нерабочая. Я тоже собирал такой девайс на плате с оригинальной разводкой, и с GR-47. Реакция такая же как и у Вас. Также читал на одном западном форуме о подобной проблеме этого девайса. Чтобы не ковырять листинг на асме, переписал на CodeVision AVR, при этом ввел оптимизацию: не постоянно гонять цикл опроса, а в начале работы с модемом отправить команду на выдачу в терминал сообщения о приходе смс, и дальше парсить смс после прихода сообщения о получении.
  • Вот и я перерыл практически весь интернет в поисках правды, и даже писал автору Serasidis Vasilis с просьбой помочь разобраться (на английском, естественно), однако так ничего и не добился. Как мне кажется, засада тут кроется в различии телефонных номеров наших и забугорных. Из листинга программы видно, что у них этот номер на одну цифру больше, соответственно, необходимо везде корректировать параметр регистра "No_Of_ignore_bytes" (R25). Хотя, могу и ошибаться. На одном из профильных сайтов поднималась эта проблема в точности как и у нас, и похоже, ее там благополучно решили, но каким именно образом, к сожалению, умалчивается. Зарегистрироваться на этом сайте, чтобы пообщаться с участниками темы тоже не получается - отфутболивают без разъяснений, сразу на этапе регистрации. Вот ссылка: [url]http://www.edaboard.com/thread290544.html[/url] Уважаемый max7780, если у Вас устройство заработало, не поделитесь программой? Был бы очень Вам признателен, поскольку мои познания в программировании не позволяют мне написать такую сложную программу с нуля ни на асме, ни на СИ, а ковырять имеющуюся я уже просто мозг сломал за два месяца.
  • Устройство собирал 5 лет назад, если найду, то возможно завтра выложу исходник. Но там реализованы не все функции, например не делал команду status, которая читает состояния входов, и нет гарантии что программа заработает с Вашим модемом, возможно есть какие - то отличия в ответах на команды или в самих командах. Также в оригинальном исходнике отсутствует анализ ответа модуля, модем может сообщить об ошибке, а программа продолжит выдачу команд, либо модем может банально зависнуть, а микроконтроллер просто не сможет его перезагрузить, так как на оригинальной плате отсутствует управление PowerPin-ом модуля. Я проанализирую Datasheet на Ваш модуль и помогу, чем смогу. Также хотелось бы сказать что 590-й - редкостная дрянь, три модуля купил, только один нормально заработал без глюков. При переделке софта не стояла задача обеспечить безотказную работу устройства гарантировано в течении длительного времени, а просто запустить железку, также много неоптимального кода, лучше я перешлю Вам эту программу на электронную почту.
  • У меня из двух приобретенных модемов 590-х тоже заработал нормально лишь один, второй шлет в эфир всякий мусор, который видно на терминале. Пробовал подбирать скорость - бесполезно. А второй работает четко на скорости 9600, но с микроконтроллером дружить не хочет почему-то, хотя, тут мы уже выяснили, что дело скорее всего в самой программе. Однако, для меня все равно остается загадкой почему у одних она работает, а у других нет. Вроде у GM47 и NEOWAY полностью совпадают протоколы АТ-команд, единственное отличие - у Neoway нет порта под микрофон, соответственно - невозможно реализовать голосовой вызов. А схема и контроллер у Вас остались прежними, или изменились? Да я буду рад любому, даже "сырому" решению, ведь потом его уже можно доработать как положено. Главное - это основа. Так что буду безмерно благодарен, если отправите прогу на адрес [email][email protected][/email], тогда уже можно будет двигаться дальше в этом направлении, потому как сейчас я просто зашел в тупик...
Полный вариант обсуждения »