APRS-IS display for ESP32 + SH1106
This commit is contained in:
83
README.md
Normal file
83
README.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# 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, парсинг координат, отображение на дисплее, определение метеостанций, давление в мм рт. ст.
|
||||
Reference in New Issue
Block a user