Модуль GSM GPRS SIM800L MicroSIM с антенной. Подключение модуля Sim800l к микроконтроллеру esp8266 Схема подключения sim800l к esp8266

GSM/GPRS модуль на основе SIM800L самостоятельно подключить просто. Выполните несколько этапов и используйте современный компактный элемент в своих целях.

Корпорация SimCom предлагает пользователям компактный GSM/GPRS модуль на основе SIM800L. Улучшить сигнал позволяет встроенный разъем. Также можно воспользоваться антенной, которая идет в комплекте с этой модульной системой.

GSM/GPRS модуль SIM800L — описание

Детальное описание:

  • Питание модуля производится при помощи внешних источников или через DC-DC преобразовательные системы
  • Диапазон для питания должен быть в пределах 3.7В — 4.2В. Стоит отметить, что 5В от Arduino опасны для работы модуля, так как приведут его к поломке, а 3.3В помогут реагировать на пользовательские команды, но к сети подключение будет отсутствовать
  • Управление происходит через UART, но для Rx и Tx используется делитель напряжения, чтобы не производилась нагрузка на плату
  • Низкое энергопотребление модуля SIM800L позволяет его успешно использовать для техники с аккумуляторным питанием
  • При подаче питания модуль сразу же начинает искать сеть. Когда она найдена, начинает подавать сигнал светодиод, медленно мигая. Об отсутствии сети говорит этот же светодиод, но при помощи быстрого мигания лампочки
  • Модуль поддерживает micro SIM карты 1.8В и 3В

GSM/GPRS модуль SIM800L — подключение

Для подключения, кроме самого модуля, преобразователя и контроллера Arduino UNO R3, понадобится USB кабель, батарея на 12В и соединительные провода. Выполните следующие этапы:

  1. Сначала подайте питание к системе от батареи через DC-DC: от «минуса» напряжение должно идти на ардуино в «GND», от «GND» в преобразовательный элемент в «минус» на входе
  2. Подключение нужно производить после того, как вы настроите модуль, выставляя выходное напряжение в допустимом диапазоне (3.7В — 4.2В)
  3. Все контакты, которые выходят от преобразователя, подключите к SIM800L, соблюдая полярность
  4. TX и RX контакты на модуле соедините со 2-м и 3-м цифровыми контактами соответственно на ардуино

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

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

Видео: Подключение GSM модуля SIM800L к Arduino

GSM и GPRS модуль в проектах Ардуино позволяет подключаться к удаленным автономным устройствам через обычную сотовую связь. Мы можем отправлять команды на устройства и принимать информацию от него с помощью SMS-команд или через интернет-подключение, открытое по 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.

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

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

Очень качественный модуль KEYES SIM900 GSM GPRS Модуль SIM800C для ардуино от проверенного поставщика
Шилд для разработки, совместимый с Ардуино, на базе модуля SIM900 GPRS/GSM Недорогой модуль mini A6 GPRS GSM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#include

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

#define PINNUMBER “”

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

boolean notConnected = true;

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

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

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

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

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

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

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

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

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

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

AT+SAPBR=3,1,\”PWD\”,\” mts \”

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

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

AT+HTTPPARA=”URL”, – URL адрес.

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

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

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


SIM800L V2.0 GSM/GPRS - это четырехдиапазонный GSM/GPRS модуль, совместимый с Arduino. Модуль используется для реализации функций GSM (звонки и SMS) и GPRS. Преимуществом этого модуля являются интерфейс TTL, имеющие вольтаж равный 5В, что позволяет напрямую подключить его к Arduino или любой другой системе с напряжением питания 5В. Большинство GSM/GPRS модулей на рынке требуют подключений регулятора или преобразования уровня, в то время как в SIM800L V.2 GSM/GPRS не требует дополнительных цепей преобразования уровней интерфейсов.

Приведем пример проекта, использующего SIM800L V.2 GSM/GPRS. Смысл проекта в управлении переключателей с помощью SMS-контроллера. Вы с легкостью сможете включать и выключать большинство предметов бытовой техники в доме, как например ламу, вентилятор и так далее.

Характеристики модуля SIM800L V.2 GSM/GPRS

Ниже приведены все технические характеристики модуля SIM800L V.2 GSM/GPRS:
  • Серийный интерфейс TTL совместимый с 3,3В и 5В микроконтроллерами, совместимыми с Arduino.
  • Модуль SIM800L имеет серийный интерфейс TTL.
  • Штекер подключения антенны.
  • Поддержка сети: четыре диапазона 850/900/1800/1900 МГц, способные осуществлять звонки, SMS и передачу данных со значительно уменьшенным расходом заряда.
  • Интерфейс VDD TTL UART, так что вы сможете напрямую подключить MCU такой, как 51MCU, ARM или MSP430. Штекер VDD используется для соответствия вольтажу TTL.
  • Модель: SIMCOM SIM800L
  • Рабочий вольтаж: от 3,7В до 5В;
  • размеры: 40мм х 28мм х 3мм
  • GPRS мультислот-класс 12/10
  • GPRS пакетных сервис класс B
  • Соответствует GSM фазе 2/2+
  • Класс 4 (2 Ват @ 850/900 МГц)
  • Класс 1 (1Ват @ 1800/1900Мгц)

Необходимые материалы

Рассмотрим как связать Адруино с GSM модулем SIM800L. Существуют GSM шилды специально для Ардуино, но по цене они достаточно дороги, потому решил приобрести бюджетный вариант. Статья может быть полезна так же для подключения модуля SIM900, NEOWAY M590, и некоторых сотовых телефонов. Неудобный нюанс в том, что этот модуль требует нестандартное для Ардуино питание 3.7В, поэтому запитывать пришлось отдельно через понижающий преобразователь напряжения.

Подключение

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

  1. Контроллер Arduino UNO R3 + USB кабель
  2. GSM модуль SIM800L (питание от 3.7В до 4.2В)
  3. Преобразователь напряжения понижающий (DC-DC step-down converter)
  4. Батарея 12В (или любой источник питания от 6В до 20В)
  5. Соединительные провода

Соединяем Ардуино с компьютером через USB кабель.

Даем питание к GSM модулю от батареи 12В через преобразователь:

  • от 12В "минус" идет на ардуино в "GND", от "GND" в преобразователь напряжения во "входящий минус".
  • от 12В "плюс" идет в преобразователь напряжения во "входящий плюс".

Возникает вопрос: можно ли подать питание от самой Ардуино от 5В? Напрямую не рисковал бы. Но можно подобрать диод или стабилизатор напряжения.

Перед подключением к преобразователю напряжения необходимо его настроить выставив выходное напряжение на любое в диапазоне 3.7В - 4.2В. От преобразователя напряжения выходящие контакты подключаем к GSM модулю, соблюдая полярность.

TX и RX контакты на GSM модуле соединяем с 2 и 3 цифровыми контактами на Ардуино. Если необходимо подключить несколько GSM модулей к Arduino, то используйте другие пины и прописывайте в скетче через SoftwareSerial.

Скетч

#include <SoftwareSerial .h> SoftwareSerial mySerial(2, 3); // RX, TX void setup () { Serial .begin (19200); //Скорость порта для связи Arduino с компьютером Serial .println ("Goodnight moon!" ); mySerial.begin (19200); //Скорость порта для связи Arduino с GSM модулем mySerial.println ("AT" ); } void loop () { if (mySerial.available ()) Serial .write (mySerial.read ()); if (Serial .available ()) mySerial.write (Serial .read ()); }

Процедура для отправки СМС

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 ) ; }

Процедуру добавлять в конец скетча и вызывать её из основного цикла так: sms(String("текст СМС на англ."),String("+791212345678"));

Проверка

Включаем питание затем через монитор порта, выставив скорость 19200 и обязательно опцию "новая строка".

Вводите команду "ATI" и нажмите ENTER. Должна появиться информация от модели модуля.

Пробовал отправить на модуль СМСку через бесплатный сервис от Теле2, приходят непонятные строки. Пробовал в модуле сменить кодировки. Вопрос пока не решен.

Видео

Loading...Loading...