Files
pr133/README.md
2026-05-22 13:22:39 +03:00

84 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`:
- **WiFi** — `WIFI_SSID1`, `WIFI_PASS1` (основная сеть), `WIFI_SSID2`, `WIFI_PASS2` (резервная)
- **APRS-IS** — `APRS_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, парсинг координат, отображение на дисплее, определение метеостанций, давление в мм рт. ст.