賈浩強(qiáng),李耀
(南京財(cái)經(jīng)大學(xué) 信息工程學(xué)院,南京 210046)
?
基于WiFi無(wú)線通信的溫濕度檢測(cè)節(jié)點(diǎn)設(shè)計(jì)
賈浩強(qiáng),李耀
(南京財(cái)經(jīng)大學(xué) 信息工程學(xué)院,南京 210046)
基于AM2303溫濕度傳感器、STC15F104W單片機(jī)和WiFi模塊設(shè)計(jì)了一種無(wú)線溫濕度檢測(cè)節(jié)點(diǎn)。介紹了AM2303及其通信協(xié)議、WiFi模塊及其組網(wǎng)特性等,并且給出了讀取AM2303數(shù)據(jù)的軟件流程。經(jīng)測(cè)試,該節(jié)點(diǎn)通信距離遠(yuǎn),組網(wǎng)靈活,可很好地應(yīng)用于糧庫(kù)糧情檢測(cè)等實(shí)際工作環(huán)境。
溫濕度檢測(cè);AM2303;WiFi
圖1 硬件電路原理圖
隨著無(wú)線通信、嵌入式系統(tǒng)以及網(wǎng)絡(luò)等技術(shù)的快速發(fā)展,無(wú)線傳感器網(wǎng)絡(luò)在軍事和環(huán)境監(jiān)測(cè)等領(lǐng)域得到了廣泛的應(yīng)用[1]。它由部署在檢測(cè)區(qū)域內(nèi)的大量廉價(jià)的微型傳感器網(wǎng)絡(luò)節(jié)點(diǎn)組成,通過(guò)無(wú)線通信方式形成一個(gè)多跳的自組織網(wǎng)絡(luò)系統(tǒng),用以協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中被感知對(duì)象的信息,并發(fā)送給觀察者。
這是一種全新的信息獲取技術(shù),在無(wú)線傳感器網(wǎng)絡(luò)中常用的無(wú)線通信技術(shù)包括藍(lán)牙、WiFi、ZigBee等。其中,藍(lán)牙技術(shù)協(xié)議復(fù)雜、開(kāi)發(fā)成本高;ZigBee通信距離較短。而WiFi技術(shù)具有傳輸速率高、覆蓋范圍廣、組網(wǎng)成本低、與Internet網(wǎng)絡(luò)無(wú)縫連接等優(yōu)點(diǎn)[2],在通信距離等方面與其他無(wú)線通信技術(shù)相比具有顯著的優(yōu)勢(shì),這使得該技術(shù)在溫濕度檢測(cè)領(lǐng)域應(yīng)用中具有明顯優(yōu)勢(shì)。
本文結(jié)合無(wú)線傳感器網(wǎng)絡(luò)的設(shè)計(jì)思想,設(shè)計(jì)了一種基于WiFi技術(shù)的溫濕度實(shí)時(shí)檢測(cè)終端節(jié)點(diǎn)。
節(jié)點(diǎn)硬件電路如圖1所示。硬件結(jié)構(gòu)由數(shù)字溫濕度傳感器、WiFi通信模塊和單片機(jī)三個(gè)模塊組成。
1.1 AM2303溫濕度傳感器
本設(shè)計(jì)采用的數(shù)字溫濕度傳感器為廣州奧松電子有限公司生產(chǎn)的AM2303溫濕度傳感器[3]。它是一款新型單總線傳感器,其內(nèi)部包括一個(gè)電容式感濕元件和一個(gè)高精度測(cè)溫元件。溫度測(cè)量范圍為-40~+80 ℃,精度為±0.3 ℃;濕度測(cè)量范圍為0~99.9%RH,精度為±2%RH(25 ℃)。
相比市場(chǎng)上常見(jiàn)的SHT1x系列溫濕度傳感器[4-5], AM2303具有價(jià)格低、算法簡(jiǎn)單等優(yōu)點(diǎn),并且具有低功耗、自動(dòng)化校準(zhǔn)、傳輸距離遠(yuǎn)等特點(diǎn)。
1.1.1 引腳說(shuō)明
AM2303引出3個(gè)引腳。其中,VDD、GND為電源引腳,供電3.5~5.5 V;SDA為數(shù)據(jù)線,用于與單片機(jī)STC15F104W進(jìn)行通信。SDA引腳為三態(tài)結(jié)構(gòu),用于讀、寫傳感器數(shù)據(jù)。
1.1.2 通信協(xié)議
AM2303具體通信時(shí)序圖如圖2所示。采用簡(jiǎn)化的單總線通信,節(jié)點(diǎn)對(duì)AM2303的控制和數(shù)據(jù)交換均由數(shù)據(jù)線完成。數(shù)據(jù)線一次傳送40位溫濕度數(shù)據(jù),高位先出。
圖2 AM2303單總線通信協(xié)議
單片機(jī)向AM2303發(fā)送一次起始信號(hào)(圖中粗線所示區(qū)域)后,AM2303從休眠模式轉(zhuǎn)換到高速模式并發(fā)送響應(yīng)信號(hào),從數(shù)據(jù)線SDA串行送出檢測(cè)到的溫濕度數(shù)據(jù),發(fā)送數(shù)據(jù)結(jié)束觸發(fā)一次信息采集,采集結(jié)束傳感器自動(dòng)轉(zhuǎn)入休眠模式,直到下一次通信來(lái)臨。具體通信協(xié)議描述如下:
① 單片機(jī)向AM2303發(fā)送起始信號(hào),將數(shù)據(jù)線SDA拉低一段時(shí)間(至少800 μs),然后釋放數(shù)據(jù)線,偵聽(tīng)AM2303送出的響應(yīng)信號(hào)。
圖3 單總線分解時(shí)序圖
② AM2303發(fā)出響應(yīng)信號(hào),將數(shù)據(jù)線SDA拉低80 μs,再拉高80 μs作為響應(yīng)信號(hào)響應(yīng)單片機(jī)。
③ AM2303通過(guò)數(shù)據(jù)線SDA串行輸出40位數(shù)據(jù),高位先出,發(fā)送的數(shù)據(jù)依次為濕度高8位、濕度低8位、溫度高8位、溫度低8位和8位校驗(yàn)位。AM2303傳出的濕度和溫度值是實(shí)際濕度和溫度值的10倍,溫度最高位(位15)為符號(hào)位,置“1”表示負(fù)溫度,置“0”表示正溫度;溫度低15位(位14~位0)表示溫度值。校驗(yàn)位為濕度高位、濕度低位、溫度高位和溫度低位之和。
④ AM2303的數(shù)據(jù)線SDA輸出40位數(shù)據(jù)后,繼續(xù)輸出50 μs低電平,然后轉(zhuǎn)為輸入狀態(tài)。由于上拉電阻作用,數(shù)據(jù)線變?yōu)楦唠娖?。AM2303內(nèi)部再次測(cè)量溫濕度數(shù)據(jù),并記錄數(shù)據(jù),等待單片機(jī)再次發(fā)送起始信號(hào)。
1.1.3 位數(shù)據(jù)格式
位數(shù)據(jù)“0”、位數(shù)據(jù)“1”格式信號(hào)如圖3所示。AM2303發(fā)送完響應(yīng)信號(hào)之后,由數(shù)據(jù)線SDA連續(xù)串行輸出40位數(shù)據(jù)。位數(shù)據(jù)“0”的格式為50 μs的低電平加26~28 μs的高電平。位數(shù)據(jù)“1”的格式為50 μs的低電平加70 μs的高電平。
1.2 WiFi通信模塊
本設(shè)計(jì)采用的WiFi通信模塊為有人科技有限公司生產(chǎn)的超低功耗嵌入式WiFi 模組[6](USR-WiFi232-G)。該模塊提供了一種將用戶的物理設(shè)備連接到WiFi無(wú)線網(wǎng)絡(luò)上,并提供UART串口等接口傳輸數(shù)據(jù)的解決方案,提供了一體化的801.11/b/g/n WiFi的低功耗解決方案。USR-WiFi232-G是一款集成了所有WiFi功能的模塊,采用表貼封裝,配備有內(nèi)置PCB天線、外置天線連接器。采用FCC/CE標(biāo)準(zhǔn)認(rèn)證,頻率范圍為2.412~2.484 GHz,工作電壓范圍為3.6~3.1 V,在-40~85 ℃環(huán)境內(nèi)可正常工作,使用內(nèi)置天線時(shí)信號(hào)傳輸距離可達(dá)到150 m,使用外置天線時(shí)則可達(dá)400 m。
1.2.1 WiFi無(wú)線組網(wǎng)
USR-WiFi232-G支持無(wú)線組網(wǎng)功能,既可以作為無(wú)線接入點(diǎn)(AP)實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)的中心節(jié)點(diǎn)功能,也可以作為無(wú)線站點(diǎn)(STA)實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)終端功能。
利用USR-WiFi232-G組網(wǎng)有基于AP的組網(wǎng)和基于AP+STA共存的組網(wǎng)兩種方式?;贏P的無(wú)線組網(wǎng)是一種基本的組網(wǎng)方式,由一個(gè)AP和多個(gè)STA組成,AP處于中心地位,多個(gè)STA之間通過(guò)AP轉(zhuǎn)發(fā)完成相互通信。USR-WiFi232-G支持基于AP+STA共存的組網(wǎng)方式,即模塊可同時(shí)支持一個(gè)AP接口和一個(gè)STA接口,如圖4所示。模塊的STA接口可以與路由器相連,并通過(guò)TCP連接與網(wǎng)絡(luò)中的服務(wù)器相連,由此可通過(guò)互聯(lián)網(wǎng)實(shí)現(xiàn)遠(yuǎn)程通信。同時(shí)模塊上的AP接口也是可用的,智能手機(jī)或PAD等可直接連接到AP接口上,控制串口設(shè)備或模塊與設(shè)備進(jìn)行通信。這種無(wú)線組網(wǎng)模式為用戶的使用提供了更大的靈活性。
圖4 AP+STA組網(wǎng)結(jié)構(gòu)
1.2.2 WiFi透明傳輸模式
USR-WiFi232-G支持串口透明傳輸模式,可以實(shí)現(xiàn)串口即插即用,從而最大程度降低用戶使用的復(fù)雜度。首次使用時(shí)需要對(duì)模塊進(jìn)行配置,作為無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)使用時(shí),需要通過(guò)PC的無(wú)線網(wǎng)卡連接USR-WiFi232-G,默認(rèn)網(wǎng)絡(luò)名稱(SSID)為HF-A11X_AP。加入網(wǎng)絡(luò)后,在IE瀏覽器地址欄輸入http://10.10.100.254,在無(wú)線終端設(shè)置選項(xiàng)中,鍵入模塊要連接的無(wú)線接入點(diǎn)的SSID和密碼,并選擇自動(dòng)獲取IP地址。
然后在模式選擇選項(xiàng)中設(shè)置USR-WiFi232-G模塊工作模式為AP+STA模式,保存后重新啟動(dòng)模塊。打開(kāi)智能手機(jī)或者PC的上位機(jī)終端,選擇客戶機(jī)(TCP client)模式,服務(wù)器IP地址輸入自動(dòng)分配給USR-WiFi232-G的地址,服務(wù)器端口號(hào)為8899,此為模塊默認(rèn)監(jiān)聽(tīng)的TCP端口號(hào),點(diǎn)擊連接建立TCP連接,即可進(jìn)行遠(yuǎn)程數(shù)據(jù)收發(fā)。
1.3 STC15F104W單片機(jī)
本設(shè)計(jì)采用宏晶科技有限公司生產(chǎn)的STC15F104W單片機(jī)[7]。該單片機(jī)工作電壓為3.8~5.5 V,采用增強(qiáng)型8051CPU內(nèi)核,指令代碼完全兼容傳統(tǒng)51單片機(jī),速度更快。片內(nèi)128字節(jié) RAM,1K EEPROM ,4 KB Flash程序存儲(chǔ)器;內(nèi)部高可靠復(fù)位,可徹底省掉外部復(fù)位電路;具有高精度R/C時(shí)鐘,內(nèi)部時(shí)鐘為5~35 MHz可選。采用8引腳封裝,有2個(gè)普通16位重裝載定時(shí)器/計(jì)數(shù)器,共有6個(gè)通用I/O端口,可利用I/O口結(jié)合定時(shí)器實(shí)現(xiàn)串口功能(通常使用P3.0和P3.1端口)。該單片機(jī)價(jià)格便宜,單個(gè)售價(jià)少于2.0元,設(shè)計(jì)采用該系列單片機(jī),完全可以滿足進(jìn)行溫濕度檢測(cè)的要求。
2.1 讀取1位數(shù)據(jù)
單片機(jī)讀取一位數(shù)據(jù)流程如圖5所示。由于每位數(shù)據(jù)都有約50 μs的低電平時(shí)隙和其后的高電平時(shí)隙兩部分,單片機(jī)將根據(jù)高電平時(shí)隙的長(zhǎng)度確定當(dāng)前位數(shù)據(jù)的取值。讀取數(shù)據(jù)時(shí),單片機(jī)持續(xù)檢測(cè)數(shù)據(jù)線SDA狀態(tài),當(dāng)SDA變?yōu)楦唠娖綍r(shí),利用軟件延時(shí)約30 μs,然后再次檢測(cè)SDA電平狀態(tài)。若此時(shí)SDA處于高電平狀態(tài),則表示當(dāng)前位數(shù)據(jù)為“1”,存儲(chǔ)當(dāng)前位數(shù)據(jù),等待SDA重新變?yōu)榈碗娖綘顟B(tài)時(shí),開(kāi)始讀取下一位數(shù)據(jù);若SDA處于低電平狀態(tài),則表示當(dāng)前位數(shù)據(jù)為“0”,存儲(chǔ)數(shù)據(jù)后開(kāi)始讀取下一位數(shù)據(jù)。
圖5 位數(shù)據(jù)讀取流程圖
2.2 讀取AM2303數(shù)據(jù)
單片機(jī)讀取AM2303數(shù)據(jù)采用KEIL C51實(shí)現(xiàn),流程如圖6所示。AM2303上電后需等待2 s以越過(guò)不穩(wěn)定狀態(tài),期間單片機(jī)不能向其發(fā)送指令。讀取AM2303數(shù)據(jù)時(shí),單片機(jī)通過(guò)I/O口向AM2303數(shù)據(jù)線SDA發(fā)送起始信號(hào),待接收到響應(yīng)信號(hào)后,依次從數(shù)據(jù)線SDA串行讀取濕度高8位、濕度低8位、溫度高8位、溫度低8位以及8位校驗(yàn)位。
圖6 讀取AM2303數(shù)據(jù)流程圖
單片機(jī)通過(guò)判斷濕度高、低8位與溫度高、低8位之和是否等于校驗(yàn)位,來(lái)確定所接收的溫濕度數(shù)據(jù)是否準(zhǔn)確,校驗(yàn)正確則將溫濕度數(shù)據(jù)通過(guò)串口送至WiFi模塊;否則重新獲取溫濕度數(shù)據(jù)。由于AM2303硬件原因,讀取間隔小于2 s可能導(dǎo)致讀取溫濕度數(shù)據(jù)不準(zhǔn)確或通信不成功等情況,所以單片機(jī)連續(xù)兩次讀取溫濕度數(shù)據(jù)時(shí)間至少間隔2 s。
本文介紹的溫濕度檢測(cè)節(jié)點(diǎn)作為無(wú)線溫濕度傳感器網(wǎng)絡(luò)節(jié)點(diǎn)可以實(shí)現(xiàn)靈活組網(wǎng),并可針對(duì)現(xiàn)場(chǎng)溫濕度信息進(jìn)行實(shí)時(shí)監(jiān)測(cè)。通過(guò)打開(kāi)路由器網(wǎng)絡(luò)設(shè)置中的動(dòng)態(tài)
Temperature and Humidity Detection Device Based on WiFi Technology
Jia Haoqiang, Li Yao
(College of Information Engineering, Nanjing University of Finance & Economics, Nanjing 210046,China)
A kind of wireless temperature and humidity detection node are designed based on AM2303 temperature and humidity sensor, STC15F104W microcontroller and WiFi module. This paper introduces AM2303 and its communication protocols, WiFi module and the characteristics of network. The flowcharts of reading data are given. The hardware test shows that the node has long distance of communication, flexible networking, and it can be well applied in actual work environments such as granary testing.
temperature and humidity detection;AM2303;WiFi
TP368.1
A