一.系統(tǒng)概述
本次設(shè)計的系統(tǒng)是以STM32 單片機作為核心控制器,可以控制氣壓傳感器、溫濕度傳感器完成對氣象參數(shù)的采案,將檢測到的氣象數(shù)據(jù)在顯示端進行顯示,并且可以在軟件程序中設(shè)定閾值,當檢測到某個參數(shù)超過間值后會控制語音播報模塊將異常情況進行播報。
二.仿真概述
通過調(diào)節(jié)氣體模塊處的滑動變阻器可以實現(xiàn)氣壓值的調(diào)節(jié),當檢測到氣壓超過閾值就會控制語音播報模塊進行播報,語音播報模塊的工作狀態(tài)改變并在顯示屏端顯示“Voice”字樣。
2.通過調(diào)節(jié)DHT11傳感器處的滑動變阻器可以實現(xiàn)溫濕度值的調(diào)節(jié),當檢測到溫濕度超過閾值就會控制語音播報模塊進行播報,語音播報模塊的工作狀態(tài)改變并在顯示屏端顯示“Voice”字樣。
3. 當溫濕度和氣壓值都不超過閾值后,語音模塊停止播報且顯示屏端也不會再顯示“Voice”字樣。
三.程序設(shè)計
#includeu8 t,h,adc; u8 th=30,hh=40,adch=50; void Init(void); int main(void) { Init(); while(1) { adc=Get_Adc(ADC_Channel_1); OLED_ShowNum(3,6,adc,2);OLED_ShowString(3,8,"Pa"); DHT11_Read_Data(&t,&h); OLED_ShowNum(1,6,t,2);OLED_ShowString(1,8,"C"); OLED_ShowNum(2,6,h,2);OLED_ShowString(2,8,"%"); OLED_ShowNum(1,11,th,2); OLED_ShowNum(2,11,hh,2); OLED_ShowNum(3,11,adch,2); if(t>th|h>hh|adc>adch) { LedC1_1; OLED_ShowString(4,1,"voice"); delay_ms(500); OLED_ShowString(4,1," "); } else { LedC1_0; OLED_ShowString(4,1," "); } } } void Init(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//2:2 /* system Init */ Adc_Init(); /* HardWare Init */ OLED_Init(); while(DHT11_Init()); LedC_Init(); OLED_ShowString(1,1,"Temp:"); OLED_ShowString(2,1,"Humi:"); OLED_ShowString(3,1,"Atmo:"); }
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753083 -
單片機
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634659 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355744 -
氣象儀
+關(guān)注
關(guān)注
0文章
61瀏覽量
8126
原文標題:Proteus仿真實例_基于STM32單片機的氣象儀(仿真文件+程序)
文章出處:【微信號:小常硬件,微信公眾號:小常硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論