Подключение GSM модуля SIM800L к ESP32


Во всех проектах интернета вещей (IoT) одной из ключевых проблем является обеспечение для вашего устройства соединения с сетью интернет. В этих условиях часто приходят на помощь GSM/GPRS модули. Одним из самых удобных среди них для применения в проектах интернета вещей является модуль SIM800L. Благодаря своим компактным размерам он может быть интегрирован в практически любой проект. Этот модуль может делать то же самое что и обычный сотовый телефон – передавать/принимать SMS, совершать и принимать телефонные вызовы, а также подключаться к сети интернет при помощи технологии GPRS. Также отличительным достоинством GSM/GPRS модуля SIM800L является то, что он двухдиапазонный, благодаря чему его можно использовать практически в любой стране.

Внешний вид проекта подключение GSM модуля SIM800L к ESP32

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

Необходимые компоненты

  1. Модуль ESP32 (купить на AliExpress).
  2. GSM/GPRS модуль SIM800L (купить на AliExpress).

Общие принципы работы GSM/GPRS модуля SIM800L

Распиновка модуля SIM800L

Распиновка GSM/GPRS модуля SIM800L представлена на следующем рисунке. Как видим, он имеет 12 контактов: NET, VCC, RST, RXD, TXD, GND, SPK-, SPK+, MIC-, MIC+, DTR, RING.

Распиновка GSM/GPRS модуля SIM800L

NET – к этому контакту можно припаять спиральную антенну, которая поставляется вместе с модулем.

VCC – через данный контакт на модуль подается питающее напряжение, которое может составлять от 3.4 до 4.4 Вольт. Подключение модуля к напряжению 5V в большинстве случае приведет к его поломке, а от 3.3V он вряд ли запустится. Для питания данного модуля целесообразно использовать литиевый аккумулятор или понижающий преобразователь (buck converter) с поддерживаемым током до 2A.

RST – контакт аппаратного сброса модуля SIM800L. Для сброса модуля необходимо подать на данный контакт уровень low продолжительностью не менее 100ms.

RXD – контакт приема (RX) модуля для последовательной связи.

TXD – контакт передачи (TX) модуля для последовательной связи.

GND – контакт подключения модуля к общему проводу схемы (земле). Его необходимо подключить в нашем проекте к контакту Ground модуля ESP32.

RING – контакт указателя вызовов модуля. В общем случае на этом контакте поддерживается уровень high. Для индикации поступающего вызова на данный контакт подается уровень low на 120 мс. Также его можно запрограммировать на формирование импульса при приеме SMS.

DTR – данный контакт используется для перевода модуля SIM800L в спящий режим. Подача на данный контакт уровня high переводит его в спящий режим и отключает в нем последовательную связь. Подача на данный контакт уровня low приводит к выводу модуля из спящего режима.

MIC+- – эти два контакта можно использовать для подключения внешнего микрофона к модулю.

SPK+- – эти два контакта можно использовать для подключения внешнего громкоговорителя (динамика) к модулю.

Компоненты GSM/GPRS модуля SIM800L

SIM800L – это компактный, универсальный и простой в использовании модуль для GSM и GPRS соединений. Компоненты, из которых он состоит, показаны на следующем рисунке.

Компоненты GSM/GPRS модуля SIM800L

На передней стороне модуля расположен UFL коннектор и, собственно, сам модуль SIM800L. Также на ней расположены развязывающие конденсаторы и токоограничивающий резистор 1 кОм для светодиода. Также на этой стороне модуля расположен большой танталовый конденсатор 100uF,16V.

На обратной стороне модуля расположен держатель для SIM карт. Чтобы SIM карта заработала ее нужно просто вставить (протолкнуть) в этот держатель.

Обзор GSM/GPRS модуля SIM800L

"Сердцем" GSM/GPRS модуля SIM800L является модуль, разработанный компанией SimCom. Как уже было указано ранее, питающее напряжение для модуля составляет от 3.4V до 4.4V, что означает что мы можем запитывать его непосредственно от литий-полимерного аккумулятора. Для простоты использования модуль поддерживает автоматическое определение в бодах скорости передачи по последовательному порту. Для работы модулю необходима внешняя антенна, доступен выбор из двух таких антенн. В коробке вместе с модулем поставляется спиральная антенна, которую вы можете непосредственно припаять к контакту NET модуля. Но если вы хотите вынести антенну подальше за пределы модуля, то можно подключить внешнюю антенну к разъему UFL модуля. В модуле будет работать любая sim карта поддерживающая 2G.

Состояние светодиода модуля

На передней стороне модуля SIM800L расположен светодиод-индикатор, он мигает по разному в зависимости от режима работы модуля:

- мигает каждую секунду;

Светодиод модуля SIM800L мигает каждую секунду

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

- мигает каждые 2 секунды;

Светодиод модуля SIM800L мигает каждые 2 секунды

Это означает что GPRS соединение готово к работе.

- мигает каждые 3 секунды;

Светодиод модуля SIM800L мигает каждые 3 секунды

Это означает что модуль подключен к сети и может передавать/принимать голос и SMS.

Наиболее часто задаваемые вопросы о GSM/GPRS модуле SIM800L

Поддерживает ли модуль SIM800L SIM карты 4G?
SIM800L поддерживает только 2G сервисы. Автор данного проекта (ссылка на оригинал приведена в конце статьи) вставлял в него SIM карты 4G от двух разных операторов. И когда на SIM карту подавалось питание, она пыталась соединиться с ближайшей базовой станцией 2G. Поэтому SIM карты 4G в модуле работают, но только в режиме 2G.

Может ли модуль SIM800L подключаться к сети интернет?
SIM800L поддерживает технологию GPRS (General Packet Radio Service) для соединения с сетью интернет по протоколу HTTP. Модуль содержит внутренний стек протоколов TCP/IP, доступ к которому можно получить при помощи AT команд.

Как узнать работает ли модуль SIM800L?
Для питания модуля SIM800L необходим ток не менее 1A. Если на модуль подано правильное питание, то его встроенный светодиод начнет мигать каждую секунду, что будет означать что он ищет сеть. Когда модуль подключится к сети светодиод начнет мигать каждые 3 секунды. Если он начнет мигать чаще (каждые 2 секунды) это будет означать что он подключен через GPRS.

Схема GSM/GPRS модуля SIM800L

Схема GSM/GPRS модуля SIM800L представлена на рисунке ниже. Как видите, она достаточно проста из-за того что микросхема SIM800L содержит в себе все основное оборудование модуля.

Схема GSM/GPRS модуля SIM800L

Держатель sim карты получает питание только от модуля SIM800. Также в схеме модуля можно увидеть большой танталовый конденсатор емкостью 100 мкФ. Вместе с развязывающими конденсаторами он выполняет функцию фильтрации выбросов напряжения, которые могут возникать в сети питания.

Схема проекта

Схема подключения GSM/GPRS модуля SIM800L к модулю ESP32 представлена на следующем рисунке.

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

Объяснение кода программы для модуля ESP32

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В коде программы мы будем использовать порт UART2 микроконтроллера ESP32 для взаимодействия с модулем SIM800, а UART0 будем использовать для целей отладки.

Поскольку код программы очень простой, то нам не потребуется для него никаких внешних библиотек. В функции setup мы используем Serial.begin() и Serial2.begin() для инициализации портов UART0 и UART2. Затем мы подождем 3 секунды чтобы дать модулю SIM800 войти в рабочий режим. После этого мы вызовем функцию test_sim800_module() (она будет объяснена позже), а затем функцию send_SMS() чтобы с помощью модуля отправить SMS – это даст возможность проверить работает он или нет.

Далее, в функции loop() мы будем вызывать функцию updateSerial() чтобы тестировать работу проекта с помощью монитора последовательной связи.

Теперь рассмотрим запрограммированную нами функцию test_sim800_module(). Данная функция будет передавать модулю SIM800L ряд AT команд.

AT: базовая AT команда. Если в ответ на нее модуль ответил OK значит он готов к работе.

AT+CSQ: данная команда проверяет уровень сигнала в децибелах (dB). Чем он больше, тем лучше. Для нормальной работы модуля необходимо чтобы уровень сигнала был не менее 5 дБ.

AT+CCID: эта команда проверяет номер sim карты, написанный на ее обратной стороне. После исполнения команды вы можете проверить этот номер вручную. Также эту команду можно использовать для проверки того подключена ли sim карта к модулю.

AT+CREG?: эта команда используется для проверки того что вы зарегистрированы в сети. Второе выходное число целого типа должно быть 1 или 5. 1 будет означать что вы в домашней сети, а 5 – что вы в роуминге. Любое другое число будет свидетельствовать о том, что вы не зарегистрированы в сети.

ATI: эта команда позволяет получить имя модуля и его номер.

AT+COPS?: эта команда проверяет подключены ли мы к сети. В нашем случае это сеть Airtel.

AT+CBC: эта команда возвращает процент заряда батареи (второе число в выходном окне) если она подключена к модулю.

В функции updateSerial() мы проверяем работу последовательной связи.

В функции send_SMS() мы настраиваем модуль SIM800L для работы в текстовом режиме и вызываем функцию updateSerial(), поэтому мы можем проверить то, что будет выводиться в окно монитора последовательной связи. Далее мы указываем телефонный номер, на который мы будем отправлять SMS. Затем мы напишем наше сообщение и после этого передадим число 26 с помощью функции Serial2.write(26), с помощью этого мы передадим в канал последовательной связи команду ctrl+C, которая является командой передачи сообщения.

Тестирование работы проекта

Показанное ниже видео показывает как работает наш GSM/GPRS модуль SIM800L. Мы написали код программы таким образом, что после того как будет инициализирован модуль ESP32 будет проверяться работает ли он и передаваться соответствующее сообщение в окно монитора последовательной связи. После каждой процедуры проверки модуль будет передавать SMS на указанный номер.

Исходный код программы

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

Источник статьи

(Проголосуй первым!)
Загрузка...
196 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован.