内容介绍
内容介绍
- 开发板介绍
本平台使用了乐鑫公司的ESP32-S2-Mini-1模块,ESP32-S2-MINI-1是一颗通用型Wi-Fi MCU模组,功能强大,具有丰富的外设接口,可用于可穿戴电子设备、智能家居等场景。主要配置
-
Core: Xtensa® single-core 32-bit LX7 CPU, frequency up to 240MHz
-
Memories:
-
128 KB of ROM
-
320 KB of SRAM
-
16 KB of RTCSRAM
-
4 MB of Flash memory
-
-
可以通过WiFi接收网络上的电台,也可以通过FM模块接收空中的电台,并可以通过按键进行切换、选台
-
在OLED显示屏上显示网络电台的IP地址、节目名字等相关信息或FM信号的频段
-
系统能够自动校时,开机后自动调节到准确的时间(年、月、日、时、分、秒)
-
开发环境搭建
此项专门提出来,是因为ESP32开发环境实在比较折腾。网上相关的教程也非常多 ,但考虑到ESP32 S2比较新 加上ESP32迭代较快。以下提供windows下面最简单的办法。2, 下载并安装环境(此处需要特别注意 经常会下载失败。 需要自备上网工具 保持网络畅通)3, 选择用eclipse 开发主要参考链接-
功能开发
总体框架如图所示需要首先进行初始化,包括GPIO初始化 OLED屏幕初始化,FM初始化 音频模块初始化其次 进行wifi链接 ,链接成功后 进行同步时间 与在线FM播放。同时也能支持本地通过FM模块播放。1,时间校准时间校准 是用了一个通用的时间同步服务, SNTP服务。这里是用中国区的服务器cn.pool.ntp.org相关代码ESP_LOGI(TAG, "Initializing SNTP"); sntp_setoperatingmode(SNTP_OPMODE_POLL); sntp_setservername(0, "cn.pool.ntp.org"); sntp_set_time_sync_notification_cb(time_sync_notification_cb); #ifdef CONFIG_SNTP_TIME_SYNC_METHOD_SMOOTH sntp_set_sync_mode(SNTP_SYNC_MODE_SMOOTH); #endif sntp_init();
2, WiFi链接wifi 需要配置好wifi的链接服务,然后通过后台的回调 链接网络。相关代码esp_periph_config_t periph_cfg = DEFAULT_ESP_PERIPH_SET_CONFIG(); esp_periph_set_handle_t set = esp_periph_set_init(&periph_cfg); periph_wifi_cfg_t wifi_cfg = { .ssid = EXAMPLE_WIFI_SSID, .password = EXAMPLE_WIFI_PASS, }; esp_periph_handle_t wifi_handle = periph_wifi_init(&wifi_cfg); esp_periph_start(set, wifi_handle); periph_wifi_wait_for_connected(wifi_handle, portMAX_DELAY);
3, FM模块播放FM模块 可以支持播放FM音频。同时支持调节FM频率相关代码ESP_ERROR_CHECK(rda5807m_init_desc(&dev, I2C_PORT, SDA_GPIO, SCL_GPIO)); ESP_ERROR_CHECK(rda5807m_init(&dev, RDA5807M_CLK_32768HZ)); ESP_ERROR_CHECK(rda5807m_set_volume(&dev, 10)); ESP_ERROR_CHECK(rda5807m_set_band(&dev, RDA5807M_BAND_76_108)); ESP_ERROR_CHECK(rda5807m_set_frequency_khz(&dev, DEF_FREQ)); ESP_ERROR_CHECK(rda5807m_seek_start(&dev, true, true, RDA5807M_SEEK_TH_DEF));/ memset(&state, 0, sizeof(state)); ESP_ERROR_CHECK(rda5807m_get_state(&dev, &state)); ESP_ERROR_CHECK(rda5807m_seek_stop(&dev));
4,在线FM播放通过网络FM播放 音频节目 。这里用的是中国之声的链接:http://open.ls.qingting.fm/live/386/64k.m3u8?format=aac相关代码 -
-
audio_event_iface_cfg_t evt_cfg = AUDIO_EVENT_IFACE_DEFAULT_CFG(); audio_event_iface_handle_t evt = audio_event_iface_init(&evt_cfg); ESP_LOGI(TAG, "[4.1] Listening event from all elements of pipeline"); audio_pipeline_set_listener(pipeline, evt); ESP_LOGI(TAG, "[4.2] Listening event from peripherals"); audio_event_iface_set_listener(esp_periph_set_get_event_iface(set), evt); ESP_LOGI(TAG, "[ 5 ] Start audio_pipeline"); audio_pipeline_run(pipeline);
功能演示 -
心得体会挺感谢主办方, 活动越来越好 越好越好。
附件下载
demo.zip
ESP32-S2 源码 用eclipse 打开
团队介绍
安迪,一线嵌入式攻城狮,喜欢捣腾开发板,钻研技术。
评论
0 / 100
查看更多
猜你喜欢
暑假一起练——基于ESP32-S2-Mini-1模块制作的收音机ESP32-S2 Arduino C 调频收音机 wav 音频解码 采样率 DAC U8G2 OLED
aramy
3814
2021暑假一起练-用基于ESP32-S2-Mini-1模块的音频处理平台设计了FM收音机&网络收音机本项目使用基于ESP32-S2-Mini-1模块的音频处理平台和板载RDA5807M收音机模块,在ESP-IDF环境下设计了网络收音机和FM收音机。
esp32小白
2915
2021暑假练平台——基于ESP32-S2-Mini-1模块的音收音机2021暑假练平台——基于ESP32-S2-Mini-1模块的音收音机
shephard
2058