PROJEKTY / ESP32

RADIO FM — Si4703

Dotykowy odbiornik radiowy FM z RDS na ESP32, tunerze Si4703 i wyświetlaczu TFT 2,4" (ILI9341 + XPT2046). Darmowy projekt do samodzielnego zbudowania: kod, schemat połączeń i instrukcja.

ESP32Si4703RDSILI9341XPT2046Arduino IDE

JAK TO WYGLĄDA

Ekran radia RADIO FM: stacja 99.3 MHz z RDS, przyciski strojenia, głośności i ulubionych
Działające radio: 99,3 MHz z RDS (nazwa stacji, RadioText, PTY, PI), wskaźnik sygnału, przyciski strojenia, głośności i 6 ulubionych.

CO POTRAFI

Strojenie

Strojenie co 0,1 MHz, automatyczne wyszukiwanie stacji w górę i w dół (z możliwością przerwania), głośność 0–15 i wyciszenie.

RDS

Nazwa stacji, przewijany RadioText, typ programu (PTY), kod stacji (PI), znaczniki TP/TA i zegar RDS.

Ulubione

6 ulubionych stacji zapamiętywanych po wyłączeniu, razem z ostatnią stacją i głośnością.

Ekran dotykowy

Duże przyciski, wskaźnik siły sygnału i stereo. Kalibracja dotyku na ekranie sama wykrywa zamianę osi, więc pasuje do różnych modułów.

Zabezpieczenia

Diagnostyka połączeń na ekranie, automatyczny restart tunera po błędach I2C, wykrywanie spadków zasilania, odrzucanie błędnych grup RDS.

Wygładzony RSSI

Wskazanie siły sygnału jest uśredniane, więc liczba na ekranie jest czytelna także przy słabej stacji.

To analogowe radio FM: Si4703 odbiera stacje z anteny (domyślnie przewód słuchawek). Projekt nie korzysta z internetu ani Wi-Fi. Do podłączenia głośników potrzebny jest wzmacniacz lub aktywne głośniki.

POTRZEBNE ELEMENTY

Płytka

ESP32 DevKit V1 (ESP-WROOM-32).

Ekran

Moduł TFT SPI 2,4" 240×320 z kontrolerem ILI9341 i dotykiem XPT2046.

Tuner i antena

Moduł Si4703 (I2C, adres 0x10) oraz antena FM — przewód słuchawek lub antena zewnętrzna.

POŁĄCZENIA

Ekran TFT ILI9341 + dotyk XPT2046 (wspólny SPI)

Pin modułuESP32
VCCVIN (5 V) lub 3V3, zależnie od modułu
GNDGND
CSGPIO5
RESETGPIO26
DC / RSGPIO27
SDI (MOSI)GPIO23
SCKGPIO18
LED3V3
SDO (MISO)GPIO19
T_CLKGPIO18 (razem z SCK)
T_DINGPIO23 (razem z MOSI)
T_DOGPIO19 (razem z MISO)
T_CSGPIO33
T_IRQniepodłączony

Tuner Si4703

Pin Si4703ESP32
3.3V3V3 (tylko 3,3 V!)
GNDGND
SDIOGPIO21 (SDA)
SCLKGPIO22 (SCL)
RSTGPIO32
SEN3V3 (na części płytek już podciągnięte)
Wyjście audio (jack)wzmacniacz lub aktywne głośniki

Piny można zmienić w pliku config.h. Wszystkie masy (GND) połącz ze sobą.

INSTALACJA

  1. W Arduino IDE dodaj adres menedżera płytek https://espressif.github.io/arduino-esp32/package_esp32_index.json i zainstaluj esp32 by Espressif Systems.
  2. Zainstaluj biblioteki: Adafruit GFX Library, Adafruit ILI9341 (razem z Adafruit BusIO) oraz XPT2046_Touchscreen (Paul Stoffregen).
  3. Rozpakuj archiwum i skopiuj folder RadioFM do folderu szkiców Arduino.
  4. Wybierz płytkę ESP32 Dev Module, port COM i wgraj program. Gdy wgrywanie się nie zaczyna, przytrzymaj przycisk BOOT.
  5. Przy pierwszym uruchomieniu wykonaj kalibrację dotyku (cztery razy dotknij środka krzyżyka).

Szczegółowa instrukcja, wskazówki o antenie zewnętrznej i rozwiązywanie problemów są w pliku README.md w archiwum.

POBIERZ

RadioFM.zip

Archiwum ZIP · Kod źródłowy (szkic Arduino), README i licencja MIT ·

Pobierz program

Przed wgraniem sprawdź konfigurację sprzętową w config.h (piny, zasilanie modułu ekranu, pasmo FM).

AUTOR I LICENCJA

Autor i prawa

Autor: Sir Williams. Copyright © 2026 Sir Williams. Program jest darmowy i udostępniony na licencji MIT: wolno go używać, kopiować, modyfikować i rozpowszechniać, pod warunkiem zachowania informacji o autorze i pliku LICENSE. Oprogramowanie dostarczane „tak jak jest", bez gwarancji.

Biblioteki zewnętrzne

  • Adafruit GFX i ILI9341 — licencja BSD,
  • rdzeń ESP32 (Wire, SPI, Preferences) — LGPL-2.1,
  • Adafruit BusIO — licencja MIT,
  • XPT2046_Touchscreen (© Paul Stoffregen) — nota zezwolenia w stylu MIT w nagłówkach plików.

Kod autora nie zawiera kodu tych bibliotek; instalujesz je samodzielnie. Rozpowszechniając gotowy plik firmware (.bin), zachowaj ich licencje.

← WRÓĆ DO PROJEKTÓW