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