劉嘯松
(長安大學(xué)信息工程學(xué)院,西安710010)
短距離通信技術(shù)中,無線數(shù)據(jù)傳輸模塊的傳輸誤碼率高,可靠性差;ZigBee 以低功耗、自組網(wǎng)的特點而受到物聯(lián)網(wǎng)的關(guān)注,但是專用協(xié)議無線網(wǎng)絡(luò),傳輸速率低,開發(fā)難;WiFi 是以太網(wǎng)的一種無線擴(kuò)展技術(shù),用戶可以共享寬帶,但是其傳輸速率低,在此基礎(chǔ)上發(fā)展起來的WIGIG 技術(shù),傳輸速率可以達(dá)到1Gbps 以上,但是不能穿過墻壁,且功耗高;藍(lán)牙技術(shù)已進(jìn)入低功耗時代,能在包括移動電話、PDA、無線耳機(jī)、筆記本電腦、相關(guān)外設(shè)等眾多設(shè)備之間進(jìn)行無線信息交換。但是這些短距離技術(shù)覆蓋范圍有限,對于大范圍或移動性布局的物聯(lián)網(wǎng)設(shè)備無能為力[1]。
GPRS 允許用戶在端到端分組模式下發(fā)送和接收數(shù)據(jù),而不需要利用電路交換模式的網(wǎng)絡(luò)資源,從而提供了一種高效、低成本的無線分組數(shù)據(jù)業(yè)務(wù),和GSM 通信網(wǎng)絡(luò)相比,技術(shù)特點如下:①資源利用率高;②傳輸速率高(64~128Kbps);③接入時間短;④支持IP 協(xié)議和X.25 協(xié)議;⑤低成本,以通信的數(shù)據(jù)量為主要依據(jù)進(jìn)行計費(fèi)。
WiFi 最主要的優(yōu)勢在于不需要布線,可以不受布線條件的限制,發(fā)射信號功率低于100mw,低于手機(jī)發(fā)射功率。WiFi具有如下技術(shù)特點:更寬的帶寬、更強(qiáng)的射頻信號、更低的功耗、改進(jìn)的安全性。
從覆蓋范圍、傳輸速率、基本業(yè)務(wù)類別、可移動速率、前向擴(kuò)展、演進(jìn)走向等多方面綜合分析,本設(shè)計提出一種基于WiFi和GPRS 的DHT11 溫濕度遠(yuǎn)程監(jiān)測系統(tǒng),具有傳輸誤碼率低、成本低及覆蓋范圍廣等優(yōu)點,并且可與監(jiān)測人員的手機(jī)綁定,實現(xiàn)隨時、隨地地移動監(jiān)測。設(shè)計主要內(nèi)容包括:①利用嵌入式開發(fā)技術(shù)、TCP/IP 網(wǎng)絡(luò)協(xié)議等,設(shè)計出了基于OneNET 的環(huán)境監(jiān)控系統(tǒng),該系統(tǒng)以O(shè)neNET 為協(xié)調(diào)中心,實現(xiàn)了環(huán)境變量檢測數(shù)據(jù)上傳,與控制命令下達(dá)的閉環(huán)控制系統(tǒng)。②設(shè)計開發(fā)了以HTTP 協(xié)議為接入方式、以WiFi 連接和GPRS 網(wǎng)絡(luò)作為數(shù)據(jù)傳輸渠道的智能終端,外接溫濕度傳感器,使終端具有感知能力。③增加了電源對系統(tǒng)進(jìn)行供電。
溫濕度遠(yuǎn)程監(jiān)測系統(tǒng)是在物聯(lián)網(wǎng)下,可以通過PC、手機(jī)等移動設(shè)備端實時監(jiān)測溫濕度值,能夠?qū)崟r采集溫度和濕度,溫度的監(jiān)測范圍為-20~+80℃,測量精度為±0.5℃,濕度的監(jiān)測范圍為0%RH~100%RH,測量精度為±3%RH。系統(tǒng)的設(shè)計應(yīng)用需求有系統(tǒng)低成本要求、系統(tǒng)低功耗要求、系統(tǒng)穩(wěn)定性要求和系統(tǒng)實時性要求。
系統(tǒng)的整體設(shè)計流程包括:①各種通信方案的比較、方案確定及傳感器選型;②系統(tǒng)硬件數(shù)據(jù)處理電路、低功耗方案確定、系統(tǒng)程序功能實現(xiàn);③OneNet 物聯(lián)網(wǎng)云平臺、API 接口開發(fā)。
本系統(tǒng)的數(shù)據(jù)采集和發(fā)送使用的編程工具是C 語言和Keil 編輯器。在使用電腦或手機(jī)在服務(wù)端查看遠(yuǎn)程監(jiān)測的溫濕度系統(tǒng)時,嵌入式軟件必須與上文中的硬件系統(tǒng)緊密結(jié)合,從而實現(xiàn)溫濕度的實時監(jiān)測。
本系統(tǒng)設(shè)計采用接受OneNET 云服務(wù)平臺指令,與定時器定時發(fā)送兩種方式來發(fā)送溫濕度數(shù)據(jù)。判斷是否連接上WiFi,當(dāng)未搜索到默認(rèn)WiFi 時,可以由用戶連接ESP-01S 的AP,通過訪問192.168.4.1 對ESP-01S 進(jìn)行配置。若當(dāng)前無法使用WiFi,則轉(zhuǎn)到STM32 作為控制器的GPRS 通信模式。進(jìn)行系統(tǒng)初始化,包括所有外設(shè)的復(fù)位,定時器的初始化,配置系統(tǒng)時鐘,輸入輸出口的初始化,設(shè)置當(dāng)前時間。然后通過“AT”指令與服務(wù)端口嘗試握手連接,保證指令能夠發(fā)送成功。判斷定時時間到或者收到發(fā)送指令時,獲取傳感器數(shù)據(jù)并發(fā)送給服務(wù)器,判斷數(shù)據(jù)是否發(fā)送成功,若發(fā)送成功,獲取當(dāng)前時間并重新判斷。否則,重新獲取傳感器數(shù)據(jù)并發(fā)送到服務(wù)器。
DHT11 是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。DATA 用于微處理器與DHT11 之間的通訊與同步,單總線數(shù)據(jù)格式,單詞通訊時間為4ms 左右,數(shù)據(jù)分小數(shù)和整數(shù)部分。
數(shù)據(jù)的GPRS 通信主要是對GA6 模塊進(jìn)行控制,主要包括握手程序、發(fā)送數(shù)據(jù)程序、數(shù)據(jù)監(jiān)測服務(wù)程序等。
①握手連接。在與GA6 模塊進(jìn)行通信前需要先握手來判斷STM32 與GA6 模塊是否建立連接,以保證信息能夠傳輸成功。發(fā)送AT 指令,如果返回值為OK 則證明握手成功,否則程序無法往下進(jìn)行而是繼續(xù)進(jìn)行握手,直到成功為止。②AT 發(fā)送數(shù)據(jù)。通過STM32 的串口輸出AT 指令來控制GA6 模塊的相應(yīng)動作,將模塊設(shè)置為透傳模式,這樣經(jīng)過STM32 串口發(fā)送的數(shù)據(jù)在模塊連接TCP 成功之后可發(fā)送至模塊的串口上,模塊通過GPRS 自動將這些數(shù)據(jù)發(fā)送至服務(wù)端,有利于控制軟件流程[2]。
程序的WiFi 通信主要是對ESP-01S 進(jìn)行控制,主要包括配置WiFi、構(gòu)建AP、處理和上傳數(shù)據(jù)三部分。
①配置WiFi。ESP-01S 采用了事件響應(yīng)的方式。ESP-01S可以設(shè)置自動連接,這里只需要調(diào)用固件庫中的函數(shù)就可以實現(xiàn)掉線重連,當(dāng)配置的WiFi 有效時,ESP-01S 便能自動連入。可以結(jié)合監(jiān)聽器用LED 顯示連接狀態(tài)。②構(gòu)建AP。ESP-01S 在自身開放的AP 局域網(wǎng)中的默認(rèn)IP 地址是192.168.4.1。給HttpServer 添加中間件,當(dāng)訪問'/scanap'時,使用wifi.sta.getap()獲取AP 列表再轉(zhuǎn)換到JSON 格式返回。前端使用了輕量的Zepto.js 來搭建前端頁面,通過AJAX 來請求數(shù)據(jù)。③處理和上傳數(shù)據(jù)。溫濕度傳感器DHT11,通過對IO 管腳的讀寫,讀取傳感器數(shù)據(jù),并通過WIFIAPI 將數(shù)據(jù)上傳到ONENET 平臺。在init.lua 腳本里面周期性通過dofile()函數(shù)來調(diào)用dht11.lua 函數(shù)來讀取數(shù)據(jù)。將讀取到的數(shù)據(jù)按照OneNET 平臺HTTP API 接口的要求打包成數(shù)據(jù)包,并通過WiFi 上傳到云平臺。
①關(guān)于WiFi 模塊與DHT11 模塊的測試。先通過手機(jī)或者電腦連接ESP-01S(微控制器)的AP,通關(guān)訪問192.168.4.1 來對ESP-01S 所要連接的WiFi 進(jìn)行配置。訪問前端Web 頁面進(jìn)行WiFi 的連接??梢允謩虞斎朊艽a,也可以掃描熱點然后進(jìn)行選擇。連接上WiFi 后,ESP-01S 會自動獲取并處理DHT11 傳輸過來的數(shù)據(jù),然后向OneNET 云平臺進(jìn)行數(shù)據(jù)傳送,在手機(jī)端和網(wǎng)頁端進(jìn)行結(jié)果查看,預(yù)測結(jié)果為當(dāng)前環(huán)境中的溫度與濕度。由數(shù)據(jù)可以看出,傳送的數(shù)據(jù)與環(huán)境中的數(shù)據(jù)大致相等,結(jié)果無誤。②關(guān)于GPRS 模塊與USB 轉(zhuǎn)TTL 模塊的測試。GPRS模塊通過流量傳送數(shù)據(jù),模擬DHT11 測試的數(shù)據(jù),傳送給GPRS 模塊,通過AT 指令發(fā)送至OneNET 平臺。在手機(jī)與網(wǎng)頁端進(jìn)行結(jié)果查看與預(yù)測結(jié)果接近。③關(guān)于STM32 模塊、GPRS模塊與DHT11 模塊的測試。先進(jìn)行通信測試,電腦與STM32 之間的通信成功,STM32 能正確地將數(shù)據(jù)傳送給GPRS 模塊,并發(fā)送到云端。但GPRS 的數(shù)據(jù)回傳到STM32 的數(shù)據(jù)稍有問題,不能很好地展示當(dāng)前的狀態(tài)和執(zhí)行的指令??梢詮拇谥写蛴〉臄?shù)據(jù)看到,GPRS 可將接收到的數(shù)據(jù)發(fā)送到云平臺,不過會傳到STM32 的數(shù)據(jù)只能顯示指令,不能顯示指令的處理結(jié)果。