Запись и чтение маршрута автомобиля (без GPS) - Своими руками
Своими руками

Запись и чтение маршрута автомобиля (без GPS)

>

Обычно, если заходит речь об отслеживании положения какого-либо объекта, то сразу вспоминается какой-нибудь микроконтроллер в паре с GPS-приемником.

Но есть менее распространенный способ отслеживания, через геолокацию Wi-Fi- Google.
В этой статье мастер расскажет нам, как отследить поездку машины с помощью платы ESP8266 и службы Google Geolocation и Maps API.
Инструменты и материалы:-Wemos d1 mini (4M version);-Плата расширения WIFI + RTC;-USB-кабель;-SD-карта;
Шаг первый: геолокация Wi-Fi
Пользователь может отправить список точек доступа Wi-Fi в сервис местоположения в API Google, и будут установлены координаты GPS для каждой точки. Используя эту базовую концепцию, и был сделан этот проект.

На картинке ниже показан маршрут поездок на автомобиле. Устройство стоит в машине мастера и записывает все его поездки. Маршруты поездок сохраняются и размещаются на микроконтроллере ESP8266.

Затем эти данные размещаются на Веб-сервере, запущенном на D1 mini. На домашней странице можно просматривать список поездок. Можно кликнуть на любую поездку, чтобы просмотреть ее отдельно.
Чтобы объяснить, как работает геолокация Wi-Fi, мастер создал образец кода ( esp8266_geolocation.ino + cert.h ). Когда D1 mini загружается, он запускает функцию get_my_location () . В этой функции он сканирует окружающие сети Wi-Fi и выводит их список. Затем он подготавливает данные для epIcall. Далее он подключается к Интернету, устанавливает SSL-соединение с Google и выполняет вызов API. Когда он получает ответ, он его распечатывает. И если все идет хорошо, выдает координаты GPS привязанные к точкам Wi-Fi.

Пользователю необходимо получить API-ключ от Google и включить на нем службу геолокации. Вот как вы можете получить местоположение по GPS, зная окружающие точки доступа.
Запись и чтение маршрута автомобиля (без GPS)Запись и чтение маршрута автомобиля (без GPS)Запись и чтение маршрута автомобиля (без GPS)Шаг второй: устройство
Схема не сложная. У устройства есть Wemos D1 mini, подключенный к двум модулям – SD-карте и часам реального времени. SD-карта используется для сохранения файлов поездки, а часы реального времени используются для отметки времени поездок. Как многие знают, ESP8266 не имеет внутренних часов, поэтому необходим RTC . Позже мастер нашел плату расширения, у которой есть RTC с одной стороны и SD-карта с другой. Это делает устройство еще проще и меньше. Корпус мастер напечатал на 3D-принтере, подключил USB-кабель.
Запись и чтение маршрута автомобиля (без GPS)Запись и чтение маршрута автомобиля (без GPS)Шаг третий: работа устройства и код
Устройство подключается к одной из розеток USB в автомобиле и получает питание только тогда, когда машина работает.
Когда устройство загружается, оно начинает искать домашнюю сеть Wi-Fi. Если модуль его находит, он подключается к этой сети. Это позволяет получить доступ к истории поездок.

Если он не находит домашний Wi-Fi, предполагается, что авто в пути, и начинается запись маршрута. Создается новый файл .log. В качестве имени файла используется текущая отметка времени. Затем он начинает сохранять список найденных точек доступа каждые 5 секунд. Эти «файлы» называются «Поездками». Чтобы преобразовать эти поездки – используя вызов API геолокации – все, что нужно сделать, это нажать кнопку, и он сгенерирует новый файл с той же меткой времени, но с расширением .gps. Файл содержит результаты, содержащие координаты GPS.
Затем нужно использовать карты Gogle, чтобы нанести GPS-координаты на интерактивную карту.
К сожалению, работа с большими файлами на веб-сервере была немного сложной. ESP8266 имеет только 40 КБ памяти. Когда мастер попытался загрузить большие файлы с sd-карты в память, вылетало устройство. Решением было использовать буфер обмена для отправки фрагментов файла, пока не будет передан весь файл.
Запись и чтение маршрута автомобиля (без GPS)Запись и чтение маршрута автомобиля (без GPS)Код для прошивки микроконтроллера можно скачать здесь.
Мастер настройки встроен в код и нужно просто следовать инструкции.
Запись и чтение маршрута автомобиля (без GPS)

SitesReady

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.