項目成品圖片:
01
—
項目簡介
1.功能詳解
功能如下:
采集溫濕度:系統(tǒng)通過DHT11模塊采集溫濕度
煙霧監(jiān)測:通過MQ-2模塊采集環(huán)境中煙霧濃度
煤氣監(jiān)測:通過MQ-7一氧化碳模塊采集環(huán)境中一氧化碳濃度
空氣質量監(jiān)測:通過MQ-7空氣質量傳感器采集環(huán)境空氣質量情況
大氣壓強采集:通過BMP280采集環(huán)境氣壓大小
LED燈控制:控制LED燈
OLED顯示:顯示溫濕度、煙霧濃度、一氧化碳濃度、空氣質量、大氣壓強等信息
蜂鳴器報警:危險情況下本地蜂鳴器觸發(fā)報警
自動模式:設置自動模式,系統(tǒng)根據(jù)光強大小控制窗簾和LED燈的開閉
手動模式:設置手動模式,APP手動控制窗簾和LED燈的開關
APP功能:使用機智云APP,包括功能有控制并顯示LED燈和窗簾的狀態(tài)、顯示當前溫濕度、煙霧濃度、一氧化碳濃度和空氣質量等信息。
2.主要器件
STM32F103C8T6最小系統(tǒng)板
DHT11溫濕度傳感器
OLED顯示屏(7針SPI協(xié)議)
WiFi模塊(ESP8266-01s)
MQ-2煙霧傳感器
MQ-7一氧化碳傳感器
MQ-135空氣質量傳感器
MQ-135空氣質量傳感器
BMP280氣壓傳感器
28BYJ51步進電機
蜂鳴器
LED燈
02
—
原理圖設計
03
—
1.PCB圖
2.PCB板焊接實物圖
04
—
程序設計
int main(void){ u8 t=0; int key_value; //按鍵值 uart_init(115200); //串口初始化為115200 delay_init(); //延時函數(shù)初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應優(yōu)先級 Adc1_Channe_Init(); //ADC通道初始化 KEY_Init(); //按鍵引腳初始化 bmp280Init(); //while(DHT11_Init()); LED_Init(); //初始化與LED連接的硬件接口 MOTOR_Init(); OLED_Init(); //OLED初始化 OLED_Clear(); //OLED清屏 Gizwits_Init(); gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入 delay_ms(500);while(1) { Get_Data(0); if(gz_value<=A_gz_value&&mode==0) { LED0=0; curtain_flag=0; }else if(gz_value>A_gz_value&&mode==0){ LED0=1; curtain_flag=1; } if(last_curtain_flag!=curtain_flag&&mode==0) { BUJING_Cotrol(curtain_flag,3,270); last_curtain_flag = curtain_flag; } if(last_curtain_flag!=currentDataPoint.valueCurtain&&mode==1) { BUJING_Cotrol(currentDataPoint.valueCurtain,3,270); curtain_flag = currentDataPoint.valueCurtain; last_curtain_flag = currentDataPoint.valueCurtain; } if(mode==1) { LED0=!currentDataPoint.valueLED; }if(DHT11_Temp>=A_DHT11_Temp||DHT11_Hum<=A_DHT11_Hum||Pre>=A_pre||m135_value<=A_m135_value||m2_value>=A_m2_value||m7_value>=A_m7_value) { BEEP=!BEEP; }else BEEP = 0; key_value = KEY_Scan(0); if(key_value==2) { display_contrl++; } if(display_contrl%2==0&&t>=10) { OLED_ShowCHinese(0,0,0); OLED_ShowCHinese(16,0,2); sprintf((char*)buff,":%2dC",DHT11_Temp); OLED_ShowString(32,0,buff,16); //顯示溫度 OLED_ShowCHinese(64,0,1); OLED_ShowCHinese(82,0,2); sprintf((char*)buff,":%2d%%",DHT11_Hum); OLED_ShowString(96,0,buff,16);//顯示濕度 OLED_ShowCHinese(0,2,3); OLED_ShowCHinese(16,2,4); sprintf((char*)buff,":%2dhpa ",Pre); OLED_ShowString(32,2,buff,16);//顯示氣壓 OLED_ShowCHinese(0,4,5); OLED_ShowCHinese(16,4,6); OLED_ShowCHinese(32,4,7); OLED_ShowCHinese(48,4,8); sprintf((char*)buff,":%4dppm",gz_value); OLED_ShowString(64,4,buff,16);//顯示光照強度 OLED_ShowCHinese(0,6,9); OLED_ShowCHinese(16,6,10); OLED_ShowCHinese(32,6,11); OLED_ShowCHinese(48,6,12); sprintf((char*)buff,":%4dppm",m135_value); OLED_ShowString(64,6,buff,16);//顯示空氣質量 }else if(display_contrl%2==1&&t>=10) { OLED_ShowCHinese(0,0,13); OLED_ShowCHinese(16,0,14); OLED_ShowCHinese(32,0,15); OLED_ShowCHinese(48,0,16); sprintf((char*)buff,":%4dppm",m2_value); OLED_ShowString(64,0,buff,16);//顯示M2數(shù)據(jù) OLED_ShowCHinese(0,2,17); OLED_ShowCHinese(16,2,18); OLED_ShowCHinese(32,2,19); OLED_ShowCHinese(48,2,20); sprintf((char*)buff,":%4dppm",m7_value); OLED_ShowString(64,2,buff,16);//顯示M7數(shù)據(jù) OLED_ShowCHinese(0,4,5); OLED_ShowCHinese(16,4,6); OLED_ShowCHinese(32,4,7); OLED_ShowCHinese(48,4,8); sprintf((char*)buff,":%4dppm",gz_value); OLED_ShowString(64,4,buff,16);//顯示光照強度 OLED_ShowCHinese(0,6,9); OLED_ShowCHinese(16,6,10); OLED_ShowCHinese(32,6,11); OLED_ShowCHinese(48,6,12); sprintf((char*)buff,":%4dppm",m135_value); OLED_ShowString(64,6,buff,16);//顯示M135數(shù)據(jù) } userHandle(); //用戶數(shù)據(jù)采集 WIFI_Contection(key_value);//WiFi連接控制 gizwitsHandle((dataPoint_t *)¤tDataPoint);//機智云協(xié)議處理 Canshu_Change(key_value); t++; delay_ms(100); }}
05
—
實驗效果
-
STM32
+關注
關注
2269文章
10884瀏覽量
355490 -
智能家居
+關注
關注
1928文章
9542瀏覽量
184791 -
機智云
+關注
關注
2文章
583瀏覽量
26391
發(fā)布評論請先 登錄
相關推薦
評論