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.
JAK TO WYGLĄDA
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.
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łu | ESP32 |
|---|---|
| VCC | VIN (5 V) lub 3V3, zależnie od modułu |
| GND | GND |
| CS | GPIO5 |
| RESET | GPIO26 |
| DC / RS | GPIO27 |
| SDI (MOSI) | GPIO23 |
| SCK | GPIO18 |
| LED | 3V3 |
| SDO (MISO) | GPIO19 |
| T_CLK | GPIO18 (razem z SCK) |
| T_DIN | GPIO23 (razem z MOSI) |
| T_DO | GPIO19 (razem z MISO) |
| T_CS | GPIO33 |
| T_IRQ | niepodłączony |
Tuner Si4703
| Pin Si4703 | ESP32 |
|---|---|
| 3.3V | 3V3 (tylko 3,3 V!) |
| GND | GND |
| SDIO | GPIO21 (SDA) |
| SCLK | GPIO22 (SCL) |
| RST | GPIO32 |
| SEN | 3V3 (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
- W Arduino IDE dodaj adres menedżera płytek
https://espressif.github.io/arduino-esp32/package_esp32_index.jsoni zainstaluj esp32 by Espressif Systems. - Zainstaluj biblioteki: Adafruit GFX Library, Adafruit ILI9341 (razem z Adafruit BusIO) oraz XPT2046_Touchscreen (Paul Stoffregen).
- Rozpakuj archiwum i skopiuj folder
RadioFMdo folderu szkiców Arduino. - Wybierz płytkę ESP32 Dev Module, port COM i wgraj program. Gdy wgrywanie się nie zaczyna, przytrzymaj przycisk BOOT.
- 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 ·
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.
