邵斌宇
(江蘇省惠山中等專業(yè)學(xué)校,江蘇 無錫 214000)
在研究無線距離感應(yīng)時一般會考慮采用以下3種方式進行距離感應(yīng)。
首先,使用超聲波發(fā)射頭發(fā)射出超聲波信號;其次,被測物體將超聲波信號進行反彈,用超聲波接收頭接收數(shù)據(jù)并測量所用時間;最后,通過 “聲音在空氣中的傳播速度340 m/s” 這一原理,計算出傳感器與被測物體之間的距離。利用這種方式做出來的無線距離感應(yīng)器存在很大的弊端。由于利用了超聲波傳感器進行距離檢測,檢測的方向就隨傳感器而固定成了傳感器探頭的直線方向或是聲音傳播的方向。所以利用超聲波傳感器只能檢測直線方向的距離。如果在傳感路徑上有其他的遮擋物對傳感通道進行阻礙或者遮擋,超聲波信號就會提前反彈回超聲波接收頭,那么就會造成被測物體與模塊之間的距離檢測失敗。因此在無線距離感應(yīng)應(yīng)用時,使用超聲波傳感器只能進行直線感應(yīng)并且感應(yīng)路徑上需要確保無遮擋物。
使用紅外線傳感器進行無線距離的感應(yīng),其工作原理與超聲波感應(yīng)類似,都是通過紅外線發(fā)射頭將調(diào)制過后的紅外線發(fā)送出去,檢測到物體之后再反射回紅外線接收頭。優(yōu)點在于使用紅外線進行檢測時,其檢測速度非???,反應(yīng)靈敏。但是其缺點也暴露得非常明顯。首先,由于紅外線發(fā)射時的功率問題,必須采取調(diào)制電路將紅外線以調(diào)制信號的方式進行發(fā)送,或者采用激光發(fā)射器,否則將對紅外線傳輸距離產(chǎn)生影響,這也增加了成本。其次,受制于光線傳輸,若反射物體是一個深色或者純黑色物體,那么將對光線反射造成影響。最后,紅外線感應(yīng)和超聲波感應(yīng)都有相同的問題,就是在傳輸距離上不能有遮擋物,一旦出現(xiàn)遮擋,檢測結(jié)果必然出現(xiàn)錯誤。
考慮了超聲波距離感應(yīng)和紅外線距離感應(yīng)的優(yōu)缺點后,現(xiàn)在需要找一款可以進行360°檢測,同時傳輸過程中不受遮擋物影響,且檢測速度較快的距離感應(yīng)模塊完成無線距離感應(yīng)的目的。研究發(fā)現(xiàn)無線距離感應(yīng)與WiFi信號感應(yīng)有著異曲同工之妙。在生活中手機連接路由器的WiFi信號熱點,遠離路由器與靠近路由器時手機上的WiFi信號也在實時發(fā)生變化。當(dāng)遠離路由器時WiFi信號變?nèi)酰?dāng)靠近路由器時WiFi信號變強。本文根據(jù)這樣的原理,將WiFi信號強度提取出來,以完成無線距離感應(yīng)的研究。本文找了一款市面上性價比較高的WiFi模塊ESP8266來完成這項研究,利用WiFi信號的強弱來檢測距離的近遠。這種方法可以彌補使用超聲波和紅外線檢測的缺點。首先,WiFi信號是360°發(fā)射出來的,接收模塊只要在接收范圍之內(nèi)就可以收到信號。其次,在檢測過程中放一塊擋板當(dāng)作遮擋物時,WiFi信號也能繼續(xù)傳輸?shù)浇邮漳K端,同時檢測WiFi信號強度由WiFi模塊內(nèi)部寄存器完成操作,速度較快。因此我們在研究無線距離感應(yīng)方式的時候,選擇使用WiFi無線RSSI信號檢測距離的方式完成研究。
本文在研究ESP8266時,首先對其性能進行測評,其次對應(yīng)用電路進行設(shè)計,最后對驅(qū)動程序進行配置。
ESP8266是一個完整且自成體系的WiFi網(wǎng)絡(luò)解決方案,能夠搭載軟件應(yīng)用,或通過另一個應(yīng)用處理器卸載所有WiFi網(wǎng)絡(luò)功能。ESP8266在搭載應(yīng)用并作為設(shè)備中唯一的應(yīng)用處理器時,能夠直接從外接閃存中啟動[1]。內(nèi)置的高速緩沖存儲器有利于提高系統(tǒng)性能,并減少內(nèi)存需求。另外一種情況是,無線上網(wǎng)接入承擔(dān)WiFi適配器的任務(wù)時,可以將其添加到任何基于微控制器的設(shè)計中,連接簡單易行,只需通過SPI/SDIO接口或中央處理器AHB橋接口即可[2]。ESP8266強大的片上處理和存儲能力,使其可通過GPIO口集成傳感器及其他應(yīng)用的特定設(shè)備,實現(xiàn)最低前期的開發(fā)和運行中最少地占用系統(tǒng)資源。ESP8266高度片內(nèi)集成,包括天線開關(guān)balun、電源管理轉(zhuǎn)換器,因此僅需極少的外部電路,且包括前端模塊在內(nèi)的整個解決方案在設(shè)計時將所占PCB空間降到最低[3]。
裝有ESP8266的系統(tǒng)表現(xiàn)出來的領(lǐng)先特征有:節(jié)能VoIP在睡眠/喚醒模式之間的快速切換、配合低功率操作的自適應(yīng)無線電偏置、前端信號的處理功能、故障排除和無線電系統(tǒng)共存特性為消除蜂窩/藍牙/DDR/LVDS/LCD干擾。[4]
在初步了解ESP8266的功能和連接方式之后,本文對ESP8266進行應(yīng)用。首先,根據(jù)ESP8266的簡介設(shè)計出模塊電路。本文直接使用市面上可以購買到的ESP8266模塊。將ESP8266基本工作電路搭建完成之后,需要對ESP8266進行內(nèi)部寄存器操作。當(dāng)需要進行寄存器操作時,本文使用微處理器進行操作。本文使用單片機進行處理,將單片機引腳與ESP8266基本電路工作引腳相連接之后就可以進行基本的通信操作了。
單片機與ESP8266之間使用的是串口通信協(xié)議,因此本文把單片機串口的引腳與ESP8266串口通信引腳相連接,ESP8266內(nèi)部出場自帶了AT指令集,只需要根據(jù)AT指令集去操作就可以獲得相應(yīng)的狀態(tài)和配置。
本文在測量時是測量兩臺設(shè)備之間的距離,所以在使用的時候也出現(xiàn)了兩臺設(shè)備,將兩臺設(shè)備分別命名為主機和從機。主機主要負責(zé)的任務(wù)是生成一個WiFi熱點,然后接收從機發(fā)送出的數(shù)據(jù)包。從機主要負責(zé)的任務(wù)是連接上主機生成的WiFi熱點,然后將自身與WiFi熱點之間的RSSI信號檢索出來,從而將這個信號通過數(shù)據(jù)包的方式發(fā)送給主機。這樣主機和從機都可以獲得兩臺設(shè)備直接的RSSI信號也就是距離以及信號強度了。
主機配置時,由于要生成一個WiFi熱點所以將模塊配置成AP TCP服務(wù)器模式進行廣播WiFi熱點。輸入指令A(yù)T+CWMODE=2將模塊配置成AP模式,由于設(shè)置完模式的模塊需要進行重啟才能進入相應(yīng)的模式工作,所以下一步將模塊重啟調(diào)用指令A(yù)T+RST,重啟過后模塊就按照AP模式開始工作。接下來就需要配置WiFi熱點的SSID和密碼,使用指令A(yù)T+CWSAP,在配置SSID和密碼時可自定義。只需在從機進行操作時,輸入相應(yīng)的SSID和密碼進行連接。下一步配置WiFi模塊的可連接設(shè)備數(shù),在此需要配置成多連接模式,使用指令A(yù)T+CIPMUX。最后只需要將WiFi模塊的端口開啟,等待設(shè)備使用指令A(yù)T+CIPSERVER連接即可。到此WiFi模塊主機的配置就結(jié)束了。
配置從機進行連接和發(fā)送數(shù)據(jù)的操作。之前的操作都是一樣的,先配置模塊的工作模式使用AT+CWMODE=1配置成STA模式去連接剛剛的AP模式,然后配置AT+RST使模塊進行重啟進入模式工作,將從機模塊與主機剛剛生成的WiFi熱點進行連接,調(diào)用AT指令集AT+CWJAP進行連接。
輸入相應(yīng)的SSID號和密碼進行連接,連接上熱點之后由于需要和主機模塊進行通訊操作,所以需要連接上主機的網(wǎng)絡(luò)端口。調(diào)用指令A(yù)T+CIPSTART,進行連接,連接上之后所有的配置操作就完成了。接下來就只需巡查從機和主機之間的RSSI信號強度。通過指令A(yù)T+CWJAP就可以巡查到RSSI強度,然后通過指令,將需要發(fā)送的數(shù)據(jù)通過AT+CIPSEND進行發(fā)送就達到了從機和主機之間通信的目的。
通過上述的電路設(shè)計、電路搭接、程序設(shè)計,本文將實物搭建出來進行測試。在實際測試過程中,本文發(fā)現(xiàn)將兩個設(shè)備配置完成運行之后,可以完成兩點之間RSSI信號的傳輸,從而實現(xiàn)無線距離感應(yīng)的檢測。對比超聲波和紅外線的缺點,本文在兩個設(shè)備之間放置一塊擋板,發(fā)現(xiàn)兩個設(shè)備之間依舊可以進行信號傳輸和信號的檢測,所以在方向上幾乎解決了超聲波和紅外線的缺點。其次本文對信號的傳輸速度和響應(yīng)速度做了測試,在測試中發(fā)現(xiàn),如果使用從機訪問與主機直接連接的信號強度再將RSSI信號通過從機發(fā)送出去給主機,運行一次的時間可以控制在0.5 s之內(nèi),可以滿足基本的應(yīng)用。因此對比另外兩種傳輸方式,使用WiFi的RSSI信號來做無線距離感應(yīng)的應(yīng)用可以彌補它們的缺點,同時也可以滿足基本的需求。