賈春剛
(青島海信網(wǎng)絡(luò)科技股份有限公司,山東青島,266071)
根據(jù)設(shè)計方案架構(gòu)圖1可以看出,系統(tǒng)由微處理器模塊、OLED液晶顯示模塊、DHT11傳感器模塊、報警模塊和無線通訊模塊組成。方案設(shè)計遵循簡潔的原則,因此,所有的外圍模塊采用串行方式與微處理器模塊連接。該設(shè)計控制核心是STM32F103c8t6單片機(jī),實現(xiàn)傳輸和處理數(shù)據(jù)的基本功能,其他五大模塊圍繞單片機(jī)展開。在設(shè)計系統(tǒng)時,采用模塊設(shè)計法,通過單獨設(shè)計各個功能模塊,達(dá)到系統(tǒng)架構(gòu)清晰明確的效果。
圖1 系統(tǒng)方案架構(gòu)圖
系統(tǒng)硬件為6個分模塊與1個總模塊連接。DHT11溫濕度模塊DATA引腳與單片機(jī)IO口PC14連接傳輸數(shù)據(jù),VCC接電源,GND與NC并聯(lián)接地。單片機(jī)的USART連接無線通訊模塊GSM800C實現(xiàn)異步通訊功能。OLED模塊3、4、5、6引腳與單片機(jī)PB1、PB0、PA7、PA6引腳的IO口連接傳輸數(shù)據(jù)。報警部分由單片機(jī)IO口PC14連接報警模塊三極管的基極,集電極連接蜂鳴器和PB14,PA10連接報警模塊的LED燈共同組成。報警時LED和蜂鳴器一起運作達(dá)到報警效果。調(diào)節(jié)部分單片機(jī)引腳PB4連接三極管,利用單片機(jī)傳輸?shù)臄?shù)據(jù)和三極管的特性對繼電器進(jìn)行操作。系統(tǒng)電路原理圖如上圖2所示。
圖2 系統(tǒng)電路原理圖
2.2.1 溫濕度數(shù)字采集電路
如圖3所示的DHT11電路原理圖,溫濕度傳感器DATA與單片機(jī)IO端口PC14單總線傳輸,收發(fā)串行數(shù)據(jù),Pin3、4并聯(lián)接地,其中NC為空腳,可接可不接,VCC引腳連接電源。使用3.3V的電源供電時,要注意電路中的走線長短,以避免供電不足產(chǎn)生的偏差。傳感器讀取的數(shù)據(jù)為上一次測量結(jié)果,本系統(tǒng)通過連續(xù)兩次的讀取數(shù)據(jù)實現(xiàn)實時數(shù)據(jù)的采集。
圖3 DHT11電路原理圖
2.2.2 DHT11數(shù)字溫濕度傳感器
DHT11溫濕度傳感器是使用DATA這個可傳輸數(shù)據(jù)的引腳進(jìn)行單總線協(xié)議通信的,單片機(jī)通過復(fù)位電路發(fā)送一次復(fù)位信號后,DHT11發(fā)送響應(yīng)信號,同時拉高總線準(zhǔn)備傳輸數(shù)據(jù)。傳輸?shù)臄?shù)據(jù)分為濕度數(shù)據(jù)16bit部分、溫度數(shù)據(jù)16bit部分和校驗位8bit。
數(shù)據(jù)時序圖如圖4所示。
圖4 數(shù)據(jù)時序圖
STM32F103c8t6對傳感器發(fā)出傳輸開始信號,傳感器接收信號后采集系統(tǒng),采集系統(tǒng)響應(yīng)后發(fā)出數(shù)據(jù)的同時再進(jìn)行一次信號采集。如果沒有接收到主機(jī)的響應(yīng)信號,數(shù)據(jù)采集模塊轉(zhuǎn)變?yōu)榈凸哪J?,不動作?/p>
微處理器讀取步驟:
(1)傳感器通電后,測量并記錄環(huán)境中的溫度、濕度數(shù)據(jù),然后通過上拉電阻使DATA數(shù)據(jù)線保持為高電平,等待信號。
(2)STM32F103c8t6的 I/O輸出低電平發(fā)送信號,設(shè)置時間大于18ms小于30ms,然后單片機(jī)的I/O設(shè)置變?yōu)檩斎肽J健S捎谏侠娮璧年P(guān)系,電平回到高電平,同時等待DHT11做出回答信號,發(fā)送信號如圖5所示。
圖5 主機(jī)發(fā)送起始信號
(3)當(dāng)DHT11接收到STM32F103c8t6發(fā)出的信號時,DHT11傳輸引腳發(fā)出回應(yīng)信號,信號時長為83微秒,回應(yīng)信號為低電平,然后輸出高電平87us回應(yīng)單片機(jī)準(zhǔn)備接收數(shù)據(jù),工作過程如圖6所示。
圖6 從機(jī)響應(yīng)信號
本系統(tǒng)選用帶有振蕩電路的有源蜂鳴器PNP三極管S8550。通過STM32F103c8t6發(fā)出電平給蜂鳴器即可發(fā)出報警信號。蜂鳴器接在三極管的集電極,驅(qū)動信號為3.3V的電平,基極接在單片機(jī)I/O口的PC14。單片機(jī)IO口默認(rèn)為高電平,系統(tǒng)通電時,蜂鳴器是不發(fā)聲的,當(dāng)單片機(jī)檢驗溫度或者濕度超過上下限時,單片機(jī)傳輸?shù)碗娖?,三極管被導(dǎo)通,蜂鳴器響起達(dá)到報警功能。蜂鳴器發(fā)出的聲音大小可根據(jù)PWM驅(qū)動信號頻率調(diào)節(jié),有源蜂鳴器電路原理圖如圖7所示。
圖7 有源蜂鳴器電路原理圖
GSM 800C是一款四頻GSM/GPRS模塊,分別GSM/GPRS850/900/1800/1900MHz頻率。該設(shè)備作為本系統(tǒng)遠(yuǎn)程監(jiān)視的核心,在監(jiān)控模塊中,產(chǎn)品利用高電平通電,低電平斷電自動開機(jī),時刻等待接收單片機(jī)傳輸?shù)膱缶盘?,信號一旦接收,即刻發(fā)送通知,這樣達(dá)到真正意義上的無人監(jiān)視。該模塊利用TTL串口與單片機(jī)、電腦連接,實現(xiàn)通訊功能;支持短、彩信,支持錄音功能,支持藍(lán)牙,支持TTS等功能。
根據(jù)功能需求設(shè)計系統(tǒng)流程圖如圖8。在工作時無需手動開機(jī),通電后自動初始化系統(tǒng)各個模塊。待模塊初始化完畢后,傳感器讀取溫度、濕度數(shù)據(jù),讀取數(shù)據(jù)后傳輸給單片機(jī)處理計算,再轉(zhuǎn)化為數(shù)字字符顯示在OLED顯示屏上。讀取溫濕度的同時系統(tǒng)調(diào)用功能函數(shù),并將讀取的數(shù)值與設(shè)置的閾值進(jìn)行比較。若大于或小于設(shè)置的溫濕度閾值,單片機(jī)發(fā)送報警信號給報警模塊。蜂鳴器收到信號后,響應(yīng)信號,同時LED亮起,短信模塊接收信號后發(fā)出信息,水泵繼電器收到信號后開始運行。讀取數(shù)據(jù)時,系統(tǒng)還會實時緩存數(shù)據(jù),方便計算機(jī)讀取,以達(dá)到實時監(jiān)控的效果。
圖8 系統(tǒng)軟件流程圖
溫濕度傳感器開機(jī)進(jìn)行初始化,做好等待信號準(zhǔn)備,得到單片機(jī)的指令后,開始對外部環(huán)境的溫度與濕度進(jìn)行采集數(shù)據(jù)。通過對比數(shù)據(jù)是否正確,決定是否發(fā)出數(shù)據(jù)。正確發(fā)出數(shù)據(jù),反之重新采集。
本系統(tǒng)采用GSM無線通訊模塊的TEXT模式,在溫度或者濕度超過閾值時采用發(fā)送信息到用戶手機(jī)的方式提示用戶。在初始化時,通訊模塊進(jìn)入TEXT模式,一旦收到命令,短信模塊把字符串拼接進(jìn)入函數(shù),發(fā)送短信。10s后如果還是收到單片機(jī)命令,繼續(xù)發(fā)送短信,發(fā)送3次后不再發(fā)送。
關(guān)于溫濕度恒定數(shù)值檢測:
(1)利用空調(diào)的恒溫系統(tǒng)檢測溫度穩(wěn)定性,開啟儀器后1分鐘,溫度數(shù)值不變。把房間空調(diào)設(shè)定在25度,在儀器穩(wěn)定后放入空調(diào)房,每隔5分鐘進(jìn)行溫度檢測。檢測結(jié)果如表1所示。
表1 溫度檢測結(jié)果值
結(jié)論:檢測溫度正常。
(2)在濕度為70%RH的環(huán)境下,檢測其穩(wěn)定性,每隔5分鐘檢測環(huán)境濕度,檢測結(jié)果如表2所示。
表2 濕度檢測結(jié)果值
結(jié)論:檢測濕度正常。
通過實驗數(shù)據(jù)觀察,溫度和濕度測定值都趨向于穩(wěn)定,由于硬件的原因,溫度存在1-2℃的誤差,濕度存在1-4%RH的誤差,總體來說儀器較為完善,可以使用。
在本次系統(tǒng)設(shè)計的器件選擇上,選擇了計算功能強(qiáng)大STM32F103c8t6處理器、溫濕度檢測功能較為完善的DHT11溫濕度傳感器、顯示屏OLED和無線通信GSM800c。利用四者的結(jié)合,打造了一個包含收集-分析-顯示-監(jiān)控功能的機(jī)房溫濕度監(jiān)控系統(tǒng)。