運(yùn)用DragonBoard 410c開發(fā)板接入物聯(lián)網(wǎng)云服務(wù)
前段時(shí)間入手一臺(tái)Dragon Board410c的開發(fā)板。雖然功能強(qiáng)大,而且還是高通自家產(chǎn)品,無(wú)線基帶很是不錯(cuò), 但是由于自己對(duì)這網(wǎng)絡(luò)與運(yùn)維理解不是很透徹,所以還是沒辦法完全發(fā)揮其全部的實(shí)力。 去年有申請(qǐng)了云服務(wù)器試用。 離試用期結(jié)束還有一個(gè)多月的時(shí)間,剛好發(fā)現(xiàn)在官網(wǎng)提供了IoT物聯(lián)網(wǎng)設(shè)備的云服務(wù), 經(jīng)過了解于是打算將自己的410c開發(fā)板連接到云服務(wù)上,測(cè)試一下410c的網(wǎng)絡(luò)功能與吞吐能力。
本文引用地址:http://www.ex-cimer.com/article/201710/365527.htm首先介紹一下需要的設(shè)備吧: DragonBoard 410c一塊 + 云服務(wù)器
第一步: 準(zhǔn)備物聯(lián)網(wǎng)云服務(wù)
首先我們需要在物聯(lián)網(wǎng)平臺(tái)服務(wù)實(shí)例中創(chuàng)建一個(gè)新的實(shí)例:
添加設(shè)備
接下來(lái)我們需要?jiǎng)?chuàng)建一個(gè)OrganizaTIon,也就是410c的設(shè)備集群。當(dāng)我們通過Bluemix創(chuàng)建好組織后, 我們就可以注冊(cè)并添加設(shè)備
- 首先在物聯(lián)網(wǎng)服務(wù)組織的dashboard上點(diǎn)擊Add a your device按鈕
- 然后根據(jù)屏幕上的提示進(jìn)行設(shè)置
在注冊(cè)設(shè)備的時(shí)候我們還需要編寫如下的設(shè)備信息:
- 組織ID
- 設(shè)備種類ID
- 設(shè)備ID
- 認(rèn)證方法
- 認(rèn)證口令
第二部:配置DragonBoard 410c
在410c中下載一個(gè)MQTT-client應(yīng)用
為了安裝物聯(lián)網(wǎng)平臺(tái)的客戶端庫(kù)以及MQTT-client應(yīng)用,我們需要按照下面的步驟進(jìn)行安裝:
首先是安裝最新版本的庫(kù), 在命令行中輸入如下指令:
[root@localhost ~]# git clone https://github.com/ibm-messaging/iotf-embeddedc.git
從下載后的壓縮文件中提取出代碼
cd iotf-embeddedc
tar xvzf org.eclipse.paho.mqtt.embedded-c-1.0.0.tar.gz
客戶端代碼的結(jié)構(gòu)如下所示
|-lib - contains all the dependent files
|-samples - contains the helloWorld and sampleDevice samples
|-sample device.c - sample device implementaTIon
|-helloworld.c - quickstart applicaTIon
|-README.md
|-Makefile
|-build.sh
|-iotfclient.c - Main client file
|-iotfclient.h - Header file for the client
搭建MQTT-client應(yīng)用
首先進(jìn)入到案例目錄下并執(zhí)行Make指令
cd iotf-embeddedc/samples
make
屏幕上可看到如下的輸出
cc sampleDevice.c -I ./https://developer.ibm.com/recipes/ -I ./https://developer.ibm.com/recipes/lib ./https://developer.ibm.com/recipes/iotfclient.c ./https://developer.ibm.com/recipes/lib/MQTTClient.c ./https://developer.ibm.com/recipes/lib/MQTTLinux.c ./https://developer.ibm.com/recipes/lib/MQTTFormat.c ./https://developer.ibm.com/recipes/lib/MQTTPacket.c ./https://developer.ibm.com/recipes/lib/MQTTDeserializePublish.c ./https://developer.ibm.com/recipes/lib/MQTTConnectClient.c ./https://developer.ibm.com/recipes/lib/MQTTSubscribeClient.c ./https://developer.ibm.com/recipes/lib/MQTTSerializePublish.c ./https://developer.ibm.com/recipes/lib/MQTTConnectServer.c ./https://developer.ibm.com/recipes/lib/MQTTSubscribeServer.c ./https://developer.ibm.com/recipes/lib/MQTTUnsubscribeServer.c ./https://developer.ibm.com/recipes/lib/MQTTUnsubscribeClient.c -o sampleDevice
strip sampleDevice
配置MQTT-client應(yīng)用的連接參數(shù)
為了能讓MQTT-client應(yīng)用能夠連接到Watson物聯(lián)網(wǎng)服務(wù)中, 我們需要將步驟一中的參數(shù)傳遞給連接參數(shù)。 連接參數(shù)可以通過命令行進(jìn)行修改,或者直接在設(shè)備配置文件中進(jìn)行修改:
打開設(shè)備配置文件:iotf-embeddedc/samples/device.cfg
nano iotf-embeddedc/samples/device.cfg
添加第一部中我們?cè)O(shè)置好的參數(shù)
org=$orgId
type=$myDeviceType
id=$myDeviceId
auth-method=$token
auth-token=$token
啟動(dòng)案例MQTT-client應(yīng)用
啟動(dòng)應(yīng)用后,我們就可以連接到服務(wù),而且我們能夠看到如下的輸出
ConnecTIng to registered service with org your org>
Publishing the event stat with rc 0
Publishing the event stat with rc 0
Publishing the event stat with rc 0
...
最后一步:在物聯(lián)網(wǎng)平臺(tái)的DashBoard上認(rèn)證連接設(shè)備
一旦Client-app啟動(dòng),我們就可以在IoT的DashBoard上配置設(shè)備并且驗(yàn)證連接與數(shù)據(jù)了:
首先登陸到賬號(hào)并開啟IoT的DashBoard
我們能在Board上看到傳輸來(lái)的JSON信息
總結(jié)
這次實(shí)驗(yàn)演示了:MQTT-client應(yīng)用的發(fā)布以及設(shè)備上IoT云服務(wù)的開啟。 接下來(lái)我們就可以基于410c與平臺(tái)進(jìn)行擴(kuò)展與開發(fā)應(yīng)用了。
我聯(lián)想到了多種可能的方案,以供參考:
1、擴(kuò)展MQTT-client應(yīng)用,從而訪問DragonBoard硬件
- 讀取DragonBoard410c的硬件狀態(tài)
- 讀取所連接的傳感器的值
- 控制所連接的運(yùn)動(dòng)器(如LED、馬達(dá)等
2、通過結(jié)合云服務(wù)與其他應(yīng)用來(lái)擴(kuò)展云端的容量,并與其他設(shè)備進(jìn)行互動(dòng)
- 數(shù)據(jù)可視化
- 數(shù)據(jù)存儲(chǔ)
- 數(shù)據(jù)分析
評(píng)論