Управление реле через смс

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

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

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

  • управление 4 реле (вкл./выкл.);
  • возможность отслеживания состояния реле и 8 цифровых входов для дальнейшей отправки SMS пользователю с целью информирования о текущем состоянии;
  • простая схема, небольшое количество используемых компонентов;
  • управление с помощью 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 ассемблер) – скачать.

Источник

Arduino.ru

Скетч включения реле по смс

Добрый день всем ардуинцам.

Вступаю в ряды, сделал первые шаги, диодиком помигал, пытаюсь сделать управление нагрузкой через смс.

Взял пример из библиотеки GSMSHIELD и начал дополнять его своим кодом: чтение даных с температурного датчика и отправка его через СМС.

В 65 строке у меня ошибка из-за того, что недопонял синтаксис этого языка. Сам на PHP и Javascript’е программлю. А с Си-подобными как-то не завелось. Подскажите, как правильно написать чтобы в одну строку и текст и переменная попала. Может, через переменную попробовать? Я пробовал через smsstring[] как в манулале, но опять не вышло. Как правильно надо?

Скетч пока недописанный, вы на мой индуский код внимания не обращайте. Интересмует пока косяк с 65 строчкой. Как правильно написать?

String SMSText = «Temperature: » + String(t) + » *C»;

Теперь он ругается на строчку, где sms.SendSMS(.

gsm_dht.ino:66:45: error: no matching function for call to ‘SMSGSM::SendSMS(const char [12], String&)’
gsm_dht.ino:66:45: note: candidates are:

Читайте также:  Реле вентилятора охлаждения ниссан альмера классик

Ему походу не нравится тип данных String что ли?

У вас номер 11 символов, а должно быть 12.

Не, он явно не на номер ругается. Сменил на «правильный» номер +7904. (12 символов), ругуется теперь на

error: no matching function for call to ‘SMSGSM::SendSMS(const char [13], String&)’

Попробуй обьявить переменные выше строки обращения в функцию. Вообще похоже, что эта функция принимает переменные другого типа. Как она описана в хелпе ?

Я так понимаю ей всё как char надо отдавать, а он на второй аргумент ругается, что типа string. 🙁

Выводит: error: no matching function for call to ‘SMSGSM::SendSMS(const char [12], String&)’

Выводит: error: expected primary-expression before ‘char’

Объявил mynumber как строку и вписал туда свой номер.

Далее, всё передаю как String:

Выводит: gsm_dht.ino:67:40: error: no matching function for call to ‘SMSGSM::SendSMS(String&, String&)’
gsm_dht.ino:67:40: note: candidates are:

походу дела трабла вообще не в типе данных. Ему String понятен, но ругается ИМХО на что-то другое. Не могу понять на что.

char SMSText = «Temperature: » + String(t) + » *C»;

Вот-вот, именно, если функция объявлена как char SendSMS(char *number_str, char *message_str); , то дайте ей char.

Datak: Спасибо, вот так заработало (ну в смысле, ошибки нет). Вроде в char перевелось. Спасибо еще раз.

Продвинулся дальше, уже принимаю смски от ардуины с температурой.

Но вот такая трабла. В коде прописано вывод в serial последних данных после отсылки смс. Если я мониторю serial и при этом отправляю смски на запрос, то в ответ мне приходят четко смски с температурой. Но стоит мне закрыть монитор последовательного порта, отправить смс-запрос, затем снова открыть монитор последовательного порта — смска с температурой больше неприходит. И в монитор валится всякая хрень (команды AT, но уже другие, нежели при первом открытии). Это почему такое происходит?

Понятно, что в боевом режиме никакого сериал у меня не будет. Весь мониторинг сведется к получению смски с температурой. Но может кто-то объяснит мне этот феномен?

И еще, всё-таки сравнение у меня не работает. Там походу перевод строки или еще что-то попадает. В чистом виде «temperature» не принимается. Как правильно сравнить? Ну или хотя бы часть строки сравнить. Сейчас сделал так, что просто проверяю, не пустая ли строка (строка 65). А сбрасываю переменную выше в 70-71 строке, чтобы ардуина на один запрос бесконечно не слала мне данные.

Источник

Дистанционное управление электроприборами

Ставь лайк! Делись с друзьями, потому что дальше будет интереснее! Понравилась статья? Ставь палец вверх и будешь видеть наши новости чаще!

Беспроводные технологии прочно вошли в нашу жизнь, и мы уже не представляем, как без них можно обходиться. Wi-Fi, Bluetooth, GPS, WiMAX, DECT, 3G, 4G, NFC и прочие шаманские заклинания помогают нам быстро получать и посылать различную информацию, обмениваться ей.

Все эти технологии имеют свои преимущества и ограничения. Но есть, наверное, одна из них, которая, возможно, была первой массовой беспроводной технологией которая после радиосвязи и телевидения завоевала весь мир. Это, конечно же, сотовая связь стандарта GSM. Этот стандарт — самый распространенный глобальный стандарт цифровой мобильной сотовой связи — разработан еще в 80-х годах прошлого столетия группой, которая сейчас носит название Global System for Mobile Communications.

Читайте также:  Можно ли управлять однофазным двигателем с помощью твердотельного реле

В настоящее время есть возможность обмениваться информацией с большей скоростью и, соответственно, пропускной способностью, но если нужен надежный канал для обмена небольшим количеством данных, то стандарт GSM – вне конкуренции. Наверное, все мы попадали в ситуации, когда мобильный интернет не работает, Wi-Fi поблизости отсутствует, некогда популярных интернет-кафе не сыщешь, зато SMS-сообщения бодро бегают туда-сюда. Что мы делаем, прежде всего, когда прилетаем куда-нибудь? Ну, конечно, посылаем СМС-ку «приземлились, все в порядке», и это практически всегда работает.

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

Точно так же, как и в сотовом телефоне, для выхода устройства дистанционного контроля и управления в сеть достаточно вставить в него SIM-карту с положительным балансом.

Компания Мастер Кит предлагает целый ряд модулей, которые реализуют различные функции, используя стандарт GSM для управления. В настоящем обзоре мы рассмотрим несколько таких модулей. Надеемся, что обзор поможет вам выбрать подходящий модуль для решения задач удаленного контроля и управления.

В конце обзора вы найдете таблицу, в которой для удобства сведены основные характеристики описываемых устройств.

1. MA3401 — автономная GSM-SMS сигнализация с функцией контроля и управления температурой предназначена для круглосуточной непрерывной охраны любых объектов, управления нагрузкой с помощью СМС-сообщений, термостатирования с помощью встроенного датчика температуры, принудительного управления нагрузкой, управления электронным замком по звонку, а также в качестве тревожной кнопки.

Устройство оповестит о пропадании напряжения сети 220В. Оно может быть применено для охраны дачи, гаража или в качестве аварийной сигнализации контроля отопления дома.

— шесть ячеек памяти для мобильных телефонных номеров;

— 45 секундная пауза для постановки и снятия с охраны;

— одна линия охраны и один выход для управления нагрузкой;

— аудиовход для подключения электретного микрофона (возможно дистанционное прослушивание объекта);

— аудиовыход (можно использовать для голосового обмена);

— автономный режим работы до 2-х суток (зависит от уровня принимаемого сигнала, а также от емкости и уровня заряда аккумулятора);

— встроенная система заряда для АКБ через разъем mini-USB;

— интеллектуальный режим: при разряде аккумулятора до уровня менее 5% в автономном режиме устройство отсылает СМС и отключается; при восстановлении внешнего питания и заряде аккумулятора, устройство включится, предупредив хозяина СМС сообщением;

— возможность автоматического управления нагревателем; цифровой термодатчик DS18B20 установлен на плате.

Ознакомьтесь с материалами, в которых приводятся рекомендации и примеры решений на основе модуля:

2. MA3402 — модуль GSM-SMS управления с возможностью оповещения предназначен для контроля температуры и управления электроприборами. Модуль позволяет включать и отключать питание по звонку, SMS-команде или расписанию. Имеется режим контроля и оповещения выхода температуры за заданные пределы. Имеет встроенный источник питания 220В. Устройство размещено в корпусе с креплением на DIN рейку.

Источник

Оцените статью
Adblock
detector