源代碼做的網(wǎng)站好用么百度開放云平臺
目錄
一、前言
二、項目簡介
1.功能詳解
2.主要器件
三、原理圖設(shè)計
四、PCB硬件設(shè)計
1.PCB圖?
2.PCB板打樣焊接圖
五、程序設(shè)計?
六、實驗效果?
七、資料內(nèi)容
項目分享
一、前言
項目成品圖片:
嗶哩嗶哩視頻鏈接:
https://www.bilibili.com/video/BV1vC411z7hY/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2
(資料分享見文末)?
二、項目簡介
1.功能詳解
基于STM32智能窗簾系統(tǒng)。功能如下:
- 光強(qiáng)采集:光敏電阻實時采集環(huán)境光強(qiáng)度數(shù)據(jù)
- 溫濕度采集:DHT11溫濕度傳感器采集環(huán)境溫濕度
- 危險氣體監(jiān)測:MQ-7判斷危險氣體是否超標(biāo)(超標(biāo)板子指示燈閃爍)
- 窗簾控制:步進(jìn)電機(jī)模擬窗簾驅(qū)動開閉
- OLED顯示:當(dāng)前時間,溫濕度數(shù)據(jù),模式信息
- 實時時鐘:DS1302時鐘模塊讀取記錄當(dāng)前時間
- 藍(lán)牙APP控制:手機(jī)端藍(lán)牙app遠(yuǎn)程遙控窗簾
- 控制模式:JR6001語音模塊驅(qū)動揚聲器播報提示音
- 控制模式:支持四種窗簾控制模式:自動模式、手動模式、定時模式和遙控模塊,可按鍵切換
2.主要器件
- STM32F103C8T6最小系統(tǒng)板
- OLED顯示屏(4針I(yè)2C協(xié)議)
- 光敏電阻
- DHT11溫濕度傳感器
- MQ-7一氧化碳傳感器
- 28BYJ51步進(jìn)電機(jī)
- ULN2003步進(jìn)電機(jī)驅(qū)動芯片
- 藍(lán)牙模塊(BT04-A)
- JR6001串口語音模塊
- 揚聲器
三、原理圖設(shè)計
?
四、PCB硬件設(shè)計
1.PCB圖?
??
2.PCB板打樣焊接圖
?
五、程序設(shè)計?
int main(void)
{ u16 ii=0;delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級uart_init(9600); //語音模塊串口初始化usart3_init(9600); //藍(lán)牙使用DHT11_Init(); Adc_Init();Moto_Init();ds1302_gpio_init(); ds1032_init(); //時間設(shè)置ds1032_read_realTime(); //讀取實時數(shù)據(jù) KEY_Init();MQ_Init();LED_Init();OLED_Init(); //屏幕初始化TIM3_Int_Init(719,7199); printf("AF:30");//聲音調(diào)到31檔 最大delay_ms(100);delay_ms(1000);printf("A7:00003");//歡迎使用delay_ms(1000);OLED_CLS();while(1){if(Flag_caidan==1)//自動模式{delay_ms(500);Flag_adc=Get_Adc_Average(0,10);delay_ms(500); if(Flag_adc>1000&&Flag_dakai==0){printf("A7:00001");//打開TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorcw_angle(1,3); MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=1;dakai=1;}if(Flag_adc<1000&&Flag_dakai==1){printf("A7:00002");//關(guān)閉TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorccw_angle(1,3); MotorStop(); } TIM_Cmd(TIM3, ENABLE); Flag_dakai=0;dakai=0;}if(MQ==0){LED0 = !LED0;delay_ms(100);LED0 = !LED0;delay_ms(100);}}if(Flag_caidan==2)//手動模式{if(dakai==1&&Flag_dakai==0){printf("A7:00006");//打開TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorcw_angle(1,3); MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=1;}if(dakai==0&&Flag_dakai==1){printf("A7:00007");//關(guān)閉TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorccw_angle(1,3); MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=0;}}if(Flag_caidan==3)//定時模式{if(TimeRAM.kai==1&&Flag_dakai==0){ if(TimeRAM.hour_kai==TimeData.hour&&TimeRAM.minute_kai==TimeData.minute){printf("A7:00006");//打開TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorcw_angle(1,3); MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=1;}}if(TimeRAM.guan==1&&Flag_dakai==1){ if(TimeRAM.hour_guan==TimeData.hour&&TimeRAM.minute_guan==TimeData.minute){printf("A7:00007");//關(guān)閉TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorccw_angle(1,3); MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=0;}}}if(Flag_caidan==4)//遙控模式{if(dakai==1&&Flag_dakai==0){printf("A7:00006");//打開TIM_Cmd(TIM3,DISABLE);ii=0;for(ii=0;ii<Num_i;ii++){Motorcw_angle(1,3); MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=1;}if(dakai==0&&Flag_dakai==1){printf("A7:00007");//關(guān)閉TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorccw_angle(1,3); MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=0;} }}
}
六、實驗效果?
?
七、資料內(nèi)容
?