управление умным домом с телефона
Аппаратная платформа Arduino используется для реализации множества электронных приборов и систем умного дома, включая GSM-извещатель охранной системы. Конструктор Arduino, в паре с простым и доступным языком программирования, позволит создать собственные типовые проекты умного дома, с применением GSM модуля.
Назначение и принцип работы
GSM-модуль (Global System for Mobile Communications) использует сеть телефонной связи оператора, для получения и передачи сигнала на удаленный объект управления. Например, с помощью СМС команд можно:
- получать оповещение о состоянии объекта через используемые датчики;
- узнавать о срабатывании сигнализации;
- включать и выключать охранную систему.
С помощью GPRS, который также поддерживают GSM-модули, можно аналогичные команды обрабатывать через Internet.
С помощью такого функционала можно организовать автономную сигнализацию на удаленном объекте. Датчики будут фиксировать изменение состояния, а по каналам связи будет транслироваться информация об этом на ваш смартфон. По сути, можно организовать Smart Home самостоятельно, постепенно добавляя в схему дополнительное комплектующее.
Работает такое устройство на базе платы Arduino Uno. Никто не запрещает использовать платы Nano (mini-схема) или Mega если необходимо, но для удобства монтажа устройства минимальной комплектации, достаточно материнской платы Uno.
За передачу GSM или GPRS отвечает модуль, который соединяется с основной платой. Он расширяет возможности Arduino UNO, позволяя принимать и совершать звонки, отправлять SMS, обмениваться данными через GPRS. На рынке представлены несколько версий отличных GSM-плат, которые можно сопоставлять и программировать через AT-команды на необходимый функционал.
Топ 6 самых популярных модулей
Представленные ниже модули – популярный продукт для монтажа систем автономной сигнализации и иных проектов, для передачи управляющего сигнала через сети мобильных операторов.
Под модулем понимается изделие, состоящие из платы и элементов на ней (включая компонент, состоящий из чипсета и приемопередатчика). Компонент находятся под крышкой в едином форм-факторе (напоминает процессор для материнской платы компьютера). Распайка на плате расширения происходит через торцевые контактные ножки. Такая полноценная плата и называется модулем. Если на ней есть множество других элементов, ее иногда именуют шилд.
Ниже будут приведены модули, такие как Neoway M590, A6 и A7, и прочие, представлены их характеристики.
SIM900
Разработанный компанией SIMCom Wireless Solution модуль SIM900 подключается и обменивается данными через распространенный физический протокол передачи данных UART. Подключение к ПК осуществляется через USB-UART преобразователь.
Плата позволяет в двухстороннем режиме работать с сообщениями и звонками адресата.
Спецификация:
- Диапазон частот EGSM900, DCS1800, GSM850, PCS1900.
- Напряжение 3,2-4,8 В.
- Сила тока в режиме простоя – 450 мА.
- Максимальный ток – 2 А.
- Канал связи до 14.4 кбит/с.
- Диапазон температур от -30 °C до +80 °C без искажения, и от -40 °C до +85 °C, с незначительным отклонением радиочастотных характеристик, с сохранением работоспособности.
- Вес 6,2 г.
- Размеры 24 x 24 x 3 мм.
У компонента есть модификации: 900B, 900D, 900TE-C, 900R 900X. У каждой модификации своя специфика. SIM900D дополнен блоком заряда аккумулятора, а в SIM900X введены новые режимы энергосбережения, что позволяет использовать модули в современных системах трекинга автомобилей, охранной и промышленной автоматики. Все модификации компонентов можно найти в едином форм-факторе SMT, с торцевыми контактами под пайку. Но, не исключены варианты нахождения в других форм факторах.
SIM800L
Основа модуля – компонент SIM800L с реализацией обмена данными по каналам GSM и GPRS с помощью дуплексного режима. В модуль устанавливается SIM-карта, есть встроенная антенна и выход под еще одну антенну. Питание на плату подается через преобразователь напряжения DC-DC. Еще, есть возможность подключиться к другому источнику питания. Интерфейс подключения – UART.
Спецификация:
- Четырехдиапазонный сотовый терминал.
- Напряжение 3,8-4,2В.
- Ток в режиме ожидания – 0,7 мА. Предельный ток – 500 мА.
- Слот
- Поддержка 2G сети.
- Диапазон температур от -30 °C до +75 °C.
A6
Шилд A6 работает в сетях мобильной связи и позволяет принимать и передавать сигналы с помощью GSM и GPRS. Модуль, созданный компанией AI-THINKER несколько лет назад, успешно показал себя и пользуется популярностью в системах автоматики.
ТТХ А6:
- Четырехдиапазонный сотовый терминал.
- Напряжение питания 5 В.
- Ток в спящем режиме – 3 мА.
- Ток режима ожидания – 100 мА.
- Ток режима соединения – 500 мА.
- Ток пиковой нагрузки – 2А.
- Разъем
- Скорость GPRS во время передачи сигнала 42,8 Кбит/сек.
- Температура от -30 °C до +80 °C.
A7
Новый модуль А7 отличается от предшественника тем, что в него встроен GPS. Это решение позволило упростить конструкцию платы.
Основные параметры:
- Четырехдиапазонный сотовый терминал.
- Напряжение 3,3-4,6 В.
- Напряжение питания 5В.
- 10 Класс GPRS: канал передачи данных 85,6 кбит/с.
- Jammer эха и шумов.
Neoway M590
Модуль на основе компонента Neoway M590 позволяет принимать звонки, обмениваться данными и сообщениями. Имеет интерфейс подключения UART.
Характеристики:
- Диапазон частот EGSM900, DCS1800.
- 10 Класс
- Напряжение 3,3-5 В.
- Пиковый ток 2 А.
- Рабочий ток 210 мА.
- Коммуникационный сигнал 3,3 В.
- Температура от -40 °C до +80 °C.
Подключая модуль к контроллеру, потребуется преобразователь 3,3 В -> 5 В.
GSM GPRS модуль SIM900
На базе модуля SIM900 разработали и успешно используют SIM900 GSM GPRS Shield, в качестве модуля для подключения к Arduino UNO. По сравнению с остальными платами, стоимость этой на порядок дороже, и она укомплектована множеством разъемов и контактов. Среди основных параметров:
- Подключается плата к Arduino Mega и UNO.
- Четыре рабочих частоты, как и в остальных платах.
- Низкое энергопотребление 1.5 А в спящем режиме.
- GPRS мульти-слот класса 10/8.
- Рабочие температуры от -40°C до +85 °C.
Схема сборки типового проекта Умного дома
Рассмотрим варианты подключения нескольких модулей GSM к платам Arduino. В качестве примера рассматриваются платы Arduino UNO и MEGA.
Перед подключением модулей, вставьте соответствующего размера симку мобильного оператора в слот модуля. Далее, модуль соединяется с основной платой. Для этого нужно внимательно изучить инструкцию, определив распиновку модулей. После, подключив плату к питанию, с помощью переходника USB-UART контроллер подключается к компьютеру, через среду программирования Arduino IDE, или ее более комфортную альтернативу, прошивается и программируется AT-командами.
Естественно, по мере увеличения функционала вашего проекта, к плате необходимо добавить датчики, реле, розетки и другие компоненты. Об этом вы можете почитать на других страницах сайта.
Аппаратная часть: составляющие
В зависимости от того, какой GSM-модуль будет использоваться, зависят и составляющие схемы.
В основном это: микроконтроллер Arduino UNO, совместимый с платой GSM-модуль, DC-DC преобразователь понижающий (если коммуникационный сигнал ниже 5В), проводки и переходники для подключения.
SIM800L + Arduino UNO
Например, для подключения SIM800L к Arduino UNO, из-за малого напряжения в 3,8 В нужно подключить через преобразователь DC-DC. Распиновка модуля SIM800L выглядит так.
Подключение происходит в такой последовательности:
- Подключите Arduino UNO к компьютеру через порт USB.
- Источник питания на 12 В подключите через DC-DC.
- Минус с ИП на GND платы контроллера, и с GND в минус преобразователя.
- Плюс с ИП на плюс DC-DC.
- Плюс с DC-DC на плюс (Vcc) GSM модуля.
- Минус с земли преобразователя на GND модуля.
- RXD и TXD модуля соедините с пинами 2 и 3 Arduino UNO.
К любым digital pin (цифровые входы/выходы), если необходимо, можно соединять несколько модулей.
A6 + Arduino UNO
Так как GSM-модуль имеет стандартное напряжение питания, поэтому преобразователь в схеме не нужен. Подключать платы можно напрямую. Схема распиновки A6 на рисунке ниже.
Соединение происходит следующим образом:
- UART_RXD модуля к TX→1 микроконтроллера.
- UART_TXD модуля к RX ←0 микроконтроллера.
- GND контроллера с GND GSM-модуля.
- Пин VCC0 (питание) к кнопке питания на модуле PWR_KEY (power).
SIM900 Шилд + Arduino MEGA
Особенность платы в том, что при вызове устройства, сила тока достигает пикового предела в 2А. Поэтому, не подключайте питание напрямую. Прежде чем соединить, установите в слот сим карту и выставите TXD и RXD перемычку для слаботочной цепи, согласно картинке.
Далее, подключайте платы между собой:
- Желтым проводом соедините контакт TxD.
- Салатовым –
- Черным соедините GND плат.
- Через USB-порт соединить Микроконтроллер с ПК.
Чтобы удостовериться, что схема собрана верно, установите в IDE GPRS_Shield_Arduino.
Проверка правильной отработки схемы выглядит так:
- На плате Arduino соедините RESET и землю, чтобы информация поступала от Shield к ПК.
- Установите SIM-карту в слот и дайте напряжение на модуль.
- Основную плату по USB соедините с ПК и нажмите кнопку «ON».
- При правильной работе схемы, зеленый светодиод будет мигать, а красный постоянно гореть.
Программная часть: скетчи и библиотеки
После разбора аппаратной части, нужно запрограммировать собранное устройство. С помощью текстовых короткого AT-кода, можно задавать устройству прямые команды. Они воспринимаются устройством во время нахождения программируемого устройства в командном режиме. Команды устройство считывает напрямую с клавиатуры или с помощью ПО, такого как IDE. Программу или ее аналоги доступны для устройств, работающих на Linux, MacOS, Windows, Android. Поэтому, задавать команды удаленно с телефона можно тоже.
На примере программирования модуля SIM900, можно рассмотреть настройку основных инструментов взаимодействия с будущим охранным проектом, сделанным своими руками.
Работа с СМС уведомлениями
Сперва настройте кодировку, с которой нет проблем у компилятора, а затем отправляйте СМС:
- Зайдите в IDE и выполните команду AT+CMGF=1 для перевода в текстовый формат сообщения.
- Затем, командой AT+CSCS=«GSM» выберите ASCII-кодировку.
- За набор сообщения отвечает команда AT+CMGS=«+79********».
- После команды введите текст мессенджа и отправьте его.
- Отправив SMS, нажмите CTRL+Z и устройство отправит SMS-сообщение на приемник.
- После правильного выполнения команд, вернется «ОК».
Чтобы получить сообщение, следуйте example:
- Отправьте команду AT + CNMI = 2,2,0,0,0, чтобы прочитать SMS.
- Обратной связью от порта будет +CMTI: «SM»,2 – двойка значит номер SMS в порядке очереди.
- Отправьте команду AT+CMGR=2 для чтения SMS.
Звонки
Естественно, пока к схеме не подключены микрофон и динамик, ни о каком приеме звонка и речи быть не может. Когда осуществиться звонок, будет выведен номер, с которого звонили. Чтобы далее работать со звонками:
- Загрузите библиотеку #include <GSM.h>.
- Если на сим установлен PIN, то введите команду #define PINNUMBER “”, где в скобках пропишите его.
В случае, если пин не установлен, оставьте скобки пустыми.
- Выполнив данную команду, следует узнать статус симки с подключением к сети с помощью boolean notConnected = true.
- Установить активацию с сетью можно через begin(). Если соединение готово к работе, в обратной связи покажется статус GSM_READY.
Выводы
Соорудить собственноручную автономную GSM-сигнализацию не составит большого труда для технически не подкованных людей, в вопросах электро и схемотехники. Прочитав инструкцию и ознакомившись с распиновкой схем, можно подключить микроконтроллер к отвечающему за GSM передачу данных модуль. Также, для подключения доступны разнообразные модели GSM модулей, которые в соответствии со своими характеристиками можно применять для различных задач и так называемых project-объектов.
Касаемо программирования контроллеров, с этим тоже не возникнет проблем. С помощью библиотек, АТ-команд и скетчев, можно определять статус SIM-карты, получать и отправлять SMS сообщения, принимать звонки и тому прочее. Осуществляется это в среде программирования Arduino IDE или в аналогичных средах, установленных на удаленном устройстве, которыми могут быть как смартфон, так компьютер, что непосредственно подключен к программируемому устройству.
Arduino A6 gsm module (big) — Все остальное
A6 GPRS Pro серийный GPRS GSM модуль Core DIY
замена SIM900
Описание:
Это профессиональная версия серийного GSM / GPRS модуля на основе GPRS A6. Он поддерживает двухдиапазонную сеть GSM/GPRS, доступную для передачи данных GPRS и sms-сообщений.
Плата имеет компактный размер и низкое потребление тока. Благодаря технологии энергосбережения потребление тока в спящем режиме не превышает 3 мА.
Он общается с микроконтроллером через порт UART, поддерживает команды, включая GSM 07,07, GSM 07,05 и Ai-Thinker.
Особенности:
-Рабочая частота: Четырехдиапазонная сеть, 850 / 900 / 1800 / 1900 МГц
-Рабочее напряжение: 4.8-9VDC (бортовой регулятор напряжения питания цепи питания для модуля A6)
-Рабочий ток: Максимум 2 А
-Ток сна: 5 мА
-Встроенный держатель Micro SIM карты,
-Встроенный интерфейс Micro USB для внешнего источника питания
-Интерфейс связи: Последовательный порт TTL/последовательный порт RS232
-Скорость передачи данных: 115200bps, также может быть установлен по команде.
-Логическое напряжение интерфейса: 3,3 В
-Совершать и отвечать на телефонные звонки с помощью гарнитуры и электретного микрофона.
-Отправка и получение sms-сообщений.
-Отправка и получение данных GPRS (TCP/IP, HTTP и т. Д.)
-Шаг коннектора: 2,54 мм
-Интерфейс антенны: SMA и IPX
Об антенне:
-Подходит для модулей SIM800L GSM/Arduino SIM900 GPRS Shield
-Частота: 780 МГц ~ 960 МГц. 1710 МГц ~ 2170 МГц
-Усиление антенны: + 2,0 0,7 дБи @ 880 МГц, + 2,0 0,7 дБи @ 1800 МГц
-S. W. R
Հարգելի գնորդներ, 10.000 դրամ և ավելի գնումներ կատարելու դեպքում` Երևանի տարածքում և շրջակա բնակավայրերում առաքումը կկատարվի անվճար: Մինչև 10.000 դրամ արժողությոմբ գնումները կառաքվեն 500 դրամով: Մարզերում հնարավոր է փոստային առաքում:
Ցանկացած ապրանքի վերաբերյալ կարող եք ստանալ անվճար խորհարդատվություն (Խորհրդատվություն ստանալու համար ապրանքը գնելը պարտադիր չէ) :
Arduino Iot avtomat automat avtomatika wifi ESP BLE Bluetooth smart home sensor hardware/software development internet of things USB I2C SPI TTL
Առդուինո ավտոմատ էլեկտրոնիկա ծրագրավորում սմարթ արդուինո
Ардуино автоматика смарт дом управление электроника программирование схемотехника искусственный интеллект дистанционное управление датчик разработка
Работа со встроенным TCP/IP-стеком модулей GSM/GPRS серии SIM800 компании SIMCom Wireless Solutions
Компания SIMCom Wireless Solutions, ведущий разработчик и производитель GSM/GPRS, 3G, LTE и GPS/ГЛОНАСС- решений для М2М-отрасли, предлагает новую линейку GSM/GPRS-модулей серии SIM800 на замену хорошо известной в мире серии SIM900. В новых модулях улучшен ряд ключевых качеств, таких как массо-габаритные параметры, скорости передачи данных, цена. Кроме того, в новой линейке реализована поддержка Bluetooth и множества сетевых протоколов передачи данных, включая SSL.
Серия GSM/GPRS-модулей SIM800
В России линейка SIM800 (табл. 1) представлена модулями SIM800C, SIM800C-DS, SIM800H, SIM800, SIM800F [1]. Все они покрывают подавляющее большинство потребностей рынка М2М. Так, SIM800C в популярном корпусе LCC является фокусным и базовым решением для широкого спектра приложений. SIM800C-DS самый малогабаритный в мире GSM/GPRS-модуль с поддержкой двух SIM-карт (Dual SIM Dual Standby). Этот модуль нашел применение в охранном секторе и приложениях, где необходимо мгновенное переключение между сетями сотовой связи и требуется разделить балансы конечного потребителя и интегратора. Модуль SIM800H аналогичен модулю SIM800C по техническим характеристикам, но его основные потребители те, кому нужна поддержка передачи данных CSD и кого не смущает корпус LGA, подразумевающий пайку в печи. Модули SIM800F и SIM800 (24×24 мм) не выделяются какими-либо особенными качествами, их основная задача замена модулей SIM900R или SIM900 в текущих проектах и упрощение освоения серии SIM800 для новых разработок. Генеральное отличие между SIM800 и SIM800F заключается лишь в том, что первый поддерживает CSD, а второй, как SIM800С и SIM800C-SD, нет.
Модуль | |||||
SIM800C | SIM800C-DS | SIM800H | SIM800 | SIM800F | |
Корпус | LCC | LCC+LGA | LGA | LCC | |
Размер, мм | 15,7×17,6 | 15,8×17,8 | 24×24 | ||
GPRS | 85,6 кбит/с ↕ | ||||
Bluetooth | 3. | ||||
Количество SIM-карт | 1 | 2 | 1 | ||
Функции | Voice Call, USSD, SMS, CSD (только SIM800H и SIM800), DTMF, Jamming Detection, MMS, Audio R/F, Embedded AT (опционально) | ||||
Поддерживаемые протоколы передачи данных | PPP, TCP/IP, UDP/IP, FTP, HTTP, SMTP, POP3, SSL | ||||
Интерфейсы | 2×UART, USB | 2×UART, USB, I2C, SPI | |||
Аудио | MIC, SPK 32 Ом | PCM, MIC, 2×SPK 8/32 Ом | PCM, 2×MIC, 2xSPK 8/32 Ом | PCM, MIC, SPK 32 Ом | |
Память пользователя | Внутренняя | Внутренняя, SD-карта (<32 Гбайт) | Внутренняя | ||
Рабочее напряжение, В | 3,4–4,4 | ||||
Диапазон рабочих температур, °С | –40…+85 |
Следует подчеркнуть, что GSM/GPRS-модули серии SIM800 поддерживают беспроводную технологию связи Bluetooth 3. 0 Classic (профили SPP, HFP и проч.) на аппаратном уровне. Поддержка Bluetooth требует соответствующего программного обеспечения (ПО). Данная функция, нисколько не увеличивая стоимость изделия, дает пользователю уникальные возможности: голосовые вызовы посредством стандартной беспроводной гарнитуры, обмен произвольными данными на расстояниях в десятки метров, файлами и контактами из записной книжки все то, для чего предназначен Bluetooth, но в разрезе задач IoT. Также разработчику следует знать, что модули серии SIM800 поддерживают технологию Embedded AT. Она позволяет интегрировать пользовательский Си-код в операционную систему (ОС) модуля и управлять всеми его ресурсами: SMS, голосовые вызовы, выход в Интернет, управление интерфейсами UART, SPI, I2C, GPIO и проч. Это весьма полезная технология, широко применяемая, когда остро стоит вопрос о стоимости и/или размере конечного изделия. Подробней о работе Bluetooth и Embedded AT в модулях серии SIM800 можно узнать отдельно из руководств по применению или у инженеров технической поддержки компании и дистрибьюторов.
В данной же статье речь пойдет о работе со встроенным TCP/IP-стеком.
Протокол TCP/IP в М2М
Рис. 1. Обобщенная схема системы сбора данных посредством сети GSM
Обобщенная схема любой системы сбора данных построена на принципах клиент-серверного подключения (рис. 1). То есть где-то в сети есть сервер, который ждет подключения М2М-устройств и принимает от них полезные данные (расход топлива, координаты перемещения объекта, температура, тревожный сигнал, количество потребленной электроэнергии и т. п.) в зависимости от приложения и задач, выполняемых системой. В качестве клиентов в такой схеме выступают устройства на базе GSM/GPRS-модуля и управляющий контроллер (хост): модуль предоставляет доступ в Интернет, а хост управляет этим процессом. Такие клиент-серверные соединения для передачи данных, как правило, используют протокол TCP/IP.
Опытные разработчики знают, что посредством GSM/GPRS-модуля можно выйти в Интернет и подключиться к серверу двумя способами при помощи протокола канального уровня PPP или встроенного протокола TCP/IP. Оба варианта доступны в GSM/GPRS-модулях серии SIM800.
Когда в распоряжении клиентской части имеются продвинутые аппаратные ресурсы хоста и ОС типа Linux или Android, для выхода в Интернет часто применяют протокол PPP. Протоколы до уровня приложений при этом реализованы в самой ОС хоста. Но это относится к небольшому числу случаев. В подавляющем большинстве М2М-приложений ставятся жесткие требования к стоимости проекта, который подразумевает недорогой хост с небольшой памятью и простейшей ОС (без особых изысков). Реализация собственного стека протоколов (надстройка над PPP) в таком случае часто выводит проект за временные рамки сдачи работ и рамки бюджета единицы изделия.
Рис. 2. Граф процессов и состояний стека протоколов TCP/IP
В таких случаях более оправданным является применение встроенного стека TCP/IP-модуля, т. к. значительно упрощается процесс отладки и удешевляется стоимость конечного изделия. Разработчику не нужно знать/помнить принципы сетевых протоколов, тайминги, инкапсуляцию и т. д. (рис. 2), не нужно обрабатывать кадры, пакеты и сегменты данных. При работе со встроенным TCP/IP-стеком модуля хост имеет дело лишь с потоком полезных данных (рис. 3), обмениваясь ими с сервером на прикладном уровне стека протоколов.
Рис. 3. Стек протоколов TCP/IP
GSM/GPRS-модуль, управляемый хостом через последовательный порт UART, берет на себя общение с сетью сотовой связи и работу в IP-сети. Хосту для этого предоставляется командный интерфейс, т. е. доступ к сетевым функциям происходит посредством простой и понятной системы AT-команд [4]. При этом все сложные сетевые процессы, такие как активация контекста, открытие сессии, передача данных, закрытие сессии и т. д., скрыты от хоста.
Кстати, надо сказать, что протокол TCP/IP, наряду с другими протоколами, к примеру UDP/IP, очень удобен для систем, требующих надежности передачи данных, т. к. в его основе заложены принципы подтверждения и повтора посылок в случае потери пакетов. Прикладному уровню не нужно заботиться об организации повторного запроса данных.
Возможности встроенного стека протоколов TCP/IP в GSM/GPRS-модулях серии SIM800
Встроенный стек модуля гибок и может быть настроен на различные режимы работы в зависимости от пожеланий и фантазии разработчика. На рис. 4 схематически указаны режимы работы встроенного стека. Они определяют роль модуля по отношению к удаленной стороне (клиент/сервер), способ передачи данных и количество одновременно открытых соединений.
Рис. 4. Режимы работы встроенного стека TCP/IP-модулей серии SIM800
Режимы работы встроенного стека настраиваются в момент инициализации, до активации контекста и установления соединения, при помощи следующих АТ-команд:
- AT+CIPMUX=<n>,где<n>=0 моносокет, <n>=1 мультисокет;
- AT+CIPMODE=<n>где<n>=0 командный режим передачи данных,<n>=1 прозрачный.
Так, в режиме мультисокета модуль может открыть и поддерживать до шести одновременных соединений или работать только с одним соединением (моносокет).
Как видно, есть два способа обмена данными с удаленной стороной: прозрачный и командный режимы. В прозрачном режиме данные, находящиеся на стороне клиента, во время открытой сессии передаются и принимаются в последовательный порт UART модуля в том же виде, в каком их видит на удаленной стороне сервер. В некоторых случаях предпочтительней командный режим, при котором GSM/GPRS-модуль настроен на прием только АТ-команд, и, чтобы осуществить отправку данных на сервер или принять их, потребуется подавать данные вкупе с АТ-командами. Кстати, мультисокет исключает работу модуля в прозрачном режиме передачи данных.
На рис. 4 показано, что GSM/GPRS-модуль может быть настроен на выполнение роли клиента или сервера. Роль модуля не задается АТ-командой, как количество соединений или режим обмена данными, а определяется способом открытия соединения. В дальнейшем мы будем рассматривать вариант открытия одного соединения (моносокет) с удаленным сервером (роль модуля клиент). Передачу данных рассмотрим как в командном, так и в прозрачном режиме. Но перед тем как перейти к практическим примерам, надо разобраться с механизмом работы встроенного стека TCP/IP.
Механизм работы встроенного стека TCP/IP описывается диаграммой состояний, показанной на рис. 5. Это диаграмма состояний для односокетного соединения. Как видно, всего состояний 10. Все они, от IP INITIAL до PDP DEACT, замыкают цикл от активации контекста и открытия соединения до закрытия соединения и деактивации контекста именно в таком порядке, в нормальном случае. Состояние стека можно контролировать командой AT+CIPSTATUS (без параметров).
Рис. 5. Диаграмма состояний встроенного TCP/IP-стека модулей серии SIM800
Начальное состояние стека после инициализации AT+CIPMUXи AT+CIPMODE IP INITIAL, оно означает, что GPRS-контекст не настроен. Во время активации контекста информация направляется в сеть GPRS и может служить условием доступа к услугам пакетной передачи данных. Сегодня многие операторы сотовой связи дают доступ в GPRS независимо от того, какой контекст был задан. Однако этап настройки контекста пропускать не следует.
Настройка контекста осуществляется по команде AT+CSTT=<APN>,<USR>,<PASS>, где <APN> точка доступа, <USR> логин, <PASS> пароль. Эти параметры можно получить от поставщика мобильной связи. После этой команды встроенный стек принимает состояние IP START. Кстати, если говорить о повторном открытии сессии (питание не отключалось), то команду AT+CSTT можно подавать без параметров. Модуль примет в исполнение ранее заданные параметры и приведет встроенный стек в верное состояние.
После успешной настройки контекста его следует активировать командой AT+CIICR (без параметров). С момента активации контекста модуль получает доступ в сеть GPRS и на стороне оператора сотовой связи начинается отсчет трафика. За этим этапом следует переход встроенного стека в состояние IP STATUS посредством запроса своего IP-адреса в сети командой AT+CIFSR (без параметров).
Итак, к примеру, мы имеем сервер с IP-адресом 192.168.123.123 и открытым портом 1234. Для подключения к этому серверу должна быть исполнена команда AT+CIPSTART=”TCP”,”192.168.123.123”,1234. Важно, чтобы состояние стека перед подачей этой команды было IP STATUS. В противном случае связь не будет установлена. Кстати, допускается вместо IP-адреса задавать доменное имя, например: AT+CIPSTART=”TCP”,”www.simcomm2m.com”,1234.
Когда соединение с сервером установлено, состояние стека приобретает статус CONNECT OK. Теперь между сервером и хостом установлен канал передачи данных уровня приложений. После того как обмен данными будет завершен, соединение с сервером можно будет закрыть командой AT+CIPCLOSE. При этом есть варианты закрытия:
- Штатное закрытие соединения при помощи команды AT+CIPCLOSE (без параметров) или AT+CIPCLOSE=0, которое проходит с отправкой командных пакетов в адрес сервера и ожиданием от сервера подтверждения закрытия (рис. 6). Это согласованное закрытие сокета.
- Быстрое закрытие при помощи команды AT+CIPCLOSE=1, которое подразумевает перевод состояния стека в состояние TCP CLOSED без уведомления сервера. Этот случай актуален при потере связи с сервером или с GPRS-сетью. Этот способ нужен, чтобы вернуть стек в предсказуемое состояние, не тратя время на ожидание подтверждения, которое может и не прийти.
После закрытия соединения с сервером GPRS-контекст все еще активен. Его следует закрыть командой AT+CIPSHUT (без параметров). После этого стек модуля переходит в начальное состояние IP INITIAL, и он готов к новой сессии.
Обработка исключительных случаев
Все команды GSM/GPRS-модулей серии SIM800 имеют время исполнения. Разработчику ПО хоста важно знать время исполнения отдельно для каждой команды, чтобы исключить бесконечное ожидание реакции на команду (открытие соединения, к примеру). Значения максимального времени исполнения задокументированы, их можно найти в системе команд GSM/GPRS-модуля [4]. В таблице 2 указаны значения максимального времени исполнения основных команд встроенного TCP/IP-стека. Как видно, некоторые команды исполняются десятки секунд. Это объясняется зависимостью этих команд от быстродействия сети и сервера.
Команда | Максимальное время исполнения, с |
CIICR | 85 |
CIPSTART | 160 |
CIPSEND | 645 |
CIPCLOSE | 120 |
CIPSHUT | 65 |
Рис. 6. Нормальная процедура закрытия соединения с сервером
Получается, некоторые команды могут исполняться несколько минут, прежде чем можно будет понять, что что-то пошло не так. В М2М такие задержки, конечно, недопустимы. Как же обрабатывать случаи, когда время исполнения команды затянулось, а реакции так и не последовало? Все зависит от того, на каком этапе установления соединения произошел сбой (ошибка или вышел таймаут) и в каком состоянии находится стек (рис. 6). Причин сбоя может быть несколько, и реакция может быть разная, но главное вернуть встроенный стек в исходное состояние IP INITIAL или IP STATUS. Рассмотрим на примере несколько случаев:
- Сервер вышел из строя или доступ в Интернет ограничен (потеря пакетов, высокий пинг и проч.). В этом случае все команды из таблицы 1 приведут к длительному времени исполнения. Чтобы повторить попытку соединения с этим или другим сервером, следует перед этим закрыть сокет командой AT+CIPCLOSE=1.
При этом деактивировать контекст командой AT+CIPSHUT не обязательно.
- Потеря связи с GSM-сетью. Такое возможно в местах плохого покрытия сети, из-за ухудшения условий приема сигнала или внезапной выемки SIM-карты из прибора. Здесь следует проверить готовность SIM-карты (AT+CPIN? или чтение ячейки памяти командой AT+CMGR), уровень сигнала (AT+CSQ), наличие регистрации в сети (AT+CREG?) и доступ к услугам GPRS (AT+CGATT?). Если физический доступ к GSM-сети пропадет после или во время открытия сессии командой AT+CIPSTART, то придется закрыть соединение (AT+CIPCLOSE=1), деактивировать контекст и восстанавливать соединение с начала, сразу после того как будут успешно проверены SIM-карта, уровень сигнала, регистрация в сети и доступ к услугам GPRS.
- Истек срок жизни контекста.
Когда открывается контекст, сеть выделяет определенные ресурсы на его поддержание. Операторы сотовой связи не допускают мертвые контексты, когда ресурс занят, а обмена данными в этом контексте нет. Если обмена данных нет, то через некоторое время оператор деактивирует контекст. У разных операторов это время разное примерно от трех до семи минут. Модуль при этом в порт UART выдаст уведомление: +PDP DEACT. Его нужно обработать и сбросить встроенный стек в исходное состояние командой CIPSHUT. Однако иногда в некоторых приложениях требуется поддерживать контекст в активном состоянии. Для этого можно периодически обмениваться с сервером пустыми данными, типа эха. Но это неудобно в реализации. Взамен можно воспользоваться функцией поддержания соединения командой AT+CIPTKA [4].
- Нагрузка на сеть GSM. Всем известно, что GPRS-услуги и голосовая связь делят общие ресурсы. GPRS всегда выделяется оператором по остаточному принципу, а у голосовых соединений наивысший приоритет.
Контекст может быть деактивирован оператором принудительно. Внешне данный случай выглядит как предыдущий (п. 3), и обрабатывать его следует аналогично.
Следует предусмотреть случай, когда переинициализация соединения не дает желаемого эффекта. В этом случае рекомендуются штатное выключение/включение модуля и повторная попытка восстановить соединение с самого начала.
Работа со встроенным стеком протоколов TCP/IP в GSM/GPRS-модулях серии SIM800
Перейдем к практике применения встроенного стека TCP/IP на примере GSM/GPRS-модуля SIM800C, а точнее, на примере отладочного набора (рис. 7). В качестве сервера для наглядности будем использовать ПК с внешним статическим IP-адресом и учебную программу Server (рис. 8) примитивный TCP-сервер.
Рис. 7. Отладочный набор для GSM/GPRS- модуля SIM800C
При запуске программы сервер уже готов к работе. В окне программы всегда отображается информация об IP-адресе сервера и номере порта для подключения. Эту информацию мы и используем при открытии соединения на стороне SIM800C. Также в окне программы есть поля Received (для отображения принятых данных от удаленной стороны, от SIM800C) и Sending (для ввода данных в сторону удаленной стороны, к SIM800C). Данные по умолчанию отправляются/принимаются в формате ASCII-символов. Если требуется передавать произвольные бинарные данные, то для этого нужно поставить галочку возле параметра HEX.
Рис. 8. Окно программы Server
Итак, ниже приведен рабочий АТ-лог, который можно применить на практике. После каждой AT-команды для модуля SIM800C идут ответы и сообщения от модуля. Данный лог демонстрирует инициализацию стека, настройку контекста и открытие соединения с удаленным сервером, а также различные способы обмена данными в командном и прозрачном режимах.
Инициализация
AT+CPIN? // Проверка готовности SIM-карты. +CPIN: READY OK AT+CSQ // Уровень сигнала RSSI = 20 ед.(примерно -73 дБм), удовлетворительный уровень. +CSQ: 20,0 OK AT+CREG? // Проверка наличия регистрации в сети GSM. +CREG: 0,1 OK AT+CGATT? // Проверка доступа к услугам пакетной передачи данных. +CGATT: 1 OK AT+CIPMODE=0 // Командный режим передачи данных. OK AT+CIPMUX=0 // Моносокет. OK
Настройка контекста и открытие соединения
AT+CIPSTATUS OK STATE: IP INITIAL AT+CSTT=”internet” // Настройка точки доступа. OK AT+CIPSTATUS OK STATE: IP START AT+CIICR // Активация контекста. OK AT+CIPSTATUS OK STATE: IP GPRSACT AT+CIFSR 100.91.34.225 AT+CIPSTATUS OK STATE: IP STATUS AT+CIPSTART=”TCP”,”81.95.20.18”,2020 // Открытие соединения с удаленным сервером.OK CONNECT OK // Сообщение об успешном открытии соединения. AT+CIPSTATUS OK STATE: CONNECT OK
Передача данных с подтверждением в командном режиме
AT+CIPSEND? // Проверяем максимальный размер данных, которые можно послать в сторону удаленной стороны. Этот размер зависит от сети. +CIPSEND: 1460 OK AT+CIPQSEND? // Нормальный режим передачи данных. В этом режиме каждая порция высланных данных подтверждается сообщением SEND OK, что означает, что сервер данные принял и подтвердил их получение. +CIPQSEND: 0 OK AT+CIPSEND=100 // Передача 100 байт данных. > // Приглашение. hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello // Размер данных не должен быть больше 1460 байт, и в конце блока данных следует байт 0x1A. SEND OK // Данные успешно переданы.AT+CIPSEND // Передача данных произвольного размера. > hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello // Размер данных не должен быть больше 1460 байт, и в конце блока данных следует байт 0x1A. SEND OK
Быстрая передача данных в командном режиме
AT+CIPQSEND=1 // Режим быстрой передачи данных. Этот режим подразумевает передачу данных без ожидания от сервера подтверждения о получении. OK AT+CIPSEND=100 // Передача 100 байт данных. > hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello DATA ACCEPT:100 // Модуль принял данные в свой буфер и вышлет их в сторону сервера в фоновом режиме. AT+CIPACK // Проверка: 300 байт передано на сервер, из них 300 байт сервером приняты и подтверждены. +CIPACK: 300,300,0 OK AT+CIPSEND // Передача данных произвольного размера происходит аналогичным образом.> hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello DATA ACCEPT:100 AT+CIPACK +CIPACK: 400,400,0 OK AT+CIPQSEND=0 // Нормальный режим передачи данных. OK
Прием данных в командном режиме, автоматический вывод принятых данных
AT // Модуль находится в командном режиме; OK AT OK HelloHelloHelloHelloHelloHelloHelloHelloHelloHello // Данные, принятые от сервера, выводятся из порта UART модуля автоматически. Данные выводятся как есть, и это неудобно, поэтому будут полезны следующие настройки. AT OK AT+CIPHEAD=1 // Перед блоком данных, принятых от сервера, добавлять заголовок формата +IPD,<длина блока данных>. OK AT+CIPSRIP=1 // При приеме данных показывать уведомление в виде RECV FROM:<IP адрес отправителя>,<порт>.OK
Прием данных в командном режиме, ручной вывод принятых данных
Для смены способа вывода данных требуется разорвать соединение и деактивировать контекст.
AT+CIPCLOSE // Закрытие соединения. CLOSE OK AT+CIPSTATUS OK STATE: TCP CLOSED AT+CIPSHUT // Деактивация контекста. SHUT OK AT+CIPRXGET? +CIPRXGET: 0 // Автоматический вывод принятых данных. OK AT+CIPRXGET=1 // Настройка ручного вывода данных. OK AT+CSTT OK AT+CIICR OK AT+CIFSR 100.69.113.182 AT+CIPSTART=”TCP”,”81.95.20.18”,2020 OK CONNECT OK AT OK AT OK +CIPRXGET: 1,”81.95.20.18:2020” // Уведомление о приеме данных от сервера. AT OK AT+CIPRXGET=4 // Уточнение размера принятых данных.+CIPRXGET: 4,100 // Пришло 100 байт данных. OK AT+CIPRXGET=2,20 // Вывести 20 байт в порт UART; +CIPRXGET: 2,20,80,”81.95.20.18:2020” // В буфере модуля осталось 80 байт. HelloHelloHelloHello // Запрошенные 20 байт данных. OK AT+CIPRXGET=2,20 // Вывести 20 байт в порт UART. +CIPRXGET: 2,20,60,”81.95.20.18:2020” // В буфере модуля осталось 60 байт. HelloHelloHelloHello // Запрошенные 20 байт данных. OK AT+CIPRXGET=2,60 // Вывести 60 байт в порт UART. +CIPRXGET: 2,60,0,”81.95.20.18:2020” // Приемный буфер модуля пуст. HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello // Запрошенные 60 байт данных. OK AT+CIPRXGET=4 // Проверка наличия данных в буфере модуля. +CIPRXGET: 4,0 // Буфер пуст. OK
Обмен данными с сервером в прозрачном режиме
Для смены режима передачи данных требуется разорвать соединение и деактивировать контекст.
AT+CIPCLOSE CLOSE OK AT+CIPSHUT SHUT OK AT+IFC=2,2 // Аппаратный контроль потока должен быть включен, чтобы избежать потери данных. OK AT+CIICR OK AT+CIFSR 100.104.155.220 AT+CIPSTART=”TCP”,”81.95.20.18”,2020 OK CONNECT // Соединение установлено.
* * *
Благодаря подробному освещению возможностей встроенного стека протоколов TCP/IP новой линейки модулей серии SIM800, выгод его применения и приведению объемного исчерпывающего примера работы со стеком в различных режимах, данная статья поможет разработчику быстро освоить материал официальных руководств по применению модулей SIMCom Wireless Solutions и послужит в разработке отправной точкой.
Литература
- www.simcomm2m.com/russian
- Батуев Б. Embedded AT: начало работы с технологией интеграции пользовательского ПО в GSM/GPRS-модуль SIM800/SIM800H // Беспроводные технологии.
2014. № 3.
- Руководство по применению встроенного стека протоколов TCP/IP GSM/GPRS-модулей серии SIM800SIM800. Series_TCPIP_Application Note_V1.01.pdf.
- Система АТ-команд GSM/GPRS-модулей серии SIM800. SIM800_Series_AT_Command_ Manual_V1.09.pdf.
Бюджетная GSM сигнализация с мозгами из Arduino
Внимание! Команды выделенные жирным шрифтом могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Остальные команды могут быть выполнены с номеров с признаком «Management».
SMS — команды управления не чувствительны к регистру:
AddPhone — Добавить номер телефона. Всего может быть добавлено не более 9 номеров + 1 основной номер который автоматически сохраняется в память при первом звонке на устройство после сброса на заводские установки командами ResetPhone или FullReset. Т.е. кто первый позвонил на устройство после его сброска на заводские установки тот и и «главный», этот номер заносится в первую ячейку памяти и его невозможно изменить или удалить через смс. Невозможно добавить два одинаковых номера.
Пример команды:
До версии GSM_2017_05_26-20-22.hex:
AddPhone:2+71234567891m
AddPhone:3+71234567892a
AddPhone:4+71234567893
AddPhone:5+71234567894ma
Начиная с версии GSM_2017_05_26-20-22.hex:
AddPhone:2+71234567891mrsp
AddPhone:3+71234567892ms
AddPhone:4+71234567893sp
AddPhone:5+71234567894r
Синтаксис команды:
AddPhone — команда
: — разделитель
5 — записать в пятую ячейку памяти
+71234567890 — номер телефона
До версии GSM_2017_05_26-20-22.hex:
а — Параметр «Alarm» — на номера с этим параметром будут отправляться смс — сообщения о срабатывании сигнализации и сообщения постановке или снятии с охраны.
Начиная с версии GSM_2017_05_26-20-22.hex:
m — Параметр «Management» — разрешено управление сигнализацией
s — Параметр «SMS» — будет отправлено sms сообщение при срабатывании датчиков
r — Параметр «Ring» — будет совершен голосовой вызов при срабатывании датчиков
p — Параметр «Power» — будет отправлено sms сообщение при включении/отключении внешнего питания
i — Параметр «Info» — будет отправлено sms сообщение при постановке или снятии с охраны
При отсутствии параметров «m», «s», «r», «p»,«i» телефон заносится в память, но никак не используется.
DeletePhone — Удалить номер телефона.
Пример команды:
DeletePhone:+71234567891
Синтаксис команды:
DeletePhone — команда
: — разделитель
+71234567891 — номер телефона
EditMainPhone — Изменить параметры «s», «r», «p», «i» основного телефона, этот номер занесён в первую ячейку памяти.
Пример команды:
EditMainPhone:spri
Синтаксис команды:
EditMainPhone — команда
: — разделитель
srpi — параметры
BalanceNum — Изменение номера запроса баланса и обработка длины ответа запроса. Значение по умолчанию для Beeline: #100#L22.
Пример команды:
BalanceNum:#103#L24
Синтаксис команды:
BalanceNum — команда
: — разделитель
#103# — номер запроса баланса
L24 — Длина (len) пересылаемого ответа 24 символа, обрезаем спам из запроса баланса.
EditSensor — Изменить название датчика и логический уровень срабатывания. Всего может быть не более 8 дополнительных датчиков. После изменения параметров необходима перезагрузка устройства.
Пример команды:
EditSensor:1+Datchik dvizheniya v koridore#h
EditSensor:2+Gerkon na okne
Синтаксис команды:
EditSensor — команда
: — разделитель
1 — записать в первую ячейку памяти
+ — разделитель
Datchik dvizheniya v koridore — название датчика, не может превышать 36 символов, включая пробелы.
#h — Признак высокого логического уровня с датчика, при получении которого сработает сигнализация. Если отсутствует «#h», сигнализация будет срабатывать при получении с датчика низкого логического уровня.
SleepTime — Время «засыпания» сигнализации при получении смс — команды «Pause», указывается в минутах. Значение по умолчанию: 15, не может быть менее 1 и более 60.
Пример команды:
SleepTime:20
Синтаксис команды:
SleepTime — команда
: — разделитель
20 — 20 минут «сна».
AlarmPinTime — Время на которое включается/выключается тревожный/инверсный пин, указывается в секундах. Значение по умолчанию: 60, не может быть менее 1 секунды и более 43200 секунд (12 часов).
Пример команды:
AlarmPinTime:30
Синтаксис команды:
AlarmPinTime — команда
: — разделитель
30 — 30 секунд включения/выключения тревожного пина.
DelayBeforeGuard — Время до постановки устройства на охрану, после получения соответствующей команды.
Пример команды:
DelayBeforeGuard:25
Синтаксис команды:
DelayBeforeGuard — команда
: — разделитель
25 — 25 секунд до постановки на охрану
DelayBeforeAlarm — Время по истечении которого будет отправлено «тревожное» смс уведомление, если за этот период времени сигнализация не была снята с охраны. Заменена расширенными командами начиная с версии GSM_2017_08_10-12-17.hex
Пример команды:
DelayBeforeAlarm:40
Синтаксис команды:
DelayBeforeAlarm — команда
: — разделитель
40 — 40 секунд до отправки «тревожного» уведомления
WatchPowerTime — Время в минутах по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Если внешнее питание будет восстановлено до истечения установленного времени, то сообщение не будет отправлено.
Пример команды:
WatchPowerTime:5
Синтаксис команды:
WatchPowerTime — команда
: — разделитель
5 — 5 минут до отправки смс сообщения
RingTime — Длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд.
Пример команды:
RingTime:40
Синтаксис команды:
RingTime — команда
: — разделитель
40 — 40 длительность вызова составит 40 секунд, после чего будет вызван следующий абонент.
ModemID — Принудительная установка модели используемого модема. Возможные значения: 0 — автоопределение модема, 1 — M590, 2 — SIM800l, 3 — A6_Mini.
Пример команды:
ModemID:2
Синтаксис команды:
ModemID — команда
: — разделитель
2 — ID модема.
ExtDeviceTime — Количество секунд на которое изменится уровень сигнала на выходе управления внешним устройством.
Пример команды:
ExtDeviceTime:5
Синтаксис команды:
ExtDeviceTime- команда
: — разделитель
5 — 5 секунд
ExtDeviceLevelLow — Внешнее устройство подключенное к выходу A3 управляется низким уровнем сигнала (GND). На выходе по умолчанию будет присутствовать высокий уровень +5В, пока не поступит команда управления внешним устройством
ExtDeviceLevelHigh — Внешнее устройство подключенное к выходу A3 управляется высоким уровнем сигнала (+5V). На выходе по умолчанию будет присутствовать низкий уровень GND, пока не поступит команда управления внешним устройством
ResetSensor — сброс параметров датчиков расширителя порта
ResetConfig — сброс настроек на заводские установки
ResetPhone — удаление из памяти всех телефонных номеров
FullReset — сброс настроек, удаление из памяти всех телефонных номеров, восстановление значения по умолчанию команды BalanceNum.
RingOn — включить уведомление звонком на «главный» номер записанный в первую ячейку памяти при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex
RingOff — выключить уведомление звонком при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex
SmsOn — включить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex SmsOff — выключить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex
PIROn — включить обработку датчика движения
PIROff — выключить обработку датчика движения
ReedSwitchOn — включить обработку основного герконового датчика
ReedSwitchOff — выключить обработку основного герконового датчика
WatchPowerOn — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану. Удалена начиная с версии GSM_2017_03_01-23-37.
WatchPowerOn1 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану.
WatchPowerOn2 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания в любом случае будет отправлено
WatchPowerOff — выключить контроль внешнего питания
GuardButtonOn — управление сигнализацией внешними устройствами или кнопкой включено Удалена начиная с версии GSM_2017_04_16-12-00.
GuardButtonOn1 — функция постановки или снятия охраны внешними устройствами или кнопкой включена
GuardButtonOn2 — функция только постановки на охрану внешними устройствами или кнопкой включена, снятие с охраны производится по звонку на устройство или с помощью смс команды.
GuardButtonOff — управление сигнализацией внешними устройствами или кнопкой выключено
Reboot — перезагрузка устройства (Arduino)
PCFForceOn — постоянный мониторинг группы всех датчиков модуля расширения
PCFForceOff — мониторинг группы всех датчиков модуля расширения только при постановке устройства на охрану
MainSensorLevelHigh — тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (D6) от датчика
MainSensorLevelLow — тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (D6) от датчика
MainSensorLevelOff — обработка датчика на входе (D6) отключена
SecondSensorLevelHigh — тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (A0) от датчика
SecondSensorLevelLow — тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (A0) от датчика
SecondSensorLevelOff — обработка датчика на входе (A0) отключена
MainDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании основного датчика (D6), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
SecondDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании дополнительного датчика (A0), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
PCFDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании датчиков платы расширения (PCF8574), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
GuardOn — поставить на охрану
GuardOff — снять охраны
Open — команда управления внешним устройством
Info — проверить состояние, в ответ на это сообщение будет отправлено sms с информацией о том с какого номера была включена/выключена охрана
Pause — приостанавливает работу системы на время установленное командой sleeptime в минутах, система не реагирует на срабатывания датчика.
TestOn — включается тестовый режим, мигает синим светодиодом.
TestOff — выключается тестовый режим.
LedOff — выключает светодиод режима ожидания.
LedOn — включает светодиод режима ожидания.
Money — запроса баланса.
ClearSms — Удалить из памяти все sms
Консольные команды (до версии GSM_2017_04_24-13-22.hex) — вводятся в мониторе порта Arduino IDE:
AddPhone — аналогична sms-команде AddPhone
DeletePhone — аналогична sms-команде DeletePhone
EditSensor — аналогична sms-команде EditSensor
ListPhone — вывод в монитор порта списка сохранённых в памяти телефонов
ResetConfig — аналогична sms-команде ResetConfig
ResetPhone — аналогична sms-команде ResetPhone
FullReset — аналогична sms-команде FullReset
ClearSms — аналогична sms-команде ClearSms
WatchPowerOn1 — аналогична sms-команде WatchPowerOn1
WatchPowerOn2 — аналогична sms-команде WatchPowerOn2
WatchPowerOff — аналогична sms-команде WatchPowerOff
GuardButtonOn — аналогична sms-команде GuardButtonOn . Удалена начиная с версии GSM_2017_04_16-12-00
GuardButtonOn1 — аналогична sms-команде GuardButtonOn1
GuardButtonOn2 — аналогична sms-команде GuardButtonOn2
GuardButtonOff — аналогична sms-команде GuardButtonOff
Memtest — тест энергонезависимой памяти устройства, все настройки устройства будут сброшены, аналогично команде FullReset.
I2CScan — поиск и инициализация поддерживаемых устройств на шине I2C.
ListConfig — вывод в монитор порта текущей конфигурации устройства.
ListSensor — вывод в монитор порта текущей конфигурации датчиков.
Пользовательские блоки для работы с GSM модулями. – FLProg
Блок работает по принципу Запрос-Ответ. Модулю посылается команда, и анализируется ответ.
Тем самым удалось полностью уйти от временных задержек и использования оператора delay()(останавливает выполнение всей программы на указанное количество мс), который используется в большинстве примеров по работе с такими модулями.
1. Для M590
Реализованы следующие функции:
– Отправка SMS (только латинский вариант)
– Прием SMS (только латинский вариант)
– Обработка входящего звона.
* Определение номера звонящего
* Подсчет числа гудков входящего вызова
* Сброс вызова
*Так как модуль не имеет входов под микрофон и динамик, остальные функции голосового соединения не реализованы.
– Периодический опрос модуля на :
* Наличие регистрации в сети оператора
* Уровень сигнала, в dBm
* Имя оператора сотовой связи
* Текущее время модуля . Синхронизации времени с вышкой сотовой связи, идет при запуске модуля, для повторной, его необходимо перезагрузить
– Работа с USSD запросами
– Работа с телефонной книгой SIM-карты. Предназначено для возможности задачи рабочих номеров не в проекте, а на сим карте, и главное возможности смены рабочих номеров, без перепрограммирования контроллера.
-Реализовано возможность исходящего голосового вызова (разговор невозможен, не имеет входов под микрофон и динамик )
-Добавлен параметр выбора частоты работы сотовой связи авто/900/1800.
2 Для SIM800
Поддерживает все функции описанные для M590, за некоторыми отличиями:
– Обработка входящих звонков, возможно установка соединения и разговора
– Исходящий голосовой вызов
– Поддержка приема DTMF кодов.
Подробнее в описании блока.
3 Для SIM900
Поддерживает все функции описанные для SIM800, за некоторыми отличиями:
– Поддержка приема DTMF кодов. (Не работает в некоторых прошивках, в этом случаи надо отключать через параметры )
Подробнее в описании блока.
Блок может работать как с аппаратными COM портами, так и SoftwareSerial.
Ограничения при использовании SoftwareSerial
На платах Arduino Mega и Mega2560 некоторые выводы не поддерживают прерывания, возникающие при изменении уровня сигнала. В силу этого, на данных платах в качестве вывода RX могут использоваться только следующие выводы: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
На Arduino Leonardo некоторые выводы не поддерживают прерывания, возникающие при изменении уровня сигнала. Поэтому, на этой плате в качестве вывода RX могут использоваться только следующие выводы: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
Подробнее в описании блока.
Приводить описания подключения не буду, приложу даташиты модулей, и ссылки на статьи, где это подробно описано.
Единственное, модули очень требовательны к питанию, и еще желательно согласование логических уровней при подключении к COM потру. Модуль имеет уровень на 3.3В, а Arduino, обычно 5В.
Перед началом работы с модулем необходимо подключится к модулю напрямую.
Используем USB – com преобразователь (возможно использовать для этих целей платы ардуино с замкнутым GND и RESET) Произвести ряд настроек, как это делаться читайте с статьях приведенный в конце.
Обязательно настройка порта (AT+IPR=).
Для модуля SIM800, также включить получение времени ( AT+CLTS=1)
Еще прилагаю два блока для расшифровки времени, которое выдает блок работы с GSM модулем.
В разработке и тестировании блоков очень помогли пользователи НовыйUser, stapmoff,
Обещанные ссылки :
GSM модуль NEOWAY M590 – описание и команды управления
Отправка СМС через Arduino и GSM модуль NEOWAY M590
Подключение GSM модуля SIM800L к Arduino
GSM/GPRS модуль SIM900
GSM/GPRS модуль SIM900. Часть вторая.
Вложения
GSM-NEW
Date added: 10.11.2019 11:54
File size: 22 MB
Downloads: 1873
Publication author
574
Comments: 14Publics: 363Registration: 04-02-2018
Бюджетная GSM сигнализация с мозгами из Arduino
Внимание! Команды выделенные жирным шрифтом могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Остальные команды могут быть выполнены с номеров с признаком «Management».
SMS — команды управления не чувствительны к регистру:
AddPhone — Добавить номер телефона. Всего может быть добавлено не более 9 номеров + 1 основной номер который автоматически сохраняется в память при первом звонке на устройство после сброса на заводские установки командами ResetPhone или FullReset. Т.е. кто первый позвонил на устройство после его сброска на заводские установки тот и и «главный», этот номер заносится в первую ячейку памяти и его невозможно изменить или удалить через смс. Возможно добавить два одинаковых номера, но тогда у номера дубликата автоматически остаётся только признак «r» — исключительно для повторного голосового вызова.
Пример команды:
До версии GSM_2017_05_26-20-22.hex:
AddPhone:2+71234567891m
AddPhone:3+71234567892a
AddPhone:4+71234567893
AddPhone:5+71234567894ma
Начиная с версии GSM_2017_05_26-20-22. hex:
AddPhone:2+71234567891mrsp
AddPhone:3+71234567892ms
AddPhone:4+71234567893sp
AddPhone:5+71234567894r
Синтаксис команды:
AddPhone — команда
: — разделитель
5 — записать в пятую ячейку памяти
+71234567890 — номер телефона
До версии GSM_2017_05_26-20-22.hex:
а — Параметр «Alarm» — на номера с этим параметром будут отправляться смс — сообщения о срабатывании сигнализации и сообщения постановке или снятии с охраны.
Начиная с версии GSM_2017_05_26-20-22.hex:
m — Параметр «Management» — разрешено управление сигнализацией
s — Параметр «SMS» — будет отправлено sms сообщение при срабатывании датчиков
r — Параметр «Ring» — будет совершен голосовой вызов при срабатывании датчиков
p — Параметр «Power» — будет отправлено sms сообщение при включении/отключении внешнего питания
i — Параметр «Info» — будет отправлено sms сообщение при постановке или снятии с охраны
При отсутствии параметров «m», «s», «r», «p»,«i» телефон заносится в память, но никак не используется.
DeletePhone — Удалить номер телефона.
Пример команды:
DeletePhone:+71234567891
Синтаксис команды:
DeletePhone — команда
: — разделитель
+71234567891 — номер телефона
EditMainPhone — Изменить параметры «s», «r», «p», «i» основного телефона, этот номер занесён в первую ячейку памяти.
Пример команды:
EditMainPhone:spri
Синтаксис команды:
EditMainPhone — команда
: — разделитель
srpi — параметры
BalanceNum — Изменение номера запроса баланса и обработка длины ответа запроса. Значение по умолчанию для Beeline: #100#L22.
Пример команды:
BalanceNum:#103#L24
Синтаксис команды:
BalanceNum — команда
: — разделитель
#103# — номер запроса баланса
L24 — Длина (len) пересылаемого ответа 24 символа, обрезаем спам из запроса баланса.
EditSensor — Изменить название датчика и логический уровень срабатывания. Всего может быть не более 8 дополнительных датчиков. После изменения параметров необходима перезагрузка устройства.
Пример команды:
EditSensor:1+Datchik dvizheniya v koridore#h
EditSensor:2+Gerkon na okne
Синтаксис команды:
EditSensor — команда
: — разделитель
1 — записать в первую ячейку памяти
+ — разделитель
Datchik dvizheniya v koridore — название датчика, не может превышать 36 символов, включая пробелы.
#h — Признак высокого логического уровня с датчика, при получении которого сработает сигнализация. Если отсутствует «#h», сигнализация будет срабатывать при получении с датчика низкого логического уровня.
SleepTime — Время «засыпания» сигнализации при получении смс — команды «Pause», указывается в минутах. Значение по умолчанию: 15, не может быть менее 1 и более 60.
Пример команды:
SleepTime:20
Синтаксис команды:
SleepTime — команда
: — разделитель
20 — 20 минут «сна».
AlarmPinTime — Время на которое включается/выключается тревожный/инверсный пин, указывается в секундах. Значение по умолчанию: 60, не может быть менее 1 секунды и более 43200 секунд (12 часов).
Пример команды:
AlarmPinTime:30
Синтаксис команды:
AlarmPinTime — команда
: — разделитель
30 — 30 секунд включения/выключения тревожного пина.
DelayBeforeGuard — Время до постановки устройства на охрану, после получения соответствующей команды.
Пример команды:
DelayBeforeGuard:25
Синтаксис команды:
DelayBeforeGuard — команда
: — разделитель
25 — 25 секунд до постановки на охрану
DelayBeforeAlarm — Время по истечении которого будет отправлено «тревожное» смс уведомление, если за этот период времени сигнализация не была снята с охраны. Заменена расширенными командами начиная с версии GSM_2017_08_10-12-17.hex
Пример команды:
DelayBeforeAlarm:40
Синтаксис команды:
DelayBeforeAlarm — команда
: — разделитель
40 — 40 секунд до отправки «тревожного» уведомления
WatchPowerTime — Время в минутах по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Если внешнее питание будет восстановлено до истечения установленного времени, то сообщение не будет отправлено.
Пример команды:
WatchPowerTime:5
Синтаксис команды:
WatchPowerTime — команда
: — разделитель
5 — 5 минут до отправки смс сообщения
RingTime — Длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд.
Пример команды:
RingTime:40
Синтаксис команды:
RingTime — команда
: — разделитель
40 — 40 длительность вызова составит 40 секунд, после чего будет вызван следующий абонент.
ModemID — Принудительная установка модели используемого модема. Возможные значения: 0 — автоопределение модема, 1 — M590, 2 — SIM800l, 3 — A6_Mini.
Пример команды:
ModemID:2
Синтаксис команды:
ModemID — команда
: — разделитель
2 — ID модема.
ExtDeviceTime — Количество секунд на которое изменится уровень сигнала на выходе управления внешним устройством.
Пример команды:
ExtDeviceTime:5
Синтаксис команды:
ExtDeviceTime- команда
: — разделитель
5 — 5 секунд
ExtDeviceLevelLow — Внешнее устройство подключенное к выходу A3 управляется низким уровнем сигнала (GND). На выходе по умолчанию будет присутствовать высокий уровень +5В, пока не поступит команда управления внешним устройством
ExtDeviceLevelHigh — Внешнее устройство подключенное к выходу A3 управляется высоким уровнем сигнала (+5V). На выходе по умолчанию будет присутствовать низкий уровень GND, пока не поступит команда управления внешним устройством
ResetSensor — сброс параметров датчиков расширителя порта
ResetConfig — сброс настроек на заводские установки
ResetPhone — удаление из памяти всех телефонных номеров
FullReset — сброс настроек, удаление из памяти всех телефонных номеров, восстановление значения по умолчанию команды BalanceNum.
RingOn — включить уведомление звонком на «главный» номер записанный в первую ячейку памяти при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hexRingOff — выключить уведомление звонком при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex
SmsOn — включить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex SmsOff — выключить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex
PIROn — включить обработку датчика движения
PIROff — выключить обработку датчика движения
ReedSwitchOn — включить обработку основного герконового датчика
ReedSwitchOff — выключить обработку основного герконового датчика
WatchPowerOn — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану. Удалена начиная с версии GSM_2017_03_01-23-37.
WatchPowerOn1 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану.
WatchPowerOn2 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания в любом случае будет отправлено
WatchPowerOff — выключить контроль внешнего питания
GuardButtonOn — управление сигнализацией внешними устройствами или кнопкой включено Удалена начиная с версии GSM_2017_04_16-12-00.
GuardButtonOn1 — функция постановки или снятия охраны внешними устройствами или кнопкой включена
GuardButtonOn2 — функция только постановки на охрану внешними устройствами или кнопкой включена, снятие с охраны производится по звонку на устройство или с помощью смс команды.
GuardButtonOff — управление сигнализацией внешними устройствами или кнопкой выключено
Reboot — перезагрузка устройства (Arduino)
PCFForceOn — постоянный мониторинг группы всех датчиков модуля расширения
PCFForceOff — мониторинг группы всех датчиков модуля расширения только при постановке устройства на охрану
MainSensorLevelHigh — тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (D6) от датчика
MainSensorLevelLow — тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (D6) от датчика
MainSensorLevelOff — обработка датчика на входе (D6) отключена
SecondSensorLevelHigh — тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (A0) от датчика
SecondSensorLevelLow — тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (A0) от датчика
SecondSensorLevelOff — обработка датчика на входе (A0) отключена
MainDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании основного датчика (D6), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
SecondDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании дополнительного датчика (A0), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
PCFDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании датчиков платы расширения (PCF8574), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
GuardOn — поставить на охрану
GuardOff — снять охраны
Open — команда управления внешним устройством
Info — проверить состояние, в ответ на это сообщение будет отправлено sms с информацией о том с какого номера была включена/выключена охрана
Pause — приостанавливает работу системы на время установленное командой sleeptime в минутах, система не реагирует на срабатывания датчика.
TestOn — включается тестовый режим, мигает синим светодиодом.
TestOff — выключается тестовый режим.
LedOff — выключает светодиод режима ожидания.
LedOn — включает светодиод режима ожидания.
Money — запроса баланса.
ClearSms — Удалить из памяти все sms
Консольные команды (до версии GSM_2017_04_24-13-22.hex) — вводятся в мониторе порта Arduino IDE:
AddPhone — аналогична sms-команде AddPhone
DeletePhone — аналогична sms-команде DeletePhone
EditSensor — аналогична sms-команде EditSensor
ListPhone — вывод в монитор порта списка сохранённых в памяти телефонов
ResetConfig — аналогична sms-команде ResetConfig
ResetPhone — аналогична sms-команде ResetPhone
FullReset — аналогична sms-команде FullReset
ClearSms — аналогична sms-команде ClearSms
WatchPowerOn1 — аналогична sms-команде WatchPowerOn1
WatchPowerOn2 — аналогична sms-команде WatchPowerOn2
WatchPowerOff — аналогична sms-команде WatchPowerOff
GuardButtonOn — аналогична sms-команде GuardButtonOn . Удалена начиная с версии GSM_2017_04_16-12-00
GuardButtonOn1 — аналогична sms-команде GuardButtonOn1
GuardButtonOn2 — аналогична sms-команде GuardButtonOn2
GuardButtonOff — аналогична sms-команде GuardButtonOff
Memtest — тест энергонезависимой памяти устройства, все настройки устройства будут сброшены, аналогично команде FullReset.
I2CScan — поиск и инициализация поддерживаемых устройств на шине I2C.
ListConfig — вывод в монитор порта текущей конфигурации устройства.
ListSensor — вывод в монитор порта текущей конфигурации датчиков.
gravity__uart_a6_gsm _ & _ gprs_module_sku__tel0113-DFRobot
- ДОМ
- СООБЩЕСТВО
- ФОРУМ
- БЛОГ
- ОБРАЗОВАНИЕ
ДОМА
ФОРУМ
БЛОГ
Контроллер
DFR0010 Arduino Nano 328
DFR0136 Сервоконтроллер Flyduino-A 12
DFR0225 Romeo V2-Все в одном контроллере R3
Arduino_Common_Controller_Selection_Guide
DFR0182 Беспроводной геймпад V2.0
DFR0100 Комплект для начинающих DFRduino для Arduino V3
DFR0267 Блуно
DFR0282 Жук
DFR0283 Мечтательный клен V1.0
DFR0296 Блуно Нано
DFR0302 MiniQ 2WD Plus
DFR0304 Беспроводной геймпад BLE V2
DFR0305 RoMeo BLE
DFR0351 Romeo BLE mini V2.0
DFR0306 Блуно Мега 1280
DFR0321 Узел Wido-WIFI IoT
DFR0323 Блуно Мега 2560
DFR0329 Блуно М3
DFR0339 Жук Блуно
DFR0343 Контроллер с низким энергопотреблением UHex
DFR0355 SIM808 с материнской платой Leonardo
DFR0392 DFRduino M0 материнская плата, совместимая с Arduino
DFR0398 Контроллер роботов Romeo BLE Quad
DFR0416 Bluno M0 Материнская плата
DFR0575 Жук ESP32
DFR0133 X-Доска
DFR0162 X-Board V2
DFR0428 3.5-дюймовый сенсорный TFT-экран для Raspberry Pi
DFR0494 Raspberry Pi ШАПКА ИБП
DFR0514 DFR0603 IIC 16X2 RGB LCD KeyPad HAT V1.0
DFR0524 5.5 HDMI OLED-дисплей с емкостным сенсорным экраном V2.0
DFR0550 5-дюймовый TFT-дисплей с сенсорным экраном V1.0
DFR0591 модуль дисплея raspberry pi e-ink V1.0
DFR0592 Драйвер двигателя постоянного тока HAT
DFR0604 HAT расширения ввода-вывода для Pi zero V1.0
DFR0566 Шляпа расширения ввода-вывода для Raspberry Pi
DFR0528 Шляпа ИБП для Raspberry Pi Zero
DFR0331 Romeo для контроллера Edison
DFR0453 DFRobot CurieNano — мини-плата Genuino Arduino 101
TEL0110 CurieCore Intel® Curie Neuron Module
DFR0478 Микроконтроллер FireBeetle ESP32 IOT (V3.0) с поддержкой Wi-Fi и Bluetooth
DFR0483 FireBeetle Covers-Gravity I O Expansion Shield
FireBeetle Covers-24 × 8 светодиодная матрица
TEL0121 FireBeetle Covers-LoRa Radio 433 МГц
TEL0122 FireBeetle Covers-LoRa Radio 915 МГц
TEL0125 FireBeetle охватывает LoRa Radio 868MHz
DFR0489 FireBeetle ESP8266 Микроконтроллер IOT
DFR0492 FireBeetle Board-328P с BLE4.1
DFR0498 FireBeetle Covers-Camera & Audio Media Board
DFR0507 FireBeetle Covers-OLED12864 Дисплей
DFR0508 FireBeetle Covers-Двигатель постоянного тока и шаговый драйвер
DFR0511 FireBeetle Covers-ePaper Черно-белый дисплейный модуль
DFR0531 FireBeetle Covers-ePaper Черно-белый и красный дисплейный модуль
DFR0536 Micro bit плата расширения геймпада
DFR0548 Плата расширения микробитового драйвера
ROB0148 micro: Maqueen для micro: bit
ROB0150 Microbit Круглая плата расширения для светодиодов RGB
MBT0005 Micro IO-BOX
SEN0159 Датчик CO2
DFR0049 DFRobot Датчик газа
TOY0058 Датчик атмосферного давления
SEN0220 Инфракрасный датчик CO2 0-50000ppm
SEN0219 Гравитационный аналоговый инфракрасный датчик CO2 для Arduino
SEN0226 Датчик барометра Gravity I2C BMP280
SEN0231 Датчик силы тяжести HCHO
SEN0251 Gravity BMP280 Датчики атмосферного давления
SEN0132 Датчик угарного газа MQ7
SEN0032 Трехосный акселерометр — ADXL345
DFR0143 Трехосевой акселерометр MMA7361
Трехосный акселерометр серии FXLN83XX
SEN0072 CMPS09 — Магнитный компас с компенсацией наклона
SEN0073 9 степеней свободы — бритва IMU
DFR0188 Flymaple V1.1
SEN0224 Трехосевой акселерометр Gravity I2C — LIS2DH
SEN0140 Датчик IMU с 10 степенями свободы, версия 2.0
SEN0250 Gravity BMI160 6-осевой инерционный датчик движения
SEN0253 Gravity BNO055 + BMP280 интеллектуальный 10DOF AHRS
SEN0001 URM37 V5.0 Ультразвуковой датчик
SEN0002 URM04 V2.0
SEN0004 SRF01 Ультразвуковой датчик
SEN0005 SRF02 Ультразвуковой датчик
SEN0006 SRF05 Ультразвуковой датчик
SEN0007 SRF08 Ультразвуковой датчик
SEN0008 SRF10 Ультразвуковой датчик
SEN0149 URM06-RS485 Ультразвуковой
SEN0150 URM06-UART Ультразвуковой
SEN0151 URM06-PULSE Ультразвуковой
SEN0152 URM06-ANALOG Ультразвуковой
SEN0153 Ультразвуковой датчик URM07-UART
SEN0246 URM08-RS485 Водонепроницаемый гидролокатор-дальномер
SEN0304 Ультразвуковой датчик URM09 (Gravity-I2C) (V1.0)
SEN0304 Ультразвуковой датчик URM09 (Gravity-I2C) (V1.0)
SEN0300 Водонепроницаемый ультразвуковой датчик ULS
SEN0301 Водонепроницаемый ультразвуковой датчик ULA
SEN0307 URM09 Аналог ультразвукового датчика силы тяжести
SEN0311 A02YYUW Водонепроницаемый ультразвуковой датчик
SEN0312 ME007YS Водонепроницаемый ультразвуковой датчик
SEN0313 A01NYUB Водонепроницаемый ультразвуковой датчик
DFR0066 SHT1x Датчик влажности и температуры
DFR0067 DHT11 Датчик температуры и влажности
SEN0137 DHT22 Модуль температуры и влажности
DFR0023 Линейный датчик температуры DFRobot LM35
DFR0024 Gravity DS18B20 Датчик температуры, совместимый с Arduino V2
DFR0024 Gravity DS18B20 Датчик температуры, совместимый с Arduino V2
SEN0114 Датчик влажности
Датчик температуры TOY0045 TMP100
TOY0054 SI7021 Датчик температуры и влажности
SEN0206 Датчик инфракрасного термометра MLX
SEN0227 SHT20 Водонепроницаемый датчик температуры и влажности I2C
SEN0236 Gravity I2C BME280 Датчик окружающей среды Температура, влажность, барометр
SEN0248 Gravity I2C BME680 Датчик окружающей среды VOC, температура, влажность, барометр
DFR0558 Цифровой высокотемпературный датчик силы тяжести типа К
SEN0308 Водонепроницаемый емкостный датчик влажности почвы
SEN0019 Регулируемый переключатель инфракрасного датчика
SEN0042 DFRobot Инфракрасный датчик прорыва
SEN0143 SHARP GP2Y0A41SK0F ИК-датчик рейнджера 4-30 см
SEN0013 Sharp GP2Y0A02YK ИК-датчик рейнджера 150 см
SEN0014 Sharp GP2Y0A21 Датчик расстояния 10-80 см
SEN0085 Sharp GP2Y0A710K Датчик расстояния 100-550 см
Модуль цифрового ИК-приемника DFR0094
DFR0095 Модуль цифрового ИК-передатчика
SEN0018 Цифровой инфракрасный датчик движения
DFR0107 ИК-комплект
SEN0264 TS01 ИК-датчик температуры (4-20 мА)
SEN0169 Аналоговый pH-метр Pro
DFR0300-H Gravity: аналоговый датчик электропроводности (K = 10)
DFR0300 Гравитационный аналоговый датчик электропроводности V2 K = 1
SEN0165 Аналоговый измеритель ОВП
SEN0161-V2 Комплект гравитационного аналогового датчика pH V2
SEN0161 PH метр
SEN0237 Гравитационный аналоговый датчик растворенного кислорода
SEN0204 Бесконтактный датчик уровня жидкости XKC-Y25-T12V
SEN0205 Датчик уровня жидкости-FS-IR02
SEN0244 Gravity Analog TDS Sensor Meter для Arduino
SEN0249 Комплект измерителя pH с аналоговым наконечником копья силы тяжести для применения в почве и пищевых продуктах
SEN0121 Датчик пара
SEN0097 Датчик освещенности
DFR0026 Датчик внешней освещенности DFRobot
TOY0044 УФ-датчик
SEN0172 LX1972 датчик внешней освещенности
SEN0043 Датчик внешней освещенности TEMT6000
SEN0175 УФ-датчик v1.0-ML8511
SEN0228 Gravity I2C VEML7700 Датчик внешней освещенности
SEN0101 Датчик цвета TCS3200
DFR0022 Датчик оттенков серого DFRobot
Датчик отслеживания линии SEN0017 для Arduino V4
SEN0147 Интеллектуальный датчик оттенков серого
SEN0212 TCS34725 Датчик цвета I2C для Arduino
SEN0245 Gravity VL53L0X Лазерный дальномер ToF
SEN0259 TF Mini LiDAR ToF Laser Range Sensor
SEN0214 Датчик тока 20А
SEN0262 Гравитационный аналоговый преобразователь тока в напряжение для приложений 4 ~ 20 мА
SEN0291 Gravity: Цифровой ваттметр I2C
DFR0027 Цифровой датчик вибрации DFRobot V2
DFR0028 DFRobot Датчик наклона
DFR0029 Цифровая кнопка DFRobot
DFR0030 DFRobot емкостный сенсорный датчик
Модуль цифрового зуммера DFR0032
DFR0033 Цифровой магнитный датчик
DFR0034 Аналоговый звуковой датчик
SEN0038 Колесные энкодеры для DFRobot 3PA и 4WD Rovers
DFR0051 Аналоговый делитель напряжения
DFR0052 Аналоговый пьезодисковый датчик вибрации
DFR0076 Датчик пламени
DFR0053 Аналоговый датчик положения ползуна
DFR0054 Аналоговый датчик вращения V1
DFR0058 Аналоговый датчик вращения V2
Модуль джойстика DFR0061 для Arduino
DFR0075 AD Клавиатурный модуль
Модуль вентилятора DFR0332
SEN0177 PM2.5 лазерный датчик пыли
Модуль датчика веса SEN0160
SEN0170 Тип напряжения датчика скорости ветра 0-5 В
TOY0048 Высокоточный двухосевой датчик инклинометра, совместимый с Arduino Gadgeteer
SEN0187 RGB и датчик жестов
SEN0186 Метеостанция с анемометром Флюгер Дождь ведро
SEN0192 Датчик микроволн
SEN0185 датчик Холла
FIT0449 DFRobot Speaker v1.0
Датчик частоты сердечных сокращений SEN0203
DFR0423 Самоблокирующийся переключатель
SEN0213 Датчик монитора сердечного ритма
SEN0221 Датчик угла Холла силы тяжести
Датчик переключателя проводимости SEN0223
SEN0230 Инкрементальный фотоэлектрический датчик угла поворота — 400P R
SEN0235 Модуль поворотного энкодера EC11
SEN0240 Аналоговый датчик ЭМГ от OYMotion
SEN0232 Гравитационный аналоговый измеритель уровня звука
SEN0233 Монитор качества воздуха PM 2.5, формальдегид, датчик температуры и влажности
DFR0515 FireBeetle Covers-OSD Модуль наложения символов
SEN0257 Датчик гравитационного давления воды
SEN0289 Gravity: Цифровой датчик встряхивания
SEN0290 Gravity: Датчик молнии
DFR0271 GMR Плата
ROB0003 Pirate 4WD Мобильная платформа
Мобильная платформа ROB0005 Turtle 2WD
ROB0025 NEW A4WD Мобильный робот с кодировщиком
ROB0050 4WD MiniQ Полный комплект
ROB0111 4WD MiniQ Cherokey
ROB0036 Комплект роботизированной руки с 6 степенями свободы
Комплект наклонно-поворотного устройства FIT0045 DF05BB
ROB0102 Мобильная платформа Cherokey 4WD
ROB0117 Базовый комплект для Cherokey 4WD
ROB0022 4WD Мобильная платформа
ROB0118 Базовый комплект для Turtle 2WD
Робот-комплект ROB0080 Hexapod
ROB0112 Мобильная платформа Devastator Tank
ROB0114 Мобильная платформа Devastator Tank
ROB0124 Мобильная платформа HCR с всенаправленными колесами
ROB0128 Devastator Tank Мобильная платформа Металлический мотор-редуктор постоянного тока
ROB0137 Explorer MAX Робот
ROB0139 Робот FlameWheel
DFR0270 Accessory Shield для Arduino
DFR0019 Щит для прототипирования для Arduino
DFR0265 IO Expansion Shield для Arduino V7
DFR0210 Пчелиный щит
DFR0165 Mega IO Expansion Shield V2.3
DFR0312 Плата расширения Raspberry Pi GPIO
DFR0311 Raspberry Pi встречает Arduino Shield
DFR0327 Arduino Shield для Raspberry Pi 2B и 3B
DFR0371 Экран расширения ввода-вывода для Bluno M3
DFR0356 Щит Bluno Beetle
DFR0412 Gravity IO Expansion Shield для DFRduino M0
DFR0375 Cookie I O Expansion Shield V2
DFR0334 GPIO Shield для Arduino V1.0
DFR0502 Gravity IO Expansion & Motor Driver Shield V1.1
DFR0518 Micro Mate — мини-плата расширения для микробита
DFR0578 Gravity I O Expansion Shield для OpenMV Cam M7
DFR0577 Gravity I O Expansion Shield для Pyboard
DFR0626 MCP23017 Модуль расширения с IIC на 16 цифровых IO
DFR0287 LCD12864 Экран
DFR0009 Экран ЖК-клавиатуры для Arduino
DFR0063 I2C TWI LCD1602 Модуль, совместимый с Gadgeteer
Модуль DFR0154 I2C TWI LCD2004, совместимый с Arduino Gadgeteer
Светодиодная матрица DFR0202 RGB
DFR0090 3-проводной светодиодный модуль
TOY0005 OLED 2828 цветной дисплейный модуль.Совместимость с NET Gadgeteer
Модуль дисплея TOY0006 OLED 9664 RGB
Модуль дисплея TOY0007 OLED 2864
FIT0328 2.7 OLED 12864 дисплейный модуль
DFR0091 3-проводной последовательный ЖК-модуль, совместимый с Arduino
DFR0347 2.8 TFT Touch Shield с 4 МБ флэш-памяти для Arduino и mbed
DFR0348 3.5 TFT Touch Shield с 4 МБ флэш-памяти для Arduino и mbed
DFR0374 Экран LCD клавиатуры V2.0
DFR0382 Экран со светодиодной клавиатурой V1.0
DFR0387 TELEMATICS 3.5 TFT сенсорный ЖК-экран
DFR0459 Светодиодная матрица RGB 8×8
DFR0460 Светодиодная матрица RGB 64×32 — шаг 4 мм / Гибкая светодиодная матрица 64×32 — Шаг 4 мм / Гибкая светодиодная матрица 64×32 — Шаг 5 мм
DFR0461 Гибкая светодиодная матрица 8×8 RGB Gravity
DFR0462 Гибкая светодиодная матрица 8×32 RGB Gravity
DFR0463 Gravity Гибкая светодиодная матрица 16×16 RGB
DFR0471 Светодиодная матрица RGB 32×16 — шаг 6 мм
DFR0472 Светодиодная матрица RGB 32×32 — шаг 4 мм
DFR0464 Gravity I2C 16×2 ЖК-дисплей Arduino с подсветкой RGB
DFR0499 Светодиодная матрица RGB 64×64 — шаг 3 мм
DFR0506 7-дюймовый дисплей HDMI с емкостным сенсорным экраном
DFR0555 \ DF0556 \ DFR0557 Gravity I2C LCD1602 Модуль ЖК-дисплея Arduino
DFR0529 2.2-дюймовый ЖК-дисплей TFT V1.0 (интерфейс SPI)
DFR0605 Gravity: цифровой светодиодный модуль RGB
FIT0352 Цифровая светодиодная водонепроницаемая лента с RGB-подсветкой 60LED м * 3 м
DFR0645-G DFR0645-R 4-цифровой светодиодный сегментный модуль дисплея
Артикул DFR0646-G DFR0646-R 8-цифровой светодиодный сегментный модуль дисплея
DFR0597 Гибкая светодиодная матрица RGB 7×71
DFR0231 Модуль NFC для Arduino
Модуль радиоданных TEL0005 APC220
TEL0023 BLUETOOH BEE
TEL0026 DF-BluetoothV3 Bluetooth-модуль
Модуль беспроводного программирования TEL0037 для Arduino
TEL0044 DFRduino GPS Shield-LEA-5H
TEL0047 WiFi Shield V2.1 для Arduino
TEL0051 GPS GPRS GSM модуль V2.0
TEL0067 Wi-Fi Bee V1.0
TEL0073 BLE-Link
TEL0075 RF Shield 315 МГц
TEL0078 WIFI Shield V3 PCB Антенна
TEL0079 WIFI Shield V3 RPSMA
TEL0084 BLEmicro
TEL0086 DF-маяк EVB
TEL0087 USBBLE-LINK Bluno Адаптер для беспроводного программирования
TEL0080 UHF RFID МОДУЛЬ-USB
TEL0081 УВЧ RFID МОДУЛЬ-RS485
TEL0082 UHF RFID МОДУЛЬ-UART
TEL0083-A GPS-приемник для Arduino Model A
TEL0092 WiFi Bee-ESP8266 Wirelss модуль
Модуль GPS TEL0094 с корпусом
TEL0097 SIM808 GPS GPRS GSM Shield
DFR0342 W5500 Ethernet с материнской платой POE
DFR0015 Xbee Shield для Arduino без Xbee
TEL0107 WiFiBee-MT7681 Беспроводное программирование Arduino WiFi
TEL0089 SIM800C GSM GPRS Shield V2.0
Модуль приемника RF TEL0112 Gravity 315MHZ
TEL0113 Gravity UART A6 GSM и GPRS модуль
TEL0118 Gravity UART OBLOQ IoT-модуль
Модуль TEL0120 DFRobot BLE4.1
Bluetooth-адаптер TEL0002
Модуль аудиоприемника Bluetooth TEL0108
TEL0124 SIM7600CE-T 4G (LTE) Shield V1.0
DFR0505 SIM7000C Arduino NB-IoT LTE GPRS Expansion Shield
DFR0013 IIC для GPIO Shield V2.0
Плата привода двигателя датчика DFR0057 — Версия 2.2
DFR0062 Адаптер WiiChuck
DFR0233 Узел датчика RS485 V1.0
DFR0259 Arduino RS485 щит
DFR0370 Экран CAN-BUS V2
DFR0627 IIC для двойного модуля UART
TEL0070 Multi USB RS232 RS485 TTL преобразователь
DFR0064 386AMP модуль аудиоусилителя
DFR0273 Экран синтеза речи
DFR0299 DFPlayer Mini
TOY0008 DFRduino Плеер MP3
SEN0197 Диктофон-ISD1820
DFR0420 Аудиозащитный экран для DFRduino M0
DFR0534 Голосовой модуль
SD2403 Модуль часов реального времени SKU TOY0020
TOY0021 SD2405 Модуль часов реального времени
DFR0151 Модуль Gravity I2C DS1307 RTC
DFR0469 Модуль Gravity I2C SD2405 RTC
DFR0316 MCP3424 18-битный канал АЦП-4 с усилителем с программируемым усилением
DFR0552 Gravity 12-битный модуль I2C DAC
DFR0553 Gravity I2C ADS1115 16-битный модуль АЦП, совместимый с Arduino и Raspberry Pi
DFR0117 Модуль хранения данных Gravity I2C EEPROM
Модуль SD DFR0071
Плата привода двигателя датчика DFR0057 — Версия 2.2
DFR0360 XSP — Программист Arduino
DFR0411 Двигатель постоянного тока Gravity 130
DFR0438 Яркий светодиодный модуль
DFR0439 Светодиодные гирлянды красочные
DFR0440 Модуль микровибрации
DFR0448 Светодиодные гирлянды, теплый белый цвет
Встроенный термопринтер DFR0503 — последовательный TTL
DFR0504 Гравитационный изолятор аналогового сигнала
DFR0520 Двойной цифровой потенциометр 100K
DFR0565 Гравитационный цифровой изолятор сигналов
DFR0563 Гравитация 3.Датчик уровня топлива литиевой батареи 7V
DFR0576 Гравитационный цифровой мультиплексор I2C с 1 по 8
DFR0117 Модуль хранения данных Gravity I2C EEPROM
DRI0001 Моторный щит Arduino L293
DRI0002 MD1.3 2A Двухмоторный контроллер
DRI0009 Моторный щит Arduino L298N
DRI0021 Драйвер двигателя постоянного тока Veyron 2x25A Brush
DRI0017 2A Моторный щит для Arduino Twin
Драйвер двигателя постоянного тока DRI0018 2x15A Lite
Микродвигатель постоянного тока FIT0450 с энкодером-SJ01
FIT0458 Микродвигатель постоянного тока с энкодером-SJ02
DFR0399 Микро-металлический мотор-редуктор постоянного тока 75 1 Вт Драйвер
DRI0039 Quad Motor Driver Shield для Arduino
DRI0040 Двойной 1.Драйвер двигателя 5A — HR8833
DRI0044 2×1.2A Драйвер двигателя постоянного тока TB6612FNG
Драйвер двигателя постоянного тока DFR0513 PPM 2x3A
DFR0523 Гравитационный цифровой перистальтический насос
DRI0027 Digital Servo Shield для Arduino
DRI0029 24-канальный сервопривод Veyron
SER0044 DSS-M15S 270 ° 15KG Металлический сервопривод DF с аналоговой обратной связью
DRI0023 Экран шагового двигателя для Arduino DRV8825
DRI0035 TMC260 Щиток драйвера шагового двигателя
DFR0105 Силовой щит
DFR0205 Силовой модуль
DFR0457 Контроллер мощности Gravity MOSFET
DFR0564 Зарядное устройство USB для 7.Литий-полимерная батарея 4 В
DFR0535 Менеджер солнечной энергии
DFR0559 Солнечная система управления мощностью 5 В для подсолнечника
DFR0559 Менеджер солнечной энергии 5 В
DFR0580 Solar Power Manager для свинцово-кислотных аккумуляторов 12 В
DFR0222 Реле X-Board
Релейный модуль DFR0017, совместимый с Arduino
DFR0289 Релейный контроллер RLY-8-POE
DFR0290 RLY-8-RS485 8-релейный контроллер
DFR0144 Релейный экран для Arduino V2.1
DFR0473 Gravity Digital Relay Module Совместимость с Arduino и Raspberry Pi
KIT0003 EcoDuino — Комплект для автомобильных заводов
KIT0071 Комплект MiniQ Discovery
KIT0098 Пакет компонентов подключаемого модуля Breadboard
Артикул DFR0748 Цветок Китти
SEN0305 Гравитация: HUSKYLENS — простой в использовании датчик машинного зрения с искусственным интеллектом
Freelance | Ардуино GSM A6
Схема подключения
AT-команды
Отправка и получение SMS
Arduino UNO
Ардуино Нано
Интернет вещей
Модуль A6 GSM обычно используется в проектах Arduino IoT.Менее чем за 15 евро вы получаете возможность подключения к сети GSM / GPRS.
Ознакомьтесь с демонстрационным проектом IoT, выполненным с использованием Arduino Nano, GSM-модема A6 и реле.
Вы можете проверить исходный код на
Bitbucket …
Вот простая схема подключения Arduino UNO к модулю A6:
Перед тем, как начать
В Интернете есть различные примеры того, как подключить ваш проект.Это соединение было самым простым, потому что у Arduino IDE могут возникнуть проблемы с загрузкой вашего скетча в Arduino, если что-то подключено к цифровым PINS 0 или 1.
В следующих примерах я буду использовать библиотеку SoftwareSerial. В нем есть ошибка, из-за которой в полученных вами SMS-сообщениях не будет текста. Обходной путь — увеличить размер буфера _SS_MAX_RX_BUFF до 512.
Arduino GSM A6 внешнее питание
Я использую внешнее зарядное устройство для мобильного телефона для питания модуля GSM A6.Была проблема с последовательной связью, пока я не подключил GND PINS от GSM A6 и Arduino UNO. После подключения GND все работает без проблем.
Arduino Nano
Arduino Nano использует ATMega 328P (старый загрузчик). Не удалось загрузить новый эскиз. Обходной путь — включить подробный вывод во время загрузки: Файл -> Ссылки, а затем выберите: Показать подробный вывод во время загрузки. После этого вам необходимо выполнить HW reset Arduino Nano, как только вы увидите следующий текст:
avrdude: Версия 6.3-20171130 Авторские права (c) Брайан Дин, 2000-2005 гг., Http://www.bdmicro.com/ Copyright (c) 2007-2014 Йорг Вунш Общесистемный файл конфигурации - "C: \ Program Files \ WindowsApps ..." Использование порта: COM7 Использование программатора: arduino Преобладающая скорость передачи данных: 57600 Часть AVR: ATmega328P
Затем вы увидите индикатор выполнения, когда он попытается написать. Если запись прошла успешно, то все в порядке (независимо от того, произошла ли ошибка чтения и есть сообщения об ошибках).
реле Arduino
Датчик движения Arduino (PIR)
Прием СМС
#include "SoftwareSerial.h" // Создаем программный серийный объект для связи с A6 SoftwareSerial mySerial (3, 2); // A6 Tx & Rx подключен к Arduino # 3 и # 2 установка void () { // Начинаем последовательную связь с Arduino и Arduino IDE (Serial Monitor) Серийный . Начало (9600); // Начинаем последовательную связь с Arduino и A6 mySerial.begin (9600); Серийный номер .println («Инициализация ...»); задержка (1000); mySerial.println ("AT"); // Как только тест рукопожатия будет успешным, он вернется к ОК updateSerial (); mySerial.println ("AT + CMGF = 1"); // Настройка режима ТЕКСТ updateSerial (); mySerial.println («AT + CNMI = 1,2,0,0,0»); // Решает, как обрабатывать вновь поступившие SMS-сообщения updateSerial (); } пустой цикл () { updateSerial (); } недействительным updateSerial () { задержка (500); в то время как ( серийный . доступный ()) { mySerial.write ( Serial .read ()); // Перенаправить полученное Serial на программный последовательный порт } в то время как (mySerial.available ()) { Serial .write (mySerial.read ()); // Перенаправляем полученный программный последовательный порт на последовательный порт } }
Отправить SMS
#include < SoftwareSerial .h> // Создаем программный серийный объект для связи с A6 SoftwareSerial mySerial (3, 2); // A6 Tx & Rx подключен к Arduino # 3 и # 2 установка void () { Серийный .begin (9600); mySerial.begin (9600); задержка (200); mySerial.println ("AT"); updateSerial (); mySerial.println ("AT + CMGF = 1"); updateSerial (); mySerial.println ("AT + CMGS = \" + 381 XX YYY YYYY \ ""); updateSerial (); mySerial.println («Привет, мир!»); // текстовое содержимое updateSerial (); mySerial.write (26); } пустой цикл () { } недействительным updateSerial () { задержка (1000); в то время как ( серийный . доступный ()) { mySerial.write ( Serial .read ()); // Перенаправляем полученный Serial на программный последовательный порт } в то время как (mySerial.имеется в наличии()) { Serial .write (mySerial.read ()); // Перенаправляем полученный программный последовательный порт на последовательный порт } }
Совершение звонков и SMS с использованием модуля A6 GSM / GPRS, взаимодействующего с Arduino Uno — KT666
Введение:
Модуль A6 GSM / GPRS особенно намного дешевле, чем SIM900, а также его соединения довольно просты. В этом проекте мы увидим, как подключить этот модуль к Arduino, чтобы позвонить и отправить SMS.
ПРИМЕЧАНИЕ. Мобильного адаптера достаточно для питания модуля A6 GSM, который не входит в комплект.
Arduino IDE 1.8.5 (программируемая платформа для Arduino)
Нажмите, чтобы загрузить: https: //www.arduino.cc/en/Main/Software
A6 GSM / GPRS Module
- Размеры: 22,8 × 16,8 × 2,5 мм
- Частота: 850, 900, 1800, 1900 МГц
- Многослотовый GPRS: 12, настраиваемый 1-12
- Станция GPRS: класс B Совместимость с фазой GSM 2/2 +: Класс 4 (2 Вт при 850/900 МГц), Класс 1 (1 Вт при 1800/1900 МГц)
- Рабочее напряжение: 3.3 — 4,2 В
- Ток: 1,3 мА при DRX = 5, 1,2 мА при DRX = 9
- Температура: от -30 градусов до +80 градусов
- Вес: 3,0 г
- Команда AT: Стандартный GSM07.07,07.05 AT команда и команда расширения Ai-Thinker
- Скорость GPRS Class 10: макс. 85,6 кбит / с (вверх), 42,8 кбит / с (вниз)
- Поддержка PBCCH, CSD, USSD
- Стек протоколов: PPP, TCP, UDP, HTTP, FTP, SMTP, MUX
A6 Модуль GSM / GPRS
- Сначала мы вставим Micro Sim в модуль.
ПРИМЕЧАНИЕ. Нажмите и удерживайте кнопку питания в течение нескольких секунд, чтобы включить модуль.
- Соедините контакт U_RxD (приемник) модуля GSM A6 с цифровым контактом 2 Arduino Uno.
- Соедините контакт U_TxD (передатчик) модуля GSM A6 с цифровым контактом 3 Arduino Uno.
- Соедините контакт GND модуля GSM A6 с GND Arduino Uno.
- Соедините контакт VCC 5.0 модуля GSM A6 с контактом PWR модуля GSM A6, который действует как Chip Enable.
ПРИМЕЧАНИЕ. Этот шаг также можно использовать в качестве шага устранения неполадок, когда на мобильный телефон не поступает сообщение или звонок. Кроме того, вы должны подать питание на модуль GSM через кабель Micro-USB, чтобы включить модуль.
Код 1: Этот код возвращает мощность сигнала сети. Он предоставляет информацию о статусе регистрации домашней сети.
- Загрузите код.
- Откройте монитор последовательного порта.
- После процесса инициализации подождите некоторое время.
- Следующие команды описаны здесь с указанием их функций:
Нажмите, чтобы увидеть код 1 здесь: https://docs.google.com/document/d/ e / 2PACX-1vStC8HSIdyXl4JN9Rvfs3cyLhW1CBlqJcsuvQrvZAmtkk606Lait7K0xjxtNrRMqsEK5YoG1uQ2VWT / pub
Код сообщения 2: 908 для отправки сообщений на телефонный модуль с помощью модуля GSM.
ПРИМЕЧАНИЕ. Этот конкретный скрытый номер используется здесь для получения и отправки сообщения или вызова модуля GSM.
- Вы можете просмотреть номер (для получения текстовых сообщений) и имя сети на последовательном мониторе.
ПРИМЕЧАНИЕ. Номер и имя сети необходимо ввести в код.
- Загрузите код.
- Текстовое сообщение получено на указанный номер, поскольку он действует как получатель.
Нажмите, чтобы увидеть код 2 здесь: https://docs.google.com/document/d/e/2PACX-1vSEfstS_dE9n0NVaue85xa_HZ6qgyLwWrAm-p1xXCVeCXl8DNYBoAKvCWCap6, код 90FXL8DNYBoAKvC4Chp6 От телефона к модулю GSM (сообщение получено через Serial Monitor).
- Загрузите код.
- Отправьте сообщение на указанный номер и нажмите кнопку OK для уведомления на последовательном мониторе.
Нажмите, чтобы увидеть код 3 здесь: https://docs.google.com/document/d/e/2PACX-1vRaC-RQcJqhBgVHLJwlw2rcYj09r7excAoABZ0RKNl1sZBcEmVK58Tsz8iLmbbx8M2ULlvtoJEQh7fz/pub
Код 4: Этот код предназначен для звонок с модуля GSM на телефон.
- Загрузите код.
- Функциональность команд для выполнения вызова с модуля GSM на телефон описана на изображении ниже.
- Сообщение отображается на последовательном мониторе.
Нажмите, чтобы увидеть код 4 здесь: https://docs.google.com/document/d/e/2PACX-1vQSBS0dWWPJ9AkEWnAbn0cm_cIRPyYDZu53c2LF3j44Ke716BhaTRA
для 908Kep716BHWQj6 для
От телефона к модулю GSM (вызов поступает через последовательный монитор).
- Вызывающий процесс инициализируется на номере получателя.
- Теперь звонок переводится с номера получателя на зарегистрированный номер / сеть.
- Вы можете просмотреть уведомление о вызове на последовательном мониторе.
- Введите команду ATA в данной строке Serial Monitor для ответа на входящий вызов.
- Уведомление «CONNECT» информирует о том, что вызов установлен. А «ERROR» уведомляет о том, что звонок повешен.
- Введите команду ATH на заданной панели Serial Monitor для завершения входящего вызова.
Щелкните здесь, чтобы увидеть код 5: https://docs.google.com/document/d/e/2PACX-1vTy5ajmmpFc-71492o2tVlGuJ_1ik8L-cwCvN5XY2_RhFv4jv9dyhfv4jv9dhino состоит из модуля GSM / GPRS A6. Основное функционирование этого модуля — поддержка двухдиапазонной сети GSM / GPRS, доступной для удаленной передачи данных GPRS и SMS-сообщений. Плата отличается компактными размерами и низким потреблением тока. Благодаря технологии энергосбережения потребление тока в спящем режиме составляет всего 3 мА.
- Откройте программное обеспечение терминала и выберите этот порт.
- Выберите скорость передачи 115200 и нажмите «Подключиться».
- A6 GSM может питаться от зарядного устройства для сотового телефона, для которого на задней панели имеется разъем mini-USB. Рекомендуется использовать адаптер 5 В на 2 А.
- Модуль GSM загружается примерно за 10 секунд и, наконец, вы получаете CREG 1.
- Знак $ указывает на добавление, а 0D — это код ASCII для возврата каретки.
GSM GPRS A6 Модуль: rhydoLABZ INDIA
A6 — это простой модуль прозрачной передачи GPRS.Программа имеет зрелый стандарт GSM07.07, 07.05 AT-команду и расширенную команду Ai-Thinker, чтобы быстро приступить к работе, сократить цикл разработки и снизить порог использования. Это самый маленький четырехдиапазонный модуль GSM / GPRS с размерами всего 22,8 x 16,8 x 2,5 мм. Благодаря своим сверхкомпактным размерам, низкому энергопотреблению и широкому диапазону рабочих температур A6 является идеальным решением для приложений M2M в автомобилях, промышленности и КПК, персональном слежении, обнаружении энергопотребления, беспроводных POS-терминалах, интеллектуальном измерении и другие приложения M2M.Предоставляет полный набор GSM / GPRS SMS, передачи данных и голосовых услуг.
A6 использует процесс полуотверстия, который может реализовать быстрое производство модулей с помощью стандартного SMT-оборудования и предоставить клиентам режим высоконадежного соединения, особенно подходящий для современных, крупномасштабных и недорогих методов производства. Компания применяет международную систему управления качеством ISO9001 и обеспечивает продукцию высокого качества, низкой ценой и отличным сервисом по всем аспектам исследований и разработок, продаж, складирования, качества продукции и послепродажного обслуживания.
Технические характеристики:
- A6 Размеры: 22,8 × 16,8 × 2,5 мм
- Рабочая температура: от -30 ° C до + 80 ° C
- Рабочее напряжение: 3,3-4,2 В
- Напряжение загрузки:> 3,4 В
- Средний ток в режиме ожидания: 3 мА или менее
- Поддерживаемые диапазоны частот: GSM / GPRS850, 900, 1800, 1900 МГц
- GPRS: класс 10
- Чувствительность: <-105
Характеристики:
- Поддержка голосовых вызовов, SMS
- Поддержка службы передачи данных GPRS, скорость передачи данных, загрузка 85.6 кбит / с, загрузка 42,8 кбит / с
- Поддержка стандартных GSM07.07, 07.05 AT-команд и расширенных команд Ai-Thinker
- Поддержка 2 последовательных портов, один последовательный порт загрузки, один порт AT-команд
- Поддержка сети 2G GSM China Mobile и China Unicom по всему миру
- AT-команда поддерживает стандартные командные интерфейсы AT и TCP / IP
- Поддержка цифрового аудио и аналогового аудио, кодирования речи HR, FR, EFR, AMR
- Поддержка сертификатов ROHS, FCC, CE, CTA
Параметры:
- Четырехдиапазонный 850/900/1800/1900 МГц
- GPRS с несколькими слотами 12, с 1 по 12 можно настроить
- Мобильная станция GPRS, класс B
- Совместимость с GSM Phase 2/2 +
- Класс 4 (2 Вт @ 850/900 МГц)
- Класс 1 (1 Вт @ 1800/1900 МГц)
- Потребление тока
- 1.3 мА при DRX = 5
- 1,2 мА при DRX = 9
- Стандарты управления командами AT GSM07.07,07.05 Команды AT и расширенные команды
- Пакет прикладных программ для SIM-карты
Передача данных
GPRS :
- GPRS Class10 до 85,6 кбит / с (восходящий поток) и 42,8 Мбит / с (нисходящий канал)
- Поддержка PBCCH
- Схема кодирования CS 1, 2, 3, 4
- CSD поддерживает до 14.4 кбит / с
- Поддержка USSD
- Стек PPP / TCP / UDP / HTTP / FTP / SMTP / MUX
SMS :
- Обмен сообщениями в точку
- Сообщения сотового вещания
- Режим текста / PDU
Voice Режим кодирования речи:
- Половинная ставка (HR)
- Полная скорость (EFR)
- Расширенная полная скорость (EFR)
AMR :
- Механизм обработки звука
- Подавление эха
- Подавление эха
- Подавление шума
Интерфейс:
- SIM / USIM-карта 3В / 1.8В
- UART 2 Ge
- Аналоговый аудиоинтерфейс
- 2 канала (1 канал встроенный аудиоусилитель класса AB)
- RTC
В коплект входит:
Ресурсы для разработчиков:
На данный момент нет отзывов об этом продукте.
На данный момент нет вопросов по этому продукту.
A6 GSM GPRS модуль Интерфейсный модуль IPEX Shield DC 5-9V Вход для Arduino STM32 51 MCU SCM микроконтроллер с антенной
Во-первых, мы должны сказать, что ICStation не принимает никаких форм оплаты при доставке.Раньше товары отправлялись после получения информации о заказе и оплаты.
1) Платеж Paypal
PayPal — это безопасная и надежная служба обработки платежей, позволяющая делать покупки в Интернете. PayPal можно использовать на icstation.com для покупки товаров с помощью кредитной карты (Visa, MasterCard, Discover и American Express), дебетовой карты или электронного чека (т. Е. С использованием вашего обычного банковского счета).
Мы прошли проверку PayPal
2) Вест Юнион
Мы знаем, что у некоторых из вас нет учетной записи Paypal.
Но, пожалуйста, расслабься. Вы можете использовать способ оплаты West Union.
Для получения информации о получателе свяжитесь с нами по адресу [email protected]
3) Банковский перевод / банковский перевод / T / T
Банковский перевод / банковский перевод / способы оплаты T / T принимаются для заказов, общая стоимость которых составляет до долларов США, 500 долларов США. Банк взимает около 60 долларов США за комиссию за перевод, если мы производим оплату указанными способами.(с бесплатным номером отслеживания и платой за страховку доставки)
(2) Время доставки
Время доставки составляет 7-20 рабочих дней в большинство стран; Пожалуйста, просмотрите приведенную ниже таблицу, чтобы точно узнать время доставки к вам.
7-15 рабочих дней в: Большинство стран Азии
10-16 рабочих дней в: США, Канада, Австралия, Великобритания, большинство стран Европы
13-20 рабочих дней в: Германия, Россия
18-25 рабочих дней Кому: Франция, Италия, Испания, Южная Африка
20-45 рабочих дней Кому: Бразилия, большинство стран Южной Америки
2.EMS / DHL / UPS Express
(1) Стоимость доставки: Бесплатно для заказа, который соответствует следующим требованиям
Общая стоимость заказа> = 200 долларов США или Общий вес заказа> = 2,2 кг
Когда заказ соответствует одному из вышеуказанных требований, он будет отправлен БЕСПЛАТНО через EMS / DHL / UPS Express в указанную ниже страну.
Азия: Япония, Южная Корея, Монголия. Малайзия, Сингапур, Таиланд, Вьетнам, Камбоджа, Индонезия, Филиппины
Океания: Австралия, Новая Зеландия, Папуа-Новая Гвинея
Европа и Америка: Бельгия, Великобритания, Дания, Финляндия, Греция, Ирландия, Италия, Люксембург, Мальта, Норвегия, Португалия, Швейцария, Германия, Швеция, Франция, Испания, США, Австрия, Канада
Примечание. Стоимость доставки в другие страны, пожалуйста, свяжитесь с orders @ ICStation.com
(2) Время доставки
Время доставки составляет 3-5 рабочих дней (около 1 недели) в большинство стран.
Поскольку посылка будет возвращена отправителю, если она не была подписана получателем в течение 2-3 дней (DHL), 1 недели (EMS) или 2 недель (заказное письмо), обратите внимание на время прибытия. пакета.
Примечание:
1) Адреса АПО и абонентского ящика
Мы настоятельно рекомендуем вам указать физический адрес для доставки заказа.
Потому что DHL и FedEx не могут доставлять товары по адресам APO или PO BOX.
2) Контактный телефон
Контактный телефон получателя требуется агентству экспресс-доставки для доставки посылки. Пожалуйста, предоставьте нам свой последний номер телефона.
3. Примечание
1) Время доставки смешанных заказов с товарами с разным статусом доставки следует рассчитывать с использованием самого длинного из перечисленных ориентировочных сроков.
2) Напоминание о китайских праздниках: во время ежегодных китайских праздников могут быть затронуты услуги определенных поставщиков и перевозчиков, а доставка заказов, размещенных примерно в следующее время, может быть отложена на 3–7 дней: китайский Новый год; Национальный день Китая и т. Д.
3) Как только ваш заказ будет отправлен, вы получите уведомление по электронной почте от icstation.com
4) Отследите заказ с номером отслеживания по ссылкам ниже:
Arduino -a6 GSM модуль — отправка sms с данными с датчиков | Arduino | Matlab и Mathematica | Raspberry Pi | Архитектура программного обеспечения
I Описание задачи:
Компоненты:
Ардуино нано
Модуль GSM A6
Dht22
Hx711
— устройство должно отправить SMS с показанием температуры, влажности и веса.
SMS будет содержать указанное выше значение от датчиков и дополнительное качество сигнала (от модуля A6).
Для получения СМС:
1- после того, как модуль называется
2 отправлено пустое SMS
3-отправить SMS с ,, 1 «получил данные через 1 час
4 отправленных SMS с «2» полученными данными через 2 часа … И т. Д.
+ 28-Отправлено SMS с «24» через 24 часа.
29-Если система получила SMS с кодом 0000, hx711 необходимо откалибровать на 0
30-Если вес уменьшается на 50%, система автоматически отправит SMS с предупреждением.
Самое главное, что система будет связываться с последним номером.
SMS будет иметь вид:
Вес 35,8 кг
Температура 23c
Влажность 55%
.
Навыки: Arduino, Matlab и Mathematica, Raspberry Pi, архитектура программного обеспечения
Подробнее:
отправить sms arduino sim900, arduino gsm shield 2 отправить sms, arduino отправить sms, отправить sms с arduino на мобильный, проекты arduino sms, как получить sms с помощью модуля gsm с arduino, запросить данные датчика через sms, как отправить данные датчика через gsm , отправьте sms gsm номера, отправка sms gsm, gsm modul soll sms text жк-дисплей, отправка sms через мобильный телефон gsm, сценарий оболочки, отправка sms gsm-модема, php-скрипт, отправка sms серийного модема gsm, возможность отправки sms на веб-сайт телефона gsm, отправка sms через gsm, отправка sms скрипта модема gsm php, скрипт php отправить смс gsm модем linux, скрипт отправить sms команду gsm, 8051 gsm отправить sms
(
1 отзыв
)
Тимишоара, Румыния
Идентификатор проекта: # 18933612
Дистанционные электрические ворота с подключением через GSM | Hackaday.io
Этот проект был разработан для добавления управления GSM к электрическим воротам DEA NET230N.
NET230N ожидает, что входы будут с открытым коллектором.
Основная функция этого проекта …
- Arduino Nano контролирует последовательный вывод модуля A6 GSM / GPRS.
- При обнаружении входящего вызова (модуль A6 отправляет «ЗВОНОК») Arduino открывает ворота, ждет 3 минуты и закрывает ворота.
Некоторые проблемы во время проекта…
- (фиксированный) Модуль A6 обменивается данными на скорости 115200 бод. Это слишком быстро для библиотеки Arduino SoftwareSerial. Аппаратный последовательный порт используется портом USB на Nano, поэтому он недоступен. Решение заключалось в использовании специального кода, управляемого прерываниями, для реализации приемника со скоростью 115200 бод. Вероятно, более простым решением было бы использовать Arduino Pro Mini, у которого нет USB-адаптера, но у меня не было Pro Mini, когда я проектировал систему. Может следующая доработка…
- (не исправлено) Действительно сложно сбросить модуль A6. Вывод RST должен быть очень низким (<0,05 В) при довольно высоком токе (70 мА). Это означает, что необходимо использовать полевой МОП-транзистор или реле, чтобы подтянуть вывод RST к низкому уровню. R5 и Q3 не нужны, это часть эксперимента, который не сработал. Кажется, что Arduino не может напрямую управлять затвором MOSFET (Q3), возможно, мне стоит добавить транзистор NPN между R5 и Q3. К счастью, модуль A6 кажется очень надежным, и я пока не видел необходимости его сбрасывать.Так что это очень низкий приоритет для исправления.
- (Не исправлено) Последовательная отладка вызвала много проблем, и это закомментировано в коде. Библиотека SoftwareSerial действительно мешает обработке прерываний, поэтому связь с модулем A6 может быть потеряна при использовании порта отладки. К счастью, система очень надежна, поэтому функция отладки мне не нужна.
Примечание. Перед тем, как вставить SIM-карту в модуль A6, убедитесь (поместив ее в мобильный телефон), что защитный PIN-код отключен.