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