劉登輝,鐘 麟,李怡達(dá)
(西京學(xué)院 電子信息學(xué)院,陜西 西安 710123)
隨著時(shí)代與科技的蓬勃發(fā)展,智能化應(yīng)用出現(xiàn)在大家的視野中[1]。本設(shè)計(jì)提出以STM32單片機(jī)控制各個(gè)傳感器,以達(dá)到游泳環(huán)境的穩(wěn)定智能化[2]。本設(shè)計(jì)加入Wi-Fi模塊實(shí)現(xiàn)遠(yuǎn)程連接設(shè)備,且可通過(guò)按鍵實(shí)現(xiàn)手自動(dòng)切換。設(shè)計(jì)還使用OLED液晶顯示電路、傳感器檢測(cè)電路、繼電器電路、摔倒報(bào)警裝置及溫控電路等,并在液晶屏上實(shí)時(shí)顯示參數(shù)。
單片機(jī)系統(tǒng)方案設(shè)計(jì)圍繞著以STM32單片機(jī)為核心,多模塊互相協(xié)作為輔助,形成一個(gè)閉環(huán)系統(tǒng)。該系統(tǒng)的信息以數(shù)字信號(hào)輸出,既可以在OLED屏顯示,又可以在無(wú)線設(shè)備實(shí)時(shí)監(jiān)控。系統(tǒng)主要功能如圖1所示。設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)2個(gè)部分[3]。
圖1 系統(tǒng)功能設(shè)計(jì)
設(shè)計(jì)主控制器采用的是STM32F103C8T6芯片,其最突出的特點(diǎn)就是強(qiáng)大的拓展能力[4]。
單片機(jī)使用8 MHz晶振提供時(shí)鐘信號(hào)。單片機(jī)加了reset復(fù)位按鍵和JTAG/SWD調(diào)試接口,用于初始化單片機(jī)及連接開發(fā)器,其有利于單片機(jī)程序調(diào)試。單片機(jī)使用了A/D、D/A轉(zhuǎn)換通道以及外部中斷用于檢測(cè)外部信號(hào)的變化。以下介紹了各個(gè)模塊的功能。
1.1.1 DHT11溫濕度模塊
本設(shè)計(jì)使用了溫濕度傳感器模塊。該模塊集成了一個(gè)NTC測(cè)溫原件和電阻式感濕原件,可以將采集到的空氣溫濕度模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),信息處理后在屏幕上顯示[5]。在設(shè)計(jì)泳池時(shí),該模塊可以多位置分布,一旦有溫度波動(dòng)會(huì)第一時(shí)間上報(bào)單片機(jī)并做出處理,溫度過(guò)高或濕度過(guò)高會(huì)控制風(fēng)扇通風(fēng),溫度過(guò)低會(huì)有加熱絲加熱,將環(huán)境溫度穩(wěn)定在適合的范圍內(nèi)[6]。
1.1.2 MQ-7CO濃度模塊
本設(shè)計(jì)采用國(guó)產(chǎn)MQ-7CO濃度模塊,該模塊是利用半導(dǎo)體氣敏元件來(lái)檢測(cè)CO濃度的傳感器。傳感器內(nèi)部裝有一個(gè)小型的加熱器,通過(guò)電流加熱,提高傳感器的工作環(huán)境溫度并加速氣體分子的運(yùn)動(dòng)。當(dāng)空氣中的CO與金屬氧化物接觸時(shí),傳感器表面會(huì)發(fā)生氧化還原反應(yīng),改變金屬氧化物表面的電阻。當(dāng)空氣中CO濃度增加,電阻減小并輸出模擬信號(hào)[7]。在泳池設(shè)計(jì)中,CO達(dá)到閾值時(shí),首先會(huì)打開風(fēng)扇通風(fēng),并伴隨著報(bào)警。
1.1.3 摔倒檢測(cè)模塊
摔倒識(shí)別由傳感器計(jì)算將摔倒可以分為3個(gè)狀態(tài),分別為:失重、平穩(wěn)及倒地。失重時(shí),合加速度會(huì)迅速下降,當(dāng)?shù)陀陂撝导磁卸?人體在失重后0.5 s內(nèi)會(huì)倒地,如果在0.5 s內(nèi)合加速度超加速度閾值,會(huì)判斷已經(jīng)跌到。而在跌倒后2 s內(nèi),傳感器發(fā)現(xiàn)傾角過(guò)大,即會(huì)判定人體摔倒并求助。
此設(shè)計(jì)加入MPU6050六軸陀螺儀采集傳感器狀態(tài)的加速度,使用加速度計(jì)模塊采集角速度和加速度。將采集到的信息轉(zhuǎn)換成模擬電壓信號(hào),經(jīng)放大器放大后,經(jīng)中間信號(hào)處理,進(jìn)入A/D數(shù)模轉(zhuǎn)換輸出數(shù)字信號(hào)交給單片機(jī)處理。
1.1.4 人體檢測(cè)模塊
人體檢測(cè)模塊即紅熱傳感器,該傳感器不可重復(fù)觸發(fā),即感應(yīng)輸出高電平后,延時(shí)時(shí)間段一結(jié)束,輸出將自動(dòng)從高電平變成低電平;另一種可重復(fù)觸發(fā),感應(yīng)輸出高電平后,在延時(shí)時(shí)間段內(nèi),人體在傳感器感應(yīng)的范圍活動(dòng),其輸出會(huì)保持高電平不變,直到人離開后才延時(shí)將高電平變?yōu)榈碗娖?此模塊在單片機(jī)設(shè)計(jì)中使用非常廣。除此之外,本設(shè)計(jì)采集到的信號(hào)運(yùn)用模數(shù)轉(zhuǎn)換和ADC采樣,通過(guò)使能指定此模塊,校準(zhǔn)結(jié)束后開始AD校準(zhǔn),利用遞推算法將采集到的值用數(shù)組儲(chǔ)存起來(lái),方便單片機(jī)進(jìn)一步處理。
1.1.5 Wi-Fi模塊
本設(shè)計(jì)使用ESP8266系列無(wú)線Wi-Fi模塊。此模塊連接非常簡(jiǎn)單,一般使用SPI/SDIO接口連接,但也有直接用中央處理器AHB橋接口連接。因此,該模塊是完整的Wi-Fi網(wǎng)絡(luò)解決方案,可獨(dú)立運(yùn)行,也可作為從屬設(shè)備搭載在其他主設(shè)備上運(yùn)行,本次就是配合單片機(jī)使用。
設(shè)計(jì)中ESP8266直接連接單片機(jī),其具有強(qiáng)大的片上處理和存儲(chǔ)能力,可以通過(guò)GPIO口集成傳感器和其他應(yīng)用的特定設(shè)備,該模塊將單片機(jī)處理完的數(shù)據(jù),通過(guò)配網(wǎng)傳送給移動(dòng)端,從而實(shí)現(xiàn)高效連接。延時(shí)低使得數(shù)據(jù)上傳很及時(shí)。
1.1.6 PID溫控電路
測(cè)泳池水溫模塊使用了T型熱電偶傳感器,銣泡感應(yīng)的溫度信號(hào)會(huì)轉(zhuǎn)換為電壓信號(hào),再經(jīng)過(guò)LT1025補(bǔ)償電路及放大電路,將模擬信號(hào)傳給數(shù)模轉(zhuǎn)換中,輸出數(shù)字信號(hào)給單片機(jī)。信號(hào)發(fā)生器會(huì)產(chǎn)生一定頻率的正弦信號(hào)。正弦波進(jìn)入功率放大器,出來(lái)的信號(hào)會(huì)反饋給銣泡。比例控制是PID的基礎(chǔ),利用微分控制會(huì)減小超調(diào)量同時(shí)加快響應(yīng),缺點(diǎn)則是系統(tǒng)不穩(wěn)定,易受干擾引起系統(tǒng)震蕩。同時(shí),積分控制可以使系統(tǒng)穩(wěn)定但會(huì)增加超調(diào)量。由于隨著變量逐漸增多,使用傳統(tǒng)方法并非準(zhǔn)確。本設(shè)計(jì)加入模糊PID算法,將模糊變量精確化,可以提高水溫調(diào)節(jié)的精度。
除此之外,本設(shè)計(jì)還使用0.96寸OLED顯示屏模塊和繼電器模塊。OLED作為一種顯示屏模塊,此模塊通常使用SPI或I2C接口進(jìn)行通信,并且支持多種分辨率和顏色模式。設(shè)計(jì)中單片機(jī)由各模塊采集信息做出反饋,使用繼電器驅(qū)動(dòng)外設(shè)觸發(fā)動(dòng)作。
根據(jù)系統(tǒng)整體的設(shè)計(jì),外部傳感器只負(fù)責(zé)采集數(shù)據(jù),數(shù)據(jù)處理主要由單片機(jī)完成。如何將外設(shè)處理得當(dāng)更是重中之重了,不同的程序邏輯運(yùn)行速度不同,程序?qū)ρb置穩(wěn)定性有很大影響。本設(shè)計(jì)的系統(tǒng)軟件流程如圖2所示。
圖2 系統(tǒng)軟件流程
本設(shè)計(jì)中,程序初始化作為單片機(jī)端口初始操作,該功能會(huì)將全部程序恢復(fù)到初始狀態(tài),等待設(shè)備開始運(yùn)行以及外設(shè)重置刷新,保障每次初始化后都重新開始。設(shè)計(jì)具備泳池環(huán)境檢測(cè)CO濃度,實(shí)時(shí)采樣后把信號(hào)給單片機(jī),單片機(jī)將會(huì)和預(yù)設(shè)閾值進(jìn)行對(duì)比。超閾值會(huì)有相應(yīng)動(dòng)作即通風(fēng)和告警。設(shè)計(jì)利用陀螺儀檢測(cè)加速度。傳感器分析檢測(cè)摔倒動(dòng)作會(huì)報(bào)警呼救。紅外檢測(cè)人體控制的時(shí)間。溫濕度傳感器控制通風(fēng)。以上設(shè)計(jì)都是為了保證泳池的安全性、舒適性。為達(dá)到恒溫的效果,加入模糊PID控制加熱芯片,對(duì)水溫實(shí)時(shí)測(cè)量并控制。
本設(shè)計(jì)通過(guò)設(shè)置溫濕度區(qū)間閾值。當(dāng)空氣濕度超出閾值時(shí),系統(tǒng)會(huì)自動(dòng)打開風(fēng)扇進(jìn)行通風(fēng)。反之,當(dāng)空氣溫度低于閾值,系統(tǒng)會(huì)打開空氣加熱裝置。本設(shè)計(jì)加入Wi-Fi模塊,雙方建立TCP連接后,通信配對(duì)成功,使用機(jī)智云App進(jìn)行Wi-Fi配網(wǎng),實(shí)現(xiàn)軟件的遠(yuǎn)程遙控功能,實(shí)現(xiàn)智能互聯(lián)以及實(shí)時(shí)監(jiān)測(cè)信息,遠(yuǎn)程遙控泳池的各類信息。
本設(shè)計(jì)使用PID作為溫度控制,其精度要高于其他方法。銣泡將溫度采集解析后開啟PID算法。溫度過(guò)低會(huì)啟用加熱模塊提高泳池水溫。此控制是本設(shè)計(jì)的創(chuàng)新點(diǎn)及難點(diǎn)。
本設(shè)計(jì)使用單片機(jī)用于智能泳池設(shè)計(jì),實(shí)現(xiàn)手自動(dòng)切換,并控制外界環(huán)境及其他因素,同時(shí)監(jiān)測(cè)在機(jī)智云軟件上實(shí)現(xiàn)遠(yuǎn)程的控制。經(jīng)過(guò)多次聯(lián)調(diào),確保裝置運(yùn)行穩(wěn)定,設(shè)備在一切正常的前提下,為了測(cè)試PID溫控的效果,多次改變泳池的溫度,起初反應(yīng)遲鈍,最終使用單片機(jī)完整地實(shí)現(xiàn)了智能泳池的功能。