Skip to content

Пример работы ESP32 с GPS-модулем Neo-6M

Notifications You must be signed in to change notification settings

neproger/gps_esp32_c_parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Пример работы ESP32 с GPS-модулем Neo-6M

Описание

Этот проект демонстрирует взаимодействие микроконтроллера ESP32 с GPS-модулем Neo 6M с использованием языка программирования C. Для управления задачами и синхронизации данных используются возможности FreeRTOS.

Основная цель — получение текущих координат GPS, их обработка и предоставление другим задачам для дальнейшего использования.

Возможности

  1. Чтение данных GPS через UART:

    • Используется UART1 для подключения GPS-модуля.
    • Принимаются и обрабатываются строки NMEA, в частности формат $GPGGA.
  2. Обработка данных GPS:

    • Парсинг строки $GPGGA для извлечения:
      • Времени (UTC).
      • Широты и долготы.
      • Качества фиксации.
      • Количества спутников.
      • Высоты над уровнем моря.
    • Преобразование координат в десятичный формат.
  3. Синхронизация данных:

    • Используется FreeRTOS-семафор для безопасного обновления глобальных переменных latitude и longitude, которые содержат текущие координаты.
  4. Интеграция с другими задачами:

    • Реализован пример задачи, использующей координаты GPS для периодического логирования.

Как работает

  1. Инициализация:

    • Настраивается UART для связи с GPS-модулем.
    • Создается семафор для синхронизации доступа к данным координат.
  2. Задачи:

    • gps_task:
      • Считывает данные с GPS-модуля.
      • Парсит строку $GPGGA.
      • Обновляет глобальные переменные координат.
    • some_other_task:
      • Получает доступ к координатам через семафор.
      • Логирует текущие координаты с фиксированным интервалом.
  3. Поток данных:

    • GPS-модуль передает строки NMEA на UART.
    • ESP32 обрабатывает данные и предоставляет актуальные координаты другим задачам.

Используемые технологии

  • ESP-IDF: Фреймворк для разработки под ESP32.
  • FreeRTOS: Управление многозадачностью.
  • UART: Для получения данных с GPS-модуля.
  • ESP_LOG: Для логирования информации.

Подключение

  • GPS TX -> GPIO16 (RX UART1).
  • GPS RX -> GPIO17 (TX UART1).
  • Питание GPS подключается к источнику 3.3V или 5V в зависимости от модели.

photo

Запуск проекта

  1. Настройте окружение ESP-IDF.
  2. Подключите GPS-модуль к ESP32.
  3. Склонируйте проект и соберите его:
    idf.py build flash monitor
  4. Наблюдайте за координатами GPS в терминале.

Пример вывода

________________
Time: 15:14:08
Latitude: 00.000000° N
Longitude: 00.000000° E
Fix Quality: 1
Satellites: 9
HDOP: 0.94
Sea Level Altitude: 1125.5 m
I (4846314) GPS_DATA: 00.000000, 00.000000

About

Пример работы ESP32 с GPS-модулем Neo-6M

Resources

Stars

Watchers

Forks