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

GPS-трекер на базе ESP8266
(на русском языке)

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 makeindex.lua as makeindex.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>). Ви не зможете переглянути такий файл GPS-маршруту, але проблему можна виправити. Просто додайте відсутні теги в кінці файлу. Ви можете використовувати будь-який текстовий редактор для перегляду та редагування файлу 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.

 

Відео

Бажаю успіхів.

Дивись також:

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

  • пан Володимир говорить:

    Привіт, Друже,

    Мене звати Володимир, місто Київ.
    Знайшов ваший цікавий сайт про електроніку та ESP8266, яким я зараз захоплююсь. Сподобалось, що він українською. У вільний час намагаюся створити універсальну систему автоматичного поливу кімнатних рослин. Радий познайомитися.

    Володимир.

  • Єгор говорить:

    Доброго дня. Підкажіть будб-ласка по роботі з SD-картками. Чи є тут якісь обмеження на об’єм карти?
    Чи можно повноцінно використовувати карту об’ємом 8-16 Гб?

    • andre говорить:

      Доброго дня. Весь об’єм картки я не пробував зайняти. Суммарно до 2 Гб у декількох файлах робило без проблем.

  • Ivan говорить:

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

    • andre говорить:

      Доброго дня. Файлу mackeindex.lua і не має бути. На відео він потрапив помилково. Проблема у іншому. Можливо, у налаштуваннях GPS модуля або у моєму софті. Ви можите надіслати мені приклад треку, який пишиться і свої реальні координати? Якщо зможите надіслати фрагмент даних, які видає GPS модуль – це буде чудово. Моя адреса andre@avislab.com

  • oxykarim говорить:

    Привет, для GPS-трекера, Не могу найти один файл для загрузки в ESP8255, mackeindex.lua, есть только makeindex.lua. Где его найти или можешь залить его на github?

  • Derek Belz говорить:

    Hallo from Germany,
    I am very interested in Your GPS tracker, as I prefer to program with LUA. Although I am a beginner with LUA.

    Unfortunately I only got as far as connecting to ESPWIFI. My computer connected, but I was not able to to start the page http://192.168.4.1/. It says connection was refused by server.

    Have got a hint where to look for the problem?

    Regards

    Derek Belz

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

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

 
Translate
Архіви

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