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. Они предназначены для загрузки прошивки и дальнейшего дебага.
AiThinker Serial Tool V1.2.3.
Запускаем программу и открываем 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: команда проверяет состояние передачи данных. Он вернет объем отправленных данных, объем данных подтвержденных сервером, и объем данных, не подтвержденных сервером.