項(xiàng)目成品圖片:

01
—
項(xiàng)目簡介
1.功能詳解
STM32室內(nèi)無線控制系統(tǒng)
功能如下:
環(huán)境監(jiān)測:溫濕度、光照信息實(shí)時監(jiān)測并在OLED上顯示
防盜報(bào)警:當(dāng)有人闖入時觸發(fā)蜂鳴器報(bào)警
自動控制:根據(jù)光照強(qiáng)度大小控制燈光和窗簾的開關(guān)
空調(diào)控制:根據(jù)環(huán)境溫度信息判斷是否超出閾值范圍打開空調(diào)
按鍵控制:按鍵可以手動開關(guān)防盜報(bào)警、照明燈和窗簾的控制
機(jī)智云平臺:通過連接機(jī)智云APP遠(yuǎn)程查看環(huán)境信息數(shù)據(jù),并可以手動控制窗簾、照明燈的開關(guān)
2.材料清單
STM32F103C8T6單片機(jī)
OLED 屏幕
DHT11溫濕度傳感器
ESP8266-01S WiFi模塊
光敏傳感器
繼電器
風(fēng)扇模塊
大功率LED燈模塊
有源蜂鳴器
02
—
原理圖設(shè)計(jì)

03
—
PCB硬件設(shè)計(jì)
PCB圖


04
—
程序設(shè)計(jì)
#include"stm32f10x.h" // Device header#include"Delay.h"#include"LED.h"#include"Key.h"#include"OLED.h"#include"DHT11.h"#include"sys.h"#include"usart.h"#include"usart2.h"#include"string.h"#include"stdio.h"#include"timer.h"#include"mq2.h"#include"Motor.h"#include"gizwits_product.h"#include"Delay.h"
//顯示全局變量===============================================================================================================================uint16_tADValue;uint16_tVoltage;u8 temp =0,humi =0;u8 hongwai=0;intkey_num; //按鍵返回值
//得到數(shù)據(jù)變量===========================================voidshuju(){ADValue =AD_GetValue();Voltage =99-99* ADValue /4095;DHT11_Read_Data(&temp,&humi);}//按鍵==========================================u8 mode_flag =0; //模式控制:0-自動 ,1-手動u8 alarm_flag=0;u8 chuanglian_flag=0;u8 guangzhao_flag=0;voidanjian(){key_num=Key_GetNum();//OLED_ShowString(3,14,":");//OLED_ShowNum(3,14,key_num,1);if(key_num==1) {hongwai=1;}else{hongwai=0;}
//if(key_num == 2)//{//if(++mode_flag==2)mode_flag=0;//}//報(bào)警if(key_num==3) {if(++alarm_flag==2)alarm_flag=0;}//窗簾if(key_num==4) {if(++chuanglian_flag==2)chuanglian_flag=0;}//光照if(key_num==5) {if(++guangzhao_flag==2)guangzhao_flag=0;}}//自動控制============================================//u8 flag=0;u8 kongtiao_1=0;voidauto1(){//照明控制if(guangzhao_flag==0){if(Voltage>50){LED1_ON();}if(Voltage<=50){LED1_OFF();}}//窗簾控制if(chuanglian_flag==0){if(Voltage>50&&flag==0){flag=1;for(inti=0;i<=(8*16);i++) ? ?{Motor_One(5);}}if(Voltage<=50&&flag==1){flag=0;for(int?i=0;i<=(8*16);i++) ? ?{Motor_One1(5);}}}
//報(bào)警控制if(alarm_flag==0){if(hongwai==1){BEEP_OFF();}else{BEEP_ON();}}//風(fēng)扇控制if(temp>30){FAN_ON();WARM_ON();kongtiao_1=1;}if(temp<20){FAN_ON();WARM_OFF();kongtiao_1=1;}if(temp<=30&&temp>=20){FAN_OFF();WARM_ON();kongtiao_1=0;}}
//顯示界面==============================================================voidxianshi(){//第一行OLED_ShowChinese(1,1,0);//溫OLED_ShowChinese(1,2,1);//度OLED_ShowString(1,5,":");OLED_ShowNum(1,6,temp,2);OLED_ShowChinese(1,5,2);//濕OLED_ShowChinese(1,6,1);//度OLED_ShowString(1,13,":");OLED_ShowNum(1,14,humi,2);
//第二行OLED_ShowChinese(2,1,4);//空OLED_ShowChinese(2,2,5);//調(diào)OLED_ShowString(2,5,":");if(kongtiao_1==1){OLED_ShowChinese(2,4,16);//開}else{OLED_ShowChinese(2,4,17);//關(guān)}//if(mode_flag==0)//{//OLED_ShowChinese(3,8,21); //自//}//else//{//OLED_ShowChinese(3,8,20); //手//}
//OLED_ShowNum(2,6,kongtiao,1);OLED_ShowChinese(2,5,6);//窗OLED_ShowChinese(2,6,7);//簾OLED_ShowString(2,13,":");if(flag==1){OLED_ShowChinese(2,8,16);//開}else{OLED_ShowChinese(2,8,17);//關(guān)}//OLED_ShowNum(2,14,chuanglian,1);
//第三行OLED_ShowChinese(3,1,8); //光OLED_ShowChinese(3,2,9); //照OLED_ShowChinese(3,3,18);//強(qiáng)OLED_ShowChinese(3,4,19);//度OLED_ShowString(3,9,":");OLED_ShowNum(3,11,Voltage,2);
//第四行OLED_ShowChinese(4,1,10); //是OLED_ShowChinese(4,2,11); //否OLED_ShowChinese(4,3,12); //有OLED_ShowChinese(4,4,13); //人OLED_ShowChinese(4,5,14); //闖OLED_ShowChinese(4,6,15); //入OLED_ShowString(4,13,":");if(hongwai==1){OLED_ShowChinese(4,8,10);//是}else{OLED_ShowChinese(4,8,11);//否}//OLED_ShowNum(4,15,hongwai,1);}
voiduserHandle(void){
currentDataPoint.valuealarm = hongwai;//Add Sensor Data Collection currentDataPoint.valuekongtiao = kongtiao_1;//Add Sensor Data Collection currentDataPoint.valuetemp = temp ;//Add Sensor Data Collection currentDataPoint.valuehumi = humi ;//Add Sensor Data Collection currentDataPoint.valueliangdu = Voltage ;//Add Sensor Data Collection
}
intmain(void){Delay_init();LED_Init();OLED_Init();DHT11_Init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級TIM2_Int_Init(72-1,1000-1);//定時1ms 72,000,000Hz/1,000Hz=72,000=72*1000uart_init(115200); //串口1初始化為115200uart2_init(9600);userInit();AD_Init();Key_Init();Motor_Init();gizwitsInit();gizwitsSetMode(WIFI_AIRLINK_MODE);Delay_ms(1000);Delay_ms(1000);while(1){shuju();xianshi();anjian();auto1();userHandle();gizwitsHandle((dataPoint_t *)¤tDataPoint);}}
05
—
實(shí)驗(yàn)效果


-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45494瀏覽量
670254 -
STM32
+關(guān)注
關(guān)注
2309文章
11162瀏覽量
373401 -
無線控制系統(tǒng)
+關(guān)注
關(guān)注
0文章
11瀏覽量
7844
發(fā)布評論請先 登錄
室內(nèi)控制系統(tǒng)
stm32項(xiàng)目搭建基礎(chǔ)
如何在IAR for ARM中創(chuàng)建STM32項(xiàng)目?
STM32項(xiàng)目開發(fā)中超級實(shí)用技巧分享
基于HAL庫的STM32項(xiàng)目問題描述
STM32項(xiàng)目設(shè)計(jì):基于STM32F4的mp3、wav音樂播放器 (UCOSIII操作系統(tǒng)、GUI控件)
STM32項(xiàng)目實(shí)戰(zhàn):基于STM32F4的智能燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼
STM32項(xiàng)目實(shí)戰(zhàn):基于STM32U5的智能燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼
STM32項(xiàng)目實(shí)戰(zhàn):基于STM32U5的火災(zāi)報(bào)警系統(tǒng)(LVGL),附項(xiàng)目教程/源碼
STM32項(xiàng)目實(shí)戰(zhàn):基于STM32U5的智能大棚溫控系統(tǒng)(LVGL),附項(xiàng)目教程/源碼
STM32項(xiàng)目分享:智能臺燈系統(tǒng)
STM32項(xiàng)目分享:室內(nèi)無線控制系統(tǒng)
評論