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