___________________________________________________________________________________________________________________________________________________________________________
___________________________________________________________________________________________________________________________________________________________________________

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  
😊

 

25 stycznia 2026

TYPOWY ZEGAR Z NIETYPOWYM STEROWANIEM


Na moim blogu często prezentuję projekty związane z elektroniką i mikrokontrolerami. Dziś chciałbym przedstawić jeden z moich najciekawszych projektów: Zaawansowany zegar NTP współpracujący z lokalnym serwerem czasu i pełną konfiguracją przez interfejs WWW.

 


 

🕐 Koncepcja projektu

Zegar ten to niezwykle precyzyjne urządzenie czasu, które pracuje w całkowicie odizolowanej od internetu sieci WiFi. Jego dokładność wynika z synchronizacji z lokalnym serwerem NTP Stratum 1 opartym na odbiorniku GPS, który działa w tej samej sieci.

Zegar współpracuje z domowym AP opisanym tutaj. Serwer czasu zostanie przedstawiony i opisany w późniejszym czasie.

✨ Kluczowe funkcje

1. Autonomiczna sieć czasu

  • Praca w izolowanej prywatnej sieci WiFi

  • Synchronizacja z lokalnym serwerem NTP (GPS Stratum1)

  • Brak zależności od zewnętrznego internetu

2. Inteligentny wyświetlacz LED

  • 60 diod WS2812 ułożonych w pierścień

  • Oddzielne kolory dla godzin, minut i sekund

  • Programowalne kolory tarczy i znaczników

  • Adaptacyjna regulacja jasności (fotorezystor)

3. Pełna konfiguracja WebUI

  • Nowoczesny interfejs WWW z zakładkami

  • Konfiguracja WiFi, NTP, kolorów i jasności

  • Tryb Access Point do pierwszej konfiguracji

  • Statyczne/dynamiczne adresy IP

4. Zaawansowane sterowanie jasnością

  • Tryb automatyczny - dostosowanie do warunków oświetleniowych

  • Tryb ręczny - pełna kontrola przez WWW

  • Oddzielna regulacja jasności tarczy i wskazówek

  • Algorytm priorytetów wyświetlania

🔧 Techniczne detale

Platforma:

  • Mikrokontroler: ESP8266MOD (NodeMCU lub podobny)

  • Wyświetlacz: Pierścień 60x WS2812B LED

  • Czujnik światła: Fotorezystor podłączony do A0

  • Pamięć konfiguracji: EEPROM z wersjonowaniem struktury

Tryby pracy:

  1. STA (Station Mode) - normalna praca z siecią WiFi

  2. AP (Access Point Mode) - tryb konfiguracji przy braku sieci

  3. Automatyczne przełączanie między trybami w razie potrzeby

Konfiguracja przez WWW:

  • Adresowanie: http://192.168.4.13 (domyślnie)

  • Responsywny design - działa na komputerze i telefonie

  • Zapis konfiguracji z walidacją danych

  • Panel statusu systemu w czasie rzeczywistym

🎨 Możliwości personalizacji

Kolorystyka:

  • Godziny: programowalny kolor RGB

  • Minuty: programowalny kolor RGB

  • Sekundy: programowalny kolor RGB

  • Tarcza (godziny główne): programowalny kolor

  • Znaczniki 5-minutowe: programowalny kolor

Ustawienia sieci:

  • Wybór między DHCP a statycznym IP

  • Konfiguracja bramy i maski podsieci

  • Możliwość zmiany adresu serwera NTP

  • Przesunięcia czasowe UTC i czasu letniego

🔄 Zarządzanie systemem

Funkcje Administracyjne:

  • Restart systemu przez WWW

  • Reset do ustawień fabrycznych

  • Czyszczenie EEPROM (całkowity reset)

  • Wczytywanie/zapisywanie konfiguracji

  • Monitorowanie statusu w czasie rzeczywistym

Informacje systemowe:

  • Wolna pamięć mikrokontrolera

  • Status połączenia WiFi

  • Synchronizacja NTP

  • Aktualny czas systemowy

  • Wersja oprogramowania i konfiguracji

📊 Algorytm wyświetlania

Kolorem żółtym oznaczyłem "cyfry główne". Kolor zielony to aktualny czas: czerwony LED -godzina, zielony LED -minuta, niebieski LED -sekunda, czyli mamy godzinę 14:18:33.
 

Zegar wykorzystuje inteligentny algorytm priorytetów:

  1. Tarcza z godzinami głównymi i znacznikami 5-minutowymi

  2. Wskazówka godzinowa (z priorytetem nad tarczą)

  3. Wskazówka minutowa (z priorytetem nad godzinową)

  4. Wskazówka sekundowa (najwyższy priorytet)

Każdy element ma oddzielnie regulowaną jasność, co pozwala na optymalną czytelność w różnych warunkach oświetleniowych.

🛠️ Możliwości rozwoju

Projekt został zaprojektowany modularnie, co umożliwia łatwe rozszerzanie funkcjonalności:

  • Dodanie wyświetlania daty

  • Alarmy i timery

  • Integracja z innymi systemami domowymi

  • Wsparcie dla wielu stref czasowych

  • Logowanie historii zmian czasu

    Oczywiście można dodać tło z naniesionymi opisami godzin (tarcza zegara) ale to już pozostawiam inwencji ewentualnego wykonawcy. 

💡 Dlaczego ten projekt jest wyjątkowy?

  1. Niezależność - działa bez dostępu do internetu

  2. Precyzja - czas GPS z dokładnością do mikrosekund

  3. Elastyczność - pełna konfiguracja bez programowania

  4. Estetyka - piękne, płynne animacje LED

  5. Niezawodność - automatyczne odzyskiwanie po awariach

📋 Wymagania techniczne do budowy

  • ESP8266MOD (NodeMCU, Wemos D1 mini)

    ESP8266MOD

     

  • Pierścień 60 LED WS2812B

  • Fotorezystor + rezystor 10kΩ (jak nie masz na płytce)

  • Zasilacz 5V/3A

  • Obudowa (opcjonalnie)

  • Lokalny serwer NTP z GPS (oddzielne urządzenie)

           Informacja z serwera czasu (osobne urządzenie sieciowe).
     
     
     
    Na koniec kilka zrzutów ekranu pokazujących możliwości zdalnego sterowania zegarem:
     











Ten zegar to doskonały przykład, jak połączyć zaawansowaną elektronikę, precyzyjne pomiary czasu i nowoczesne interfejsy użytkownika. Cały kod jest dostępny ZA DARMO po przesłaniu zapytania na e-mail hf5wwl@gmail.com

Czy masz pomysł na dodatkowe funkcje, które można by dodać do tego zegara? Podziel się swoimi przemyśleniami w komentarzach!



✍️ Autor: Robert HF5WWL
📅 Data projektu: Styczeń 2026 r.
📍 Lokalizacja: Wołomin, POLSKA
📁 Kod źródłowy: Pytaj poprzez e-mail (hf5wwl@gmail.com).
🛠️ Poziom trudności: Łatwy (gdy masz gotowy program 
😊).


Licencja: Projekt open-source do użytku niekomercyjnego

 

 

Tagi:   #ESP8266 #NTP #GPS #LEDClock #DIY #IoT #Arduino #Stratum1 #WebUI 

 

 

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