李天旭 何以精 張福君 盧勁駱 周文龍
(北華大學(xué) 電氣與信息工程學(xué)院,吉林 吉林132021)
物聯(lián)網(wǎng)技術(shù)是二十世紀(jì)末提出的一項(xiàng)技術(shù),進(jìn)入新世紀(jì)后,隨著通信網(wǎng)絡(luò)的飛速發(fā)展,這項(xiàng)技術(shù)已經(jīng)越來越深入到農(nóng)業(yè)、工業(yè)及民用領(lǐng)域,多個國家乃至全球?qū)ξ锫?lián)網(wǎng)技術(shù)人才的需求也越來越大。面對這一形勢,自動化專業(yè)的從業(yè)人員也需要在學(xué)習(xí)傳統(tǒng)專業(yè)知識的基礎(chǔ)上融合物聯(lián)網(wǎng)技術(shù)進(jìn)行控制技術(shù)的研發(fā)與使用。本文基于blinker 互聯(lián)網(wǎng)開發(fā)平臺與WiFiduino 硬件,設(shè)計(jì)了一個基于物聯(lián)網(wǎng)的簡易遠(yuǎn)程設(shè)備控制系統(tǒng),實(shí)現(xiàn)了基于WiFi 或4G 熱點(diǎn)網(wǎng)絡(luò)下的機(jī)器人遠(yuǎn)程運(yùn)動控制,整個遠(yuǎn)程控制系統(tǒng)搭建簡單,可靠性強(qiáng),控制響應(yīng)速度較快,對于開發(fā)簡單物聯(lián)網(wǎng)下遠(yuǎn)程控制項(xiàng)目具有參考意義,對于自動化等專業(yè)本科學(xué)生面向社會需求學(xué)習(xí)物聯(lián)網(wǎng)技術(shù)知識具有積極意義。
blinker 是由專業(yè)的物聯(lián)網(wǎng)技術(shù)提供商點(diǎn)燈科技提供的一種物聯(lián)網(wǎng)接入方案,使開發(fā)者可以方便地開發(fā)自己的物聯(lián)網(wǎng)設(shè)備或系統(tǒng)[1]。
blinker 的方案中支持WiFi、藍(lán)牙、MQTT 等通信接入方式[2],并且發(fā)布有自己的應(yīng)用APP,支持android 系統(tǒng)和蘋果的ios 系統(tǒng),通過應(yīng)用程序的界面布局器,開發(fā)者可以很容易地開發(fā)自己的應(yīng)用程序界面。
blinker 物聯(lián)網(wǎng)方案包含設(shè)備端、服務(wù)器端、客戶端三部分。設(shè)備端可以是設(shè)備或者網(wǎng)關(guān),是具體事件(如運(yùn)動控制、傳感器數(shù)據(jù)采集等)的執(zhí)行者;客戶端一般為應(yīng)用程序,可以為移動端APP 或者電腦端應(yīng)用程序;服務(wù)器端負(fù)責(zé)設(shè)備、用戶和數(shù)據(jù)的管理,具體的通信流程中,blinker 服務(wù)器端不負(fù)責(zé)設(shè)備的遠(yuǎn)程通信,遠(yuǎn)程通信是通過broker(公有云代理服務(wù)器)實(shí)現(xiàn)。
blinker 設(shè)備端可以支持藍(lán)牙、WiFi 等接入方式。本文采用WiFi 接入方式和使用WiFiduino 開發(fā)析來進(jìn)行物聯(lián)網(wǎng)遙控系統(tǒng)的開發(fā)。WiFiduino 開發(fā)析其核心控制器是ESP8266,時鐘頻率為80/160MHz,和傳統(tǒng)的Arduino 控制器相比,它添加了對WiFi的支持,方便設(shè)備接入WiFi 網(wǎng)絡(luò)構(gòu)建物聯(lián)網(wǎng)系統(tǒng)[3]。
在具備了物聯(lián)網(wǎng)設(shè)備端的硬件條件后,需要在電腦端安裝和配置物聯(lián)網(wǎng)開發(fā)的軟件環(huán)境。步驟如下:
a.安裝Arduino IDE,本設(shè)計(jì)使用的IDE 版本為1.8.8。
b.安裝ESP8266 的SDK 和blinker Arduino 庫。
c.下載并在安卓系統(tǒng)安裝blinker APP。
本文設(shè)計(jì)的基于blinker 平臺的物聯(lián)網(wǎng)控制系統(tǒng)如圖1 所示,受控測試設(shè)備使用幻爾科技生產(chǎn)的窄足6 自由度雙足行走機(jī)器人。系統(tǒng)包括物聯(lián)網(wǎng)移動設(shè)備APP 端,WiFiduino 開發(fā)析、雙足機(jī)器人驅(qū)動析、兩個LDX-227 數(shù)字舵機(jī)和四個LDX-218數(shù)字舵機(jī)。
圖1 遙控系統(tǒng)組成結(jié)構(gòu)圖
程序調(diào)試主要包括WiFiduino 的聯(lián)網(wǎng)功能調(diào)試和與機(jī)器人驅(qū)動析通信控制機(jī)器人運(yùn)動兩部分內(nèi)容。參考blinker 技術(shù)文檔,在APP 端添加Arduino 設(shè)備獲得Secret Key,然后在代碼中添加auth[],ssid[]和pswd[],其中,auth[]內(nèi)容是Secret Key,ssid[]內(nèi)容是WiFi 或熱點(diǎn)名稱,pswd[]的內(nèi)容是WiFi 或熱點(diǎn)的連接密碼,添加完這三項(xiàng)內(nèi)容后,編寫blinker 的物聯(lián)網(wǎng)通信等代碼。正常聯(lián)網(wǎng)后,APP 中的設(shè)備圖標(biāo)會由灰色變成彩色,表示聯(lián)網(wǎng)成功,在APP 端可以設(shè)置控制按鈕和設(shè)置語音控制命令,這一部分的程序調(diào)試比較簡單[4]。
另一部分程序調(diào)試是WiFiduino 與雙足機(jī)器人驅(qū)動析的串口通信程序調(diào)試。這一部分涉及到雙足機(jī)器人的二次開發(fā)內(nèi)容,初始設(shè)計(jì)中,雙足機(jī)器人驅(qū)動析是基于藍(lán)牙通信控制的,如果要進(jìn)行串口通信控制就要根據(jù)串口通信協(xié)議向驅(qū)動析發(fā)送串行數(shù)據(jù),以實(shí)現(xiàn)機(jī)器人的不同動作控制。按照機(jī)器人二次開發(fā)的串口通信協(xié)議。實(shí)驗(yàn)中采用機(jī)器人動作組運(yùn)行命令控制機(jī)器人,檢測到blinker APP 設(shè)置的命令后,WiFiduino 共需要向機(jī)器人發(fā)送長度為7 個字節(jié)的命令數(shù)據(jù),前兩個字節(jié)為幀頭,第三個字節(jié)為數(shù)據(jù)長度,第四個字節(jié)為指令,第五個字節(jié)表示動作組編號,第六個和第七個字節(jié)表示動作組運(yùn)行次數(shù)的低八位和高八位[5]。
在遠(yuǎn)程控制機(jī)器人之前要先把機(jī)器人需要執(zhí)行的動作組程序下載到機(jī)器人驅(qū)動析里。實(shí)驗(yàn)測試效果如圖2 所示。
圖2 機(jī)器人遙控實(shí)驗(yàn)測試錄制視頻截圖
從實(shí)驗(yàn)測試效果可以看出,本文設(shè)計(jì)的基于blinker 物聯(lián)網(wǎng)方案的簡易遙控系統(tǒng)工作正常,穩(wěn)定性好,可以通過在APP 端設(shè)置按鈕進(jìn)行控制或采用語音控制,語音識別度較高。
本文研究了一種基于blinker 物聯(lián)網(wǎng)方案的簡易遙控技術(shù),可以實(shí)現(xiàn)遠(yuǎn)端設(shè)備的遙控。這一遙控方案基于物聯(lián)網(wǎng)平臺,降低了遠(yuǎn)程通信系統(tǒng)開發(fā)的復(fù)雜程度,更多關(guān)注的是遠(yuǎn)端設(shè)備的具體控制技術(shù),為遙控應(yīng)用程序開發(fā)和遙控系統(tǒng)搭建提供了很大便利,對于物聯(lián)網(wǎng)技術(shù)和遙控技術(shù)入門學(xué)習(xí)具有很好的借鑒意義。