Gotowy HotSpot (bez obudowy) z emulatorem wyświetlacza NEXTIN.
Wprowadzenie
Projekt jest własnoręcznie wykonanym emulatorem wyświetlacza Nextion przeznaczonym do współpracy z systemem MMDVM DUAL. Został zrealizowany na mikrokontrolerze ESP32 oraz kolorowym wyświetlaczu TFT ST7789 o rozdzielczości 320 × 240 pikseli i przekątnej 2,8".
Głównym zadaniem urządzenia jest prezentowanie najważniejszych informacji dotyczących pracy MMDVM oraz aktualnie prowadzonej korespondencji DMR. Zamiast niewielkiego, typowego wyświetlacza można zastosować znacznie większy i bardziej czytelny ekran graficzny, którego wygląd oraz sposób prezentowania informacji można dowolnie dostosować do własnych potrzeb.
Program został napisany tak, aby ESP32 odbierał informacje przesyłane przez MMDVM, analizował je i przedstawiał na ekranie w czytelnej, graficznej formie.
Przepraszam za marne kolory na zdjęciach. W realu są ładnie nasycone i wyraźne. Niestety, to wina aparatu a nie chciałem ich poprawiać za pomocą AI ;)
Konstrukcja urządzenia
Sercem urządzenia jest moduł ESP32. Do komunikacji z systemem MMDVM wykorzystany został drugi interfejs szeregowy ESP32 (Serial2) pracujący z prędkością 9600 bit/s.
Wyświetlanie informacji realizowane jest przez bibliotekę Adafruit_ST7789, natomiast za obsługę grafiki i czcionek odpowiada biblioteka Adafruit_GFX.
Zastosowany wyświetlacz ST7789 ma rozdzielczość 320 × 240 pikseli, dzięki czemu można na nim jednocześnie prezentować kilka różnych informacji.
Cały interfejs został zaprojektowany jako jeden ekran roboczy, bez konieczności przechodzenia przez rozbudowane menu.
Płytka procesora ESP32 w zasadzie nie potrzebuje żadnych dodatkowych komponentów i została umieszczona bezpośrednio pod wyświetlaczem. Połączenia opisałem w końcowej części opisu.
Wygląd ekranu
Na górze ekranu znajduje się nagłówek zawierający oznaczenie MMDVM oraz znak własny operatora.
W prawym górnym rogu umieszczony został dodatkowo kolorowy wskaźnik informujący o aktualnym stanie systemu.
Poniżej znajduje się główna część ekranu, w której prezentowane są informacje dotyczące korespondencji.
Interfejs wykorzystuje kilka różnych rozmiarów czcionek oraz kolory pozwalające szybko odczytać najważniejsze informacje bez konieczności analizowania całego ekranu.
HotSpot w stanie oczekiwania na transmisję. Obok anten widać oryginalny wyświetlacz.
Wskaźnik stanu
Jednym z elementów interfejsu jest niewielki prostokątny wskaźnik statusu.
W zależności od aktualnego stanu urządzenia może on pokazywać:
- STB – stan gotowości,
- RX – odbiór,
- TX – nadawanie,
- IDL – czuwanie.
Kolor wskaźnika dodatkowo informuje o sytuacji.
Podczas odbioru kolor zależy od wartości BER:
- zielony – bardzo dobra jakość,
- żółty – pogarszająca się jakość,
- czerwony – wysoki poziom błędów.
Wskaźnik może również pulsować, dzięki czemu stan urządzenia jest widoczny nawet z większej odległości.
Informacje o korespondencie
Podczas aktywnej korespondencji na ekranie wyświetlany jest znak korespondenta.
Jest on prezentowany dużą, wyraźną czcionką, dzięki czemu można go odczytać bez podchodzenia bezpośrednio do urządzenia.
Jeżeli system MMDVM przekazuje również nazwę operatora, pod znakiem wyświetlane jest jego imię lub nazwa.
Ważnym szczegółem jest to, że nazwa operatora jest związana z aktualną korespondencją. Po zakończeniu transmisji dane korespondenta są kasowane, dzięki czemu na ekranie nie pozostaje imię poprzedniego operatora.
Informacja o Talk Group
Podczas aktywnej transmisji prezentowany jest również numer używanej grupy rozmównej TG.
Informacja ta jest wyróżniona kolorem, dzięki czemu można ją szybko odnaleźć na ekranie.
Pozwala to w prosty sposób sprawdzić, na której grupie odbywa się aktualnie odbierana lub nadawana transmisja.
Wskaźnik BER
Jedną z ciekawszych funkcji programu jest graficzny wskaźnik BER – Bit Error Rate.
Wartość BER jest przedstawiana nie tylko jako liczba procentowa, ale również w postaci poziomego paska.
Pasek zmienia swoją długość wraz ze zmianą wartości BER. Im większa liczba błędów, tym krótszy jest pasek jakości.
Dodatkowo stosowane są trzy kolory:
- zielony – niski BER,
- żółty – podwyższony BER,
- czerwony – wysoki BER.
Dzięki temu operator może jednym spojrzeniem ocenić jakość odbieranego sygnału.
Wskaźnik BER jest widoczny tylko podczas aktywnej korespondencji. W trybie czuwania nie zajmuje niepotrzebnie miejsca na ekranie.
RSSI
W dolnej części ekranu program może prezentować również informację o poziomie sygnału RSSI, jeżeli taka informacja zostanie przekazana przez MMDVM.
Pozwala to na bieżąco obserwować nie tylko jakość transmisji mierzoną wartością BER, ale również poziom odbieranego sygnału.
Adres IP
Program rozpoznaje również informacje dotyczące adresu sieciowego urządzenia.
Jeżeli MMDVM przekaże adres IP, zostaje on wyświetlony na ekranie.
Adres prezentowany jest przez określony czas, a następnie znika, aby niepotrzebnie nie zajmować miejsca na ekranie głównym.
Przykładowo może być pokazany pełny adres:
IP: 192.168.1.37
Po upływie czasu wyświetlania adres jest automatycznie usuwany.
Automatyczny tryb czuwania
Jeżeli przez 30 sekund nie wystąpi aktywność, program automatycznie przechodzi w tryb czuwania.
W tym momencie dane dotyczące ostatniej korespondencji są kasowane.
Na ekranie zamiast znaku oraz danych ostatniego operatora pojawia się zegar.
Wyświetlana jest również informacja:
STAN: CZUWANIE
Takie rozwiązanie sprawia, że ekran w stanie bezczynności nie pokazuje nieaktualnych informacji.
Gdy pojawi się nowa aktywność, urządzenie automatycznie powraca do prezentowania informacji o korespondencji.
Zegar
W trybie czuwania głównym elementem ekranu jest aktualny czas.
Jeżeli MMDVM przekazuje datę i czas, program wykorzystuje te informacje do prezentacji zegara oraz daty.
Duża czcionka sprawia, że czas jest dobrze widoczny nawet z większej odległości.
HotSpot w stanie czuwania.
Automatyczna analiza danych z MMDVM
Program nie ogranicza się do prostego wyświetlania odebranych komunikatów.
ESP32 analizuje przychodzące dane i rozpoznaje poszczególne informacje, między innymi:
- znak korespondenta,
- nazwę lub imię operatora,
- numer Talk Group,
- informacje o BER,
- informacje o RSSI,
- adres IP,
- status systemu,
- datę i czas.
Na podstawie tych danych odpowiednie elementy interfejsu są aktualizowane.
Dzięki temu ekran działa jak autonomiczny monitor systemu MMDVM.
Sygnalizacja nadawania
Program rozpoznaje również własny znak operatora.
Jeżeli aktywna transmisja dotyczy własnego znaku, urządzenie przechodzi w stan TX i odpowiednio zmienia wygląd wskaźnika statusu.
Pozwala to szybko rozróżnić transmisję własną od odbieranej korespondencji.
Czytelny interfejs
Dużą uwagę poświęciłem temu, aby informacje były czytelne i łatwe do rozpoznania.
Zastosowano różne wielkości czcionek oraz kontrastowe kolory. Najważniejsze informacje, takie jak znak korespondenta, znajdują się w centralnej części ekranu i są prezentowane dużymi znakami.
Interfejs wykorzystuje również delikatne elementy dekoracyjne oraz gradientowe tło, dzięki czemu całość nie wygląda jak surowy terminal tekstowy.
Jednocześnie program nie odświeża bez potrzeby całego ekranu w sposób powodujący nieprzyjemne migotanie. Poszczególne informacje są aktualizowane w zależności od zmiany ich stanu.
Podsumowanie
Projekt pokazuje, że stosunkowo prosty zestaw składający się z ESP32 i kolorowego wyświetlacza ST7789 może stać się bardzo funkcjonalnym monitorem dla systemu MMDVM DUAL.
Urządzenie pozwala w jednym miejscu obserwować najważniejsze parametry pracy systemu:
znak → operator → Talk Group → BER → RSSI → status → IP → czas
Największą zaletą rozwiązania jest możliwość całkowitego dostosowania wyglądu oraz sposobu prezentowania informacji do własnych potrzeb.
Program można również w przyszłości rozwijać o kolejne funkcje, takie jak historia ostatnich korespondentów, dodatkowe parametry transmisji, statystyki pracy czy kolejne ekrany informacyjne.
Projekt jest więc nie tylko emulatorem wyświetlacza Nextion, ale w praktyce stanowi samodzielny, graficzny monitor pracy MMDVM DUAL, pozwalający znacznie wygodniej obserwować pracę systemu DMR.
Schemat połączeń (ESP32 <-> ST7789 & MMDVM)
Wyświetlacz ST7789 -> ESP32:
CS -> GPIO 15
RST -> GPIO 4
DC -> GPIO 2
MOSI-> GPIO 23
SCLK-> GPIO 18
VCC -> 3.3V / 5V (w zależności od modułu)
GND -> GND
Połączenie z Pi-Star (UART):
RX2 (GPIO 16) ESP32 -> TX z płyty MMDVM / Raspberry Pi (3.3V Logic)
TX2 (GPIO 17) ESP32 -> RX z płyty MMDVM / Raspberry Pi (3.3V Logic)
(GND ESP32 -> GND Raspberry Pi / MMDVM (WAŻNE!)
Zwróćcie uwagę, że do wyświetlacza z tego złącza wysyłane są dane (Rx i Tx) oraz masa i +5V. Tak więc łączymy go z Vin ESP32 i nie potrzebujemy dodatkowego (osobnego) zasilania do modułu wyświetlacza.Należy też pamiętać, że zasilając wyświetlacz przez gniazdo USB modułu ESP32 zasilamy też moduł MMDV i Raspberry Pi. Tak więc zasilanie z gniazda Raspberry należy wcześniej wyłączyć.
Konfiguracja w programie Pi-Star
Aby emulator działał poprawnie, w panelu Pi-Star Configuration należy zmienić ustawienia w sekcji MMDVM Display Driver:
MMDVM Display Type:
NextionPort:
Modem(lub/dev/ttyAMA0w zależności od połączenia)Nextion Layout:
G4KLX
Jeszcze jeden "drobiazg" na który proponuję zwrócić uwagę: Fabryczne "anteny" które były dołączone do MMDVM. Rezonans na częstotliwości 424 MHz. Może tylko mi się takie trafiły? :) Co prawda nadajnik ma około 15 mW ale tak być nie powinno. Proponuję sprawdzić co otrzymaliście w zestawie.
Jeśli zainteresował Cię ten projekt i chciałbyś do niego program - napisz. Z pewnością Ci go wyślę.
✍️ Autor: Robert HF5WWL
📅 Data projektu: sierpień 2026 r.
📍 Lokalizacja: Wołomin, POLSKA
📁 Coś nie jasne? Pytaj poprzez e-mail (hf5wwl@gmail.com) lub w komentarzu
🛠️ Poziom trudności: Łatwy (jak się ma oprogramowanie) 😊
#DIY #DoItYourself #HAMRadio #HamTech #ESP32 #MMDVM #DMR #RadioAmatorskie #Krótkofalarstwo #Homebrew #Electronics #Maker #TechProject #DigitalRadio #DMRMonitor







Brak komentarzy:
Prześlij komentarz
Zastanów się, czy to co tu napiszesz było by mile widziane na Twojej stornie www lub na Twoim blogu...
Niestosowne komentarze będą cenzurowane.