Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Я сделал этот GPS-трекер в прошлом году, и, поскольку он хорошо работает, я публикую его сейчас на Instructable. Он подключен к разъему для аксессуаров в моем багажнике.
GPS-трекер загружает данные о местоположении, скорости, направлении и измеренной температуре автомобиля через соединение мобильной передачи данных (GPRS) на канал Thingspeak. Эти данные считываются моей домашней автоматизацией Openhab для отображения этих данных. Я использую Thingspeak для получения данных локально в моей домашней автоматизации Openhab через MQTT-брокера Thingspeak. Может быть есть другие способы, дайте мне знать в комментариях
Если вы позвоните на трекер, он отправит вам SMS с местоположением и статусом, содержащим ссылку на Google Maps с координатами.
Этот проект был вдохновлен некоторыми другими проектами, о которых я упоминаю здесь и далее.
- Загрузка на Thingspeak
- Отправить SMS со ссылкой на Google Maps
Я недавно видел эту инструкцию автомобильного трекера, который использует аналогичный подход для SMS.
В следующих шагах я покажу вам
- Принцип и код
- Аппаратное обеспечение
- сборка
- Интеграция домашней автоматизации
- Дальнейшие улучшения
Запасы
Приобрел комплектующие с Алиэкспресс. Основные компоненты
- Arduino Pro Mini 328P 5v: ссылка на пример
- GY-NEO6MV2 GPS-приемник: ссылка
- Модуль A6 GSM / GPRS или аналогичный: ссылка
- Бак-конвертер: ссылка
Шаг 1. Принцип и Кодекс
В прикрепленных потоках показан принцип работы GPS-трекера. Код опубликован на моей странице Github.
Прокомментирую некоторые части кода.
Последовательная связь
Arduino обменивается данными как с GPS-приемником, так и с модулем A6 через последовательное соединение.
Я обнаружил, что последовательная связь между модулем A6 и Arduino была полностью стабильной только тогда, когда я использовал аппаратный серийный номер Arduino pro mini. Для связи между Arduino и GPS-приемником я использовал AltSoftSerial. Обратите внимание, что библиотека AltSoftSerial использует предопределенные выводы RX и TX.
Во время разработки я экспериментировал с Arduino Mega, которая имеет 4 аппаратных последовательных соединения, вы можете легко использовать одно для целей отладки.
AT-команды
См. Эти ссылки для получения информации об очень важных AT-командах: Electrodragon, M2Msupport.net, Andreas Spiess.
Если вы используете другой модуль GSM / GPRS, например SIM800 или SIM900, вам, вероятно, понадобятся другие AT-команды для настройки подключения для передачи данных и POST-данных на сайт как Thingspeak.
SMS
Модуль GSM считывает номер телефона вызывающего абонента (AT + CLIP) и отправляет SMS с местоположением (ссылка на Google Maps) и статусом вызывающему абоненту.
Температура
Если температура в GPS-трекере слишком высокая, он отправит тревожное SMS-сообщение.
Шаг 2: Оборудование
Я подключил все компоненты через гнездовые разъемы к перфокартам для облегчения отладки и ремонта. Смотрите картинки и комментарии.
Понижающий преобразователь получает 12 В от автомобиля и выдает 5 В (через переключатель включения / выключения) для Arduino Pro Mini, модуля A6 и GPS-приемника (который, как я думал, допускает только 3,3 В, но 5 В работает нормально).
Модулю A6 требуется достаточный источник питания. При передаче через сеть GSM возникают скачки мощности, поэтому я добавил танталовый конденсатор емкостью 1000 мкФ.
Температура измеряется термистором 10K NTC.
Шаг 3: Сборка
После того, как все подключено и протестировано, компоненты монтируются к гнездовым разъемам, а переключатели и светодиоды приклеиваются к корпусу.
Шаг 4: интеграция домашней автоматизации
Thingspeak
Я использую бесплатную учетную запись на Thingspeak. К сожалению, они уменьшили количество каналов для бесплатной учетной записи, но она по-прежнему отлично работает, и этому проекту нужен только один канал и несколько полей. Для загрузки нужен ключ API записи, для чтения через MQTT - ключ API чтения. См. Этот сайт для документации о том, как использовать Thingspeak MQTT.
Я прочитал данные в Node Red. См. Изображение прикрепленного потока, в котором я объединяю значения lat и lon в одну строку. Я использую задержку, чтобы получить значения широты и долготы в правильном порядке.
Шаг 5: Дальнейшие улучшения
На будущее планирую:
- Подключите трекер к моей батарее, чтобы модуль всегда был включен. Однако я должен гарантировать, что он не разряжает батарею слишком часто.
- Может быть, в моей домашней автоматизации есть какие-то геозоны, поэтому я получаю предупреждение, если автомобиль выходит за пределы заданного диапазона.
- Проверьте, известен ли звонящий, чтобы предотвратить отправку SMS-сообщений неизвестным абонентам.
- Если у вас есть хорошая идея, дайте мне знать в комментариях