______________________________________________________________________________________________________________________________________________________________________________
______________________________________________________________________________________________________________________________________________________________________________

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!

 

 

 


 

11 listopada 2025

WY艢WIETLACZ ST7789P3

 


Nietypowy wy艣wietlacz ST7789P3  284×73 pix – test i charakterystyka

 

 

Wprowadzenie

Zakupi艂em ostatnio ciekawy wy艣wietlacz w rozs膮dnej cenie:

 

 

 

W 艣wiecie mikrokontroler贸w i wy艣wietlaczy TFT czasami natrafiamy na pere艂ki, kt贸re wyr贸偶niaj膮 si臋 nietypowymi parametrami. Takim w艂a艣nie egzemplarzem jest wy艣wietlacz ST7789P3 – sterownik znany, ale w zupe艂nie niestandardowym wykonaniu. W tym artykule om贸wi臋 ten ciekawy wy艣wietlacz i poka偶臋, jak go uruchomi膰 z ESP32.

Parametry techniczne



SterownikST7789P3
Rozdzielczo艣膰284 × 73 pikseli
InterfejsSPI
Kolory16-bit (65K kolor贸w)
Wymiary aktywne  ~61.0 × 15.7 mm
Pod艣wietlenieLED, 3.3V
Napi臋cie zasilania3.3V

Uwaga: Rozdzielczo艣膰 284×73 pikseli jest nietypowa dla sterownik贸w ST7789, kt贸re zazwyczaj obs艂uguj膮 standardowe rozdzielczo艣ci jak 240×240 czy 135×240. Ten "w膮ski i szeroki" format sprawia, 偶e wy艣wietlacz idealnie nadaje si臋 do aplikacji wymagaj膮cych pask贸w stanu, wska藕nik贸w czy minimalistycznych interfejs贸w.

Pod艂膮czenie do ESP32

Konfiguracja po艂膮cze艅 z mikrokontrolerem ESP32 przedstawia si臋 nast臋puj膮co:

cpp
#define TFT_CS            15  // Chip Select
#define TFT_RST            4  // Reset
#define TFT_DC              2  // Data/Command
#define TFT_MOSI         23  // MOSI (SDA)
#define TFT_SCLK         18  // Clock (SCK)
#define TFT_BACKLIGHT  5  // Pod艣wietlenie

Schemat po艂膮cze艅:

  • VCC → 3.3V ESP32

  • GND → GND ESP32

  • CS    → GPIO15

  • RST  → GPIO4

  • DC    → GPIO2

  • SDA  → GPIO23

  • SCK  → GPIO18

  • BL     → GPIO5

Kluczowa r贸偶nica: pod艣wietlenie aktywne stanem LOW

UWAGA! To najwa偶niejsza informacja dla os贸b maj膮cych problemy z uruchomieniem tego wy艣wietlacza:

cpp
pinMode(TFT_BACKLIGHT, OUTPUT);
digitalWrite(TFT_BACKLIGHT, LOW);   // AKTYWACJA pod艣wietlenia

W przeciwie艅stwie do wi臋kszo艣ci standardowych wy艣wietlaczy ST7789, gdzie pod艣wietlenie aktywowane jest stanem HIGH, w modelu ST7789P3 pod艣wietlenie wymaga stanu LOW. To cz臋sty pow贸d, dla kt贸rego wiele os贸b s膮dzi, 偶e ma uszkodzony egzemplarz – pod艣wietlenie po prostu nie 艣wieci, mimo poprawnego pod艂膮czenia.

Inicjalizacja w Arduino IDE

Do obs艂ugi wy艣wietlacza wykorzystali艣my bibliotek臋 Adafruit_ST7789 z nast臋puj膮c膮 konfiguracj膮:

cpp
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>

#define TFT_WIDTH 284
#define TFT_HEIGHT 76

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);

void setup() {
  pinMode(TFT_BACKLIGHT, OUTPUT);
  digitalWrite(TFT_BACKLIGHT, LOW); // W艂膮cz pod艣wietlenie
  
  tft.init(TFT_HEIGHT, TFT_WIDTH); // Uwaga: wysoko艣膰, szeroko艣膰
  tft.setRotation(1);              // Obr贸t 90°
  tft.fillScreen(ST77XX_BLACK);
}

Wa偶ne: W funkcji init() podajemy najpierw wysoko艣膰 (76), a potem szeroko艣膰 (284), a dopiero setRotation(1) zapewnia prawid艂ow膮 orientacj臋 poziom膮.

Teraz niestety b臋dziemy mieli obraz w negatywie. Musimy zmieni膰 go na pozytyw. To znaczy, w sekcji Viod Setup () musimy doda膰:

  tft.invertDisplay(false);

 

Wyzwania i rozwi膮zania

Podczas konfiguracji napotka艂em kilka wyzwa艅:

  1. Nietypowa rozdzielczo艣膰 - wymaga艂a r臋cznego zdefiniowania wymiar贸w

  2. Orientacja - konieczno艣膰 u偶ycia setRotation(1) dla pozycji poziomej

  3. Pod艣wietlenie - odwrotna polaryzacja ni偶 w standardowych modelach

  4. Optymalizacja animacji - konieczno艣膰 minimalizowania mrugania poprzez cz臋艣ciowe od艣wie偶anie

Przyk艂adowe zastosowania

Dzi臋ki nietypowym proporcjom, wy艣wietlacz idealnie nadaje si臋 do:

  • Pask贸w stanu i wska藕nik贸w progresu 

  • Miniaturowych konsoli do debugowania 

  • Wy艣wietlaczy parametr贸w w projektach audio a szczeg贸lnie jako wy艣wietlacze do zasilaczy

  • Interface'贸w dla czujnik贸w 艣rodowiskowych

  • Projekt贸w wearable tech (ze wzgl臋du na w膮ski format) 

Podsumowanie

ST7789P3 w rozdzielczo艣ci 284×73 to ciekawa alternatywa dla standardowych wy艣wietlaczy TFT. Pomimo pocz膮tkowych wyzwa艅 konfiguracyjnych, oferuje unikalne mo偶liwo艣ci dla niszowych aplikacji. Kluczowe dla sukcesu jest pami臋tanie o odwr贸conej polaryzacji pod艣wietlenia - bez tej wiedzy uruchomienie wy艣wietlacza mo偶e by膰 frustruj膮cym do艣wiadczeniem.

Czy warto? Dla projekt贸w wymagaj膮cych kompaktowego, poziomego wy艣wietlacza - zdecydowanie tak! To dow贸d na to, 偶e nawet znane sterowniki mog膮 kry膰 w sobie nietypowe implementacje wartexploration. Do tego ta cena!

Napisa艂em prosty program demonstruj膮cy podstawowe mo偶liwo艣ci wy艣wietlacza a za razem testuj膮cy go. 

 


W rzeczywisto艣ci kolory s膮 inne. S膮 pi臋knie nasycone i ostre. Niestety, m贸j aparat ma inne zdanie...

Pliki do pobrania: Pe艂ny kod demo dost臋pny jest w repozytorium projektu. Pami臋taj o autorze i wspomnij o nim gdy b臋dziesz rozpowszechnia艂 ten program i projekt :) Dzi臋kuj臋.

Test i demo wy艣wietlacza ST7789P3 -link

 



20 pa藕dziernika 2025

TESTER POJEMNO艢CI AKUMULATOR脫W Li-Ion.



Tester pojemno艣ci akumulator贸w Li-Ion   Ver. 4.6

Witam wszystkich mi艂o艣nik贸w elektroniki i kr贸tkofalowc贸w! Na warsztacie dzi艣 moje najnowsze urz膮dzenie pomiarowe: autorski tester pojemno艣ci akumulator贸w Li-Ion. Pozwala on w prosty i stosunkowo tani spos贸b okre艣li膰 rzeczywist膮 pojemno艣膰 (w mAh) i zmagazynowan膮 energi臋 (w Wh) ogniw, kt贸re mamy w szufladzie lub kt贸re podejrzewamy o "zm臋czenie" 偶yciem.

Poni偶ej opisz臋, jak to urz膮dzenie dzia艂a "od 艣rodka".

UWAGA! Urz膮dzenie przeznaczone jest dla "go艂ych" akumulator贸w kt贸re nie posiadaj膮 zabezpiecze艅 przed nadmiernym roz艂adowaniem. Po prostu takie akumulatory nie dadz膮 si臋 roz艂adowa膰 do napi臋cia 2,5 V a tym samym nie ma mo偶liwo艣ci okre艣lenia ich pe艂nej pojemno艣ci.

Zasada dzia艂ania (w pigu艂ce)

Pomiar pojemno艣ci akumulatora polega na kontrolowanym roz艂adowaniu akumulatora do ustalonego napi臋cia ko艅cowego, przy jednoczesnym ca艂kowaniu przep艂ywaj膮cego pr膮du w czasie. Proces ten symuluje zu偶ycie energii przez typowe urz膮dzenie i daje nam najbardziej miarodajny wynik.

"Serce" uk艂adu: Arduino Nano, wy艣wietlacz ST7789 i rezystor pomiarowy 10R / 10W.

  • Mikrokontroler: Uk艂ad jest sterowany przez popularne Arduino Nano, kt贸re odpowiada za wszystkie obliczenia, sterowanie i komunikacj臋 z u偶ytkownikiem.

  • Wy艣wietlacz: Interfejs u偶ytkownika to kolorowy wy艣wietlacz ST7789 o rozdzielczo艣ci 320x240 pikseli. Dzi臋ki rotacji obrazu uzyska艂em wygodny, poziomy (landscape) layout, na kt贸rym wy艣wietlam wszystkie kluczowe parametry w czasie rzeczywistym.

Kluczowe elementy obwodu pomiarowego:

  1. Obci膮偶enie (rezystor pomiarowy): G艂贸wnym elementem roz艂adowuj膮cym jest rezystor 10惟 o mocy 10W. Ze wzgl臋du na wydzielanie si臋 sporej ilo艣ci ciep艂a podczas pracy, rezystor ten zosta艂 wyposa偶ony w dodatkowy radiator.

  2. Klucz (tranzystor MOSFET  IRLZ44N): Aby w艂膮czy膰 i wy艂膮czy膰 proces roz艂adowania, w obw贸d szeregowo z rezystorem wpi膮艂em tranzystor MOSFET, sterowany poprzez rezystor 100R z pinu Arduino. Dzia艂a on jak prze艂膮cznik elektroniczny. Dodatkowo bramka MOSFET-a jest poprzez rezystor 100 k惟 przy艂膮czona do + zasilania w celu zapobiegania przypadkowemu za艂膮czeniu obci膮偶enia do akumulatora.

  3. Pomiar napi臋cia: Do pomiaru napi臋cia akumulatora oraz napi臋cia na rezystorze wykorzysta艂em wej艣cia analogowe A0 i A1 Arduino. Aby nie obci膮偶a膰 nadmiernie akumulatora poza czasem pomiaru, zastosowa艂em dzielniki napi臋cia z rezystorami 100 k惟. Dzi臋ki temu pob贸r pr膮du przez uk艂ad pomiarowy przed i po procesie pomiaru jest znikomy. Wej艣cia te s膮 zblokowane do masy przez kondensatory 100nF.

Przebieg pomiaru krok po kroku

Program dzia艂a w oparciu o maszyn臋 stan贸w, co oznacza, 偶e urz膮dzenie przechodzi przez kilka precyzyjnie zdefiniowanych etap贸w:

  1. WAITING_TO_START (Oczekiwanie na Start):

    • Urz膮dzenie jest w stanie spoczynku. Wy艣wietla napi臋cie akumulatora i sprawdza, czy mie艣ci si臋 w bezpiecznym zakresie (2.8V - 4.3V dla Li-Ion).

    • Aby rozpocz膮膰 pomiar pojemno艣ci akumulatora, u偶ytkownik musi wcisn膮膰 przycisk "START". Sygnalizacja d藕wi臋kowa z buzzera potwierdza komend臋.


       

  2. DISCHARGING (roz艂adowanie g艂贸wne):

    • Arduino za艂膮cza tranzystor MOSFET, zamykaj膮c obw贸d. Pr膮d p艂ynie z akumulatora przez rezystor 10惟.

    • Na podstawie spadku napi臋cia na rezystorze (Res_Volt) uk艂ad na bie偶膮co oblicza:

      • Pr膮d roz艂adowania: I = (Bat_Volt - Res_Volt) / 10惟

      • Pojemno艣膰: Pojemno艣膰 (mAh) = Ca艂ka (I * dt)

      • Energi臋: Energia (Wh) = Ca艂ka (I * Bat_Volt * dt)

    • Wszystkie te warto艣ci s膮 na 偶ywo aktualizowane na wy艣wietlaczu.

    • Proces trwa do momentu, gdy napi臋cie akumulatora spadnie do 2.8V.


       

  3. FINAL_DISCHARGE (ko艅cowe roz艂adowanie):

    • Gdy akumulator osi膮gnie 2.8V, uruchamiany jest 60-sekundowy etap "dodatkowego" roz艂adowania do g艂臋bszego, ale bezpiecznego, napi臋cia 2.5V. Ma to na celu odzyskanie reszty energii, kt贸ra pozosta艂a w ogniwie, co nieco zwi臋ksza dok艂adno艣膰 pomiaru. Proces dodatkowego, ko艅cowego roz艂adowania trwa 60 s lub osi膮gni臋cia napi臋cia 2.5V na zaciskach akumulatora.

  4. MEASUREMENT_DONE (pomiar zako艅czony):

    • Roz艂adowanie zostaje ca艂kowicie zatrzymane. Na ekranie wy艣wietlane s膮 finalne wyniki: zmierzona pojemno艣膰 (mAh) i energia (Wh).

    • Kolejny sygna艂 d藕wi臋kowy informuje o zako艅czeniu testu.


       

Bezpiecze艅stwo i estetyka

  • Zabezpieczenia: Program ma wbudowane zabezpieczenia przed rozpocz臋ciem pomiaru przy zbyt niskim lub zbyt wysokim napi臋ciu akumulatora.

  • Interfejs: Ekran zosta艂 zaprojektowany tak, aby by艂 czytelny. Sta艂e elementy interfejsu (nag艂贸wki, etykiety) rysowane s膮 tylko raz przy zmianie stanu, a dynamicznie aktualizowane s膮 tylko zmieniaj膮ce si臋 warto艣ci (np. napi臋cie, pr膮d). Eliminuje to nieprzyjemne "miganie" ca艂ego ekranu.

  • Komunikacja: Urz膮dzenie informuje u偶ytkownika o swoim stanie za pomoc膮 buzzer'a (kr贸tkie sygna艂y d藕wi臋kowe).

Podsumowanie

Tester pojemno艣ci akumulator贸w Li-Ion to nieocenione narz臋dzie dla ka偶dego, kto pracuje z akumulatorami. Pozwala weryfikowa膰 stan posiadanych ogniw, diagnozowa膰 wadliwe ogniwa lub po prostu porz膮dkowa膰 swoj膮 "kolekcj臋" ogniw. Dzi臋ki Arduino ca艂y proces jest w pe艂ni zautomatyzowany, a kolorowy wy艣wietlacz czyni go nie tylko funkcjonalnym, ale i nowoczesnym urz膮dzeniem pomiarowym.

Uwaga dla majsterkowicz贸w: Pami臋tajcie, 偶e roz艂adowywanie akumulator贸w Li-Ion poni偶ej pewnego napi臋cia (zw艂aszcza 2.5V) mo偶e je uszkodzi膰. M贸j program zosta艂 zaprojektowany z my艣l膮 o bezpiecznym, jednorazowym te艣cie pojemno艣ci, a nie jako sta艂y system roz艂adowywania. U偶ywajcie go z rozwag膮! 

AKUMULATORY Li-Ion POTRAFI膭 ZGROMADZI膯 SPORO ENERGII. NIEOSTRO呕NE OBCHODZENIE SI臉 Z NIMI MO呕E SPOWODOWA膯 PO呕AR LUB INNE NIESZCZ臉艢CIE. JE呕ELI NIE WIESZ CO ROBISZ TO ZREZYGNUJ Z BUDOWY TAKIEGO URZ膭DZENIA! 

Kod programu jak zwykle udost臋pniam zainteresowanym poprzez e-mail (hf5wwl@gmail.com) ze wzgl臋du na ograniczenia bloga kt贸ry nie daje mo偶liwo艣ci  umieszczenia go tutaj.  

 


 

UWAGA! Zamieszczone zdj臋cia nie przedstawiaj膮 ca艂ego procesu pomiaru pojemno艣ci akumulatora. S膮 to tylko zdj臋cia pogl膮dowe kt贸re pozwalaj膮 zorientowa膰 si臋 co i jak wygl膮da :) 



EDIT 23.10.2025 r.

 

Tester pojemno艣ci Li-Ion Ver. 4.6 - kluczowe ulepszenia

Dynamiczny Tryb Ko艅cowego Roz艂adowania - Znacz膮ce polepszenie dok艂adno艣ci pomiar贸w

Do opisanego wcze艣niej testera wprowadzi艂em kluczow膮 innowacj臋, kt贸ra znacz膮co podnosi dok艂adno艣膰 pomiar贸w:

馃攱 NOWO艢膯: Cykliczne roz艂adowanie 5s ON / 10s OFF

  • W fazie ko艅cowego roz艂adowania urz膮dzenie pracuje w powtarzalnych cyklach

  • 5 sekund z w艂膮czonym obci膮偶eniem → pomiar pr膮du

  • 10 sekund z wy艂膮czonym obci膮偶eniem → precyzyjny pomiar napi臋cia bez obci膮偶enia (V-off-load)

  • Warunek stopu (2.5V) sprawdzany tylko w fazie bez obci膮偶enia

馃搳 Dlaczego to wa偶ne?

  • Eliminuje b艂膮d pomiaru caused by rezystancj膮 wewn臋trzn膮 ogniwa

  • Napi臋cie bez obci膮偶enia jest prawdziwym wska藕nikiem stanu akumulatora

  • Wyniki s膮 znacznie bli偶sze rzeczywistej pojemno艣ci ogniwa

馃枼️ Wizualizacja na 偶ywo procesu dynamicznego obci膮偶enia 

  • Wska藕nik OBCIAZENIE ON (czerwony) / OBCIAZENIE OFF (zielony)

  • Ca艂kowity czas fazy ko艅cowej: 5 minut

Pozosta艂e ulepszenia:

  • Skr贸cony czas prezentacji ekranu powitalnego (2s)

  • Dopracowane sta艂e kalibracyjne 

  • Lepsza organizacja kodu

    Doda艂em te偶 funkcj臋 ca艂kowitego od艂膮czenia akumulatora po zako艅czeniu ca艂ego procesu roz艂adowania pozostawiaj膮c na ekranie tylko wynik pomiar贸w (pojemno艣膰 + energia) 

     

Poni偶ej kilka fotek zrobionych podczas pomiaru pojemno艣ci jakiego艣 akumulatorka o pojemno艣ci oko艂o 350 mAh. Akurat ten akumulatorek posiada uk艂ad zabezpieczaj膮cy. 

Akumulator zosta艂 roz艂adowany a nast臋pnie na艂adowany. Wed艂ug 艂adowarki akumulator "przyj膮艂" 355 mAh.


 

Tak wygl膮da ekran miernika pojemno艣ci akumulatora podczas pracy (roz艂adowywanie g艂贸wne):


 

 Teraz roz艂adowywanie dodatkowe (w艂膮czanie i wy艂膮czanie obci膮偶enia)


 

Tak wygl膮da przygotowanie do posumowania pomiar贸w i ca艂kowite od艂膮czenie akumulatora:


 

Jak wida膰 pojemno艣膰 akumulatorka mo偶na oceni膰 na 350 mAh.

 

 Na koniec schemat monta偶owy miernika pojemno艣ci akumulator贸w.





.