Некоторое время назад я рассказал об интерфейсе на AVR котроллере для Telit GM862.
В этой публикации я покажу, как использовать это оборудование для посылки SMS с информацией о вашем текущем местоположении и как отображать его в Google Maps.
Как это работает?
Последовательный порт контроллера соединен с последовательным портом модуля GM862. Таким образом контроллер может посылать AT команды на модуль и получать ответ. GM862 имеет два последовательных порта: один для управления модемом, а другой для получения GPS данных в формате NMEA 0183. К счастью, мы можем иметь доступ к GPS через порт для модема, что спасает от необходимости использования второго последовательного порта. Для отладки и управления контроллером я использую второй последовательный порт, который соединяет контроллер с моим компьютером. Так я могу посылать команды на контроллер и управлять выполнением программы, пока она еще не протестирована и закончена.
Чтобы все заработало нужно совершить следующие действия:
- Включить устройство.
- Включить модуль GM862 (делается ATmega8).
- Инициализировать модем.
- Инициализировать GPS модуль (может быть пропущено).
- Послать запрос о положении (повторяется до получения постоянных данных).
- Послать SMS с текущими GPS данными о положении на сервис SMS-to-Email.
- Открыть почту и открыть линк Google Maps.
Подробности
Поскольку ATmega8 имеет только один аппаратный UART, я использую его для сообщения с модемом 19200 бод. На втором последовательном порту реализован программный UART для отладки, который сообщается с компьютером на 9600 бод. Запуск контроллера выводит на терминале следующее меню:
------
Beacon v0.02 2007/07/28
s - Change sms phone number
o - Switch modem on/off
i - Init modem
m - Send SMS
c - Cold start GPS
p - Request GPS
------
key >
Включение и выключение модема производится понижением напряжения на 17 контакте GM862 минимум на секунду. Светодиод статуса на модеме должен замигать в ответ.
Инициализация модема производится следующей последовательностью AT команд:
- AT, приветсвие
- AT+IPR=19200, установить скорость 19200 бод
- AT+CPIN=
, ввести PIN-код для SIM-карты -
AT+CMEE=2, выбрать расширенный формат вывода ошибок
-
AT$GPSR=1, заканчивается холодным пуском (полностью выключенной системы) -
AT$GPSR=2, заканчивается теплым пуском (перезагрузка без выключения)
-
AT$GPSACP, показать запрошенное положение
-
AT+CMGF=1, выбрать текстовый формат SMS -
AT+CMGS=" ", отправить сообщение на данный номер телефона. В ответ на эту команду появляется приглашение >. Теперь можно передавать текст SMS. Сообщение должно оканчиваться 0x1A.
-
Время, hhmmss.SSS -
Положение, широта в градусах и минутах -
Положение, долгота в градусах и минутах -
Фактор снижения точности при определении положения в горизонтальной плоскости -
Положение, высота в метрах -
Привязка, 0 = недействительна, 2 = 2D, 3 = 3D -
Направление маршрута -
Скорость в км -
Скорость в узлах -
Число спутников