Monitor DMR na ESP32-2432S028R ("偶贸艂ty modu艂" CYD) z danymi z BrandMeister
Wst臋p
Monitor DMR pokazuj膮cy na bie偶膮co, kto nadaje na wybranych grupach rozm贸wnych, pierwotnie zbudowa艂em na ESP32 WROOM-32U z wy艣wietlaczem 480×320 i osobn膮 kart膮 SD. Program pobiera dane bezpo艣rednio z internetu, wi臋c nie potrzebuje modu艂u MMDVM ani radia. Wystarczy sie膰 WiFi.
https://hf5wwl.blogspot.com/2026/07/dmr-monitor-na-esp32.html
Okaza艂o si臋, 偶e ten sam program mo偶na przenie艣膰 na popularny gotowy modu艂 ESP32-2432S028R, czyli tak zwany "偶贸艂ty modu艂" (CYD, Cheap Yellow Display). Ma on w jednej p艂ytce ESP32, kolorowy wy艣wietlacz 2,8" i gniazdo karty microSD. Nie trzeba niczego lutowa膰 ani 艂膮czy膰 przewodami.
Jak to dzia艂a
Monitor 艂膮czy si臋 przez WebSocket z serwerem BrandMeister (Last Heard) i odbiera informacje o aktywno艣ci w sieci. Ka偶dy pakiet zawiera znak, imi臋 lub alias operatora, jego ID DMR oraz numer grupy rozm贸wnej (TG). Program odrzuca pakiety z grup, kt贸rych nie monitorujesz, a reszt臋 pokazuje na ekranie.
Co pokazuje ekran
- Nag艂贸wek: nazwa monitora, status po艂膮czenia z BrandMeister (BM ONLINE / OFFLINE), ikona radia zmieniaj膮ca kolor podczas odbioru oraz zegar synchronizowany przez NTP (z automatyczn膮 zmian膮 czasu letni/zimowy).
- Aktywny operator: du偶y znak wywo艂awczy, imi臋 lub alias, numer TG i ID oraz licznik czasu trwania transmisji (MM:SS) z animacj膮 odbioru.
- Historia: cztery ostatnie transmisje z godzin膮, znakiem, imieniem i numerem TG.
- Stan czuwania: gdy nikt nie nadaje, ekran pokazuje list臋 monitorowanych grup.
Konfiguracja z karty SD
Nic nie trzeba zmienia膰 w kodzie, 偶eby ustawi膰 sie膰 i grupy. Wszystko jest w plikach tekstowych na karcie microSD (FAT32). Na karcie tworzymy dwa pliki:
plik config.txt – dane sieci WiFi:
SSID=nazwa_twojej_sieci_WiFi
PASS=twoje_hasloplik monitored_tg.txt – lista monitorowanych grup, jedna w linii:
260
2602
# linia zaczynaj膮ca si臋 od # jest komentarzem na przyk艂ad:#260080#TG lokalne#TG podr臋czne Wpis 260* w艂膮cza monitorowanie wszystkich grup zaczynaj膮cych si臋 od 260. Je艣li pliku nie ma, program u偶ywa domy艣lnej grupy 260.
Plik logu powstanie automatycznie.
WA呕NE! Stosuj karty max 32 GB sformatowane na FAT32. To powinno dzia艂a膰 niezawodnie.
Dziennik transmisji
Po zako艅czeniu ka偶dej transmisji (po 5 sekundach bez pakiet贸w) program dopisuje wiersz do pliku dmr_log.csv na karcie SD: data i godzina pocz膮tku i ko艅ca, znak, imi臋, ID, TG oraz czas trwania w sekundach. Plik mo偶na otworzy膰 w Excelu lub LibreOffice i analizowa膰 aktywno艣膰.
Co trzeba by艂o zmieni膰 przy przeniesieniu na CYD
- Wy艣wietlacz: w wersji z dwoma portami USB (micro-USB i USB-C) jest to ST7789 o rozdzielczo艣ci 320×240. U偶y艂em biblioteki Adafruit ST7789, na magistrali HSPI (CS 15, DC 2, MOSI 13, MISO 12, SCK 14, pod艣wietlenie GPIO 21).
- Karta SD: na p艂ytce siedzi na osobnej magistrali VSPI (CS 5, SCK 18, MISO 19, MOSI 23), wi臋c nie dzieli ju偶 SPI z wy艣wietlaczem. Upro艣ci艂o to kod i usun臋艂o r臋czne prze艂膮czanie linii CS.
- Uk艂ad ekranu: z 480×320 na 320×240 przeliczy艂em r臋cznie wszystkie wsp贸艂rz臋dne. Nag艂贸wek ma teraz dwa wiersze, a w historii zmie艣ci艂em czas bez sekund.
- Drobne poprawki: program nie zatrzymuje si臋, gdy brakuje karty SD (pokazuje komunikat i dzia艂a dalej z domy艣ln膮 grup膮), zegar od艣wie偶a si臋 bez przerysowywania ca艂ego nag艂贸wka, a zbyt d艂ugi tekst dobiera mniejsz膮 czcionk臋 i nie zawija si臋 na s膮siednie linie.
![]() |
| Widok ekranu w starej wersji (480x320 px) |
Na mojej p艂ytce z dwoma portami USB trzeba by艂o ustawi膰 dwie sta艂e na pocz膮tku programu:
#define TFT_INVERT false
#define TFT_ROTATION 3Na innych egzemplarzach mog膮 by膰 potrzebne inne warto艣ci. Je艣li kolory s膮 negatywem, zmie艅 TFT_INVERT, a je艣li obraz jest do g贸ry nogami, zmie艅 TFT_ROTATION mi臋dzy 1 a 3.
Biblioteki
- WebSockets (Markus Sattler)
- ArduinoJson 7
- Adafruit GFX
- Adafruit ST7735 and ST7789 Library
P艂ytka w Arduino IDE: ESP32 Dev Module.
Mo偶liwo艣ci rozwoju
Sam modu艂 oferuje jeszcze kilka rzeczy, kt贸rych ten program na razie nie u偶ywa:
- ekran dotykowy (XPT2046), np. do prze艂膮czania monitorowanych grup,
- wbudowana dioda RGB, kt贸ra mog艂aby zapala膰 si臋 podczas odbioru,
- fotorezystor do automatycznej regulacji jasno艣ci ekranu.
Wersja z jednym portem USB ma zwykle inny wy艣wietlacz (ILI9341). Po zamianie biblioteki na Adafruit_ILI9341 i konstruktora (Adafruit_ILI9341(&tftSPI, TFT_DC, TFT_CS, -1)) reszta programu powinna dzia艂a膰 podobnie, ale tego nie sprawdza艂em. Wersja ILI9341 nie by艂a testowana.
✍️ Autor: Robert HF5WWL
馃搮 Data projektu: wrzesie艅 2026 r.
馃搷 Lokalizacja: Wo艂omin, POLSKA
馃搧 Co艣 nie jasne? Pytaj poprzez e-mail (hf5wwl@gmail.com) lub w komentarzu
馃洜️ Poziom trudno艣ci: 艁atwy



























