一.系統概述
聲控燈系統以STM32為核心控制單元,實現了聲音控制燈光效果、溫濕度監測和顯示、以及音樂播放功能,同時支持遠程控制和信息顯示,具體包括以下主要功能和相關硬件模塊:
1. 聲音傳感器與WS2812控制:
- 根據采集的模擬電壓信號判斷聲音強度。
- 控制WS2812 LED燈呈現不同的閃爍模式和顏色。
- 可通過WiFi連接,在手機端調節顏色風格和閃爍模式。
2. 溫濕度傳感器與顯示屏控制:
- 控制溫濕度傳感器采集環境溫濕度數據。
- 控制顯示屏顯示采集到的溫濕度信息。
3. 語音播報模塊:
- 控制語音播報模塊播放歌曲。
- 在顯示屏上顯示當前播放歌曲的名稱。
二.電路設計
電路圖采用Altium Designer進行設計:
1. 通過STM32F103C8T6單片機作為系統主控,最小系統電路是整個電路的核心;
2. 使用KY-037聲音傳感器進行聲音檢測,模塊的模擬輸出腳與單片機的模擬輸入腳進行連接;
3. 通過DHT11進行溫濕度檢測,并通過one-wire總線與單片機的GPIO腳進行連接;
4. 使用獨立按鍵進行聲音強度閾值,按鍵的一端接地,一端接單片機的GPIO口;
5. 通過ESP8266-01S將檢測到數據上傳到上位機,通過UART串口與單片機進行通信;
6. 使用JR6001進行語音播報,并通過UART串口與單片機進行連接。
7. 通過0.96寸的OLED12864進行數據顯示,采用IIC總線的形式與單片機進行通信。
三.程序設計
#include "sys.h" #include "delay.h" #include "adc2.h" #include "math.h" #include "key.h" #include "OLED_I2C.h" #include "Control_Report_To_Police.h" /************************************************ 版權:小常硬件 公眾號:微信搜索“小常硬件“在公眾號免費下載相關資料 ************************************************/ int main(void) { u32 JR6001_Uart_bound=9600; u32 ASR01_Uart_bound=9600; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級 delay_init(); //延時函數初始化 TIM4_Init(300,7200); while(DHT11_Init()){} KEY1_Init(); Adc_Init(); Led1_init(); OLED_Init(); OLED_CLS(); //OLED清屏 OLED_ShowCN(32,2,0); //小常硬件 OLED_ShowCN(32+16,2,1); OLED_ShowCN(32+32,2,2); OLED_ShowCN(32+32+16,2,3); JR6001_Uart1_init(&JR6001_Uart_bound); ASR01_Uart1_init(&ASR01_Uart_bound); ALi_ESP8266_GPIO_Init(); MQTT_Buff_Init(); AliIoT_Parameter_Init(); OLED_CLS(); OLED_ShowCN(0,0,10); OLED_ShowCN(0+16,0,11); OLED_ShowCN(0,2,12); OLED_ShowCN(16,2,13); OLED_ShowCN(0,4,14); OLED_ShowCN(16,4,15); JR6001_Uart1_Voice_Add(); while(1) { OLED_Display_Cotrol(); //顯示控制函數 } }
四.實物圖
-
傳感器
+關注
關注
2548文章
50668瀏覽量
751978 -
單片機
+關注
關注
6032文章
44514瀏覽量
632975 -
STM32
+關注
關注
2266文章
10871瀏覽量
354791 -
聲控燈
+關注
關注
2文章
24瀏覽量
17741
原文標題:STM32開發實例_基于STM32單片機的聲控燈系統(電路圖+程序+流程圖)
文章出處:【微信號:小常硬件,微信公眾號:小常硬件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論