韓
(江蘇徐工信息技術(shù)股份有限公司,江蘇 徐州221000)
隨著經(jīng)濟(jì)的日益發(fā)展和生活水平的不斷提高,人們已經(jīng)從物質(zhì)的滿足轉(zhuǎn)向?qū)ι钇焚|(zhì)的追求。而物聯(lián)網(wǎng)的發(fā)展迎合了人們的需要,比如智能電視,智能冰箱等等,人們可以在手機(jī)或者電腦等遠(yuǎn)程端直接對(duì)終端設(shè)備進(jìn)行控制和自動(dòng)化管理,從而打破了地域的限制,節(jié)省了大量時(shí)間。目前,物聯(lián)網(wǎng)已經(jīng)廣泛地應(yīng)用到各個(gè)領(lǐng)域,作為物聯(lián)網(wǎng)的重要組成部分,物聯(lián)網(wǎng)云平臺(tái)、嵌入式終端設(shè)備以及無(wú)線通信技術(shù)對(duì)物聯(lián)網(wǎng)起著至關(guān)重要的作用。
系統(tǒng)先在OneNET 云平臺(tái)上創(chuàng)建屬于自己的公開協(xié)議產(chǎn)品,并添加設(shè)備、數(shù)據(jù)流模板和獨(dú)立應(yīng)用。然后選擇性能較好的STM32F107VCT6 嵌入式開發(fā)板作為控制設(shè)備,采用Wifi 的數(shù)據(jù)通信方式,將控制設(shè)備接入到云平臺(tái)創(chuàng)建好的產(chǎn)品。在此基礎(chǔ)上,將開發(fā)板上傳感器采集的數(shù)據(jù)上傳到OneNET 平臺(tái),并設(shè)置報(bào)警部分。同時(shí)通過在產(chǎn)品的獨(dú)立應(yīng)用里添加的“開關(guān)”控件控制開發(fā)板上的LED 燈。通過獨(dú)立應(yīng)用里的柱狀圖、曲線圖等有效工具進(jìn)行實(shí)時(shí)展示。
系統(tǒng)設(shè)計(jì)選擇OneNET 云平臺(tái),由于OneNET 云平臺(tái)提供豐富的硬件開發(fā)工具,API 接口以及多種通信協(xié)議。OneNET 云平臺(tái)支持以太網(wǎng)、WIFI、GPRS 三種通信方式,本次設(shè)計(jì),相較于以太網(wǎng)和GPRS,使用WIFI 會(huì)更方便,所以系統(tǒng)采用ESP8266WIFI 模塊,開發(fā)板通過控制該模塊實(shí)現(xiàn)與云平臺(tái)的通信。
設(shè)計(jì)采用HTTP 協(xié)議作為硬件設(shè)備接入云平臺(tái)的通信協(xié)議,并用到了POST 和GET 兩種方法,STM32F107VCT6 開發(fā)板將獲取到的數(shù)據(jù)打包并按照J(rèn)SON 格式進(jìn)行轉(zhuǎn)換,然后通過POST 方法將數(shù)據(jù)上傳到云平臺(tái),在云平臺(tái)中相應(yīng)的數(shù)據(jù)流模板上就會(huì)出現(xiàn)數(shù)據(jù)流。同時(shí),開發(fā)板控制ESP8266 模塊向平臺(tái)不斷發(fā)送GET 請(qǐng)求,以此來獲取平臺(tái)上“開關(guān)”按鈕的狀態(tài),從而實(shí)現(xiàn)控制LED 燈的亮、滅(圖1)。
3.1 STM32F107VCT6 開發(fā)板是整個(gè)系統(tǒng)的關(guān)鍵部分之一,它的功能完善,綜合性高。主控芯片是基于ARM Cortex-M3 內(nèi)核的STM32F107VCT6,具有低能耗、處理速度快等優(yōu)勢(shì),并且在處理能力以及其他方面已經(jīng)漸漸超越了ARM7,同時(shí)編程難度也有了一定程度的降低,程序顯得更加簡(jiǎn)潔。該芯片增加了全速的USB 接口和以太網(wǎng)接口,工作頻率為72MHZ,內(nèi)部匯集了大量高性能的標(biāo)準(zhǔn)接口,能夠使用多種應(yīng)用,兼容性好。
3.2 ESP8266WIFI 模塊基于樂鑫公司開發(fā)的ESP8266 芯片,該芯片集成了Tensilica L106MHZ 的32 位微型MCU,內(nèi)置了TCP/IP 協(xié)議棧。同時(shí),它還擁有板載天線、內(nèi)置10bit 高精度ADC 以及主頻支持80MHZ 和160MHZ 等特點(diǎn)。
3.3 ESP8266-01 模塊與STM32F107VCT6 開發(fā)板的連接,由于STM32F107VCT6 開發(fā)板上有ESP8266WIFI 模塊的接口,所以在實(shí)際操作的時(shí)候,直接將模塊插到板子上即可。ESP8266-01 模塊與STM32F107VCT6 開發(fā)板采用異步通信方式,在通信過程中,開發(fā)板通過AT 指令對(duì)ESP8266-01 模塊進(jìn)行控制,并使其連接上網(wǎng)絡(luò)。
3.4 DHT11 溫濕度傳感器與開發(fā)板連接,DHT11 溫濕度傳感器為三針單排引腳封裝,三個(gè)引腳分別為VCC,DATA(數(shù)字接口),GND。傳感器的DATA 接口要接到開發(fā)板的PC13 口,另外兩個(gè)引腳VCC 和GND 分別接到開發(fā)板的VCC 和GND 即可。該傳感器的工作電壓在3.3V-5V 之間。由于該傳感器的內(nèi)部自帶A/D 直接輸出數(shù)字量,所以在實(shí)際操作的過程中,并不需要外接其他部分。
圖1 通訊方式
3.5 光敏電阻傳感器與開發(fā)板連接,采用的是四線制的靈敏型光敏電阻傳感器,工作電壓在3.3V-5V 之間,四個(gè)引腳分別為VCC、GND、DO(開關(guān)量輸出)和AO(模擬量輸出)。在實(shí)際接線過程中,將傳感器的VCC 引腳接到開發(fā)板的3.3V 的VCC,將傳感器的GND 引腳與開發(fā)板上3.3V 的GND 引腳相連,然后將傳感器的DO 口接到開發(fā)板的PA6 口,AO 口不接。接線完成后,給開發(fā)板上電,傳感器就可以進(jìn)行光照采集了。
由于本系統(tǒng)采用的是HTTP 協(xié)議,所以不論是上報(bào)數(shù)據(jù)還是獲取數(shù)據(jù),報(bào)文的內(nèi)容格式都要用JSON 格式。本次測(cè)試使用POST 方法向平臺(tái)發(fā)送數(shù)據(jù)。除了報(bào)文的格式要正確外,內(nèi)容里要填寫對(duì)應(yīng)的設(shè)備ID 和產(chǎn)品的API-Key。需要強(qiáng)調(diào)的是,Centent-Length(發(fā)送的內(nèi)容)要計(jì)算清楚,如果填錯(cuò)了,顯示的結(jié)果會(huì)報(bào)錯(cuò)。另外,在報(bào)文內(nèi)容的最后一行結(jié)束后,需要換行。報(bào)文如圖2 所示:
圖2 POST 報(bào)文
首先通過USB 轉(zhuǎn)TTL 模塊將ESP8266-01 模塊接入PC 端,正常情況下,ESP8266-01 模塊的TXD 引腳接USB 轉(zhuǎn)TTL 模塊的RXD 引腳,RXD 引腳接USB 轉(zhuǎn)TTL 模塊的TXD 引腳,其余引腳正常接即可。在接線完成后,要盡量保證電壓穩(wěn)定,既不可太大,又不可太小。供電不足,會(huì)導(dǎo)致返回結(jié)果為亂碼。調(diào)測(cè)采用的測(cè)試軟件是sscom5.13.1 串口調(diào)試助手。在給模塊供電后,打開串口調(diào)試助手。首先看COM端口,檢查模塊有沒有連接上,然后查看波特率,一般為115200。接下來,在輸入欄輸入AT指令A(yù)T+RST(ESP8266-01 模塊復(fù)位),點(diǎn)擊回車換行后,發(fā)送指令,串口助手界面返回的結(jié)果最后會(huì)有“ready”,中間可能會(huì)出現(xiàn)一些亂碼,但沒什么影響。界面最后顯示“ready”,表示模塊能夠正常工作。
在模塊連接WIFI 熱點(diǎn)時(shí),有時(shí)可能不會(huì)一次就連接上,會(huì)出現(xiàn)多次連接的情況。這時(shí),串口調(diào)試助手會(huì)顯示“WIFI 連接失敗,準(zhǔn)備重啟”,然后模塊會(huì)自動(dòng)重啟,重新連接WIFI,直至連接成功。如圖5.2.2 所示。如果串口調(diào)試助手一直顯示W(wǎng)IFI 連接失敗的話,可以給開發(fā)板重新上電,然后再次嘗試連接。
系統(tǒng)可以對(duì)LED 燈模塊進(jìn)行調(diào)測(cè),本設(shè)計(jì)選用開發(fā)板上的LED 等,在云平臺(tái)產(chǎn)品的獨(dú)立應(yīng)用里查看“開關(guān)”按鈕的狀態(tài),假設(shè)開關(guān)處于“ON”的狀態(tài),開發(fā)板接入云平臺(tái)后,板子上面的LED 燈是亮著的(這是上一次設(shè)備斷開連接前的效果),此時(shí),點(diǎn)擊開關(guān)的“OFF”按鈕,應(yīng)用的界面會(huì)顯示“發(fā)送成功”,表示信息被發(fā)送到平臺(tái)的服務(wù)器,然后查看“開關(guān)”按鈕關(guān)聯(lián)的數(shù)據(jù)流模板,數(shù)據(jù)值由“1”降到了“0”,與此同時(shí),ESP8266-01 模塊也在不斷的發(fā)送GET 請(qǐng)求,詢問“開關(guān)”按鈕的狀態(tài)。
HT11 模塊上有一個(gè)小燈,燈亮表示模塊正在正常工作。在給開發(fā)板供電后,數(shù)據(jù)就不斷被采集,并上傳到云平臺(tái)。此時(shí)觀察串口調(diào)試助手上的信息,溫度和濕度的數(shù)據(jù)會(huì)依次上傳。如果上傳超時(shí),串口調(diào)試助手會(huì)顯示“ESP8266 接收數(shù)據(jù)超時(shí)”。如果數(shù)據(jù)上傳成功,數(shù)據(jù)流模板上的數(shù)據(jù)流就會(huì)更新。