На примере передачи GPS/ГЛОНАСС координат подвижного объекта.
Сейчас популярна тема взаимодействия с подвижными объектами через интернет, разнообразные охранные и геолокационные сервисы год от года становятся все востребованнее. Люди хотят знать, где находятся, с какой скоростью движутся и сколько топлива потребляют их машины, дети и собаки. Давайте с точки зрения инженера-электронщика и программиста разберемся, какие шаги нужно предпринять, чтобы передать информацию от подвижного объекта на веб-сервер.
На подвижном объекте (возьмем для определенности автомобиль с бортовым напряжением питания 12 В) установлено устройство, которое собирает некую информацию (давайте опять таки для определенности предположим, что нам надо передать на сервер информацию о текущем местоположении транспортного средства, определенную при помощи систем GPS или ГЛОНАСС) и передает ее на сервер, который в свою очередь, обрабатывает принятые данные и выводит их в удобном для конечного пользователя виде.
Давайте в общих чертах рассмотрим ключевые моменты разработки и проектирования такого прибора.
Конечно же, не следует полагать, что автомобильные 12 В — это те же самые 12 В, что мы снимаем с лабораторного блока питания. Автомобильное питание имеет большой допустимый уровень выбросов напряжения. Вследствие особенностей совместной работы аккумулятора и генератора напряжение в бортовой сети может резко и достаточно надолго подскочить, что может привести к большим неприятностям, в крайнем случае даже к «капитальному ремонту» сгоревшего прибора.
Общие принципы:
• Необходимо использовать микросхемы питания так называемого автомобильного диапазона (Automotive Grade), рассчитанные на длительную работу с входным напряжением до 75 В.
• Нужно обязательно предусмотреть защиту от перенапряжения и от переполюсовки входного напряжения. Вариант с диодным мостом Шоттки в данном случае не очень подходит, так как автомобильное питание при работе от разряженного аккумулятора при низких температурах может сильно просесть, а диодный мост уменьшит его еще больше. Как вариант, можно применить цепочку предохранитель-супрессор. Супрессор надо брать несимметричный, с тем, чтобы он срезал отрицательные напряжения даже минимальной амплитуды.
• Желательно предусмотреть схему защитного отключения: при повышении напряжения выше заданной границы вся остальная схема обесточивается, при возвращении питания в допустимый диапазон прибор запитывается снова.
Вариант схемы питания показан на рисунке ниже (картинки кликабельны).
2. Получение координат
Для получения географических координат от глобальных систем спутникового позиционирования GPS или ГЛОНАСС нам понадобится приемник GPS или GPS/ГЛОНАСС. Если позволяет место на печатной плате и если у заказчика есть такое желание, то можно предусмотреть на печатной плате место как под просто GPS-приемник (этого вполне достаточно для работы и позволяет сэкономить), так и под GPS/ГЛОНАСС-приемник. Возможно, со временем универсальные модули GPS/ГЛОНАСС/Galileo/Beidou станут доступны и дешевы, так что такие ухищрения не понадобятся. Можно применить совместную схему, показанную на рисунке ниже. Здесь показано совместное использование GPS-модуля EB-500 и GPS/ГЛОНАСС-модуля NV08C-CSM. Естественно, на печатной плате они расположены так, что можно напаять или только EB-500 или только NV08C-CSM.
3. GSM/GPRS модуль
Просто возьмите тот, который нравится больше и проще доставаем. Мне приходилось работать с Simcom (наиболее бюджетный вариант), Telit и SonyEricsson, все модули работают стабильно, нареканий нет.
На рисунке ниже показан пример подключения к микроконтроллеру модуля Telit GL868-DUAL.
4. Микроконтроллер
В принципе, работы с GPS, GPRS, SMS, DTMF (с внешним DTMF декодером) плюс обслуживание дополнительной периферии вполне по силам даже восьмибитному контроллеру класс AVR ATmega (вот вариант конструкции GPS/GSM трекера на ATmega128 с открытым исходным кодом). Так что можете использовать AVR, PIC, i8051 или любые другие МК сопоставимой производительности. Хотя на мой взгляд, на настоящий момент лучше выбрать ARM-процессоры, сильно обгоняющие конкурентов по соотношению цена/функционал.
В свою очередь, среди множества ARM-процессоров тоже есть из чего выбрать. Пожалуй, самые популярные контроллеры выпускают фирмы NXP Semiconductors, ST Microelectronics и Atmel. Лично я для себя когда-то выбрал STM32 от ST Microelectronics (самый маленький доступный процессор был меньше и выводов у него было меньше, чем у аналогичного от NXP), так с ними и работаю.
Ниже показана центральная часть схемы GPS-трекера. MAX3318E нужна была для дополнительного канала связи RS-232. На LM2594HVM-ADJ организован блок питания для микроконтроллера, так как основной мощный блок питания на LM5576 для запитки GSM и GPS модулей сделан отключаемым.
5. Программное обеспечение
Для обработки протокола NMEA, по которому отдает данные GPS/ГЛОНАСС модуль, можно использовать парсер NMEA .
Начальная последовательность команд, которую необходимо подать GSM модулю Telit GL868-DUAL, чтобы он соединился с сервером: