Gsm реле для arduino

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» выключает реле. Релейные контакты могут быть подключены по желанию для переключения любой подходящей электрической нагрузки. Вот что может отображаться в последовательном порте:

Источник

Модуль sim800 ардуино управление через реле

Приветствую всех на своём канале. Сегодня мы продолжим наше знакомство с модулем SIM800L и научимся управлять блоком из двух реле удалённо при помощи телефона. Можно подключить любое количество нагрузок, но это я покажу в следующих видео. Для примера я к каждому реле подключил по лампе, а вы можете подключить всё что угодно. Что бы включить или выключить лампы достаточно позвонить на номер телефона и нажать на запрограммированную цифру. Я сделал так что если нажать на цифру в первый раз, то лампа включится, а если ещё раз, то выключиться. Можно было бы сделать что нажав цифру 1, первая лампа загорится, а нажав 2 выключится, нажав 3 включатся все лампы, нажав 4 все погаснут. Всё это можно сделать немного изменив скетч, но этим мы займёмся в других видео. Так же можно сделать, что модуль будет принимать звонки только с определённых номеров, или управлять длительностью нажатия на клавишу телефона. Это я расскажу в других видео, конечно если вам это будет интересно. Так, что не забывайте подписываться и оставляйте свои комментарии.

Это второе видео из серии про этот модуль. Если вы не смотрели первое, то лучше начните с него. Там я рассказывал о подключении и настройках модуля с помощью AT команд. Посмотреть его можно по ссылке что вы видите на экране сверху справа.
Ну вроде вступление закончено и теперь можно переходить к описанию работы примера.

Нам понадобятся 2 реле, Ардуино и конечно GSM модуль SIM800L. Как я уже говорил к реле я подключил 2 лампы. Вот схема подключения.
А так выглядит скетч, но о том как он работает я расскажу дальше в видео. Что бы лучше понять как всё работает я открою монитор порта и буду сразу по ходу объяснять что происходит в модуле и какие команды он принимает и отдаёт.
Для начала всегда надо инициализировать модуль командой AT. Это надо для настройки скорости обмена данными.
Командой AT+DDET=1 Мы включение режим DTMF, то есть режим тонального набора. Для всех команд вы должны получить ответ OK.
Теперь давайте позвоним на модуль и посмотрим как он работает и какие команды принимает.
Сначала идёт команда RING это означает, что проходит входящий голосовой вызов.
Команда CLIP это АОН и он показывает номер телефона звонящего абонента.
ATA это ответ на входящий звонок. У вас так же должен быть ответ OK.

Читайте также:  Фильтр дребезга контактов реле

Теперь поуправляем нашим реле. Для начала нажмём на телефоне единицу. Видим что пришла команда тонального набора со значением 1 и первая лампа загорелась. Иногда это происходит с небольшой задержкой, но задержки больше 2 секунд у меня не было.
Нажав ещё раз на цифру 1 мы погасим лампу. Как я уже говорил можно было для включения и выключения назначить разные цифры.
Проделаем то же самое для второй лампы. Нажав двойку один раз мы включили лампу, нажав ещё раз, выключили.
Немного поиграемся и перейдём дальше.

Теперь на телефоне разорвём соединение. В ответ получим команду NO CARIER и команду ATH означающую Разъединение голосового вызова.
Позвонив ещё раз снова получаем RING и ответ от встроенного АОНа. Все телефоны я замылил, а то и так от спамеров нет отбоя. А как вы спасаетесь от надоедливых звонков?
Схема соединения модуля реле, Ардуино и GSM модуля очень простая и поэтому я её просто показываю без объяснений. Если что не понятно, то пересмотрите предыдущее видео. А мы переходим к описанию работы скетча.

Описание работы скетча.
Для работы нам понадобится интерфейс для работы с интерфейсом UART. В Ардуино реализована аппаратная поддержка интерфейса на выходах 0 и 1 которые также используются для связи с компьютером по USB. Это нам не подойдёт, поэтому мы воспользуемся библиотекой SoftwareSerial которая позволяет реализовать последовательный интерфейс на любых цифровых выводах Ардуино. Я использовал выходы 10 и 11.
Реле я подключил к выходам 2 и 3 Ардуино. Так как мои реле управляются низким уровнем(LOW), поэтому я установил по умолчанию высокий уровень(HIGH), тем самым отключил их при включении.
Эти глобальные переменные понадобятся для дальнейшей работы скетча.
Перед началом работы делаем задержку в 5 секунд что бы дать время GSM модулю найти сеть и подключиться к ней. Так как этот код находится в SETUP, то он срабатывает всего 1 раз и это никак не отражается на дальнейшей работе скетча.
Даём команды AT для настройки скорости и переводим модуль в тональный режим. Небольшие паузы нужны для того чтобы модуль принял команды и передал нам ответ в виде OK. Которые мы и видим в мониторе порта.
Ну и теперь самое интересное, работа с интерфейсом UART.
Считываем все пришедшие команды и записываем их в переменную buff.
Если установлено соединение, то функцией indexoff() ищем совпадение. В конкретном случаем ищем +DTMF:
После того как нашли отрезаем пробелы вначале и в конце и передаём получившееся в функцию STATE(). В остатке у нас буде цифра с телефона, в нашем случае 1 или 2.
Если на телефоне повесили трубку, то придёт команда NO CARRIER. В ответ на неё мы командой ATH вешаем трубку, то есть разрываем соединение.
Эта команда проверяет есть ли входящий звонок, и если есть то снимает трубку и готовится к приёму команд или голосовых сообщений.

Ну и последнее — это функция работы с реле. После того как мы получили команду с тонального вызова и обрезали всё ненужное мы получили значение нажатой цифры на телефоне. Я написал здесь обработчик двух цифр, но вы можете добавить ещё и сделать больше, только не забудьте добавить ещё реле. Здесь же вы можете изменить команды управления реле и сделать свои кнопки для включения и выключения.
Или например подключив микрофон к модулю сделать прослушивание помещения, а добавив динамик ещё и сможете разговаривать с потусторонним собеседником. Можно придумать ещё десяток примеров.

В следующих видео я покажу как подключать различные датчики, получать с них данные и отправлять в виде СМС на телефон. Это будут датчик движения, температуры, протечки и возможно каких-нибудь ещё.

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

Источник

GSM и GPRS модули для Arduino

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

GSM GPRS в Arduino

Модули GSM GPRS

GSM модуль используется для расширения возможностей обычных плат Ардуино – отправка смс, совершение звонков, обмен данными по GPRS. Существуют различные виды модулей, наиболее часто используемые – SIM900, SIM800L, A6, A7.

Описание модуля SIM900

Модуль SIM900 используется в различных автоматизированных системах. С помощью интерфейса UART осуществляется обмен данными с другими устройствами. Модуль обеспечивает возможность совершения звонков, обмен текстовыми сообщениями. Работа модуля релизуется на компоненте SIM900, созданным фирмой SIMCom Wireless Solution.

Читайте также:  Пусковое реле mm8 605d аналог

Технические характеристики:

  • Диапазон напряжений 4,8-5,2В;
  • В обычном режиме ток достигает 450 мА, максимальный ток в импульсном режиме 2 А;
  • Поддержка 2G;
  • Мощность передачи: 1 Вт 1800 и 1900 МГц, 2 Вт 850 и 900 МГц;
  • Имеются встроенные протоколы TCP и UDP;
  • GPRS multi-slot class 10/8;
  • Рабочая температура от -30С до 75С.

С помощью устройства можно отслеживать маршрут транспорта совместно с ГЛОНАСС или GPS устройством. Возможность отправки смс-сообщений используется в беспроводной сигнализации и различных охранных системах.

Описание модуля SIM800L

Модуль выполнен на основе компонента SIM800L и используется для отправки смс, реализации звонков и обмена данными по GPRS. В модуль устанавливается микро сим карта. Устройство обладает встроенной антенной и разъемом, к которому можно подключать внешнюю антенну. Питание к модулю поступает от внешнего источника либо через DC-DC преобразователь. Управление осуществляется с помощью компьютера через UART, Ардуино, Raspberry Pi или аналогичные устройства.

Технические характеристики:

  • Диапазон напряжений 3,7В – 4,2В;
  • Поддержка 4х диапазонной сети 900/1800/1900 МГц;
  • GPRS class 12 (85.6 кБ/с);
  • Максимальный ток 500 мА;
  • Поддержка 2G;
  • Автоматический поиск в четырех частотных диапазонах;
  • Рабочая температура от –30С до 75С.

Описание модуля A6

Модуль A6 разработан фирмой AI-THINKER в 2016 году. Устройство используется для обмена смс-сообщениями и обмена данными по GPRS. Плата отличается низким потреблением энергии и малыми размерами. Устройство полностью совместимо с российскими мобильными операторами.

Технические характеристики:

  • Диапазон напряжений 4,5 – 5,5В;
  • Питание 5В;
  • Диапазон рабочих температур от -30С до 80С;
  • Максимальное потребление тока 900мА;
  • GPRS Class 10;
  • Поддержка протоколов PPP, TCP, UDP, MUX.

Модуль поддерживает карты формата микросим.

Описание модуля A7

A7 является новейшим модулем от фирмы AI-THINKER. По сравнению со своим предшественником A6 имеет встроенный GPS, позволяющий упрощать конструкцию устройства.

Технические характеристики:

  • Диапазон рабочих напряжений 3,3В-4,6В;
  • Напряжение питания 5В;
  • Частоты 850/900/1800/1900 МГц;
  • GPRS Class 10: Макс. 85.6 кбит;
  • Подавление эха и шумов.

Устройство поддерживает микросим карты. Модуль поддерживает обмен звонками, обмен смс-сообщениями, передачу данных по GPRS, прием сигналов по GPS.

Где купить GSM модули для ардуино

Традиционно, прежде чем начать, несколько советов и полезных ссылок на продавцов Aliexpress.

Подключение GSM GPRS шилда к Arduino

В этом разделе мы рассмотрим вопросы подключения GSM – модулей к плате адуино. За основу почти во всех примерах берется Arduino Uno, но в большинстве своем примеры пойдут и для плат Mega, Nano и т.д.

Подключение модуля SIM800

Для подключения нужны плата Ардуино, модуль SIM800L, понижающий преобразователь напряжения, провода для соединения и батарея на 12В. Модуль SIM800L требует нестандартное для ардуино напряжение в 3,7В, для этого нужен понижающий преобразователь напряжения.

Распиновка модуля SIM800 приведена на рисунке.

Плату Ардуино нужно подключить к компьютеру через USB кабель. Батарею на 12 В подключить через преобразователь: -12В на землю Ардуино, от земли в преобразователь в минус, +12В в преобразователь в плюс. Выходы с модуля TX и RX нужно подключить к пинам 2 и 3 на Ардуино. Несколько модулей можно подключать к любым цифровым пинам.

Подключение модуля A6

Модуль A6 стоит дешевле, чем SIM900, и его очень просто подключать к Ардуино. Модуль питается напряжением 5В, поэтому для соединения не нужны дополнительно понижающие напряжение элементы.

Для подключения потребуются плата Ардуино (в данном случае рассмотрена Arduino UNO), GSM модуль А6, соединительные провода. Схема подключения приведена на рисунке.

Вывод RX с модуля GSM нужно подключить к TX на плате Ардуино, вывод TX подключить к пину RX на Ардуино. Земля с модуля соединяется с землей на микроконтроллере. Вывод Vcc на GSM модуле нужно соединить с PWR_KEY.

Подключение с помощью GSM-GPRS шилда

Перед подключением важно обратить внимание на напряжение питания шилда. Ток в момент звонка или отправки данных может достигать значений в 15-2 А, поэтому не стоит запитывать шилд напрямую от Ардуино.

Перед подключением к Ардуино нужно установить сим-карту на GSM-GPRS шилд. Также нужно установить джамперы TX и RX, как показано на рисунке.

Подключение производится следующим образом – первый контакт (на рисунке желтый провод) с шилда нужно соединить с TX на Ардуино. Второй контакт (зеленый провод) подключается к RX на Ардуино. Земля с шилда соединяется с землей с аруино. Питание на микроконтроллер поступает через USB кабель.

Макет соединения шилда и платы Ардуино изображен на рисунке.

Для работы потребуется установить библиотеку GPRS_Shield_Arduino.

Для проверки правильности собранной схемы нужно сделать следующее: соединить на Ардуино RESET и GND (это приведет к тому, что данные будут передаваться напрямую от шилда к компьютеру), вставить сим-карту в шилд и включить питание шилда. Плату Ардуино нужно подключить к компьютеру и нажать кнопку включения. Если все соединено правильно, загорится красный светодиод и будет мигать зеленый.

Читайте также:  Управление реле через web интерфейс

Краткое описание взаимодействия через AT-команды

AT-команды – это набор специальных команд для модема, состоящий из коротких текстовых строк. Чтобы модем распознал поданную ему команду, строки должны начинаться с букв at. Строка будет восприниматься, когда модем находится в командном режиме. AT-команды можно отправлять как при помощи коммуникационного программного обеспечения, так и вручную с клавиатуры. Практические все команды можно разделить на 3 режима – тестовый, в котором модуль отвечает, поддерживает ли команду; чтение – выдача текущих параметров команды; запись – произойдет записывание новых значений.

Список наиболее используемых AT-команд:

  • AT – для проверки правильности подключения модуля. Если все исправно, возвращается OK.
  • A/ – повтор предыдущей команды.
  • AT+IPR? – получение информации о скорости порта. Ответом будет +IPR: 0 OK (0 в данном случае – автоматически).
  • AT+ICF? – настройка передачи. В ответ придет +ICF: бит, четность.
  • AT+IFC? – контроль передачи. Ответом будет +IFC: терминал от модуля, модуль от терминала (0 – отсутствует контроль, 1 – программный контроль, 2 – аппаратный).
  • AT+GCAP – показывает возможности модуля. Пример ответа – +GCAP:+FCLASS,+CGSM.
  • AT+GSN – получение IMEI модуля. Пример ответа 01322600XXXXXXX.
  • AT+COPS? – показывает доступные операторы.
  • AT+CPAS – состояние модуля. Ответ +CPAS: 0. 0 – готовность к работе, 3 – входящий звонок, 4 – голосовое соединение, 2 – неизвестно.
  • AT+CCLK? – информация о текущем времени и дате.
  • AT+CLIP=1 – включение/выключение АОН. 1 – включен, 0 – выключен.
  • AT+CSCB=0 – прием специальных смс-сообщений. 0 – разрешено, 1 – запрещено.
  • AT+CSCS= “GSM” – кодирование смс-сообщения. Можно выбрать одну из следующих кодировок: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
  • AT+CMEE=0 – получение информации об ошибке.
  • AT+CPIN=XXXX – ввод пин-кода сим-карты.
  • AT&F – сброс до заводских настроек.
  • AT+CPOWD=1 – срочное(0) или нормальное(1) выключение модуля.
  • ATD+790XXXXXXXX – звонок на номер +790XXXXXXXX.
  • ATA – ответ на вызов.
  • AT+CMGS=”+790XXXXXXXX”>Test sms – отправка смс-сообщения на номер +790XXXXXXXX.

В данном случае рассмотрены основные команды для модуля SIM900. Для разных модулей команды могут незначительно отличаться. Данные для модуля будут подаваться через специальную программу «терминал», которую нужно установить на компьютер. Также подавать команды модулю можно через монитор порта в Arduino IDE.

Скетчи для работы с модулем GSM

Отправка СМС на примере SIM900

Перед тем, как отправить сообщение, нужно настроить модуль. В первую очередь нужно перевести в текстовый формат передаваемое сообщение. Для этого существует команда AT+CMGF=1. Нужно перевести кодировку на GSM командой AT+CSCS=»GSM». Эта кодировка наиболее удобная, так как там символы представлены в ASCII коде, который легко понимает компилятор.

Затем нужно набрать смс-сообщение. Для этого посылается команда с номером абонента AT+CMGS=»+79XXXXXXXXX» r, в ответ предлагается набрать текст смс. Нужно выполнить отправку сообщения. По окончании требуется отправить код комбинации Ctrl+Z, модуль позволит отправку текста адресату. Когда сообщение будет отправлено, вернется OK.

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

Получение смс. Для чтения смс-сообщения используется команда AT + CNMI = 2,2,0,0,0. Когда на модуль придет текстовое сообщение, он отправит в последовательный порт +CMTI: «SM»,2 (в данном случае 2 – порядковый номер сообщения). Чтобы его прочитать, нужно отправить команду AT+CMGR=2.

Прием голосового звонка. В первую очередь для разговора нужно подключить к модулю динамик и микрофон. При получении звонка будет показан номер, с которого он совершен. Для осуществления работы нужно включить библиотеку GSM:

Если сим-карта заблокирована, нужно ввести ее пин-код. Если пин-код не требуется, это поле нужно оставить пустым.

В setup() должна быть произведена инициализация передачи данных на компьютер. Следующим шагом будет создание локальной переменной, чтобы отследить статус подключения к сети. Скетч не будет запущен, пока сим-карта не подключена к сети.

boolean notConnected = true;

С помощью функции gsmAccess.begin() происходит подключение к сети. При установлении соединения вернется значение GSM_READY.

vcs.hangCall(); – функция, показывающая, что модем готов принимать звонки.

getvoiceCallStatus() – определяет статус скетча. Если кто-то звонит, она возвращает значение RECEIVINGCALL. Для записи номера нужно воспользоваться функцией retrieveCallingNumber(). Когда будет совершен ответ на звонок, вернется TALKING. Затем скетч будет ждать символа новой строки, чтобы прервать разговор.

Установить GPRS-соединение и отправить данные на удаленный сервер

Сначала нужно установить библиотеку SoftwareSerial, которая позволяет обеспечивать последовательную передачу информации и связать GSM-модуль и микроконтроллер Ардуино.

Для отправки данных на сервер нужно отправить следующие команды:

AT+SAPBR=1,1 – открытие Carrier.

Следующие три команды связаны с установкой настроек подключения к сети.

AT+SAPBR=3,1,\”APN\”,\”internet.mts.ru\” – выбор оператора mts, имя точки доступа.

AT+SAPBR=3,1,\”USER\”,\” mts \” – выбор пользователя mts.

AT+SAPBR=1,1 – установка соединения.

AT+HTTPINIT – инициализация http.

AT+HTTPREAD – ожидание ответа.

AT+HTTPTERM – остановка http.

Если все выполнено правильно, в мониторе порта будут появляться строчки с АТ командами. Если отсутствует связь с модемом, то будет показывать по одной строке. При успешной установке GPRS-соединения на модуле начнет мигать светодиод.

Источник

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