Gsm выключатель на ардуино

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Управляем реле с помощью SIM800L и Arduino

В материале «GSM/GPRS модуль SIM800L и Arduino: простой проект GSM-сигнализации» был продемонстрирован пример достаточно несложной сигнализации, которая срабатывает по кнопке и отправляет SMS-сообщение на заранее заданный номер.

Но с помощью SIM800L и Arduino можно также удаленно управлять включением и отключением какой-нибудь нагрузки, что будет продемонстрировано в данном материале.

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

Как видно из приведенной выше схемы, для нормальной работы схемы требуется стабилизированный источник питания постоянного тока 5 В / 1 А. Плата микроконтроллера (Nano_V3) работает от источника 5 В, а модем (SIM800L) – около 4,3 В. Хотя большинство модулей SIM800L рассчитаны на 3,7 В, некоторые SIM800L-модули способны выдерживать напряжение несколько выше 4 В.

Код (скетч Arduino) является базовым без каких-либо специальных библиотек SIM800L. В коде RX и TX-линии назначаются программным последовательным линиям. Это делается намеренно, так что аппаратный последовательный порт Arduino можно использовать с последовательным монитором. После загрузки кода вы можете перейти к следующему шагу. Сначала уделите немного времени, чтобы убедиться, что все подключения в порядке. Не забудьте вставить работающую карту micro-SIM в слот перед включением системы. Как правило, SIM-карта автоматически регистрируется в домашней сети в течение нескольких секунд. Обратите внимание, что встроенный светодиодный индикатор модуля SIM800L будет мигать один раз каждые две-три секунды (не непрерывно), когда он полностью зарегистрирован в сети. После этого вы должны нажать кнопку сброса один раз, чтобы система полностью функционировала.

Организуем отправку SMS. Отправка текста «ON» (не чувствительно к регистру) включает реле, а «OFF» выключает реле. Релейные контакты могут быть подключены по желанию для переключения любой подходящей электрической нагрузки. Вот что может отображаться в последовательном порте:

Источник

Удаленное управление домом по GSM/GPRS

Введение:

В этом уроке мы создадим систему удаленного управления домом по смс, используя GSM/GPRS Shield.

При получении смс устройство будет выполнять одну из указанных в смс функций, после чего уведомит вас об этом в ответной смс.

Видео:

Нам понадобится:

  • 1х Piranha UNO
  • 1х GSM/GPRS Shield;
  • 1х Battery Shield;
  • 2х Реле;
  • 2х Силовой ключ;
  • 1х Линейный привод 12В;
  • 1х Светодиодная лента 12В;
  • 1х Источник питания 12В;
  • 1х Вентилятор(кулер) 12В;
  • 2х Лампочка;

Для реализации проекта нам необходимо установить библиотеки:

  • iarduino_GSM- для работы с GSM/GPRS Shield;
  • Библиотеки SoftwareSerial входит в базовый набор Arduino IDE и не требует установки;

О том, как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE.

Описание работы системы удалённого управления:

  • После подачи питания дождитесь получения смс с уведомлением о том, что инициализация прошла успешно и модем GSM зарегистрировался в сети. После этого устройство готово к работе.
  • Устройство может принимать сообщения, содержащие параметры «Действие», «Устройство», «Яркость».
  • Для управления устройством вам необходимо сформировать смс по следующему алгоритму:
    • Основные функции:
      • [ДЕЙСТВИЕ] [УСТРОЙСТВО];
    • Дополнительные функции:
      • [ЗНАЧЕНИЕ%]; — задаём значение ШИМ-сигнала для яркости/скорости;
  • После правильно написанной и отправленной информации дождитесь обратного сообщения с уведомлением о том, что ваша команда прошла.

Схема сборки:

Arduino / Piranha UNO:

Batery Shield:

Установите Battery Shield на Arduino / Piranha UNO:
Во время установки Battery Shield должен быть в выключенном состоянии.

GSM/GPRS Shield:

На плате GSM/GPRS Shield A6 имеется слот для SIM-карт и переключатель UART. Установите SIM-карту в слот, выберите положение переключателя RX-7/TX-8.

Trema Shield:

Линейный привод:

Подключим линейный привод к Trema Shield. Для этого необходимо 2 электромеханических реле подключить к выводу 4.

После этого установить перемычки согласно рисунку.

Далее подключить к реле линейный привод и подвести внешнее питание 12В.

Лампочки:

Далее согласно схеме подключите к реле лампочки и питание 220В.

Будьте предельно внимательны и осторожны!

Светодиодная лента:

Подключите к 6 выводу Trema Shield Trema-модуль Силовой ключ, а к нему подключите светодиодную ленту, пустив провод питания ленты (красный) напрямую к источнику питания 12В, а провод GND ленты (чёрный) в разрыв через Trema-модуль Силовой ключ.

Вентилятор(кулер):

Подключите к 5 выводу Trema Shield Trema-модуль Силовой ключ, а к нему подключите вентилятор (кулер), пустив провод питания вентилятора (красный) напрямую к источнику питания 12В, а провод GND вентилятора (чёрный) в разрыв через Trema-модуль Силовой ключ.

Код программы (скетч):

В скетче используются библиотеки iarduino_GSM и SoftwareSerial.

Алгоритм работы скетча:

До кода void setup() определяются номера выводов, объявляются переменные и функции, подключаются библиотеки, и создаются объекты для работы с ними.

Перед загрузкой скетча не забудьте задать в переменной SMSnum номер телефона, куда будет приходить смс-уведомление о пройденной идентификации!

В коде void setup() конфигурируются выбранные выводы, инициируется работа GSM/GPRS Shield, выполняется цикл ожидания готовности GSM/GPRS Shield к работе (регистрация в сети оператора). И после выполнения всех указанных действий выполняется оповещение о готовности к работе, путем отправки смс на указанный номер.

Код void loop() выполняется только при получении смс сообщения. Сам блок разделён на две основные части: приём входящих сообщений и выполнение указанных в сообщении действий.

Приём входящих сообщений состоит из следующих действий:

  • Считывание сообщения из памяти SIM-карты, после чего функция автоматически их оттуда удаляет.
  • После считывания сообщения запускается цикл, в котором текст сообщения проверяется на наличие в нём управляющих команд;
  • Если команда найдена, то внутри него запускается второй цикл, в котором текст так же проверяется, но уже на наличие в нём имени устройства;
  • Если имя устройства найдено, то выполняется проверка на наличие дополнительного параметра, указанного с символом » % » — процент (от 0 до 100) яркости/скорости, с которым будет работать указанное устройство.
  • Если дополнительный параметр был указан, то ставится флаг о его наличии в полученном смс.

Выполнение указанных в сообщении действий:

  • После того, как все флаги были выставлены, происходит проверка наличия флага дополнительного параметра. Если он присутствует, тогда выполняется вычисление значения числа, указанного перед символом % :
    • Для этого мы находим количество символов в строке, расположенных слева от символа % ;
    • Полученное число покажет нам порядковый номер символа % в массиве strSMStxt ;
    • Для того, чтобы узнать, какое значение было указано, проверим 3 ближайшие ячейки массива, расположенные слева от символа % :
      • Если 1 ячейка, расположенная ближе всего к символу %, содержит число от 0 до 9, то тогда мы заносим её значение в переменную Sum . Это будет разряд «единицы»;
      • После этого внутри первой проверки выполняется вторая проверка 2 ячейки на наличие числа от 0 до 9. Если число найдено, то оно умножается на 10 и прибавляется к переменной Sum . Это будет разряд «десятки»;
      • После этого внутри второй проверки производится третья проверка 3 ячейки. Если в ней найдена 1, то она умножается на 100 и прибавляется к переменной Sum . Это будет разряд «сотни».
      • Если же в третьей проверке окажется, что в «сотнях» указано больше 1, то флаг flgPWM будет сброшен;
  • Выполняется проверка наличия флага flgFunc :
    • Если флаг flgFunc был установлен, тогда выполняется проверка наличия флага flgDev :
      • Если флаг flgDev был установлен, тогда выполняется проверка наличия флага flgPWM :
        • Если флаг flgPWM установлен, тогда выполняется подача ШИМ-сигнала на вывод с указанным в сообщении устройством и отправка смс с уведомлением об успешном выполнении;
        • Если флаг flgPWM не установлен, тогда выполняется подача сигнала HIGH на вывод с указанным устройством и отправка смс с уведомлением об успешном выполнении;
      • Если флаг flgDev не установлен, тогда производится отправка смс уведомления о том, что в сообщении не указано устройство;
    • Если флаг flgFunc не установлен, тогда производится отправка смс уведомления о том, что пришло ошибочное сообщение.

Источник

Управляем розеткой по SMS

Хочу представить вам очень простой способ удаленного управления электропитанием.
Мы будем использовать готовые радиоуправляемые розетки, поэтому нам не потребуется ничего паять. Это очень здорово, потому что 220 В (начинающим) лучше не трогать.

P.S. вчера был похожий топик, но использовался Raspberry Pi, управляемый через чат. Наш вариант несколько попроще и универсальнее, потому что ему не нужен Интернет и смартфон, а вместо Raspberry будет обычное Arduino.

Нам понадобится

Железо

  • Arduino UNO или аналог. В принципе можно и Mega.
  • GSM/GPRS Shield. Подойдет любой. Я использовал шилд от китайского Seeedstudio, т.к. его проще всего купить из России.
  • Передатчик 443MHz — на AliExpress пара приемник-передатчик стоит чуть ли не 20 руб. Мой называется FS1000A/XY-FST, где FS1000A — это передатчик.
  • Управляемая розетка(и) 443MHz. Я брал комплект AB440S из трех розеток-переходников с пультом в немецком интернет-магазине. Сейчас, кажется, можно найти что-то подобное и у нас — видел недавно в Чип-и-Дип.

  • Библиотека для управления GSM-шилдом. Скачайте код с сайта производителя. Для моего шилда такого кода не было, поэтому я скачал универсальную библиотеку для SIM900 GSMSHIELD
  • Библиотека rc-switch для управления розетками.

Принцип работы

В диапазоне 433MHz могут работать без лицензии маломощные рации и устройства дистанционного управления. В продаже можно найти готовые диммеры, выключатели, патроны и розетки, управляемые пультом по радио в этом частотном диапазоне. Для наших целей лучше всего подходят «промежуточные» розетки-переходники: в обычную розетку вставляется радиоуправляемая, а уже в нее само устройство.

Чтобы такие розетки можно было различать между собой у них есть адрес, задаваемый DIP- или поворотными переключателями. За счет этого можно управлять несколькими розетками независимо. Или наоборот — установить им одинаковый адрес, чтобы они включались и выключались одновременно.

Наша схема элементарна: Ардуино получает SMS с командой, затем с помощью радиомодуля посылает сигнал «включить» или «выключить» на розетки. SMS-ки будут вида A1B0C0, где A, B, C… — имена розеток, 0 — выкл., 1 — вкл.

Собираем устройство

  1. Вставляем симкарту в GSM-шилд, а шилд в ардуину.
  2. Подключаем ноги передатчика: GND→GND, VCC→5V, DATA→в один из пинов, например в 12.
  3. Также я припаял проводок 15 см к ANT в углу платки передатчика. Но мне кажется, что это опционально.

Проверяем GSM-модуль

Если вы еще не работали с GSM-шилдом до этого, я рекомендую сначала залить тестовый код (взят отсюда)и проверить его работу.
Код все данные из Serial передает в SoftwareSerial и обратно, таким образом, подключив шилд к SoftwareSerial, мы можем отправлять команды модему через Serial Monitor в Arduino IDE.

Заливаем код в Ардуино, открываем Serial monitor. Вводим команду AT — ответ должен быть OK. Если ответа нет, значит что-то не так. Возможно, нужно поменять скорость передачи?

Дальше можно проверить, что мы зарегистрировались в сети:
AT+COPS?
+COPS: 0,0,»MTS-RUS»
OK

Я рекомендую понизить скорость UART-модема. Не знаю точно насчет SMS, но GPRS точно работает надежнее на низких скоростях — у Ардуинки маленький буфер и часть информации может теряться. Установим скорость 2400 бод.
AT+IPR=2400
OK

Если вы хотите еще поиграться с модемом, то рекомендую использовать готовый java-апплет для браузера. Ну и можно почитать мануал по командам.

Смотрим/меняем адреса розеток

У розеток есть аппаратный адрес из двух частей. Первые 5 бит — одинаковые у всего комплекта и совпадают с адресом пульта. Последние 5 бит — индивидуальные. Адрес можно поменять, отвернув крышечку. На других моделях задание адреса может отличаться — см. сайт rc-switch.

Если вы используете не GSMSHIELD, а какую-то другую библиотеку, то код разумеется будет отличаться, но принцип будет один и тот же. Через определенные интервалы времени мы проверяем, нет ли у нас непрочитанных SMS, парсим их, и если пришла валидная команда с авторизованного номера, то посылаем радиосигнал функциями mySwitch.switchOff или mySwitch.switchOn , передавая им адрес розетки.
Прим. в моем случае для шилда от Seeedstudio нужно было залезть в GSM.cpp и поменять заданные пины на 7 и 8.GitHub.

Проблемы?

Если розетки ни в какую не хотят переключаться, можно попробовать принять сигнал от родного пульта на приемник. В rc-switch есть пример кода.

Источник

Adblock
detector