王忠展,趙 武,秦會(huì)斌
(1.杭州電子科技大學(xué) 新型電子器件與應(yīng)用研究所,浙江 杭州 310018;2.杭州茂葳科技有限公司,浙江 杭州 310018)
傳統(tǒng)空氣凈化設(shè)備多為內(nèi)部安裝傳感模塊,只能監(jiān)測(cè)所在區(qū)域空氣質(zhì)量的變化,無(wú)法應(yīng)對(duì)監(jiān)控范圍廣、監(jiān)測(cè)點(diǎn)數(shù)量多等復(fù)雜環(huán)境[1]。另一方面,傳統(tǒng)空氣凈化器昂貴且作用區(qū)域太小所帶來(lái)的不對(duì)等問(wèn)題,導(dǎo)致了空氣凈化器普及性不強(qiáng)。本文采用多組空氣數(shù)據(jù)采集終端的無(wú)線分布式檢測(cè)系統(tǒng),既可以檢測(cè)室內(nèi)整體空氣質(zhì)量狀況,又免去了有線布置帶來(lái)的麻煩及成本問(wèn)題,同時(shí)還可以在移動(dòng)端進(jìn)行遠(yuǎn)程監(jiān)控[2];采用智能車(chē)搭載空氣凈化裝置,通過(guò)地磁軌跡導(dǎo)航,在室內(nèi)不同區(qū)域來(lái)往穿梭凈化空氣,最大程度提高空氣凈化器的利用率,適用家庭多房間、體育場(chǎng)大空間等場(chǎng)合。
整個(gè)系統(tǒng)分為數(shù)據(jù)采集定位系統(tǒng)、小車(chē)系統(tǒng)和應(yīng)用系統(tǒng)三個(gè)部分,系統(tǒng)框架如圖1所示。
圖1 整體設(shè)計(jì)框圖Figure 1 Overall design block diagram
數(shù)據(jù)采集定位系統(tǒng)中每一個(gè)區(qū)域包含多個(gè)采集節(jié)點(diǎn)和一個(gè)射頻識(shí)別卡。每一個(gè)識(shí)別卡都有自己唯一的ID,可以在小車(chē)凈化過(guò)程中標(biāo)記凈化區(qū)域。每一個(gè)終端節(jié)點(diǎn)由控制芯片CC2530和多個(gè)空氣數(shù)據(jù)檢測(cè)傳感器組成,一個(gè)區(qū)域的不同位置放置多個(gè)檢測(cè)終端,實(shí)現(xiàn)對(duì)區(qū)域整體空氣質(zhì)量狀況的準(zhǔn)確監(jiān)測(cè)。最后,數(shù)據(jù)通過(guò)ZigBee網(wǎng)絡(luò)發(fā)送至協(xié)調(diào)器,實(shí)現(xiàn)整個(gè)系統(tǒng)的數(shù)據(jù)采集。
小車(chē)系統(tǒng)以STM32F407GT6作為主控芯片,外擴(kuò)協(xié)調(diào)器模塊、WIFI通信模塊、遁跡模塊等。協(xié)調(diào)器模塊負(fù)責(zé)建立無(wú)線網(wǎng)絡(luò),分配各個(gè)采集終端節(jié)點(diǎn)的網(wǎng)絡(luò)地址,并接收子節(jié)點(diǎn)的環(huán)境信息,將收到的數(shù)據(jù)上傳到主控芯片[5],再通過(guò)WIFI上傳至服務(wù)器。遁跡模塊、速度檢測(cè)模塊、電機(jī)驅(qū)動(dòng)模塊以及避障模塊組成了小車(chē)的軌跡控制系統(tǒng),保證小車(chē)搭載空氣凈化器沿著磁軌穩(wěn)定、快速、安全運(yùn)行,途中遇到障礙物則停止前行,實(shí)現(xiàn)動(dòng)態(tài)凈化。
應(yīng)用系統(tǒng)中移動(dòng)終端通過(guò)互聯(lián)網(wǎng)訪問(wèn)信息服務(wù)器,實(shí)時(shí)查看每個(gè)區(qū)域的空氣數(shù)據(jù)(溫濕度、空氣質(zhì)量)、凈化裝置的工作狀態(tài)(定時(shí)、功率、工作模式等)以及小車(chē)的位置信息及工作模式。同時(shí)通過(guò)APP控制凈化裝置及小車(chē),實(shí)現(xiàn)人機(jī)交互。本文主要對(duì)小車(chē)系統(tǒng)進(jìn)行設(shè)計(jì),其他不做重點(diǎn)講述。
整個(gè)數(shù)據(jù)傳輸系統(tǒng)包含空氣質(zhì)量數(shù)據(jù)采集部分以及主控與客戶端數(shù)據(jù)交互部分。
空氣質(zhì)量數(shù)據(jù)采集部分采用CC2530芯片,內(nèi)部集成高性能2.4GHz射頻收發(fā)器,多個(gè)設(shè)備之間可實(shí)現(xiàn)小范圍ZigBee通信[3]。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)選擇星狀網(wǎng)絡(luò),由一個(gè)協(xié)調(diào)器和多個(gè)終端節(jié)點(diǎn)組成,實(shí)現(xiàn)多點(diǎn)分布式采集。每一個(gè)采集終端外加傳感器DHT11實(shí)現(xiàn)溫濕度采集以及氣敏傳感器模塊TGS2602實(shí)現(xiàn)空氣質(zhì)量數(shù)據(jù)采集。數(shù)據(jù)通過(guò)協(xié)調(diào)器傳輸至主控。
主控與客戶端交互部分使用WiFi通信組件ESP8266,支持站點(diǎn)(Station,STA)和無(wú)線接入點(diǎn)(Access Point,AP)兩種工作模式[4]。采用STA模式與主控通過(guò)串口通信,接收主控上行數(shù)據(jù),與客戶端通過(guò)HTTP協(xié)議通信,接收客戶端下發(fā)命令碼,使用AT(Attention)指令實(shí)現(xiàn)對(duì)模塊的完全控制。
仙呂調(diào)清新綿邈,南呂宮感嘆傷悲,中呂宮高下閃賺,黃鍾富貴纏綿,正宮惆悵雄壯,道宮飄逸清幽。(以上六宮)
小車(chē)底盤(pán)設(shè)計(jì)成前面兩個(gè)萬(wàn)向輪,后面兩個(gè)驅(qū)動(dòng)輪。采用直流電機(jī)加入電機(jī)驅(qū)動(dòng)芯片L298N,L298N內(nèi)含H橋的高電壓全橋式驅(qū)動(dòng)器,一片驅(qū)動(dòng)芯片可以同時(shí)控制兩個(gè)直流電機(jī)[6]。小車(chē)底盤(pán)在前萬(wàn)向輪中間位置安裝了磁傳感器,獲取相對(duì)位置,用于調(diào)整兩個(gè)電機(jī)各自的PWM(Pulse Width Modulation)波占空比控制小車(chē)行動(dòng)軌跡,保證在行進(jìn)過(guò)程中沿磁條運(yùn)行。表1為L(zhǎng)298N驅(qū)動(dòng)芯片驅(qū)動(dòng)電機(jī)A、B的控制邏輯,通過(guò)輸入引腳(IN1~IN4)控制電機(jī)的正反轉(zhuǎn),由使能引腳(ENA和ENB)輸入PWM波調(diào)節(jié)電機(jī)的轉(zhuǎn)速。
表1 L298N芯片驅(qū)動(dòng)電機(jī)A/B控制邏輯Table 1 L298N chip drives motor A/B control logic
遁跡模塊采用磁敏檢測(cè)元器件HMC1052,具有穩(wěn)定、性能可靠的特點(diǎn)。使用地磁導(dǎo)航和軟磁條鋪設(shè),故而存在磁場(chǎng)強(qiáng)度小的問(wèn)題,需要在磁敏傳感器輸出端再設(shè)計(jì)一個(gè)差分放大電路以增大輸出端的2路電壓差,達(dá)到靈敏檢測(cè)磁場(chǎng)強(qiáng)度的目的。差分放大電路設(shè)計(jì)如圖2所示。
圖2 差分放大電路設(shè)計(jì)框圖Figure 2 Block diagram of differential amplifier circuit design
考慮到軟磁條的磁場(chǎng)分布是以磁條為軸的一系列同心圓,左右對(duì)稱,在小車(chē)垂直車(chē)身水平安裝兩個(gè)對(duì)稱位置的磁場(chǎng)檢測(cè)模塊,檢測(cè)兩側(cè)的感應(yīng)電動(dòng)勢(shì)差值,這里將模塊安裝距離設(shè)為30cm,檢測(cè)計(jì)算出電動(dòng)勢(shì)差值Ed如圖3所示。其中x為其中一個(gè)模塊距磁條距離??梢钥闯?,兩個(gè)傳感器中心恰好在跑道中央時(shí),Ed為0;向左偏,差值就會(huì)變?yōu)榇笥?;反之,便小于0。我們可以利用電動(dòng)勢(shì)差值Ed對(duì)小車(chē)轉(zhuǎn)向進(jìn)行負(fù)反饋控制,調(diào)整小車(chē)轉(zhuǎn)向,保證小車(chē)沿著軌道運(yùn)行。
圖3 感應(yīng)電動(dòng)勢(shì)差值Ed與距離x之間的函數(shù)Figure 3 Function between induced electromotive force difference Ed and distance x
射頻識(shí)別模塊主要完成對(duì)識(shí)別卡ID碼的讀寫(xiě)。其中讀卡器由MFRC522、微處理器、天線以及相應(yīng)的外圍電路組成。在鋪設(shè)的磁條路徑上,相應(yīng)的凈化區(qū)域會(huì)放置識(shí)別卡進(jìn)行標(biāo)識(shí)。讀卡器讀取識(shí)別卡的ID碼,用于確定凈化位置。讀卡器結(jié)構(gòu)框圖如圖4所示,為了保證正確讀取數(shù)據(jù),需與識(shí)別卡的頻率一致,內(nèi)部振蕩器X選用27.12MHz的晶體振蕩器。
圖4 讀卡器電路設(shè)計(jì)框圖Figure 4 Card reader circuit design block diagram
避障系統(tǒng)模塊選用超聲波傳感器HC-SR04,存在五個(gè)引腳,主要通過(guò)引腳INIT、ECHO和COUT進(jìn)行控制。由主控向引腳INIT發(fā)送一個(gè)至少持續(xù)10μs的高電平信號(hào)來(lái)觸發(fā)模塊啟動(dòng)測(cè)距,HC-SR04工作時(shí)向前發(fā)出超聲波,在傳播過(guò)程中遇到障礙物被反射,只要HC-SR04接收到返回信號(hào),ECHO引腳就會(huì)輸出一個(gè)高電平,最后根據(jù)INIT和ECHO上升沿出現(xiàn)的時(shí)間差,就可以計(jì)算出離障礙物的具體距離s=Δt*v/2(Δt為時(shí)間差,v為超聲波速率)。通過(guò)程序控制讓小車(chē)在距離障礙物15cm左右前停下,實(shí)現(xiàn)避障功能。超聲波測(cè)距信號(hào)圖如圖5所示。
圖5 超聲波測(cè)距信號(hào)圖Figure 5 Signal diagram of ultrasonic ranging
整個(gè)系統(tǒng)從多區(qū)域采集空氣質(zhì)量數(shù)據(jù)并有序上發(fā)數(shù)據(jù),主控通過(guò)ZigBee協(xié)調(diào)器廣播指令,只要相應(yīng)采集終端檢測(cè)出廣播指令中地址碼和自身序列號(hào)吻合,便會(huì)啟動(dòng)工作。各節(jié)點(diǎn)循環(huán)作業(yè),通過(guò)傳感器采集數(shù)據(jù),打包發(fā)送至協(xié)調(diào)器,通過(guò)串口送往主控,主控采用輪詢方式,循環(huán)獲取各區(qū)域空氣質(zhì)量參數(shù)。為了使數(shù)據(jù)采集更可靠,一次廣播指令包含一片區(qū)域的全部采集終端地址,各采集終端一次獲取10次采集數(shù)據(jù),利用平均值濾波法進(jìn)一步提高數(shù)據(jù)的可靠性。為了實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,將數(shù)據(jù)以JSON格式打包,通過(guò)ESP8266模塊,上傳到阿里云ECS服務(wù)器[7]??諝赓|(zhì)量數(shù)據(jù)傳輸程序運(yùn)行流程如圖6所示。
圖6 空氣質(zhì)量數(shù)據(jù)傳輸程序流程圖Figure 6 Flow chart of air quality data transmission procedure
移動(dòng)端APP采用JAVA開(kāi)發(fā),遠(yuǎn)程服務(wù)器采用阿里云ECS(Elastic Compute Service)。設(shè)備側(cè)使用MQTT(Message Queuing Telemetry Transport)協(xié)議上傳數(shù)據(jù)到上行Topic,并訂閱下行命令Topic來(lái)接收下行命令。用戶側(cè)通過(guò)MQTT協(xié)議訂閱設(shè)備上行數(shù)據(jù)Topic獲取數(shù)據(jù),并下發(fā)命令至下行命令Topic。設(shè)備之間使用兩個(gè)Topic進(jìn)行數(shù)據(jù)交互。
APP界面如圖7所示。主要包含對(duì)空氣凈化裝置及小車(chē)狀態(tài)的監(jiān)控,空氣凈化器控制界面主要顯示和控制各區(qū)域的空氣質(zhì)量狀態(tài)以及凈化設(shè)備的運(yùn)行狀態(tài),本設(shè)計(jì)只設(shè)置了三個(gè)區(qū)域。小車(chē)界面顯示小車(chē)的工作狀態(tài),同時(shí)包含遠(yuǎn)程遙控。
圖7 移動(dòng)端APP界面Figure 7 Mobile APP interface
該程序?qū)崿F(xiàn)小車(chē)沿著地磁軌道平穩(wěn)行進(jìn),遁跡程序不間斷進(jìn)行速度檢測(cè)和位置檢測(cè),傳入模糊控制器中修正偏差,保證小車(chē)平穩(wěn)運(yùn)行。從小車(chē)啟動(dòng)開(kāi)始,接收到凈化指令,便進(jìn)入定位凈化程序,主控解析命令到指定編號(hào)區(qū)域凈化。遁跡過(guò)程中小車(chē)底下的射頻識(shí)別讀卡器不斷讀取地標(biāo)卡的信號(hào),當(dāng)識(shí)別到地標(biāo)卡時(shí),就會(huì)讀取其數(shù)據(jù)判斷是否到達(dá)指令要求的凈化區(qū)域,若匹配小車(chē)便會(huì)自動(dòng)停下凈化。遁跡過(guò)程中遇到障礙物,判斷與障礙物距離,小于15cm便停止,一直到與障礙物有足夠距離才重新開(kāi)始前行。區(qū)域定位由人為控制下通過(guò)APP指定,或者采用自動(dòng)行走模式,由主控對(duì)各個(gè)區(qū)域的空氣質(zhì)量分析后選定。整個(gè)程序運(yùn)行流程如圖8所示。
圖8 小車(chē)運(yùn)行流程Figure 8 The running process of the trolley
傳統(tǒng)PID控制算法無(wú)法適應(yīng)不同曲率半徑的軌道,會(huì)出現(xiàn)抖動(dòng)和誤差問(wèn)題。為了使小車(chē)沿著地磁軌道穩(wěn)定前行和在出現(xiàn)路徑偏差的時(shí)候及時(shí)修正,采用模糊PID控制器。以位置偏差e和偏差變化率ec=e(k)-e(k-1)作為控制器的輸入值,輸入值經(jīng)過(guò)相應(yīng)的模糊推理和模糊化后對(duì)PID參數(shù)進(jìn)行在線調(diào)節(jié)和修改,并且得到模糊控制器的PWM輸出值,產(chǎn)生兩路新的PWM控制電機(jī)修正小車(chē)位置。模糊PID控制器采用增量式PID控制,避免了大量運(yùn)算和減少了系統(tǒng)的魯棒性,傳遞函數(shù)為:
其中e(k)表示的是控制器的輸入,T表示的是采樣周期,u(k)表示控制器的輸出,Kp,Ki和Kd分別表示PID調(diào)節(jié)器的自整定參數(shù)P,I和D。
整個(gè)設(shè)計(jì)在于控制規(guī)則設(shè)定,將輸入輸出模糊集定義為7個(gè)語(yǔ)言變量:負(fù)小(NS)、負(fù)中(NB)、負(fù)大(NB)、零(O)、正?。≒S)、正中(PM)、正大(PB)。模糊集合論域確定以后,進(jìn)而確定隸屬函數(shù)。本文采用三角函數(shù),根據(jù)隸屬函數(shù)得到隸屬度,完成模糊化。模糊控制規(guī)則設(shè)計(jì)主要在不同輸入量下對(duì)Kp,Ki和Kd進(jìn)行自整定,實(shí)現(xiàn)規(guī)則為:偏差和偏差變化率越大,電機(jī)轉(zhuǎn)速就越小;偏差和偏差變化率越小,電機(jī)的轉(zhuǎn)速就越大[8]。整個(gè)的模糊控制規(guī)則見(jiàn)表2。
表2 模糊控制規(guī)則表Table 2 Fuzzy control rule table
最后反模糊化運(yùn)算,采用面積重心法,取得隸屬度函數(shù)曲線與坐標(biāo)軸橫坐標(biāo)面積重心,將該重心作為模糊推理的最終輸出數(shù)值。
將待監(jiān)測(cè)房間分為3個(gè)區(qū)域,每個(gè)區(qū)域安置1個(gè)終端采集數(shù)據(jù)。整個(gè)測(cè)試分為終端節(jié)點(diǎn)、匯聚節(jié)點(diǎn)及APP功能測(cè)試。終端節(jié)點(diǎn)數(shù)據(jù)輪詢次數(shù)設(shè)為一次,如圖9所示為各個(gè)采集節(jié)點(diǎn)的顯示結(jié)果。匯聚節(jié)點(diǎn)輪詢次數(shù)設(shè)為4次,如圖10a)所示為主控?cái)?shù)據(jù)采集匯總顯示結(jié)果;圖10b)所示為APP顯示結(jié)果。這里只做了一個(gè)房間的測(cè)試。結(jié)果顯示,整個(gè)多點(diǎn)檢測(cè)系統(tǒng)各檢測(cè)點(diǎn)正常工作,在誤差允許范圍內(nèi)匯聚節(jié)點(diǎn)能實(shí)現(xiàn)正確的數(shù)據(jù)匯總,并傳輸至主控。同時(shí)APP能準(zhǔn)確顯示數(shù)據(jù),兩者數(shù)據(jù)一致。且移動(dòng)端APP可以遠(yuǎn)程操作系統(tǒng),實(shí)現(xiàn)了系統(tǒng)的預(yù)定功能。
圖9 各個(gè)采集節(jié)點(diǎn)數(shù)據(jù)顯示結(jié)果Figure 9 Data display results of each collection node
圖10 主控?cái)?shù)據(jù)和移動(dòng)端APP數(shù)據(jù)顯示結(jié)果a)主控?cái)?shù)據(jù) b)移動(dòng)端APP數(shù)據(jù)Figure 10 Display results of main control data and mobile APP data a)Main control data b)Mobile APP data
將建立好的控制系統(tǒng)仿真模型在MATLAB上進(jìn)行測(cè)試。采集樣本時(shí)間設(shè)為0.02s,在最初速度v保持為0.1m/s的情況下,在這個(gè)階段設(shè)置正弦波的信號(hào)狀況,得出仿真結(jié)果如圖11所示??芍瓉?lái)系統(tǒng)在輸入正弦波時(shí)發(fā)生了失真,而加入模糊控制后的系統(tǒng)能更加準(zhǔn)確實(shí)現(xiàn)正弦波軌跡控制,改善了小車(chē)的運(yùn)動(dòng)穩(wěn)定性,使整個(gè)流程更加順暢。
圖11 控制系統(tǒng)測(cè)試結(jié)果a)不加入模糊控制 b)加入模糊控制Figure 11 Control system test results a)without fuzzy controller b)with fuzzy controller
路徑跟蹤測(cè)試采用室內(nèi)模擬測(cè)試路線,如圖12所示。室內(nèi)的遁跡路線用軟磁條鋪設(shè),寬為30mm,黑點(diǎn)表示識(shí)別卡,標(biāo)志著每一個(gè)凈化區(qū)域。每一個(gè)觀察點(diǎn)畫(huà)了一條石灰線,車(chē)輪壓過(guò)就會(huì)產(chǎn)生痕跡,用于獲取小車(chē)遁跡的偏差數(shù)據(jù)。讓小車(chē)沿著環(huán)形軌道行駛20圈,測(cè)試20組數(shù)據(jù),取平均值,繪制常規(guī)控制系統(tǒng)和模糊控制系統(tǒng)下的位置偏差圖,如圖13所示??梢?jiàn)在小車(chē)都能沿著軌跡平穩(wěn)前行的情況下,采用模糊控制時(shí)的位置偏差情況有較好的改善。
圖12 室內(nèi)測(cè)試示意圖Figure 12 Schematic diagram of indoor test
圖13 位置偏差測(cè)試結(jié)果a)常規(guī)控制 b)模糊控制Figure 13 Position deviation test results a)Conventional control b)Fuzzy control
本文設(shè)計(jì)了一款遠(yuǎn)程空氣質(zhì)量?jī)艋≤?chē)系統(tǒng),使用戶可以隨時(shí)遠(yuǎn)程監(jiān)控和控制家庭室內(nèi)空氣凈化狀況。單區(qū)域多點(diǎn)采集可以更精準(zhǔn)監(jiān)測(cè)整個(gè)區(qū)域的空氣質(zhì)量,使凈化系統(tǒng)可以針對(duì)性運(yùn)行。搭建的智能車(chē),采用模糊PID控制,可以平穩(wěn)運(yùn)行,完成循跡、避障、定位凈化功能。實(shí)驗(yàn)表明,整個(gè)系統(tǒng)性能良好,穩(wěn)定性強(qiáng)。該系統(tǒng)投入市場(chǎng),可望產(chǎn)生積極的社會(huì)效益,推動(dòng)現(xiàn)代化智能家居的發(fā)展。