How to Build a Web Radio Yourself
Hi!
Last weekend (because Chryss is not home for the next month and she's travelling, so I have some spare time to play with) I wanted to build a web radio and I did but see for yourself how difficult it can be, yet so fulfilling.
I want to tell you the steps that I took maybe you'll consider making one for yourself :)
So I decided to follow an already made project on the internet as a blueprint and step-by-step guide.
The address of this project is visible here.
I discovered this radio project a few months ago, but only last month I realized it.
The minimum necessary to make this module ESP32 and a module with Max98357 because the radio has a web interface and can be fully controlled from there.
(add/change stations, equalizer, volume, settings)
You may need to have a minimum of 5V of 0.5A and a speaker.
It has butane, encoder, remote control, support for several audio models, tested at the same time, a 0.96 OLED and 1.8 TFT
For the minimum version ESP32 and Max98357 the connections are as follows
ESP32 MAX98357
IO25 LRC
IO26 BCLK
IO27 DIN
I'M COMING, I'M COMING
GNDGND
Current function is ESP32-S2 and ESP32-C3
Supports over 65000 radio stations in the list, can be used as an mp3 player, reads SD card.
This is the same as the ESP32 with the memory psram can also play flac songs, I haven't tested it yet, I didn't have the module with psram memory
There is also postcode information, songs are based on IP address, sound level, WIFI level, buffer sound, and the meter has the information on the device. This information depends on the display size, for those with low or small resolution now all information is displayed.
I spent a few hours reading the information posted by the author on github, so if anyone wants to make it I think I can help to a certain extent.
Gasc can also be done with this radio, see pictures posted by the author or on this forum
At first I did more tests and I came to this conclusion, which was solved in the meantime: it has some problems, it doesn't really work with ds3231 because it gives an error when compiling rtclib, the Chinese encoder works like crazy (although I tested simple code based on aiesp32rotaryencoder where it works well), the buttons if you activate them all, even if the vol- is pressed permanently, they have pullup activated, we'll see what the cause is).
If you want to try something similar, here's a tip for my initial steps: The "sensitivity" of the encoder can be set from the web interface of the radio. I proceeded similarly in the case of using the ir remote control.
I didn't use the rtc module, I don't think it's necessary.
The versions with buttons didn't cause me problems either, possibly use the tool recommended by the author to generate the myoptions.h file right here.
Here is the second tip or suggestion on how to do it: For the correct functioning of the encoder on the pins suggested in myoptions.h, i.e. 36, 34, 39, pullup resistors must be added, the respective pins do not have the hardware possibility to activate these resistors. Initially it didn't work for me either, but after I put external resistors it worked without problems. As well as the buttons, I had no problems. If other pins are used, no external resistors are required, just check the internal pullup option.
Then...I used both wroom and wrover, the difference is imperceptible; maybe wrover is more sensitive to reception. Wrover on Aliexpress I bought the simple mode and the mode with usb interface; the last option is more profitable.
If in doubt before compiling, check the ports in the table here.
Last thing:
For modules: Go for the I2S variant if you don't want the headache of VS1053. PCM5102, CJMCU-1334 or MAX98357 (I2S + 2.5W mono amplifier).
I also tested with ic tda1387 but the sound level is very low.
So, #diy
Thanks for reading and let me know if you need any advice when and if you're going to do this!
With respect,
Zpek
Posted using STEMGeeks