___________________________________________________________________________________________________________________________________________________________________________
___________________________________________________________________________________________________________________________________________________________________________
Pokazywanie post贸w oznaczonych etykiet膮 WARSZTAT. Poka偶 wszystkie posty
Pokazywanie post贸w oznaczonych etykiet膮 WARSZTAT. Poka偶 wszystkie posty

31 lipca 2026

DMR Monitor na ESP32

 

 Prototyp monitora DMR na p艂ytce uniwersalnej.

 

Po co powsta艂 ten projekt?

Je艣li dzia艂asz w cyfrowym radiu DMR i chcesz mie膰 sta艂y podgl膮d aktywno艣ci na wybranym kanale (TalkGroup) bez potrzeby odpalania komputera, ten projekt jest dla Ciebie.

Zbudowa艂em przeno艣ny monitor DMR oparty o ESP32, kt贸ry 艂膮czy si臋 przez WiFi z sieci膮 BrandMeister, wy艣wietla na kolorowym ekranie TFT 4″ aktualnie nadaj膮cego operatora, histori臋 ostatnich transmisji, czas trwania nadawania i zapisuje logi na kart臋 SD. Wszystko w jednym, kompaktowym urz膮dzeniu.


Co dok艂adnie robi ten program?

Program dzia艂a w p臋tli, nas艂uchuj膮c na WebSocketach danych z BrandMeister i reaguj膮c na pojawiaj膮cy si臋 ruch w TalkGroup 260. Oto jego g艂贸wne funkcjonalno艣ci:

馃摗 艁膮czno艣膰 z BrandMeister przez WebSocket

  • Nawi膮zuje bezpieczne po艂膮czenie (SSL) z API BrandMeister.

  • Subskrybuje wszystkie zdarzenia (join everything).

  • Automatycznie wznawia po艂膮czenie w razie przerwania.

馃懁 Wy艣wietlanie aktywnego operatora

  • Pokazuje znak wywo艂awczy (np. SP5XYZ).

  • Wy艣wietla imi臋 operatora lub alias TalkerAlias.

  • Podaje ID operatora oraz numer TalkGroup.

  • Mierzy i wy艣wietla czas trwania bie偶膮cej transmisji (format MM:SS).

馃摐 Historia ostatnich operator贸w

  • Przechowuje w pami臋ci ostatnich 4 operator贸w (maksymalnie).

  • Wy艣wietla ich znak, nazw臋, TG oraz godzin臋 transmisji.

  • Unika duplikowania tego samego operatora z rz臋du – je艣li ten sam wraca, aktualizuje tylko znacznik czasu.

馃捑 Logowanie do pliku CSV na karcie SD

  • Ka偶da zako艅czona transmisja jest zapisywana w pliku /dmr_log.csv na karcie SD.

  • Log zawiera: dat臋 i godzin臋 rozpocz臋cia, dat臋 i godzin臋 zako艅czenia, znak, nazw臋, ID, TG oraz czas trwania w sekundach.

  • Automatycznie tworzy nag艂贸wek pliku, je艣li nie istnieje.

    Zapisane dane mo偶emy odczyta膰 w programie kt贸ry czyta pliki *.csv.

     

    Przyk艂adowe dane zapisane na karcie SD: 



馃帹 Przyjazny interfejs u偶ytkownika

  • Wy艣wietlacz TFT 4″ (480×320 px) z p艂ynn膮 obs艂ug膮 graficzn膮.

  • Ikona radia zmienia kolor w zale偶no艣ci od stanu RX.

  • Wizualizacja trwania transmisji za pomoc膮 animowanego paska (fale radiowe).

  • Zegar NTP (synchronizacja czasu z Internetu) w prawym g贸rnym rogu.

  • Status po艂膮czenia z BrandMeister – zielone/czerwone k贸艂ko.

馃敡 Konfiguracja z karty SD

  • Dane WiFi (SSID i has艂o) s膮 odczytywane z pliku config.txt na karcie SD – nie musisz ich hardkodowa膰 w programie. W ten spos贸b nie musisz ingerowa膰 w program by zalogowa膰 si臋 do swojej sieci WiFi. Wystarczy zmieni膰 dane na karcie SD.

  • Format pliku:

    SSID=moja_siec
    PASS=moje_haslo
    dane te zapisujemy na karcie SD w pliku o nazwie config.txt 

Co znajduje si臋 w 艣rodku? – zagl膮damy do kodu

Kod ma oko艂o 1800 linii i jest podzielony na logiczne sekcje. Oto najwa偶niejsze fragmenty:

馃敼 Komunikacja z BrandMeister

Sercem programu jest obs艂uga WebSocket. Funkcja webSocketEvent() odbiera dane JSON, kt贸re przychodz膮 w dw贸ch zagnie偶d偶onych warstwach – najpierw wyci膮ga w艂a艣ciwy payload, potem deserializuje go i sprawdza, czy DestinationID pasuje do monitorowanego TG (260). Je艣li tak – wywo艂uje nowaAktywnosc().

cpp
if (destinationID != MONITORED_TG) {
  break;
}

 

馃敼 Logika ko艅ca transmisji

Funkcja sprawdzKoniecRX() sprawdza, czy od ostatniego odebranego pakietu min臋艂o wi臋cej ni偶 2500 ms. Je艣li tak – uznaje transmisj臋 za zako艅czon膮, zapisuje log na SD i prze艂膮cza ekran w stan czuwania.

馃敼 Efektowny interfejs

U偶y艂em bibliotek Adafruit GFX i ST7796S do obs艂ugi wy艣wietlacza. Funkcja rysujIkoneRadia() rysuje ikon臋, kt贸ra 艣wieci na zielono podczas odbioru, a na ciemnoszaro w stanie czuwania. Animacja RX (animacjaRX()) to paski imituj膮ce fale radiowe – od艣wie偶ane co 150 ms.

馃敼 Historia i logika deduplikacji

dodajDoHistorii() przesuwa starsze wpisy w d贸艂 i wstawia nowego operatora na pierwsz膮 pozycj臋. Co wa偶ne – je艣li ten sam operator pojawia si臋 ponownie, nie jest dodawany drugi raz, a jedynie aktualizowany jest jego znacznik czasu.


Jak uruchomi膰 ten projekt na swoim ESP32?

Potrzebne elementy

  • ESP32 (np. Wemos D1 R32, NodeMCU-32S) Ja zrobi艂em to na ESP32 WROOM-32U.

  • Wy艣wietlacz TFT z kontrolerem ST7796S (lub kompatybilny, 4″ 480×320 px SPI)

  • Karta microSD (do zapisu log贸w i konfiguracji)

  • Kabel USB, zasilanie 5V

    Nie zamieszczam schematu bo na podstawie definicji pin贸w mo偶na to zrobi膰 bez problemu. 

     

Konfiguracja

  1. Sformatuj kart臋 SD jako FAT32.

  2. W katalogu g艂贸wnym karty utw贸rz plik config.txt o zawarto艣ci:

    text
    SSID=TwojaNazwaWiFi
    PASS=TwojeHasloWiFi
  3. Zainstaluj wymagane biblioteki w Arduino IDE lub PlatformIO:

    • WiFi.h

    • WebSocketsClient.h

    • ArduinoJson.h (wersja 6.x)

    • Adafruit_GFX.h

    • Adafruit_ST7796S_kbv.h

    • SD.h

    • time.h

  4. Sprawd藕 piny w sekcji KONFIGURACJA SPRZETOWA – dopasuj do swojej p艂ytki.

  5. Skompiluj i wgraj na ESP32.

    Niekt贸re piny s膮 zdublowane dla wy艣wietlacza i karty SD. To nie jest b艂膮d. TAK MA BY膯! 


// ==================================
//                 KONFIGURACJA SPRZ臉TOWA
// ==================================
// Piny wy艣wietlacza (VSPI)
#define TFT_CS 16
#define TFT_RST 4
#define TFT_DC 2
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_BACKLIGHT 17

// Piny karty SD (wsp贸艂dzielone z wy艣wietlaczem, r贸偶ne CS)
#define SD_CS_PIN 21  
#define SD_MISO 19  
#define SD_MOSI 23
#define SD_SCLK 18
 
 

 

Dla kogo jest ten projekt?

  • Kr贸tkofalowc贸w i pasjonat贸w 艂膮czno艣ci cyfrowej DMR.

  • Tw贸rc贸w projekt贸w IoT szukaj膮cych ciekawego zastosowania dla ESP32.

  • Programist贸w embedded, kt贸rzy chc膮 zobaczy膰, jak integrowa膰 WebSocket, JSON i wy艣wietlacz w jednym urz膮dzeniu.


Podsumowanie

Projekt pokazuje, jak z pozornie prostego mikrokontrolera mo偶na zbudowa膰 zaawansowane urz膮dzenie monitoruj膮ce z graficznym interfejsem, zapisem danych i komunikacj膮 przez Internet. Kod jest napisany przejrzy艣cie, z podzia艂em na funkcje, co u艂atwia modyfikacje – na przyk艂ad mo偶na zmieni膰 monitorowany TalkGroup, doda膰 wi臋cej historii lub zintegrowa膰 z w艂asnym API.



*********************************************************************

 NOWA WERSJA I NOWE MO呕LIWO艢CI

DMR Monitor HF5WWL - Wersja 4.3 MULTI  z obs艂ug膮 wielu grup

 

Co nowego?

Najwa偶niejsz膮 zmian膮 w wersji 4.3 MULTI jest mo偶liwo艣膰 monitorowania wielu grup DMR jednocze艣nie. Dotychczas urz膮dzenie 艣ledzi艂o wy艂膮cznie polsk膮 grup臋 260. Teraz mo偶esz dowolnie konfigurowa膰, kt贸re grupy chcesz obserwowa膰.

Jak to dzia艂a?

Plik konfiguracyjny monitored_tg.txt

Na karcie SD wystarczy utworzy膰 plik monitored_tg.txt i wpisa膰 w nim numery grup, kt贸re chcemy monitorowa膰. Ka偶da grupa w osobnej linii: 

260
26077
260042
1
2

Nowa funkcja: monitorowanie wszystkich grup z prefiksem 260

Je艣li chcesz 艣ledzi膰 wszystkie grupy zaczynaj膮ce si臋 od 260 (np. 260, 26077, 260042, 260123, itd.), wystarczy wpisa膰 w pliku:

text
260*

To szczeg贸lnie przydatne, gdy interesuj膮 Ci臋 wszystkie lokalne grupy w Twoim regionie.

艁膮czenie opcji

Mo偶esz te偶 艂膮czy膰 oba sposoby:

# Wszystkie grupy z prefiksem 260
260*
# Dodatkowo inne grupy
1
2
3
 
Monitor oczekuje na aktywno艣膰 na wybranych grupach:
 

Zmieni艂y si臋 te偶 zapisy w logu. Teraz wygl膮daj膮 tak:

 

Co z dotychczasow膮 funkcjonalno艣ci膮?

  • Dzia艂anie z grup膮 260 - je艣li brak pliku monitored_tg.txt, program domy艣lnie monitoruje grup臋 260 (zgodnie z poprzedni膮 wersj膮)

  • Logowanie do CSV - bez zmian, nadal zapisuje wszystkie aktywno艣ci

  • Wy艣wietlacz i interfejs - bez zmian, zachowano dotychczasowy wygl膮d

  • Po艂膮czenie z BrandMeister - bez zmian

Przyk艂adowe zastosowania

  1. Monitorowanie lokalnych grup - wpisz wszystkie lokalne grupy w swoim regionie

  2. 艢ledzenie konkretnych rozm贸w - dodaj tylko interesuj膮ce Ci臋 grupy

  3. Obserwacja ruchu w ca艂ym prefiksie 260 - u偶yj 260*

  4. Mieszane - monitoruj grup臋 260, wszystkie podgrupy 260 i dodatkowe grupy zagraniczne

Wymagania

  • Karta SD z plikami:

    • config.txt - dane WiFi (SSID i has艂o)

    • monitored_tg.txt - lista grup do monitorowania (opcjonalnie)

      Plik  dmr_log.csv zostanie utworzony automatycznie o ile go ju偶 nie utworzono.

Kompatybilno艣膰

Zmiany s膮 w pe艂ni kompatybilne wstecznie. Je艣li nie utworzysz pliku monitored_tg.txt, program zachowa si臋 identycznie jak poprzednia wersja i b臋dzie monitorowa膰 tylko grup臋 260.

Podsumowanie

Nowa wersja DMR Monitora daje u偶ytkownikowi pe艂n膮 kontrol臋 nad tym, kt贸re grupy chce obserwowa膰. To proste, ale bardzo u偶yteczne ulepszenie, kt贸re sprawia, 偶e urz膮dzenie staje si臋 jeszcze bardziej wszechstronnym narz臋dziem do monitorowania ruchu DMR.

 

 Kr贸tki filmik prezentuj膮cy prac臋 prototypu.

 

Ca艂y kod w formacie *.bin mo偶esz otrzyma膰 bezp艂atnie po kontakcie przez e-mail

  - Je偶eli do mnie napiszesz mo偶esz dosta膰 program z usuni臋tym moim znakiem (wpisz臋 Tw贸j znak).


 

✍️ Autor: Robert HF5WWL
馃搮 Data projektu: Lipiec / 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) 
馃槉

 

#HamRadio
#DMRradio
#TalkGroup260
#AmateurRadio
#DigitalRadio
#RadioMonitor
#SP5WWL

10 lipca 2026

Cyfrowy bezpiecznik i monitor zasilania przetwornicy DC/DC 300W/20A.


 Dzisiaj chcia艂bym podzieli膰 si臋 z Wami moim najnowszym projektem warsztatowym. Jest to inteligentny sterownik, monitor oraz ultraszybki cyfrowy bezpiecznik przeznaczony do wsp贸艂pracy z popularnymi, mocnymi modu艂ami przetwornic obni偶aj膮cych napi臋cie (Step-Down CC/CV 20A 300W). Niezb臋dna b臋dzie te偶 modyfikacja bocznika w INA219.

G艂贸wnym zadaniem projektu jest zabezpieczenie 藕r贸d艂a zasilania ca艂ego urz膮dzenia. W zale偶no艣ci od wydajno艣ci 藕r贸d艂a zasilania mo偶emy tak ustawi膰 blokady by go nie uszkodzi膰. Bez wzgl臋du na to czy b臋dzie to transformator z mostkiem i kondensatorem, akumulator czy jaka艣 przetwornica. Uk艂ad umo偶liwia zabezpieczenie wszystkiego co podaje napi臋cie DC na wej艣cie uk艂adu i pod warunkiem, 偶e U max. nie przekroczy 30V. Uk艂ad powsta艂 g艂贸wnie w celu wykorzystania starych zasilaczy do laptop贸w kt贸rych troch臋 mi si臋 uzbiera艂o.

Schemat wyja艣niaj膮cy ide臋 projektu:


 

Sercem uk艂adu jest modu艂 ESP8266 (NodeMCU), kt贸ry wsp贸艂pracuje z uk艂adem pomiarowym INA219, wy艣wietlaczem ST7789 oraz miniaturowym przeka藕nikiem kontaktronowym MSS2-1A05B. Do zasilania cz臋艣ci cyfrowej zosta艂a u偶yta dodatkowa ma艂a przetworniczka kt贸ra ma zakres napi臋膰 wej艣ciowych od 5 do 30V a na wyj艣ciu daje tylko jedno napi臋cie +5V kt贸re jest podawane na wej艣cie Vin p艂ytki procesora. Tak wygl膮da dodatkowa przetwornica kt贸rej u偶y艂em (zdemontowane gniazdo USB kt贸re by艂o na wyj艣ciu):


Dlaczego ten projekt powsta艂?

Standardowe chi艅skie przetwornice DC/DC z regulacj膮 pr膮du i napi臋cia (CC/CV) s膮 tanie i wydajne, ale posiadaj膮 istotn膮 wad臋: brak precyzyjnego, cyfrowego monitoringu parametr贸w w czasie rzeczywistym oraz brak mo偶liwo艣ci zdefiniowania sztywnych limit贸w mocy czy napi臋cia, kt贸rych przekroczenie natychmiast odetnie obci膮偶enie. Ten projekt rozwi膮zuje ten problem, zamieniaj膮c zwyk艂y modu艂 DC/DC w zaawansowany, programowalny zasilacz laboratoryjny :) .

G艂贸wne cechy urz膮dzenia:

  • Szeroki zakres napi臋膰 wej艣ciowych: 7V do 30V DC.

  • Maksymalny pr膮d roboczy: do 20 A (moc maksymalna do 300 W).

  • Ultraszybki bezpiecznik programowy: monitorowanie i ochrona przed przekroczeniem zadanego napi臋cia (U), pr膮du (I) oraz mocy ca艂kowitej (P).

  • Zapis ustawie艅 Non-Volatile: Limity bezpiecze艅stwa s膮 zapisywane bezpo艣rednio w pami臋ci Flash uk艂adu ESP8266 (bez u偶ycia klasycznej biblioteki EEPROM). Tak wi臋c ustawienia s膮 pami臋tane nawet po wy艂膮czeniu zasilania.

  • Graficzny interfejs u偶ytkownika: Wy艣wietlacz LCD ST7789 (320x240 px) z p艂ynnie od艣wie偶anymi paskami post臋pu (podzia艂ka 0-100% obci膮偶enia limitu) oraz ekranem alarmowym.

  • Automatyczny restart: Po wyzwoleniu zabezpieczenia uk艂ad odlicza 3 sekundy i podejmuje pr贸b臋 ponownego za艂膮czenia wyj艣cia. Je偶eli zniknie przyczyna przeci膮偶enia przetwornica podejmie normaln膮 prac臋. Uwaga! Bezpo艣rednie zwarcie na wyj艣ciu natychmiast zablokuje przetwornic臋. Po usuni臋ciu zwarcia przetwornica pracuje normalnie.

     


Architektura Sprz臋towa i Modu艂 INA219

Kluczowym elementem odpowiedzialnym za pomiary jest uk艂ad INA219 komunikuj膮cy si臋 przez magistral臋 I2C. Fabrycznie modu艂y te wyposa偶one s膮 w rezystor bocznikowy (shunt) o warto艣ci 0,1. Przy pr膮dzie rz臋du 20 A spadek napi臋cia na takim boczniku wynosi艂by a偶 2 V, co generowa艂oby ogromne straty mocy i natychmiastowe uszkodzenie p艂ytki.

Aby dostosowa膰 uk艂ad do wysokich pr膮d贸w, fabryczny bocznik zosta艂 zast膮piony zewn臋trznym rezystorem precyzyjnym o warto艣ci 0,01 惟 wpi臋tym w plusow膮 lini臋 wyj艣ciow膮 przetwornicy (High-Side). Dzi臋ki temu przy 20 A tracimy zaledwie 4 W mocy, a spadek napi臋cia wynosi bezpieczne 200 mV.

Modu艂 przetwornicy zawiera rezystor pomiarowy (za zwyczaj 0.04 ) na minusie kt贸ry pozostawiamy bez zmian.

 

W kodzie programu wymusi艂o to autorsk膮 konfiguracj臋 rejestru kalibracji uk艂adu INA219:

C++
uint16_t calValue = 40960; 
uint16_t configValue = INA219_CONFIG_BVOLTAGERANGE_32V |
                       INA219_CONFIG_GAIN_8_320MV |
                       INA219_CONFIG_BADCRES_12BIT_64S_34MS | 
                       INA219_CONFIG_SADCRES_12BIT_64S_34MS | 
                       INA219_CONFIG_MODE_SANDBVOLT_CONTINUOUS;

 

Przeliczenie pr膮du w p臋tli g艂贸wnej uwzgl臋dnia bocznik 0,01, gdzie spadek 10 mV odpowiada nat臋偶eniu 1 A:

C++
float current_A = (shuntVoltage / 10.0);
 
 

Sterowanie Przetwornic膮 – Przeka藕nik Kontaktronowy

Do sterowania stanem pracy modu艂u Step-Down wykorzysta艂em dedykowane wej艣cie ENABLE (EN) na p艂ycie przetwornicy. Za fizyczne kluczowanie tego sygna艂u odpowiada miniaturowy przeka藕nik kontaktronowy MSS2-1A05B, sterowany poprzez tranzystor PNP z pinu D0 procesora ESP8266.

  • Stan normalny (Praca): Pin D0 w stanie niskim (LOW), przeka藕nik zwiera sygna艂 EN do odpowiedniego potencja艂u startowego przetwornicy.

  • Stan alarmu (Zabezpieczenie): Wykrycie przekroczenia limitu natychmiast ustawia pin D0 w stan wysoki (HIGH), roz艂膮czaj膮c obw贸d EN i b艂yskawicznie wy艂膮czaj膮c kluczowanie tranzystor贸w mocy w przetwornicy.

    W uk艂adzie zosta艂 zastosowany przeka藕nik MSS2-1A05B ze wzgl臋du na r贸偶ne sposoby blokowania przetwornic ale o tym p贸藕niej.

 

Logika Menu i Praca Bezbiblioteczna z Pami臋ci膮 Flash

Sterowanie limitami odbywa si臋 za pomoc膮 dw贸ch przycisk贸w: MENU (pin D6) oraz ZMIANA (pin A0 z zewn臋trznym rezystorem pull-up 10k). Uk艂ad pozwala na p艂ynn膮 regulacj臋 prog贸w odci臋cia:

  • Napi臋cie: do 24,0 V  (krok co 0,5 V)

  • Pr膮d: do 20,0 A        (krok co 0,5 V)

  • Moc: do 300 W         (krok co 10 W)

     


Ciekawostk膮 programistyczn膮 jest rezygnacja z gotowych bibliotek typu EEPROM na rzecz bezpo艣rednich odwo艂a艅 do niskopoziomowego SDK ESP8266 (spi_flash_erase_sector oraz spi_flash_write). Zapis danych realizowany jest binarne w bezpiecznym sektorze 1011 z weryfikacj膮 poprawno艣ci za pomoc膮 unikalnego identyfikatora Magic ID (0x55AA55AA):

C++
struct FlashConfig {
  uint32_t magic;
  float max_voltage;
  float max_current;
  float max_power;
};

Podczas zapisu i odczytu, na czas operacji na strukturze pami臋ci, blokowane s膮 przerwania mikrokontrolera (noInterrupts()), co gwarantuje integralno艣膰 danych i zabezpiecza procesor przed zawieszeniem.

 

Przetwornice dost臋pne na AliExpress opisywane jako "20A 300W CC CV Step Down Module Regulowany DC 6-40V do 1.2-36V" (SZBK07) wyst臋puj膮 w kilku wersjach:

Wersja kt贸r膮 posiadam. Przetwornica dzia艂a po podaniu napi臋cia z wej艣cia przetwornicy (Vin+). Kolor 偶贸艂ty to niewidoczna 艣cie偶ka do pinu EN uk艂adu scalonego kt贸rego nazwa zosta艂a przez producenta zeszlifowana. 

 

Inna wersja kt贸rej schemat znajdziemy w internecie. Tutaj nazwa uk艂adu scalonego jest widoczna. Jest to inny uk艂ad scalony (LM25116). Tu wej艣cie EN uk艂adu scalonego jest podci膮gni臋te do plusa zasilania poprzez rezystor 1M a uruchomienie nast臋puje poprzez zwarcie wej艣cia EN do masy (GND):

  


W艂a艣nie do tego jest u偶yty przeka藕nik MSS2-1A05B by by艂o mo偶na u偶y膰 r贸偶nych typ贸w przetwornic. Po prostu przy艂膮czamy kontaktron przeka藕nika w miejsce usuni臋tego prze艂膮cznika ON/OFF.


Kilka informacji o przeka藕niku  MSS2-1A05B. Przeka藕nik fabryczne jest zasilany napi臋ciem 5V a styki wytrzymuj膮 pr膮d do 1A. W projekcie jest on zasilany napi臋ciem 3,3V ale pracuje poprawnie i niezawodnie. Oczywi艣cie mo偶na zastosowa膰 inny podobny przeka藕nik. Schemat po艂膮cze艅 wewn臋trznych zastosowanego przeka藕nika:  


 

 SCHEMAT PO艁膭CZE艃 :

POWI臉KSZENIE DOST臉PNE W "OTW脫RZ ODNO艢NIK W NOWEJ KARCIE".

 

Podsumowanie i dalsze kroki

Uk艂ad sprawuje si臋 znakomicie. Bezpiecznik programowy reaguje niezwykle szybko, chroni膮c zasilane prototypy przed zniszczeniem w przypadku zwarcia. Na wy艣wietlaczu ST7789 wszystko jest czytelne dzi臋ki du偶ym czcionkom Adafruit GFX i graficznym bar-grafom, kt贸re precyzyjnie pokazuj膮, jak blisko zdefiniowanego limitu aktualnie pracujemy. 

Oczywi艣cie nie pisa艂em tu o rzeczy oczywistej czyli o zast膮pieniu potencjometr贸w znajduj膮cych si臋 na p艂ycie przetwornicy "normalnymi" potencjometrami wieloobrotowymi kt贸re wyprowadzamy przewodami i umieszczamy w dogodnym dla nas miejscu na p艂ycie czo艂owej urz膮dzenia.

 

LINK DO PROGRAMU w formacie (*.bin): 

https://mega.nz/folder/EV0zmA7Z#KL4DJds3lYAv1b6Y1EDBLQ

 Gdyby kto艣 bardzo potrzebowa艂 program w postaci *.ino to prosz臋 o kontakt (komentarz lub poprzez e-mail:  hf5wwl@gmail.com).

 

 

UZUPE艁NIENIE  15.07.2026 r.

Trwaj膮 intensywne prace nad wy艣wietlaniem parametr贸w na ekranie monitora warsztatowego (laptopa, komputera itp.) poprzez sie膰 WiFi.

Dodanie obs艂ugi WiFi poci膮gn臋艂o kilka zmian w konstrukcji urz膮dzenia i zmiany programowe. O tym p贸藕niej. 

Jak na razie wszystko dzia艂a bardzo p艂ynnie. Odczyty s膮 natychmiastowe.

Na razie wy艣wietlanie na ekranie monitora wygl膮da tak:

 

Normalna praca. 

 
 
 
Blokada przetwornicy. Zosta艂o przekroczone ustawione napi臋cie maksymalne.

Prace trwaj膮. Musz臋 poprawi膰 kilka szczeg贸艂贸w. Oczywi艣cie, gdy wszystko dopracowane to podziel臋 si臋 tym z Wami.

 

 

✍️ Autor: Robert HF5WWL
馃搮 Data projektu: Lipiec 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) 
馃槉

 

 #ESP8266 #INA219 #ST7789 #NodeMCU #Arduino #MSS2-1A05B #przeka藕nik-kontaktronowy

 #zasilacz-warsztatowy #przetwornica-DC-DC #Step-Down #cyfrowy-bezpiecznik #zabezpieczenie-nadpr膮dowe #elektronika-DIY #pomiar-pr膮du #High-Side-Current #bocznik

 

03 lutego 2026

Modernizacja modu艂u ESP32 – wymiana anteny PCB na gniazdo SMA

 馃摱馃彔  Czy Twoje projekty IoT trac膮 zasi臋g tam, gdzie najbardziej go potrzebujesz? Je偶eli tak, to rozwi膮zanie jest dla Ciebie! 

W prezentowanej modyfikacji modu艂u opartego o procesor ESP32-D0WD06 zdecydowa艂em si臋 na rezygnacj臋 z fabrycznej anteny PCB i zast膮pienie jej gniazdem SMA, umo偶liwiaj膮cym pod艂膮czenie zewn臋trznej anteny WiFi. Celem modernizacji by艂o poprawienie zasi臋gu, stabilno艣ci po艂膮czenia oraz elastyczno艣ci w doborze anteny – szczeg贸lnie w zastosowaniach stacjonarnych i eksperymentalnych.

Antena PCB – dlaczego nie zawsze wystarcza?

Fabryczna antena drukowana (PCB) ma jedn膮 niezaprzeczaln膮 zalet臋: nic nie kosztuje i nie zajmuje miejsca. Niestety, w praktyce jej skuteczno艣膰 bywa mocno zale偶na od:

  • po艂o偶enia modu艂u,

  • otoczenia (obudowa, przewody, p艂aszczyzna masy),

  • odleg艂o艣ci od punktu dost臋powego.

W przypadku projekt贸w, w kt贸rych modu艂 ESP32 pracuje w obudowie lub w trudniejszych warunkach propagacyjnych, antena PCB szybko staje si臋 w膮skim gard艂em.

Zakres modyfikacji

Modernizacja polega艂a na:

  1. Przeci臋ciu 艣cie偶ki anteny PCB w precyzyjnie dobranym miejscu – dok艂adnie tam, gdzie ko艅czy si臋 linia zasilaj膮ca anten臋, a zaczyna jej struktura promieniuj膮ca.

  2. Odseparowaniu anteny drukowanej od toru RF, aby zapobiec jej dalszemu wp艂ywowi na dopasowanie impedancyjne.

  3. Przylutowaniu gniazda SMA:

    • 艣rodkowy pin gniazda do punktu zasilania anteny (RF),

    • masa gniazda do masy modu艂u (kilka punkt贸w lutowniczych, mo偶liwie kr贸tka droga).

Na za艂膮czonych zdj臋ciach wida膰 zar贸wno oryginaln膮 posta膰 modu艂u z anten膮 PCB, jak i wersj臋 po modyfikacji, wyposa偶on膮 w solidnie osadzone gniazdo SMA.










 

Aspekty techniczne – kilka wa偶nych uwag

  • Minimalna d艂ugo艣膰 po艂膮czenia RF
    Po艂膮czenie pomi臋dzy wyj艣ciem RF ESP32 a gniazdem SMA wykonano mo偶liwie najkr贸tsz膮 drog膮. Przy 2,4 GHz ka偶dy milimetr ma znaczenie – to ju偶 nie s膮 przewody, tylko linie transmisyjne.

  • Masa ma znaczenie
    Gniazdo SMA zosta艂o solidnie po艂膮czone z mas膮 modu艂u. Dobre uziemienie to warunek konieczny dla poprawnej pracy toru antenowego i stabilnej impedancji. 

  • Brak dodatkowych element贸w
    W tej modyfikacji nie stosowano dodatkowych kondensator贸w ani d艂awik贸w – wykorzystano istniej膮cy tor RF, kt贸ry w wersji fabrycznej zasila艂 anten臋 PCB.

 

Efekt ko艅cowy

Po modernizacji modu艂 zyskuje:

  • mo偶liwo艣膰 stosowania dowolnej anteny WiFi (dook贸lnej, kierunkowej, zewn臋trznej),

  • wyra藕nie lepszy zasi臋g i stabilno艣膰 po艂膮czenia,

  • pe艂n膮 swobod臋 eksperyment贸w antenowych – od kr贸tkich „patyczk贸w” po solidne anteny panelowe.

A co najwa偶niejsze: modyfikacja jest odwracalna tylko w teorii, ale w praktyce – je艣li raz zobaczysz r贸偶nic臋 w RSSI i stabilno艣ci linku, do anteny PCB raczej nie b臋dziesz chcia艂 wraca膰 馃槈

Podsumowanie

Opisana modernizacja to prosty, ale bardzo skuteczny spos贸b na podniesienie mo偶liwo艣ci modu艂u ESP32. Wymaga precyzji, pewnej r臋ki i podstawowej 艣wiadomo艣ci RF, ale efekty s膮 absolutnie warte wysi艂ku – szczeg贸lnie w projektach, gdzie niezawodna 艂膮czno艣膰 WiFi jest kluczowa.

Zasi臋g to cz臋sto "by膰 albo nie by膰" dla urz膮dze艅 brzegowych. W ramach optymalizacji modu艂u ESP32-D0WD-V3, przeprowadzi艂em modyfikacj臋 toru RF, zast臋puj膮c zintegrowan膮 anten臋 PCB profesjonalnym gniazdem SMA. Taka zmiana pozwala na pe艂n膮 elastyczno艣膰 w doborze anten zewn臋trznych i drastyczn膮 popraw臋 parametr贸w RSSI. Czyste ci臋cie, pewny lut, lepszy zasi臋g.

Pami臋taj by modu艂 nie pracowa艂 bez anteny. Je偶eli nie masz pod r臋k膮 w艂a艣ciwej anteny za艂贸偶 obci膮偶enie (rezystor 50R). Praca modu艂u bez obci膮偶enia nadajnika mo偶e go uszkodzi膰! 

  

#ESP32 #RFDesign #HardwareMod #IoT #Engineering #Electronics #SmartHome

 

✍️ Autor: Robert HF5WWL
馃搮 Data projektu: Luty 2026 r.
 馃搷 Lokalizacja: Wo艂omin, POLSKA
馃搧 Co艣 nie jasne? Pytaj poprzez e-mail (hf5wwl@gmail.com) lub w komentarzu 
馃洜️ Poziom trudno艣ci: 艁atwy  
馃槉

 

16 stycznia 2026

ODBIORNIK VHF SA868S Z INTERFEJSEM WWW

Interfejs WWW

Cze艣膰! Dzi艣 chcia艂bym podzieli膰 si臋 z Wami moim najnowszym projektem: "profesjonalnym" odbiornikiem VHF z interfejsem webowym, kt贸ry zbudowa艂em w oparciu o modu艂 radiowy SA868S, mikrokontroler ESP32 oraz wy艣wietlacz TFT ST7789. To urz膮dzenie, kt贸re 艂膮czy w sobie mo偶liwo艣ci odbioru pasma VHF (134–174 MHz) z nowoczesnym sterowaniem przez przegl膮dark臋 internetow膮.

馃摗 G艂贸wne funkcjonalno艣ci:

  • Odbiornik VHF – pracuje w pa艣mie VHF (134–174 MHz) z mo偶liwo艣ci膮 strojenia krokami 12.5 kHz, 25 kHz, 100 kHz i 1 MHz.

  • G艂贸wny interfejs: panel webowy – dost臋pny z ka偶dego urz膮dzenia w sieci WiFi (telefon, tablet, laptop). Nie potrzebujesz dodatkowej aplikacji – wystarczy przegl膮darka.

  • Wy艣wietlacz lokalny TFT – pe艂ni rol臋 pomocniczego ekranu technicznego, pokazuj膮cego aktualn膮 cz臋stotliwo艣膰, nazw臋 kana艂u, poziom sygna艂u (S-meter) oraz status (BUSY/SQL/SCAN).

  • Bank pami臋ci kana艂贸w – mo偶esz zapisywa膰 ulubione cz臋stotliwo艣ci z w艂asnymi nazwami, a potem jednym klikni臋ciem do nich wraca膰.

  • Skaner pasma – automatyczne przeszukiwanie zadanego zakresu z pauzowaniem na aktywnych kana艂ach.

  • Regulacja audio – g艂o艣no艣ci i squelcha z poziomu panelu webowego.

  • Filtry odbioru – wbudowane opcje: PRE/DE-EMPHASIS, HIGH-PASS, LOW-PASS.

馃洜️ Jak to dzia艂a?

Urz膮dzenie opiera si臋 na ESP32, kt贸ry pe艂ni rol臋 serwera webowego (AsyncWebServer) i komunikuje si臋 z modu艂em radiowym SA868S poprzez UART. Po艂膮czenie WiFi dzia艂a w trybie Access Point – urz膮dzenie tworzy w艂asn膮 sie膰 Odbiornik_VHF, do kt贸rej 艂膮czysz si臋 bezpo艣rednio.

G艂贸wny interfejs to strona HTML serwowana z karty SD, kt贸ra na 偶ywo aktualizuje dane przez WebSocket (cz臋stotliwo艣膰, poziom sygna艂u, status). Wy艣wietlacz TFT ST7789 pokazuje te same informacje w formie uproszczonej – idealnie, gdy nie chcesz otwiera膰 przegl膮darki.

   

         
                     
  
Wy艣wietlacz GMT020_02 (ST7789V) umieszczony w obudowie odbiornika. Wersja 1 i wersja 2.

 

馃З Schemat pod艂膮czenia:

  • Modu艂 SA868S po艂膮czony jest z ESP32 przez UART (RX/TX) oraz pin BUSY do detekcji aktywno艣ci kana艂u.

  • Wy艣wietlacz ST7789 pod艂膮czony przez SPI.

  • Karta SD r贸wnie偶 przez SPI – przechowuje stron臋 HTML i banki kana艂贸w.

    Karta musi by膰 sformatowana w systemie FAT-32 i zawiera膰 podstawowe pliki index.html i banki.txt. Opcjonalnie config.txt 

  • Audio – sygna艂 audio z SA868S trafia do wzmacniacza klasy D LTK5128, a potem do g艂o艣nika lub s艂uchawek.

  • Zasilanie przez USB-C 5V, z prostym uk艂adem stabilizatora 4.3V dla cz臋艣ci analogowej. 

    Szkic po艂膮cze艅 toru audio.

     

    Szkic cz臋艣ci cyfrowej.

     

    Kluczowe uwagi monta偶owe:

  • Zasilanie: Modu艂 SA868S potrafi pobra膰 sporo pr膮du w momencie inicjalizacji. Warto doda膰 kondensator elektrolityczny (np. 470uF) blisko wyprowadze艅 VCC modu艂u radiowego.

  • Antena: Pami臋taj o pod艂膮czeniu anteny (lub sztucznego obci膮偶enia 50 Ohm) przed uruchomieniem. Nawet je艣li tylko odbierasz, dobre dopasowanie chroni czu艂e stopnie wej艣ciowe przed zak艂贸ceniami z procesora.

  • Separacja: ESP32 generuje sporo szumu cyfrowego (WiFi/BT). Staraj si臋 prowadzi膰 przewody audio z modu艂u SA868S jak najdalej od anteny WiFi i linii sygna艂owych SPI karty SD. 

 

馃捇 Oprogramowanie:

Kod napisany w Arduino IDE wykorzystuje m.in.:

  • AsyncWebServer do serwowania strony i API

  • WebSocket do komunikacji w czasie rzeczywistym

  • Adafruit_ST7789 do obs艂ugi wy艣wietlacza

  • SD do odczytu/zapisu kana艂贸w 

     

Panel webowy ma nowoczesny, ciemny styl z elementami inspirowanymi profesjonalnymi konsolami radiowymi. Wszystkie ustawienia mo偶na zmienia膰 w locie, a zmiany s膮 natychmiast widoczne na wy艣wietlaczu TFT. 

S艂贸w kilka na temat panela www:

Interfejs WWW – panel operatorski 艂adowany z karty SD

Interfejs u偶ytkownika odbiornika zosta艂 zrealizowany jako pojedynczy plik index.html, kt贸ry nie znajduje si臋 w pami臋ci flash ESP32, lecz jest 艂adowany bezpo艣rednio z karty SD pod艂膮czonej do mikrokontrolera.

Takie rozwi膮zanie zosta艂o wybrane 艣wiadomie i niesie ze sob膮 kilka bardzo praktycznych korzy艣ci.


Dlaczego karta SD zamiast flash ESP32?

Umieszczenie interfejsu WWW na karcie SD pozwala na:

  • 艂atw膮 modyfikacj臋 wygl膮du i funkcji interfejsu bez ponownego wgrywania firmware,

  • szybk膮 edycj臋 HTML/CSS/JS bez ryzyka „uceglenia” urz膮dzenia,

  • przechowywanie dodatkowych plik贸w (np. przysz艂ych wykres贸w, log贸w, konfiguracji),

  • oddzielenie warstwy sprz臋towej od warstwy interfejsu u偶ytkownika.

W praktyce:

ESP32 odpowiada za radio i logik臋, karta SD za „twarz” urz膮dzenia.

I to jest dok艂adnie ten podzia艂, kt贸ry dobrze si臋 skaluje.


Serwowanie plik贸w WWW z karty SD

ESP32 dzia艂a jako serwer HTTP, kt贸ry:

  • przy starcie inicjalizuje kart臋 SD,

  • udost臋pnia plik index.html oraz zasoby statyczne bezpo艣rednio z systemu plik贸w,

  • obs艂uguje zapytania API i WebSockety r贸wnolegle.

Dla przegl膮darki u偶ytkownika:

  • strona zachowuje si臋 jak klasyczna aplikacja webowa,

  • nie ma r贸偶nicy, czy plik pochodzi z serwera w chmurze, czy z ESP32 na biurku.

Dla konstruktora:

  • jest pe艂na kontrola nad zawarto艣ci膮,

  • zero zale偶no艣ci od zewn臋trznej infrastruktury.


Technologia interfejsu

Interfejs zosta艂 napisany w czystym HTML, CSS i JavaScript, bez framework贸w i bibliotek zewn臋trznych.

Zastosowane rozwi膮zania:

  • CSS Grid – uk艂ad dashboardu,

  • dark theme – czytelno艣膰 i „techniczny” charakter,

  • JavaScript ES6 – logika interfejsu,

  • WebSocket – komunikacja czasu rzeczywistego,

  • HTTP API – konfiguracja i sterowanie odbiornikiem.

Ca艂o艣膰 dzia艂a w dowolnej nowoczesnej przegl膮darce:

  • komputer,

  • tablet,

  • smartfon.

Nie ma instalacji aplikacji, nie ma parowania — wystarczy adres IP.


Komunikacja przegl膮darka ↔ ESP32

Interfejs wykorzystuje dwa kana艂y komunikacji:

WebSocket

  • aktualna cz臋stotliwo艣膰,

  • poziom sygna艂u (S-metr),

  • stan BUSY,

  • status skanera.

Zapewnia to:

  • brak op贸藕nie艅,

  • brak od艣wie偶ania strony,

  • bardzo p艂ynn膮 prac臋 interfejsu.

HTTP (REST-like API)

  • zmiana cz臋stotliwo艣ci,

  • regulacja audio,

  • zapis i odczyt pami臋ci,

  • sterowanie skanerem.

To rozdzielenie upraszcza kod i zwi臋ksza niezawodno艣膰.


Bank pami臋ci i dane u偶ytkownika

Lista zapami臋tanych cz臋stotliwo艣ci:

  • przechowywana jest po stronie ESP32,

  • mo偶e by膰 powi膮zana z plikami na karcie SD,

  • jest dynamicznie 艂adowana do interfejsu WWW.

Karta SD naturalnie nadaje si臋 te偶 do:

  • logowania zdarze艅,

  • zapisu historii skanowania,

  • przysz艂ej rozbudowy projektu.


Interfejs WWW jako „softwarowy front panel”

W tym projekcie interfejs WWW pe艂ni rol臋 klasycznego panelu czo艂owego, tyle 偶e:

  • bez ga艂ek,

  • bez przycisk贸w,

  • bez ogranicze艅 fizycznych.

Zmiana wygl膮du lub funkcji:

  • nie wymaga lutownicy,

  • nie wymaga kompilatora,

  • wymaga tylko edytora tekstu.

A to w 艣wiecie projekt贸w radiowych jest luksus, kt贸rego trudno si臋 potem wyrzec.


Umieszczenie interfejsu WWW na karcie SD:

  • upraszcza rozw贸j projektu,

  • zwi臋ksza elastyczno艣膰,

  • oddziela warstw臋 sprz臋tow膮 od wizualnej.

ESP32 robi to, co potrafi najlepiej — steruje radiem i komunikuje si臋 z sieci膮.
A karta SD? Ona daje projektowi przestrze艅 do oddychania.

Kr贸tko m贸wi膮c:
to ju偶 nie jest „radio z webem”, tylko radio sterowane webem.

 

馃殌 Mo偶liwo艣ci rozbudowy:

  • Dodanie nadajnika (TX) i przej艣cie w tryb transceivera

  • Integracja z zewn臋trznymi 藕r贸d艂ami cz臋stotliwo艣ci (GPS, DDS, zewn臋trzny serwer czasu)

  • Automatyczne logowanie odbieranych sygna艂贸w na karcie SD

  • R贸wnoleg艂e sterowanie r臋czne z poziomu samego odbiornika (enkoder obrotowy)

  • Wersja przeno艣na z bateri膮

馃摝 Podsumowanie:

To projekt, kt贸ry 艂膮czy klasyczn膮 radioamatorsk膮 elektronik臋 z nowoczesnym interfejsem webowym. Dzi臋ki niemu mo偶esz zamieni膰 dowolne urz膮dzenie z przegl膮dark膮 w pe艂noprawny panel sterowania odbiornikiem VHF. Ca艂o艣膰 jest otwarta, modu艂owa i gotowa do dalszej rozbudowy.

 

Kod 藕r贸d艂owy, schematy i pliki s膮 dost臋pne (pytaj poprzez e-mail hf5wwl@gmail.com  – zach臋cam do eksperymentowania!

Masz pytania? Chcesz zbudowa膰 w艂asny? Zapraszam do komentowania!

 

 

✍️ Autor: Robert HF5WWL
馃搮 Data projektu: Czerwiec 2025 r.
馃搷 Lokalizacja: Wo艂omin, POLSKA
馃搧 Kod 藕r贸d艂owy: Pytaj poprzez e-mail (hf5wwl@gmail.com).
馃洜️ Poziom trudno艣ci: 艢redni, 艣rednio-trudny. (gdy masz gotowy program 
馃槉).




Tagi: #radio #VHF #ESP32 #SA868S #IoT #webinterface #DIY #radioamator #STM7789 #websocket #hf5wwl