Embedded at: начало работы с технологией интеграции пользовательского по в gsm/gprs-модуль sim800/sim800h

Задачи GSM модуля:

  • Отправлять данные о времени работы насоса полива;
  • Отправлять температуру насоса и воды;
  • Принимать данные с веб-сервера о статусе вкл/выкл насоса.

Первым делом в корневом каталоге сервера создаем файл index.php.

На Листинге 2 показан начальный код разметки HTML страницы.

Листинг 2. Начальный код разметки HTML страницы.

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

Результат открытого в браузере файла index.php показан на Рисунке 7.

Рисунок 7. Результат открытого в
браузере файла index.php.

Добавим пару кнопок на включение насоса и создадим txt файл на сервере для сохранения данных о статусе работы насоса. Кнопки выполним в виде картинок, а их обработку сделаем с помощью AJAX (технология взаимодействия с сервером без полной перезагрузки html-страницы, использует JavaScript). Для этого перед тегом вставляем код, показанный в Листинге 3.

Листинг 3. AJAX обработчик.

Определение картинок кнопок включим в форму. При нажатии на картинку будет записываться значение статуса в файл pomidor.txt. Код обработки кнопок показан в Листинге 4.

Листинг 4. HTML код обработки кнопок.

В коневом каталоге создаем папку transfer и файл pomidor.php, код из которого приведен в Листинге 5.

Листинг 5. PHP скрипт записи статуса кнопки.

Рисунок 8. Основной интерфейс управления.

Для полученных значений создаем еще одну папку txt и файл pomidor.txt. Добавляем картинку насоса и получаем минимальный интерфейс управления, который показан на Рисунке 8. На Рисунке 9 показан результат нажатия на кнопку «Выкл». Соответственно, если нажмем на кнопку «Вкл», то будет результат «ON».

Рисунок 9. Запись данных на сервер в результате
нажатия на кнопку «Выкл».

Сделаем так, чтобы при переключении статуса, менялась картинка насоса. Для этого в поле расположения картинки насоса добавим код (Листинг 6).

Листинг 6. PHP скрипт изменения картинки статуса работы насоса.

Создаем функцию «Nasos», которая каждую секунду читает и сравнивает значение с файла pomidor.txt. В зависимости от результата меняется картинка визуализации насоса. На Рисунке 10 показан пример визуализации насоса при нажатии на кнопку «Вкл».

Рисунок 10. Визуализация статуса включенного насоса.

По аналогии добавим вывод температур и времени полива (Рисунок 11).

Рисунок 11. Законченный интерфейс управления.

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

Импульсный DC step-down преобразователь

Готовый миниатюрный DC-DC конвертер Mini-360 на базе MP2307 стоит недорого на Aliexpress. Этот модуль я не раз использовал совместно с SIM800, и он показал достаточно стабильную работу. Обычно я добавлял электролитический или танталовый конденсатор минимум на 1000 uF или суперконденсатор, чтобы не было просадки напряжения при максимальном потреблении модуля SIM800. На «красной» плате с SIM800L уже распаян танталовый конденсатор большой емкости.

Mini-360 MP2307 DC-DC step-down конвертер

На Aliexpress представлено немало различных DC-DC down-step модулей для снижения напряжения с 5V до 4 V. У них регулируемое выходное напряжение, и это не очень хорошо: при сборке требуется подстройка, на что уходит время, нельзя впаивать SIM800 или нужно предусматривать джамперы для разрыва соединения на время настройки, иначе можно случайно подать высокое напряжение и вывести из строя SIM800.

Я взял типовую схему на MP2307 и собрал малогабаритный DC-DC конвертер с 5V до 4V. Он очень компактен и обладает высоким КПД. Схема импульсного понижающего преобразователя 5V до 4V для SIM800 и схема коммутации ESP32 с «красной» платой с SIM800L:

Схема ESP32 и SIM800 c DC-DC step-down converter («понижайка») c 5V до 4V.

Пара сопротивлений R5 (33K, 1%) и R4 (10K, 1%) рассчитаны на формирование выходного напряжения 4 V.

В этой схеме используются следующие основные компоненты:

  • «Красная» плата SIM800L. Её прелесть в том, что на ней уже есть распаянный IPEX разъем для подключения антенны, обвязка для фильтрации с танталовым конденсатором большой емкости и сам модуль SIM800. Причем эта плата в сборе обойдется дешевле, чем приобретать на Aliexpress чип SIM800 отдельно.
  • MH ET Live Mini ESP32 — на мой взгляд, лучший вариант реализации платы для прототипирования на ESP32.
  • Экранированная индуктивность 10 uH.
  • Чип DC-DC step-down конвертер MP2307DN.

В datasheet SIM800 приведен пример импульсного DC-DC step-down конвертера на LM2596-ADJ:

DC-DC step-down конвертер для SIM800 на LM2596

Готовый 3A конвертер на базе LM2596 с возможностью регулировки выходного напряжения можно приобрести на Aliexpress:

LM2596 DC-DC понижающий преобразователь для SIM800

LM2596 — габаритный чип, поэтому использовать его можно там, где нет особых требований к размерам устройства.

Получение SMS. Инициализация.

Для начала нужно проверить, что тариф допускает отправку сообщений. Например, у Билайна на SIM-картах привязанных к основной голосовой но для использования в планшете, ноутбуке и пр. под Интернет нет опции отправки SMS. Можно потратить немало времени, пытаясь отправить SMS с такой SIM-ки.

Для работы с SIM800L я использую библиотеку TinyGSM.

Для отправки SMS используется простой код:

  bool res = modemGSM.sendSMS("+7960XXXXXX", "GSM modem with IMEA " + modemGSM.getIMEI() + " has started.");
  Serial.println("SMS sending status: " + String(res ? "OK" : "fail"));

Он простой и хорошо работает.

К сожалению, в библиотеке не реализован функционал чтения SMS. При использовании сообщений SMS для управления устройствами нужно быть предельно внимательным, поскольку в зависимости от инициализации SIM800 модуль будет по-разному обрабатывать SMS сообщения.

AT команда AT+CNMI определяет будет ли принятое сообщение буферизовываться на SIM карте или будет лишь отображаться и передаваться напрямую в TE (например, микроконтроллеру). В последнем случае на SIM карте не будут сохранятся полученные SMS. Это довольно эксремальный вариант работы, поскольку в случае если по каким-то причинам микроконтроллер не вычитал SMS, то может быть проигнорирована важная команда управления.

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

Для инициализации я использую несколько команд:

void smsInit()
{
        modemGSM.sendAT(GF("+CPMS=SM,SM,SM")); //Storage to store SMS
        modemGSM.waitResponse();

        modemGSM.sendAT(GF("+CMGF=1")); //Text type messages instead of PDU
        modemGSM.waitResponse();

        modemGSM.sendAT(GF("+CNMI=1,0"));
        modemGSM.waitResponse();

        modemGSM.sendAT(GF("+CSCS=\"GSM\""));
        modemGSM.waitResponse();
}

AT+CPMS задает память для сохранения SMS сообщений:

  • SM – Память SIM-карты
  • ME – Память модема/телефона
  • MT – Это общая память SIM-карты и модема, т.е. MT = SM+ME
  • BM – Память для широковещательных сообщений сети
  • SR – Память для отчетов (о доставке и т.п.)

Память модема делится на три логических секции и поэтому при вызове +CPMS можно передавать три аргумента:

  • Первая — для просмотра, чтения и удаления сообщений
  • Вторая — для сохранения и отправки исходящих сообщений.
  • Третья — только для вновь полученных сообщений.

Я не нашел примеров работы с этими тремя видами памяти. Если кто-то найдет информацию — буду благодарен, если поделитесь. Для надежности буду использовать только SM.

Далее задаем формат SMS сообщений AT+CMGF=1 (тесктовые сообщения). Для формата PDU используется AT+CMGF=0. Формат PDU (Protocol Data Unit) используется по умолчанию. Он более информативный, но и более сложный для парсинга. Для управления IoT устройством достаточно простого текстового формата.

Например, команда AT+CNMI=1,2,0,0,0 говорит модулю SIM800 либо направлять толкьо что полученные SMS сообщения напрямую микроконтроллеру, или сохранять их в хранилище сообщений и затем уведомлять микроконтроллер о их размещении в хранилище. При использовании этой команды пришедшее SMS приходит в Serial порт микроконтроллера в виде:

15:52:58.028 -> +CMT: "+79601XXXXX","","19/05/02,15:52:53+12"
15:52:58.062 -> Test again

При этом пришедшие SMS сообщения не сохраняются в памяти SIM-карты.

Чтобы пришедшее SMS сообщение сохранилось в памяти SIM-ки нужно использовать команду AT+CNMI=1,0 или AT+CNMI=0,0. Мне не удалось найти обстоятельно описанные примеры использования команды.

Последняя команда AT+CSCS=»GSM» в функции инициализации устанавливает charset «GSM» для TE. Возможные значения:

  • «GSM» GSM 7 bit default alphabet (3GPP TS 23.038);
  • «UCS2» 16-bit universal multiple-octet coded character set (ISO/IEC10646); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. «004100620063» equals three 16-bit characters with decimal values 65, 98 and 99
  • «IRA» International reference alphabet (ITU-T T.50)
  • «HEX» Character strings consist only of hexadecimal numbers from 00 to FF;
  • «PCCP» PC character set Code
  • «PCDN» PC Danish/Norwegian character set «8859-1» ISO 8859 Latin 1 character set

Возможно, вам также будет интересно

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

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

Mетод непосредственной модуляции с использованием комплексных сигналов все чаще применяется при реализации сигнальных трактов передатчиков в базовых станциях систем сотовой связи, системах WiMAX, беспроводных системах «точка-точка» и т. п.

Протокол 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-команд . При этом все сложные сетевые процессы, такие как активация контекста, открытие сессии, передача данных, закрытие сессии и т. д., скрыты от хоста.

Кстати, надо сказать, что протокол TCP/IP, наряду с другими протоколами, к примеру UDP/IP, очень удобен для систем, требующих надежности передачи данных, т. к. в его основе заложены принципы подтверждения и повтора посылок в случае потери пакетов. Прикладному уровню не нужно заботиться об организации повторного запроса данных.

Схема подключения SIM800L к ESP32

Поскольку модуль SIM800L у меня используется в дорогом оборудовании, которое должно работать гарантированно, я добавил емкостей в соответствии с рекомендациями datasheet.

Танталовый конденсатор на модуле распаян. Я добавил электролитический конденсатор на 2200 мкФ и остальные емкости по datasheet.

Микроконтроллер ESP32 в данном примере запитывался от USB порта ноутбука.

Поскольку один UART порт используется для передачи данных, а второй для приема, вместо преобразователя уровней можно использовать резистивный делитель. Но с таким способом связан один риск. Если все распаять правильно, но при этом программно, при задании номеров пинов для RX и TX, можно их перепутать и сжечь TXD порт чипа SIM800. Поэтому в случае такой экономии нужно очень внимательно писать код.

Если делать конвертацию уровней по-серьезному, то тогда нужно использовать плату преобразователя уровней, подав со стороны микроконтроллера опорное напряжение 3,3V, а со стороны SIM800L опорное напряжение снятое с простой цепочки резистор и стабилитрон. Её расчет здесь. Стабилитроны бывают на 2,7 V и 3 V.

В datasheet модуля указан максимальный уровень логической единицы на входе RX — 3,1 В (при минимальном 2,1 В).  Соотвественно, 2,7 V будет достаточно, а 3 V уже рискованно. Если посмотреть в datasheet напряжение для выхода опорного напряжения SIM800L

Как раз минимальное значение 2,7 V. Сразу говорю — я эту схему пока не пробовал, ограничился простым вариантом с резистивным делителем.

Подключение SIM800L к ESP32 Devkit 38 pin Mini 360 DC-DC step down converter

Mini-360 DC-DC конвертер — не самый лучший вариант. Он нормально выдерживает нагрузку, SIM800L грузится с ним стабильно, однако качество переменного резистора весьма посредственное. При вибрации в производственном помещении, где будет размещаться оборудование, выходное напряжение может «уходить» от установленного значения. Поэтому этот DC-DC конвертер заменю на что-то более качественное.

Однако, модуль крошечный, поэтому легко разместился вместе с емкостями (за исключением электролитического) и резисторами под модулем SIM800L. GSM модуль обычно монтирую на гнездах.


Блок питания 12V, 3A

В качестве блока питания использовался 12 V блок питания на 3A. За цену в 4 USD — просто волшебное качество. Брал здесь.

Сразу отмечу, что мощная 4-х портовая USB зарядка AUKEY 5V, по 2.4 A на каждый USB порт, подключенная к блоку питания для breadboard-а, нагрузку не потянула. При загрузке модуля идет пиковое потреблении мощности и напряжение на GSM модуле просело до 3 V. Модуль даже не стартанул толком. Возможно, проблема в БП для breadboard-а. Он даже без нагрузки выдавал меньше 5 V.

Топ 6 самых популярных модулей

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

Под модулем понимается изделие, состоящие из платы и элементов на ней (включая компонент, состоящий из чипсета и приемопередатчика). Компонент находятся под крышкой в едином форм-факторе (напоминает процессор для материнской платы компьютера). Распайка на плате расширения происходит через торцевые контактные ножки. Такая полноценная плата и называется модулем. Если на ней есть множество других элементов, ее иногда именуют шилд.

Ниже будут приведены модули, такие как Neoway M590, A6 и A7, и прочие, представлены их характеристики.

SIM900

Разработанный компанией SIMCom Wireless Solution модуль SIM900 подключается и обменивается данными через распространенный физический протокол передачи данных UART. Подключение к ПК осуществляется через USB-UART преобразователь.

Плата позволяет в двухстороннем режиме работать с сообщениями и звонками адресата.

Спецификация:

  1. Диапазон частот EGSM900, DCS1800, GSM850, PCS1900.
  2. Напряжение 3,2-4,8 В.
  3. Сила тока в режиме простоя – 450 мА.
  4. Максимальный ток – 2 А.
  5. Канал связи до 14.4 кбит/с.
  6. Диапазон температур от -30 °C до +80 °C без искажения, и от -40 °C до +85 °C, с незначительным отклонением радиочастотных характеристик, с сохранением работоспособности.
  7. Вес 6,2 г.
  8. Размеры 24 x 24 x 3 мм.

У компонента есть модификации: 900B, 900D, 900TE-C, 900R 900X. У каждой модификации своя специфика. SIM900D дополнен блоком заряда аккумулятора, а в SIM900X введены новые режимы энергосбережения, что позволяет использовать модули в современных системах трекинга автомобилей, охранной и промышленной автоматики. Все модификации компонентов можно найти в едином форм-факторе SMT, с торцевыми контактами под пайку. Но, не исключены варианты нахождения в других форм факторах.

SIM800L

Основа модуля – компонент SIM800L с реализацией обмена данными по каналам GSM и GPRS с помощью дуплексного режима. В модуль устанавливается SIM-карта, есть встроенная антенна и выход под еще одну антенну. Питание на плату подается через преобразователь напряжения DC-DC. Еще, есть возможность подключиться к другому источнику питания. Интерфейс подключения – UART.

Спецификация:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение 3,8-4,2В.
  3. Ток в режиме ожидания – 0,7 мА. Предельный ток – 500 мА.
  4. Слот
  5. Поддержка 2G сети.
  6. Диапазон температур от -30 °C до +75 °C.
GSM/GPRS-модуль SIM800L (#1) - как выбрать, подключение, введение в AT-командыGSM/GPRS-модуль SIM800L (#1) — как выбрать, подключение, введение в AT-команды

A6

Шилд A6 работает в сетях мобильной связи и позволяет принимать и передавать сигналы с помощью GSM и GPRS. Модуль, созданный компанией AI-THINKER несколько лет назад, успешно показал себя и пользуется популярностью в системах автоматики.

ТТХ А6:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение питания 5 В.
  3. Ток в спящем режиме – 3 мА.
  4. Ток режима ожидания – 100 мА.
  5. Ток режима соединения – 500 мА.
  6. Ток пиковой нагрузки – 2А.
  7. Разъем
  8. Скорость GPRS во время передачи сигнала 42,8 Кбит/сек.
  9. Температура от -30 °C до +80 °C.
A6 modemA6 modem

A7

Новый модуль А7 отличается от предшественника тем, что в него встроен GPS. Это решение позволило упростить конструкцию платы.

Основные параметры:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение 3,3-4,6 В.
  3. Напряжение питания 5В.
  4. 10 Класс GPRS: канал передачи данных 85,6 кбит/с.
  5. Jammer эха и шумов.
GSMGPRS модем с GPS приемником AI-Thinker A7GSMGPRS модем с GPS приемником AI-Thinker A7

Neoway M590

Модуль на основе компонента Neoway M590 позволяет принимать звонки, обмениваться данными и сообщениями. Имеет интерфейс подключения UART.

Характеристики:

  1. Диапазон частот EGSM900, DCS1800.
  2. 10 Класс
  3. Напряжение 3,3-5 В.
  4. Пиковый ток 2 А.
  5. Рабочий ток 210 мА.
  6. Коммуникационный сигнал 3,3 В.
  7. Температура от -40 °C до +80 °C.

Подключая модуль к контроллеру, потребуется преобразователь 3,3 В -> 5 В.

GSM GPRS модуль SIM900

На базе модуля SIM900 разработали и успешно используют SIM900 GSM GPRS Shield, в качестве модуля для подключения к Arduino UNO. По сравнению с остальными платами, стоимость этой на порядок дороже, и она укомплектована множеством разъемов и контактов. Среди основных параметров:

  1. Подключается плата к Arduino Mega и UNO.
  2. Четыре рабочих частоты, как и в остальных платах.
  3. Низкое энергопотребление 1.5 А в спящем режиме.
  4. GPRS мульти-слот класса 10/8.
  5. Рабочие температуры от -40°C до +85 °C.
GSMGPRS shield SIM900, Первый взглядGSMGPRS shield SIM900, Первый взгляд

Недостатки платы SIM800C

Не могу сказать, что модуль SIM800C разработан удачно. Замечания такие:

  • Расстояние между гребенками не кратно 2,54 мм, поэтому модуль не встает в breadboard макетные платы. Этой проблемы нет даже у дешевой платы SIM800L. Она встает в макетную плату без проблем. Это очень большой косяк разработчиков.
  • Для понижения напряжения с 5V до 3,7V используется схема с двумя диодами. Как говорится в статье, падение напряжения на диодах в обычном режиме работы порядка 0,6 — 1,2V и SIM800 достаточно напряжения для работы. Однако при пиковых значениях токов падение напряжения возрастает и на чипе напряжение может быть ниже 3,3 V. В результате, например, при запуске, когда энергопотребление высокое, модуль может многократно перегружаться. Поэтому я рекомендую запитывать модуль через вход VBAT подав напряжение 3,8 V c DC-DC конвертера напряжения (DC-DC stepdown converter) или от батареи.

Распиновка платы модуля SIM800C

  • 5V: power supply pin, the only input DC5V, used to power the board.
  • V_TTL: access control board microcontroller core target voltage of 5V / 3.3V (according to its own microcontroller is much to distinguish kernel V), this pin is used to convert the GSM module board TXD and RXD for the corresponding TTL logic. Описание пространное. На этот пин нужно подать 5V при подключении к платам с уровнем логики 5V (например, Arduino) и 3,3V при подключении GSM модуля к ESP8266/ESP32.
  • GND: power supply ground
  • TXD: send pin serial port module, TTL level (not directly connected to RS232 level)
  • RXD : receive pin serial port module, TTL level (not directly connected to RS232 level)
  • DTR: Data Terminal Ready
  • SPKP: Core Audio output pin
  • SPKN: Core Audio output pin
  • MICN: Core Audio input
  • MICP: Core Audio input
  • RI: Ring core pin tips
  • VRTC: RTC pin external battery
  • GND: power supply ground
  • PWR: This pin can turn down or turn off the module. Этот пин должен быть замкнут на GND на время не менее 1 с для включения модуля. Чтобы модуль стартовал сразу при включении — PWR закорачивают на GND.
  • GND: power supply ground
  • VBAT: lithium battery input pin, 3.3v-4.4v

Схема соединения SIM800C c USB-to-TTL конвертером

Перед использованием модуля SIM800C с микроконтроллерами стоит проверить его работоспособность соединив с конвертером USB to TTL.

Таблица соединения SIM800C с USB-to-TTL converter

SIM800C pin USB-to-TTL converter БП +5 V Примечания
TXD RXD
RXD TXD
GND GND GND
+5V +5V Блок питания на пиковы ток не менее 1 А.
V_TTL +5V
PWX GND Закоротить пин PWX на GND, чтобы модуль стартовал сразу при включении питания.

Лучше подавать сначала питание на модуль GSM, а затем уже подключать USB к PC, но это не критично.

GSM GPRS в Arduino

Модули GSM GPRS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Система удаленного запуска двигателя автомобиля (SIM800L + Arduino), c управлением по DTMF, и отчетами по SMS.

Без корпуса

Прошивка, скетч

Последние изменения в прошивке:

  • добавлен аглоритм активациии и деактивации автопрогрева

  • добавлен аглоритм активациии и деактивации отправки данных на сервер

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

Конфигурация скетча :

  • номер телефона хозяина для входящих вызовов

  • номер телефона куда отправляем СМС отчет

  • адрес устройства на сервере — нули заменить на свои придуманные цифры

  • имя устройства на сервере народмон — аналогично

  • точка доступа для выхода в интернет вашего сотового оператора

  • имя и пароль для выхода в интернет вашего сотового оператора

  • если вы хотите, или если не хотите отправлять данные на сервер

  • — разрешить отправку SMS отчета, или если жалко денег на SMS

  • — порог детектирования по которому будем считать что авто зарежает АКБ

  • — делитель, для точной калебровки напряжения АКБ

Подключение:

Для подключения к авто c класическим замком на 4 провода, если у вас япошка с замком на 6 проводов, то там все веселее…

  • выход на реле иммобилайзера и первого положения замка зажигания , на плате

  • выход на реле зажигания , на плате

  • выход на реле стартера , на плате

  • выход на включение обогрева сидений или вебасто , на плате (опция)

  • выход на реле управления подогревом сидений, на плате (опция)

  • выход на сигнальный светодиод на плате (опция)

  • вход — для проверки на момент включенного зажигания с ключа, на плате

  • вход — на концевик педали тормоза (АКПП) или на датчик нейтрали в МКПП, на плате

  • вход — на датчик давления масла, если кому горит (опция), на плате

  • вход — для датчиков объема или вибрации (аппаратное прерываение), на плате (опция)

  • вход — для подключения к датчику распредвала через оптопару, если кому горит (опция)

  • линия — на пин 15 K-line шины в OBDII разъёме, если такова имеется (опция)

  • линия — на пин 7 K-line шины в OBDII разъёме, если такова имеется (опция)

  • масса — она же минус, для шины датчиков температуры DS18B20

  • провод — на линию опроса вышеупомянутых датчиков, приходит на 4й пин ардуино с подтяжкой к 3.3V

  • клемма — напряжение питания датчиков температуры

  • клемма — питание платы через предохранитель на 2А от «постоянного плюса»

  • клеммы , и — входы и выходы реле для коммутации антенны обходчика иммбилайзера

Отладочные средства

Компания SIMCom Wireless Solutions предоставляет универсальные отладочные средства, состоящие из двух основных компонентов:

  1. Отладочный комплект с многофункциональной материнской платой, общей для односимочных 2G-модулей.
  2. Мезонинная (дочерняя) плата, на которой распаян тот или иной модуль.

Чтобы получить рабочий отладочный комплект, нужно установить мезонинную плату на разъем материнской платы и подключить к компьютеру.

Для работы с двухсимочным 2G-модулем имеется специализированная мезонинная плата. Такое решение позволяет гибко подходить к вопросу знакомства с новыми сериями и не требует значительных денежных затрат.

Запись бинарного файла EAT в память программ модуля

Для загрузки бинарного файла EAT в модуль потребуется программа SIMCom_SIM800H_EAT_flash_Tool (рис. 11).

Рис. 11. Окно программы SIMCom_SIM800H_EAT_flash_Tool для загрузки бинарного файла EAT в GSM-модуль

Модуль SIM800H позволяет загружать ПО через интерфейс USB или UART. В качестве интерфейса для загрузки пользовательского ПО выберем USB. Для этого настроим соответствующим образом программу SIMCom_SIM800H_EAT_flash_Tool.exe, пройдя по меню Options->USB Download/Readback. Также потребуется стереть содержимое FAT-модуля, а для этого пройдем по меню Options->Format FAT (Auto)->Format FAT->OK.

Укажем путь к пользовательскому ПО, к файлу SIM800H32_EAT.cfg, нажав кнопку Scatter/Config File. Он должен быть расположен в директории, где расположен проект (указывался при создании проекта), а в данном примере путь такой: C:\Documents and Settings\Administrator\workspace\SIM800H_EAT_140516_ECLIPSE\core\SIM800H32_EMBEDDEDAT\. Окно программы при этом должно выглядеть так, как на рис. 12.

Рис. 12. Окно программы SIMCom_SIM800H_EAT_flash_Tool после настройки

Далее:

  • Готовим отладочное средство (см. рис. 6), подав питание 5 В от сетевого адаптера, предварительно установив переключатели POWER в состояние «ON», DOWNLOAD — в состояние «OFF».
  • Подключаем SIM800H к ПК через кабель USB, при этом потребуется установка USB-драйвера виртуального COM-порта MS_USB_ComPort_Driver_exe_v1.1032.
  • Устанавливаем переключатель POWER в состояние «OFF», а DOWNLOAD — «ON».
  • Нажимаем в окне программы кнопку Download.
  • Переводим переключатель POWER обратно в состояние «ON», при этом начнется процесс загрузки ПО, по окончании которого появится окно (рис. 13).

Рис. 13. Окно программы SIMCom_SIM800H_EAT_flash_Tool после успешной загрузки пользовательского ПО в модуль

Теперь ресурсы модуля SIM800H находятся в полном распоряжении пользовательского кода. После того как пользовательский код будет полностью отлажен и протестирован «в полях», у разработчика возникнет вопрос, как организовать массовое производство устройств с модулем SIM800H. Первой мыслью будет производить загрузку ПО в модуль на производстве после монтажа модулей на плату, но есть и другой вариант. Компания SIMComWireless Solutions предоставляет возможность по предварительной договоренности производить и поставлять через локальных дистрибьюторов модули с загруженным на заводе пользовательским ПО. Такая модель работы возможна при условии подписания соответствующего соглашения о неразглашении, которое в большей степени защищает разработчика ПО от несанкционированного распространения интеллектуальной собственности, что для SIMCom Wireless Solutions является важным аспектом в работе с клиентами по всему миру.

В данной статье было подробно рассказано о технологии Embedded AT, которая открывает для разработчика новые возможности для миниатюризации и удешевления текущих разработок с применением GSM-модулей сотовой связи. В статье не только объясняются теоретические идеи технологии Embedded AT, но и детально на практических примерах показан порядок работы с сопутствующим программным обеспечением для создания пользовательского ПО и его загрузки в GSM-модуль SIM800H. Следуя указаниям, приведенным в данной статье, разработчик сможет максимально быстро начать работу и оценить удобство и функциональность такого решения, как Embedded AT.

Загрузка кода

Для правильной работы системы в сети нужно ее зарегистрировать. В разделе «Выбор сети» надо выбрать ручное или автоматическое определение оператора.

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

В библиотеке Software Serial в начале работы прописывают скетч:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include
 
SoftwareSerial mySerial(2, 3); // RX, TX
 
void setup() {
	Serial.begin(19200);
	Serial.println("Gооdnight mооn!");
 
	mySerial.begin(19200);
	mySerial.println("AT");
}
 
void loop() {
	if (mySerial.available())
		Serial.write(mySerial.read());
 
	if (Serial.available())
		mySerial.write(Serial.read());
}

В AT Command Tester Tool нажимают «Найти порты», выбирают BaudRate (19200), устанавливают нужную скорость передачи и нажимают Connect на AT Command Tester. Система отправит запрос на устройство и подключится.

Для настройки отправки и получения SMS код такой:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void sms(String text, String phone) {
	Serial.println("SMS send started");
	mySerial.println("AT+CMGS=\"" + phone + "\"");
 
	delay(1000);
 
	mySerial.print(text);
 
	delay(300);
 
	mySerial.print((char)26);
 
	delay(300);
 
	Serial.println("SMS send finish");
 
	delay(3000);
}
GSM/GPRS-модуль SIM800L (#1) - как выбрать, подключение, введение в AT-командыGSM/GPRS-модуль SIM800L (#1) — как выбрать, подключение, введение в AT-команды

Добавив процедуру в конце скетча, ее нужно вызвать из основного цикла, задав команду: sms(String(«текст СМС на английском языке»), String(«№ телефона»)).

Для проверки правильности настроек в пустой строке задают команду АТI и нажимают «Ввод». Если все сделано верно, то в окне появится информация о модели модуля.

Назначение и принцип работы

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-команды на необходимый функционал.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий