Модуль A9G GSM/GPS: распиновка, AT-команды и настройка
Reading time: 4 minutes
Last modified:
IoT устройства в основном используют микроконтроллеры AVP, ESP и STM32. Для подключения GSM или GPRS приходится напаивать отдельные подмодули, что сильно загромождает финальное устройство.
Но не все знают, что существует такой модуль как A9G. Он имеет компактный SMD корпус, сочетающий в себе GSM и GPS модули. Остается только подключить антенны и питание.
A9G управляется с помощью AT-команд другого микроконтроллера или через собственную SDK прошивку. Модуль разработан компанией Ai-Thinker которая также является производителем микроконтроллеров семейства ESP.
В этом руководстве постараюсь кратко объяснить первые шаги для работы с A9G. Покажу установку ПО и приложу список AT-команд управления.
Так выглядит сам модуль и две антенны: GPS и GSM. С обратной стороны расположен SIM лоток.
Первый запуск
Для начала потребуется:
- A9G модуль.
- GSM антенна.
- GPS антенна.
- SIM-карта.
- TTL-конвертер.
- ПК под Windows или Linux.
Скачиваем программу для управления модулем: Скачать
Соединяем модуль с ПК через TTL конвертер (TTL на базе микросхемы CH340G)
| TTL | -> | A9G |
|---|---|---|
| RX | -> | TX |
| TX | -> | RX |
| 5V | -> | VUSB |
| GND | -> | GND |
Убедитесь в том, что подключаете все верно. На модуле помимо разъемов RX и TX есть разъемы HST_RX и HST_TX. Они предназначены для загрузки прошивки и дальнейшего дебага.
Запускаем программу и открываем Serial port. Жмём на самом модуле кнопку RESET и дожидаемся загрузки.
После инициализации можно тестировать модуль. Интерфейс программы интуитивно понятен, но я всё же расписал, что и где расположено.
- В красной рамке приходит результат выполнения команд.
- В зеленой - окно ввода команд.
- В желтом - сохраняется история.
- В голубом - набор команд быстрого доступа.
Модуль работает “из коробки”. Имеется возможность без перепрошивки принимать AT-команды и обрабатывать их. Для первого теста не забудьте подключить GSM и\или GPS антенны.
Список команд прикреплены ниже, как для GSM, так и для GPS модулей.
GSM команды
A9G можно использовать для приема звонка, вызова и отправки SMS. AT-команды:
Команды вызова:
- ATA: ответ на входящий вызов. При успешном выполнении получаем - «+ CIEV:« CALL », 1 CONNECT», что значит связь установлена.
- ATD: используется для набора номера. Команда в виде «AT + номер телефона», и при отправке мы получаем - «ATD + набранный номер OK + CIEV:« CALL », 1 + CIEV: SOUNDER, 1 ».
- ATH: отменяет вызов номера. Отправляется как «ATH», после мы получаем сообщение «+ CIEV:« CALL », 0 OK».
- AT+SNFS=0: выводит звук на наушники, подключенных к модулю.
- AT+SNFS=1: выводит звук на динамики.
- AT+CHUP: команда заставляет мобильный терминал завершить текущий вызов.
SMS команды:
- AT+CMGF=1: Разрешает отправку\принятие СМС. При отправке команды получаем «ОК». SMS-сообщения читаются в виде строк, а не шестнадцатеричных символов.
- AT+CMGS: используется для отправки SMS на заданный номер мобильного телефона. Формат для отправки этой команды - «AT+CMGS = номер_телефона. После отправки появится “>___________”. После чего можно ввести и отправить любое сообщение. Через несколько секунд модуль ответит идентификатором, указывающим, что сообщение было отправлено правильно: «+ CMGS: 62».
- AT+CMGL: используется для чтения SMS-сообщений из хранилища.
GPS \ GPRS команды
GPS и GPRS AT-команды:
- AT + GPS = 1: команда используется для включения GPS. При отправке включается модуль GPS и светодиод на нем начинает мигать.
- AT + GPS = 0: выключает GPS. После отправки GPS выключается и светодиод перестает мигать.
- AT + GPSRD = 1: используется для начала чтения данных GPS и отображения их на мониторе. Данные, возвращаемые этой командой, находятся в формате NMEA, который необходимо преобразовать, чтобы получить доступную для чтения форму.
- AT + GPSRD = 0: останавливает чтение данных GPS.
- AT + LOCATION = 1: используется для получения данных о местоположении через сервер LBS. Данные о местоположении отображаются в виде широты и долготы.
- AT + CGPSPWR: эта команда используется для управления питанием GPS. Используется для включения или выключения питания GPS.
- AT + CREG?: Эта команда используется для проверки, зарегистрированы ли мы в сети или нет. Если вернулось значение 1,1 - значит мы зарегистрированы в местной сети, если 1,5 - в роуминге.
- AT + CGATT: эта команда похожа на команду CREG. Если его ответ - 1, значит, мы подключены к сети.
- AT + CIPSTATUS: используется для проверки, подключен ли IP-адрес или нет. Если пришел ответ «INITIAL», то мы подключены.
- AT + CGDCONT = 1: Эта команда используется для подключения к Интернету. Необходимо указать APN и IP в формате “AT + CGDCONT = 1, «IP», «www»”.
- AT + HTTPGET: эта команда используется для отправки HTTP-запроса для получения любой ссылки на сервер. Его формат: AT + HTTPGET = “ссылка”.
- AT + CIPMODE: используется для выбора режима приложения TCP/IP. «0» означает непрозрачный режим, а «1» - прозрачный режим.
- AT + CIPACK: команда проверяет состояние передачи данных. Он вернет объем отправленных данных, объем данных подтвержденных сервером, и объем данных, не подтвержденных сервером.
Часто задаваемые вопросы
В чём разница между A9 и A9G?
Модуль A9 включает GSM и GPRS, но не GPS. Модуль A9G добавляет встроенный GPS-приёмник, объединяя GSM/GPRS/GPS в одном компактном SMD-корпусе. Оба производятся Ai Thinker и используют одинаковый набор AT-команд для функций GSM/GPRS.
Поддерживает ли A9G 4G LTE?
Нет. A9G работает в сетях 2G GSM/GPRS (850/900/1800/1900 МГц). 3G, 4G и LTE не поддерживаются. Для 4G IoT рассмотрите модули серий EC21 или SIM7600.
Какой ток потребляет A9G?
В режиме ожидания — около 3мА. Пиковый ток при GSM-передаче достигает 500мА при 3,8В. Проектируйте источник питания с учётом пикового тока — прямое подключение к 5В через USB TTL адаптер достаточно для тестирования, но может быть нестабильным при продолжительной работе.
Можно ли программировать A9G без внешнего микроконтроллера?
Да. Ai Thinker предоставляет SDK для компиляции и прошивки кастомной firmware прямо на внутренний процессор A9G. Это исключает необходимость в Arduino или ESP32. SDK поддерживает разработку на C и включает библиотеки для GSM, GPS, GPRS и базового ввода-вывода.
Совместим ли A9G с Arduino 3,3В или ESP32?
Серийные пины A9G (TX/RX) работают на 3,3В логике, что обеспечивает прямую совместимость с ESP32 и 3,3В Arduino. Однако VCC модуля требует 3,8–4,2В. Питайте его от LiPo-аккумулятора или выделенного регулятора 3,8В — не подключайте к шине 3,3В микроконтроллера.