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