___________________________________________________________________________________________________________________________________________________________________________
___________________________________________________________________________________________________________________________________________________________________________
Pokazywanie post贸w oznaczonych etykiet膮 INNE. Poka偶 wszystkie posty
Pokazywanie post贸w oznaczonych etykiet膮 INNE. 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

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  
馃槉

 

27 grudnia 2025

INTELIGENTNY PUNKT DOST臉POWY (AP)


Inteligentny Punkt Dost臋powy (AP) z interfejsem WWW i obs艂ug膮 kart SD

W 艣wiecie projekt贸w opartych na ESP32 cz臋sto brakuje narz臋dzi, kt贸re s膮 jednocze艣nie pot臋偶ne i proste w codziennej obs艂udze. Dzisiaj chcia艂bym Wam przedstawi膰 m贸j autorski projekt Punktu Dost臋powego (AP), kt贸ry wykracza (troch臋) poza ramy zwyk艂ego routera WiFi. To urz膮dzenie, kt贸re nie tylko zarz膮dza ruchem, ale te偶 w czasie rzeczywistym identyfikuje pod艂膮czone urz膮dzenia i informuje o stanie systemu na dwa sposoby.

Serce systemu: ESP32 i wy艣wietlacz ST7789

G艂贸wnym centrum informacyjnym urz膮dzenia jest kolorowy wy艣wietlacz ST7789 (320x240 px). Pe艂ni on rol臋 "technicznego podgl膮du". Bez wyci膮gania telefonu czy komputera, od razu po spojrzeniu na obudow臋 widzimy:

  • SSID sieci oraz aktualny adres IP,

  • Liczb臋 aktualnie po艂膮czonych klient贸w,

  • Status karty SD.

Interfejs graficzny zosta艂 zaprojektowany tak, aby by艂 czytelny nawet z wi臋kszej odleg艂o艣ci, wykorzystuj膮c eleganckie czcionki GFX i intuicyjne kolory dla ka偶dego parametru.


 


Panel WWW: Moje centrum dowodzenia ;)

Prawdziwa magia dzieje si臋 jednak po wpisaniu adresu IP urz膮dzenia w przegl膮darce. ESP32 serwuje nowoczesn膮, responsywn膮 stron臋 WWW w ciemnym motywie (Dark Mode), kt贸ra automatycznie od艣wie偶a si臋 co 10 sekund.

Co znajdziemy w panelu?

  1. Szczeg贸艂owa lista klient贸w: Program nie wy艣wietla tylko "suchych" adres贸w MAC. Dzi臋ki bazie danych urz膮dze艅, system rozpoznaje, czy pod艂膮czony sprz臋t to ESP-Cam w pokoju, Sterownik w gara偶u czy Laptop. Oczywi艣cie z jego adresem IP. 

  2. Czas po艂膮czenia: Widzimy dok艂adnie, jak d艂ugo ka偶de urz膮dzenie jest aktywne w sieci.

  3. Logowanie zdarze艅: Ka偶de po艂膮czenie i roz艂膮czenie jest odnotowywane w logach na karcie SD (opcja).

    To chwilowo tyle bo projekt si臋 rozwija i z pewno艣ci膮 b臋d膮 zmiany. 


Konfiguracja bez programowania (SD Card Support)

To funkcja, z kt贸rej jestem najbardziej dumny. Wi臋kszo艣膰 projekt贸w Arduino wymaga edycji kodu i ponownego wgrywania programu (flaszowania), aby zmieni膰 nazw臋 sieci (SSID) lub has艂o. Tutaj jest inaczej.

Urz膮dzenie posiada slot na kart臋 SD, kt贸ra pe艂ni rol臋 dysku twardego.

  • Plik config.txt: Tutaj wpisujemy nazw臋 sieci i has艂o.

    Przyk艂ad:

    SSID=TwojaNazwaSieci
    PASSWORD=TwojeHaslo123

  • Plik devices.csv: To baza danych naszych urz膮dze艅. Mo偶emy tam przypisa膰 przyjazn膮 nazw臋 (np. "Termometr-Taras") do konkretnego adresu MAC.

    Przyk艂ad:

    A0:B1:C2,ESP32-Garaz,esp32 

    08:A6:F7,ESP-Cam_Pokoj,cam 

    8C:AA:B5,STM32-Kuchnia,stm32

Dzi臋ki temu, aby doda膰 nowe urz膮dzenie do listy "znanych" lub zmieni膰 has艂o WiFi, wystarczy wyci膮gn膮膰 kart臋 SD, edytowa膰 plik na komputerze i w艂o偶y膰 j膮 z powrotem. 呕adnego kompilowania kodu!

Mo偶emy te偶 podejrze膰 info o karcie SD:


 

Przy braku dost臋pu do karty SD widok strony zmieni si臋:

 

Zmieni si臋 te偶 info o karcie:


 

Podsumowanie i bezpiecze艅stwo

Program zosta艂 zoptymalizowany pod k膮tem stabilno艣ci – monitoruje zu偶ycie pami臋ci RAM i pozwala na zdalny restart systemu jednym klikni臋ciem z poziomu strony WWW. Je艣li karta SD zostanie wyj臋ta, system automatycznie przejdzie w tryb awaryjny, korzystaj膮c z domy艣lnych ustawie艅 zapisanych w pami臋ci sta艂ej.

To urz膮dzenie to idealna baza dla ka偶dego, kto buduje w艂asny ekosystem Smart Home i chce mie膰 nad nim pe艂n膮, lokaln膮 kontrol臋.

Opis po艂膮cze艅 (Pinout)

Aby uk艂ad dzia艂a艂 poprawnie, oba modu艂y (TFT i SD) korzystaj膮 ze wsp贸lnej magistrali SPI. Kluczowe jest poprawne podpi臋cie linii sygna艂owych oraz pin贸w steruj膮cych (CS, DC, RST).

 

Funkcja Pin ESP32 Pin Urz膮dzenia Uwagi
Zasilanie 3.3V / VIN VCC Zale偶nie od wersji modu艂u
Masa GND GND Wsp贸lna masa
SPI SCLK GPIO 18 SCL / SCK Wsp贸lne dla TFT i SD
SPI MOSI GPIO 23 SDA / MOSI Wsp贸lne dla TFT i SD
SPI MISO GPIO 19 MISO / SD_DO Tylko dla karty SD
TFT CS GPIO 15 CS (Display) Chip Select wy艣wietlacza
TFT DC GPIO 2 DC / RS Data/Command
TFT RST GPIO 4 RES / RESET Reset wy艣wietlacza
TFT BL GPIO 5 BL / LED Sterowanie pod艣wietleniem
SD CS GPIO 13 CS (SD Card) Chip Select karty SD

Wskaz贸wka dla buduj膮cych: Pami臋taj, aby przy u偶ywaniu karty SD i wy艣wietlacza jednocze艣nie, stosowa膰 dobrej jako艣ci przewody. Magistrala SPI przy tak wysokim od艣wie偶aniu jak w ST7789 bywa wra偶liwa na zak艂贸cenia.

Karta SD musi by膰 sformatowana na FAT32. To bardzo wa偶ne! 

 

Jeszcze jedna do艣膰 istotna uwaga: Po klikni臋ciu na czerwony przycisk na panelu WWW nast膮pi reset urz膮dzenia. W tym momencie nale偶y zwr贸ci膰 uwag臋, czy przegl膮darka nie dopisa艂a sobie czego艣 do adresu. 

W tym wypadku do adresu naszego AP przegl膮darka dopisa艂a /restart i teraz od艣wie偶enie strony b臋dzie powodowa艂 jej restart. Nale偶y u偶ywa膰 tylko samego adresu http:/192.168.4.1 (lub innego zdefiniowanego dla danej sieci.

Ten punkt dost臋powy powsta艂 na potrzeby mojej sieci domowej kt贸ra z za艂o偶enia nie b臋dzie mia艂a dost臋pu do internetu. To nie jest wada a 艣wiadome za艂o偶enie projektu. 

  

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

 

17 grudnia 2025

艁ADOWARKA AKUMULATOR脫W Li-Ion Z POMIARAMI

 


Wprowadzenie

Witajcie w kolejnym projekcie z mojej warsztatowej serii! Dzi艣 chcia艂bym zaprezentowa膰 w艂asnor臋cznie zbudowan膮 艂adowark臋 do akumulator贸w Li-Ion, kt贸ra 艂膮czy w sobie bezpiecze艅stwo, precyzj臋 pomiar贸w i estetyczny wygl膮d. Projekt powsta艂 z my艣l膮 o wszystkich, kt贸rzy pracuj膮 z akumulatorami 18650 i innymi ogniwami litowo-jonowymi – od hobbyst贸w elektroniki po u偶ytkownik贸w latarek, powerbank贸w i innych urz膮dze艅. Nie jest to szybka 艂adowarka a raczej 艂adowarka "dok艂adna" nastawiona na ochron臋 akumulatora i poznanie jego parametr贸w.

G艂贸wne cechy projektu

✅ Bezpiecze艅stwo przede wszystkim

  • Monitoring temperatury (DS18B20) z alarmem i automatycznym wy艂膮czeniem

  • Kontrola napi臋cia z ochron膮 przed prze艂adowaniem (>4.21V)

  • Detekcja stanu ogniwa – automatyczne wykrywanie pod艂膮czenia akumulatora

  • Zabezpieczenie przeciwzwarciowe przez uk艂ad MOSFET

✅ Precyzyjne pomiary

  • Napi臋cie: pomiar z dok艂adno艣ci膮 do 0.01V (INA219)

  • Pr膮d: monitoring od 0 do 2000mA (Dla akumulatora ograniczony do 1 A)

  • Pojemno艣膰: akumulacja 艂adunku w mAh w czasie rzeczywistym

  • Moc: obliczanie mocy dostarczanej do akumulatora (opcja dla pracy buforowej akumulatora)

  • Czas: pe艂ny czasomierz 艂adowania

✅ Intuicyjny interfejs

  • Kolorowy wy艣wietlacz TFT 2.8" (320×240)

  • Graficzny wska藕nik na艂adowania z kolorow膮 skal膮

  • Czytelne wy艣wietlanie wszystkich parametr贸w

  • Ekran podsumowania z pe艂nymi wynikami po zako艅czeniu

Parametry techniczne

馃洜️ Hardware:

  • Mikrokontroler: ESP32 (WROOM-32)

  • Wy艣wietlacz: ST7789 SPI TFT (2.8 cala, 320×240)

  • Modu艂 艂adowania: TP4056 z ochron膮

  • Czujnik pr膮du/napi臋cia: INA219 (I²C)

  • Czujnik temperatury: DS18B20 (1-Wire)

  • Sterowanie zasilaniem: MOSFET N-kana艂owy + P-kana艂owy

  • Zasilanie: 5V DC (USB-C) zabezpieczone bezpiecznikiem polimerowym 2A.

  • Brz臋czyk: sygnalizator d藕wi臋kowy (opcjonalnie) 

⚡ Specyfikacja 艂adowania:

  • Napi臋cie 艂adowania: 4.21V ±1%

  • Pr膮d 艂adowania: regulowany przez TP4056 (domy艣lnie 1A)

  • Napi臋cie akumulatora: 2.8V – 4.21V (wykrywanie od 2.0V)

  • Pr贸g zako艅czenia: 4.20V + pr膮d <50mA

  • Temperatura pracy: 5°C – 40°C (alarm poza zakresem)

  • Temperatura krytyczna: >50°C (natychmiastowe wy艂膮czenie)

馃搳 Mo偶liwo艣ci pomiarowe:

  • Rozdzielczo艣膰 napi臋cia: 0.01V

  • Rozdzielczo艣膰 pr膮du: 1mA

  • Rozdzielczo艣膰 temperatury: 0.1°C

  • Pomiar pojemno艣ci: 0-9999mAh

  • Czas 艂adowania: do 99 godzin 59 minut

Zasada dzia艂ania

馃攱 Proces 艁adowania:

  1. Wykrycie akumulatora – sprawdzenie czy ogniwo jest pod艂膮czone (napi臋cie >2.0V)

  2. Test bezpiecze艅stwa – weryfikacja temperatury i stanu ogniwa

  3. Faza CC (Constant Current) – 艂adowanie sta艂ym pr膮dem do osi膮gni臋cia 4.20V

  4. Faza CV (Constant Voltage) – stabilizacja napi臋cia przy malej膮cym pr膮dzie

  5. Zako艅czenie – automatyczne wy艂膮czenie przy pr膮dzie <50mA i napi臋ciu ≥4.20V

馃搱 Monitoring w czasie rzeczywistym:

  • Aktualizacja parametr贸w co 1.5 sekundy na wy艣wietlaczu

  • Obliczanie dostarczonego 艂adunku (ca艂kowanie pr膮du w czasie)

  • Wykrywanie anomalii i automatyczne reakcje

馃毃 System alarmowy:

  • Czerwony alarm – przekroczenie dopuszczalnych parametr贸w

  • Miganie wska藕nik贸w – wizualna informacja o stanie alarmowym

  • Sygna艂 d藕wi臋kowy – przy przekroczeniu temperatur krytycznych

  • Automatyczne wy艂膮czenie – w przypadku zagro偶enia

 

Interfejs u偶ytkownika

馃帹 Przyk艂adowy ekran g艂贸wny podczas 艂adowania:

 


馃弫 Przyk艂adowy ekran ko艅cowy po na艂adowaniu:

Po zako艅czeniu 艂adowania pojawia si臋 ekran podsumowania:

  • Komunikat "艁ADOWANIE ZAKO艃CZONE"

  • Napi臋cie ko艅cowe (np. 4.21V)

  • Ca艂kowity 艂adunek dostarczony (w mAh)

  • Czas trwania 艂adowania

  • Instrukcja "WYJMIJ AKUMULATOR"

     

Zastosowania praktyczne

馃敡 Dla Hobbyst贸w Elektroniki:

  • Testowanie i sortowanie u偶ywanych ogniw 18650

  • Pomiar rzeczywistej pojemno艣ci akumulator贸w

  • Diagnostyka stanu zdrowia ogniw Li-Ion

⚡ Dla U偶ytkownik贸w:

  • Bezpieczne 艂adowanie akumulator贸w do latarek, powerbank贸w

  • Monitoring procesu 艂adowania z pe艂n膮 informacj膮

  • Przechowywanie danych o historii 艂adowania

馃敩 Dla edukacji:

  • Praktyczna demonstracja 艂adowania CC/CV

  • Wizualizacja procesu akumulacji 艂adunku

  • Nauka o bezpiecze艅stwie ogniw Li-Ion

Bezpiecze艅stwo – najwa偶niejszy aspekt

馃И Certyfikowane Komponenty:

  • TP4056 – modu艂 z zabezpieczeniem przed prze艂adowaniem, nadmiernym pr膮dem i zwarcie

  • DS18B20 – precyzyjny pomiar temperatury ogniwa

  • INA219 – dok艂adny pomiar pr膮du i napi臋cia

馃洝️ Wielopoziomowa ochrona:

  1. Warstwa sprz臋towa – zabezpieczenia w module TP4056

  2. Warstwa programowa – monitoring w czasie rzeczywistym

  3. Warstwa u偶ytkownika – czytelne komunikaty i alarmy 

馃洝️ Zaawansowany system zabezpiecze艅 w praktyce: Serce 艂adowarki ESP32

Podczas gdy wi臋kszo艣膰 prostych 艂adowarek polega na podstawowych uk艂adach zabezpieczaj膮cych, ten projekt idzie o krok dalej. 艁膮czy sprz臋tow膮 ochron臋 z inteligentnym, programowym nadzorem w czasie rzeczywistym, tworz膮c wielowarstwowy system bezpiecze艅stwa.

Warstwa 1: Inteligentny nadz贸r mikrokontrolera (m贸zg systemu)

To serce zabezpiecze艅. ESP32 nie tylko wy艣wietla dane, ale aktywnie monitoruje i kontroluje ca艂y proces za pomoc膮 precyzyjnych czujnik贸w:

  • Czujnik INA219: Co 100 milisekund mierzy dok艂adne napi臋cie na akumulatorze (z rozdzielczo艣ci膮 do 0.01V) oraz p艂yn膮cy pr膮d. Dzi臋ki temu algorytm mo偶e precyzyjnie wykry膰 koniec 艂adowania (warunek: napi臋cie ≥4.20V ORAZ pr膮d <50mA), co jest znacznie pewniejsze ni偶 poleganie tylko na module 艂adowania.

  • Bezwzgl臋dne limity programowe: Nawet je艣li inne elementy zawiod膮, oprogramowanie ma zapisane "sztywne" granice. 艁adowanie zostanie natychmiast wstrzymane, je艣li napi臋cie przekroczy 4.42V lub temperatura wyjdzie poza bezpieczny zakres.

Kluczowa innowacja: Pomiar temperatury "z pierwszej r臋ki"
Jednym z filar贸w tego systemu jest unikalne zastosowanie czujnika DS18B20. Nie mierzy on og贸lnej temperatury "w 艂adowarce", lecz jest wbudowany w pojemnik na akumulator i dotyka bezpo艣rednio jego metalowej obudowy. Daje to ogromn膮 przewag臋:

  • Natychmiastowa reakcja: Czuwa na samym 藕r贸dle ciep艂a. Gdy akumulator zaczyna si臋 grza膰 z powodu problem贸w wewn臋trznych, nadmiernego pr膮du lub z艂ego kontaktu, czujnik wykrywa to w ci膮gu sekund.

  • Realne dane: Mierzy rzeczywist膮 temperatur臋 ogniwa, a nie przybli偶on膮 warto艣膰 z otoczenia.

  • Trzystopniowa reakcja: Algorytm reaguje progresywnie:

    1. >40°C: W艂膮cza alarm wizualny (migaj膮ce pole na wy艣wietlaczu) i wstrzymuje 艂adowanie do och艂odzenia.

    2. <5°C: Blokuje start 艂adowania, chroni膮c bateri臋 przed uszkodzeniem.

    3. >50°C (Temperatura Krytyczna): Natychmiast, nieodwracalnie odcina zasilanie (przez MOSFET) i w艂膮cza sygna艂 d藕wi臋kowy. Jest to stan awaryjny.

Warstwa 2: Kontrola zasilania – MOSFET jako stra偶nik

MOSFET w tym projekcie to nie tylko prze艂膮cznik, to fizyczny stra偶nik kontrolowany przez ESP32. Gdy algorytm wykryje jak膮kolwiek nieprawid艂owo艣膰 (przegrzanie, prze艂adowanie, wyj臋cie baterii), wysy艂a sygna艂, kt贸ry fizycznie odcina napi臋cie 艂adowania od modu艂u TP4056. To "twarde" wy艂膮czenie stanowi ostatni膮 lini臋 obrony na poziomie obwodu zasilania. Gdyby jednak co艣 "posz艂o nie tak" mamy jeszcze bezpiecznik polimerowy 2A w linii zasilaj膮cej +5V.

Warstwa 3: Podstawowa ochrona poprzez modu艂 TP4056

Modu艂 艂adowarki TP4056 stanowi bazow膮, niezale偶n膮 warstw臋. Zawiera w艂asny uk艂ad zabezpieczaj膮cy (DW01), kt贸ry chroni przed zwarciem, g艂臋bokim roz艂adowaniem i prze艂adowaniem. Dzia艂a nawet gdyby ESP32 uleg艂 resetowi, dzia艂aj膮c jako sprawdzony fundament bezpiecze艅stwa.

Podsumowanie: Projektowana ochrona

Bezpiecze艅stwo tej 艂adowarki nie jest przypadkowe, lecz zaprojektowane i wielowarstwowe:

  1. Modu艂 TP4056 stanowi podstawow膮, "g艂upi膮" os艂on臋.

  2. ESP32 z czujnikami to "inteligentny nadzorca" analizuj膮cy sytuacj臋 w czasie rzeczywistym.

  3. MOSFET jest "stra偶nikiem", kt贸ry na rozkaz nadzorcy fizycznie roz艂膮cza obw贸d.

  4. Czujnik na obudowie baterii to "zaufany informator", dostarczaj膮cy kluczowych danych o samym ogniwie.

Dzi臋ki temu podej艣ciu projekt nie tylko 艂aduje, ale aktywnie chroni cenny akumulator – i otoczenie – przed skutkiem potencjalnych awarii czy ekstremalnych warunk贸w.

Je偶eli nie s膮 spe艂nione wszystkie warunki bezpiecze艅stwa napi臋cie nie zostanie podane na akumulator. 

 

Dlaczego warto zbudowa膰?

  1. Wiedza – zrozumienie procesu 艂adowania Li-Ion od podszewki

  2. Oszcz臋dno艣膰 – koszt budowy znacznie ni偶szy ni偶 zakup komercyjnego testera

  3. Dok艂adno艣膰 – pomiary lepsze ni偶 w wielu gotowych 艂adowarkach

  4. Satysfakcja – urz膮dzenie wykonane w艂asnor臋cznie, dok艂adnie pod swoje potrzeby

  5. Rozszerzalno艣膰 – mo偶liwo艣膰 dodania nowych funkcji (np. logowanie danych, WiFi)

Podsumowanie

Ta 艂adowarka to wi臋cej ni偶 tylko urz膮dzenie do nape艂niania akumulator贸w – to pe艂noprawny stacja testowa i monitoruj膮ca. Dzi臋ki niej mo偶esz:

  • Bezpiecznie 艂adowa膰 ogniwa Li-Ion

  • Precyzyjnie mierzy膰 ich parametry

  • Diagnozowa膰 stan techniczny akumulator贸w

  • Uczy膰 si臋 o elektronice i technologii baterii

Projekt jest stale rozwijany – aktualna wersja 3.9.3 wprowadza ulepszone algorytmy wykrywania ko艅ca 艂adowania i bardziej intuicyjny interfejs.

 

Na koniec troch臋 techniki. Poni偶ej szkic uk艂adu sterowania ON/OFF zrealizowany na 2 MOSFET-ach:






 Tak wygl膮da艂 prototyp urz膮dzenia:

Sterowanie ON/OFF znajduje si臋 od spodu p艂ytki.

 

馃搶 Tabela Po艂膮cze艅 Pin贸w (Pe艂na)

Poni偶ej znajduje si臋 zestawienie po艂膮cze艅 pomi臋dzy pinami ESP32 a poszczeg贸lnymi modu艂ami:

1. 馃枼️ Wy艣wietlacz TFT (ST7789) – Interfejs SPI

Pin ESP32,  Pin ST7789,   Definicja w Kodzie,  Opis
GPIO 18SCKTFT_SCLKZegar SPI
GPIO 23MOSITFT_MOSIDane SPI
GPIO 15CSTFT_CSWyb贸r chipa
GPIO 2DCTFT_DCWyb贸r danych/komendy
GPIO 4RSTTFT_RSTReset wy艣wietlacza

2. ⚡ Monitoring Pr膮du i Napi臋cia (INA219) – Interfejs I2C

Pin ESP32,    Pin INA219,     Definicja w Kodzie,    Opis
GPIO 21SDAI2C_SDALinia danych I2C
GPIO 22SCLI2C_SCLLinia zegara I2C
GND / +5VGND / VCC
Zasilanie

 

3. 馃尅️ Czujnik Temperatury (DS18B20)

Pin ESP32, Pin DS18B20,   Definicja w Kodzie,     Opis
GPIO 14DQ (Data)ONE_WIRE_BUSLinia danych 1-Wire

 

4. 馃攱 Status Modu艂u 艁adowania (TP4056)

Pin ESP32,  Pin TP4056,       Definicja w Kodzie Opis
GPIO 34CHG (Status)      PIN_CHARGINGOdczyt statusu 艂adowania (wej艣cie PULLUP)
GPIO 35STDBY (lub DONE)  PIN_DONEOdczyt statusu gotowo艣ci (wej艣cie PULLUP)

 

5. 馃攰 Sygnalizacja i Dodatki

Pin ESP32,   Komponent,        Definicja w Kodzie,    Opis
GPIO 33Brz臋czyk (Buzzer)   BUZZER_PINWyj艣cie cyfrowe (HIGH = w艂膮cz)
GPIO 32         MOSFET                 MOSFET_PIN                Sterowanie ON/OFF TP4056



 


✍️ Autor: Robert HF5WWL
馃搮 Data projektu: Grudzie艅 2025 r.
馃搷 Lokalizacja: Wo艂omin, POLSKA
馃搧 Kod 藕r贸d艂owy: Pytaj poprzez e-mail (hf5wwl@gmail.com) lub komentarz.
馃洜️ Poziom trudno艣ci: 艢rednio-zaawansowany


Uwaga: Praca z akumulatorami Li-Ion zawsze wi膮偶e si臋 z pewnym ryzykiem. Zalecana jest ostro偶no艣膰 i znajomo艣膰 zasad bezpiecze艅stwa. Autor nie ponosi odpowiedzialno艣ci za jakiekolwiek szkody wynik艂e z realizacji projektu.


馃挰 Masz pytania? Chcesz podzieli膰 si臋 swoj膮 wersj膮? Zapraszam do komentowania!