2026-05-22 13:30:45 +03:00
2026-05-22 13:22:39 +03:00
2026-05-22 13:22:39 +03:00
2026-05-22 13:30:45 +03:00
2026-05-22 13:22:39 +03:00

APRS-IS Display для ESP32 + SH1106 OLED

Приём и отображение APRS-пакетов через WiFi на OLED-дисплее 128×64.

Возможности

  • Подключение к APRS-IS серверу через WiFi (основная + резервная сеть)
  • Фильтр по радиусу 300 км от дома (67.37°N, 32.49°E)
  • Отображение станций на дисплее
    • Обычные станции: позывной (крупно), направление/расстояние, комментарий
    • Метеостанции: бейдж [WX], позывной, температура (°C), влажность (%), давление (мм рт. ст.)
  • Автоматическое обновление экрана — всегда виден последний принятый пакет
  • Сплэш-экран «APRS» при старте
  • Счётчик принятых пакетов в статус-баре
  • Переподключение при потере связи (WiFi и APRS-IS)

Аппаратное обеспечение

  • ESP32 (ESP32-D0WD-V3)
  • OLED-дисплей SH1106 128×64, I2C
  • Питание через USB

Схема подключения

ESP32 SH1106
3.3V VCC
GND GND
GPIO21 SDA
GPIO22 SCL

Прошивка

Требования

  • Arduino CLI
  • Ядро ESP32 3.3.8
  • Библиотеки: U8g2, APRS-IS-Lib, APRS-Decoder-Lib v0.0.1

Компиляция и загрузка

arduino-cli compile --fqbn esp32:esp32:esp32:PartitionScheme=huge_app \
  -u -p /dev/ttyUSB0 "/home/ua1zbe/Рабочий стол/pr133"

Обязателен PartitionScheme=huge_app (3 МБ под приложение).

Настройка

Параметры заданы константами в начале скетча pr133.ino:

  • WiFiWIFI_SSID1, WIFI_PASS1 (основная сеть), WIFI_SSID2, WIFI_PASS2 (резервная)
  • APRS-ISAPRS_USER, APRS_PASS, APRS_SERVER, APRS_PORT, APRS_FILTER
  • Домашние координатыHOME_LAT, HOME_LON (для расчёта расстояния и направления)

Формат пакетов

Метеостанции

Распознаются по наличию полей tNNN (температура в °F), hNN (влажность %), bNNNNN (давление в десятых долях гПа).

На дисплей выводятся:

  • Температура в °C (автоконвертация)
  • Влажность (если есть)
  • Давление в мм рт. ст. (×0.75 от гПа)

Обычные станции

Показываются позывной, направление/дистанция от дома, оставшийся текст комментария.

Структура проекта

pr133.ino          — основной скетч
BUILD.md           — инструкция по сборке с нуля
README.md          — данное описание
pr133.ino.backup   — оригинальный автосгенерированный скетч (на всякий случай)

История версий

  • v1.0 — чистый rewrite с нуля: сплэш APRS, приём пакетов через APRS-IS, парсинг координат, отображение на дисплее, определение метеостанций, давление в мм рт. ст.
Description
APRS-IS Display for ESP32 + SH1106 OLED
Readme 52 KiB
Languages
C++ 100%