___________________________________________________________________________________________________________________________________________________________________________
___________________________________________________________________________________________________________________________________________________________________________

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



Brak komentarzy:

Prześlij komentarz

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