сайт для палких паяльників

GPS-трекер на базе ESP8266 с SD-картой и web-интерфейсом

Этот пример демонстрирует, как можно сделать простой GPS-трекер с помощью популярных электронных модулей. В этом примере используется Wi-Fi модуль ESP-12 на базе чипа ESP8266. Прошивка NodeMCU и LUA-скрипты с открытым кодом.

Функции GPS-трекера

  • Сохраняет GPS-треки в формате GPX
  • Может хранить GPS-треки на SD-карту или во внутреннюю флэш-память Wi-Fi модуля
  • Настройка и просмотр треков через web- интерфейс
  • Загрузка файлов GPX на компьютер через web – интерфейс

Примечание: GPS-трекер в чистом виде может быть не очень интересным, поскольку любой современный смартфон способен писать GPS-треки. Но этот пример может стать основой для более продвинутых проектов. Вы можете добавить к этому проекту датчики (датчик шума, газоанализатор, детектор излучения и др.), и записывать данные измерений вместе с геоданными, то есть с привязкой к местности. А потом строить диаграммы измерений прямо на географических картах похожие на такие:

Необходимые компоненты

  • Плата NodeMCU с модулем ESP-12E или аналогичная
  • GPS-модуль GY-NEO6MV2 или аналогичный
  • Адаптер карты MicroSD (не обязательно)
  • Powerbank или любая другая система питания
  • Соединительные провода

Прошивка и скрипты

Сначала в ESP8266 надо загрузить программное обеспечение и только после этого собирать схему.

Имеется в виду, что вы знаете, как загрузить прошивку NodeMCU в ESP8266, и вы знаете, как загружать файлы в NodeMCU. Пожалуйста, загрузите файлы прошивки NodeMCU здесь: https://github.com/avislab/NodeMCUExamples/tree/master/GPSTracker/FirmwareNodeMCU

А затем загрузите их в ESP8266. Это можно сделать различными инструментами, не обязательно теми, что приведены в качестве примера. Пример загрузки прошивки с помощью esptool:

esptool.py --port COM10 write_flash 0x0 nodemcu-dev-21-modules-float.bin 0x3fc000 esp_init_data_default.bin

Result:
esptool.py v1.3
Connecting....
Auto-detected Flash size: 32m
Running Cesanta flasher stub...
Flash params set to 0x0040
Wrote 753664 bytes at 0x0 in 65.3 seconds (92.3 kbit/s)...
Wrote 4096 bytes at 0x3fc000 in 0.4 seconds (87.4 kbit/s)...
Leaving...

Примечание: Если вы используете другой модуль ESP, прочитайте здесь информацию о файле esp_init_data_default.bin

Затем скачайте все файлы из папки https://github.com/avislab/NodeMCUExamples/tree/master/GPSTracker и загрузите их в NodeMCU.

Пример загрузки файлов в NodeMCU с помощью nodemcu-uploader:

python nodemcu-uploader.py --port COM10 upload *

Result:
opening port COM10 with 115200 baud
Preparing esp for transfer.
Transferring cfg.lua as cfg.lua
Transferring config.lua as config.lua
Transferring distance.lua as distance.lua
Transferring files.png as files.png
Transferring http.lua as http.lua
Transferring init.lua as init.lua
Transferring loadcfg.lua as loadcfg.lua
Transferring mackeindex.lua as mackeindex.lua
Transferring map.html as map.html
Transferring savecfg.lua as savecfg.lua
Transferring sdcard.lua as sdcard.lua
Transferring settings.html as settings.html
Transferring settings.png as settings.png
Transferring tracker.lua as tracker.lua
Transferring wifi.lua as wifi.lua
All done!

Схема

Соедините все компоненты, как показано на схеме.

Использование адаптера SD-карты не является обязательным, но Вы должны осознать что общий размер файлов GPS-треков будет ограничен свободным пространством во Flash памяти Wi-Fi модуля.

Как работает GPS-трекер?

Запись GPS трека

После включения питания, подождите примерно 3 секунды, светодиод на плате должен мигнуть дважды. Теперь устройство готово.

Если SD-карта успешно смонтирована, ESP8266 будет использовать SD-карту для записи треков. Если нет – будет использована внутренняя флэш-память Wi-Fi модуля.

Чтобы запустить запись GPS-трека, нажмите кнопку “Flash”.

Примечание: на этой плате кнопка Flash подключена к GPIO0.

Две вспышки светодиода указывает на то, что запись началась. Чтобы остановить запись, нажмите кнопку “Flash”. Одна вспышка светодиода означает, что запись остановлена.

Примечание: Формат файла GPX, который используется для записи GPS-треков, выглядит как XML. Вот почему очень важно правильно завершить запись. При неправильном завершении записи, например если выключить питание во время записи трека, файл трека будет содержать данные, но не будет иметь завершающих XML-тегов (</trkseg></trk></gpx>). Вы не сможете просмотреть такой файл, но проблему можно решить. Просто добавьте отсутствующие теги в конце файла. Вы можете использовать любой текстовый редактор для просмотра и редактирования файла GPX.

Каждый раз, когда начинается запись трека, создается новый файл с цифровым индексом в своем имени. Например: GPSTrack1.gpx, GPSTrack2.gpx, GPSTrack3.gpx и так далее.

По умолчанию GPS – точки записываются каждые 5 сек. Вы можете изменить этот период в настройках. Одна короткая вспышка светодиода указывает на запись GPS-точки в файл трека. Но запись происходит только тогда, когда GPS модуль уже определил свое местоположение.

Иногда записывать в трек GPS координаты каждые 5 секунд нет смысла. Например, когда ваше местоположение не изменяется. В настройках Вы можете указать дистанцию. Следующая GPS-точка трека будет записываться, когда расстояние между последними записанными координатами и текущим положением будет больше указанной дистанцию. Этот метод уменьшает размер трек-файлов.

Примечание: GPS-трекер не использует Wi-Fi в режиме записи GPS-треков.

Просмотр GPS-треков и настройка

Просмотр треков и настройки доступны в специальном режиме “view & settings”. Чтобы включить этот режим, нажмите кнопку “Reset”, а затем нажмите и удерживайте кнопку “Flash” до первой вспышки светодиода. После первой вспышки светодиода отпустите кнопку. Светодиод должен мигнуть 4 раза. ESP8266 попытается подключиться к точке доступа Wi-Fi указанной в настройках. Но мы еще не настраивали наше устройство и соединение не будет установлено.

Вы можете еще раз нажать кнопку “Flash”, чтобы включить собственную Wi-Fi точку доступа на ESP8266. После включения собственной точки доступа, Вы можете подключиться к GPS-трекеру с помощью своего мобильного или ноутбука используя такие данные:

SSID: ESPWIFI
Пароль: 1234567890

Теперь с помощью web-браузера зайдите на страницу: http://192.168.4.1/

Этот режим позволяет загружать, удалять сохранены GPS-треки и редактировать настройки, но для просмотра GPS-треков на Google карте требуется подключение к Интернет. Нужно указать домашнюю сеть Wi-Fi с доступом к Интернет. Нажмите кнопку «Настройки», затем укажите SSID и пароль домашней Wi-Fi сети и нажмите «Save options». Изменения настроек будут применены после перезагрузки.

Перезагрузите ESP8266 кнопкой “Reset”, а затем нажмите и удерживайте кнопку “Flash”, чтобы включить режим “view & settings”. GPS-трекер будет подключаться к точке доступа Wi-Fi, которая назначит ему IP-адрес.

Чтобы узнать IP, вам нужно зайти в панель управления Wi-Fi точки или маршрутизатора. Обычно это делается через web-интерфейс. И найти нечто похожее на “DHCP Clients”.

У разных производителей роутеров и W-Fi AP этот пункт может отличаться.

Предположим, что IP 192.168.201.99. Теперь Вы можете подключиться к вашему GPS-трекеру с помощью web – браузера. Введите URL: http://192.168.201.99 и просматривайте GPS-треки с помощью Google Maps.

Видео

Желю спехов.

Смотри также:

8 комментариев: GPS-трекер на базе ESP8266

  • Андрей говорить:

    Добрый День, после сборки все прекрасно работает… Но))) Пытливый ум моего сына … изрек вопрос: а можно ли подключить дисплей, с возможность вывода не него данных(текущих координат например)??? Чесно…. мне тоже стало интересно))) Если это возможно… просьба в двух словах как!?!

    • andre говорить:

      Добрый день. Да, дисплей подключить можно. SSD1306 работающий по шине I2C – без проблем. Для того, чтобы все проверить и подробно рассказать как это сделать мне понадобиться несколько дней. Я сразу опубликую статью про дисплей (она практически готова), а следом как “прикрутить” дисплей к GPS трекеру.

  • Аркадий говорить:

    Здравствуйте!
    Скажите, пожалуйста, почему вы не используете режим wifi.SOFTAP вместо STATIONAP?
    Ещё у меня проблема в том, что очень сложно подключиться к точке доступа на ESP. Может быть, домашний роутер “перебивает”. А если удается, то соединение очень быстро отваливается.

    • andre говорить:

      Здравствуйте. Нет, алгоритм работы не предусматривает загрузку карт. Карты он тянет с Интернет во время просмотра.

  • Ivan говорить:

    Не можу коректно отримати дані з neo6m.
    В мене трек пише, все як повинно бути. Але дані невірні,
    розташування моє не відповідає реальності. Тобто маршрут
    прокладається на карті зовсім в іншому місті ніж там де я є.
    Можливо потрібно провести додаткові налаштування.???
    В відео автор завантажує 17 файлів а в посиланні
    https://github.com/avislab/NodeMCUExamples/tree/master/GPSTracker
    доступно 16 файлів немає mackeindex.lua
    Можливо я щось пропустив.???

  • Pavel говорить:

    Здравия Andre! Благодарю за подобные проэкты!
    Если есть возможность дайте ссылку на скрипт или может готовый проэкт. Связка модуля esp8266 gps и датчика ds18b20 чтобы была привязка к точке на карте)
    Спасибо вам!

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

 
Translate
Архіви

© 2011-2017 Андрій Корягін, Кременчук - Київ, Україна