本文介紹了基于Sitara AM5749平臺(tái)的ali-iot邊緣網(wǎng)關(guān)的配置方法。TI的新一代處理器平臺(tái)AM5749是多核異構(gòu)結(jié)構(gòu)的SOC,片上有兩個(gè)ARM核(ARM CORTEX-A15),兩個(gè)DSP(C66x)核,兩個(gè)EVE AI加速模塊。AM5749處理器是高度集成的器件,可用于實(shí)現(xiàn)高性能和多媒體應(yīng)用。板載加速器提供加速視覺(jué)和深度學(xué)習(xí)功能,支持多個(gè)工業(yè)以太網(wǎng)協(xié)議和視頻處理。對(duì)比AM57XX家族其他產(chǎn)品,AM5749支持完善的memory ECC校驗(yàn)功能,同時(shí)內(nèi)部直集成EVE深度學(xué)習(xí)加速模塊配合TIDL軟件開(kāi)發(fā)包,可以快速在嵌入式平臺(tái)實(shí)現(xiàn)深度學(xué)習(xí)的功能。阿里云是阿里巴巴集團(tuán)下的云計(jì)算產(chǎn)品,提供卓越的云計(jì)算服務(wù)與技術(shù)。本文間介紹阿里云和TIDL的環(huán)境搭建以及如何由阿里云和TIDL構(gòu)建一個(gè)云-邊緣聯(lián)合計(jì)算系統(tǒng)。本文在AM5749 IDK平臺(tái)上成功運(yùn)行ALI SDK并在ALI SDK和TIDL SDK的基礎(chǔ)上開(kāi)發(fā)了一系列適配軟件。軟件會(huì)對(duì)本地的存儲(chǔ)的圖片進(jìn)行AI識(shí)別,并且把識(shí)別的統(tǒng)計(jì)信息發(fā)到ALI CLOUD進(jìn)行統(tǒng)計(jì)。為了驗(yàn)證識(shí)別率本文在本地圖片摻入若干不可識(shí)別的空白圖片,識(shí)別結(jié)果見(jiàn)第五小節(jié),可以看出來(lái)識(shí)別結(jié)果穩(wěn)定可靠。本文僅介紹邊緣網(wǎng)關(guān)配置和運(yùn)行的操作步驟,本地程序原理等深入討論會(huì)在其他文章詳細(xì)描述。
一、本地操作,環(huán)境準(zhǔn)備:
注意:在編譯任何部件之前需要先設(shè)定EVM板的時(shí)間,日期與中國(guó)時(shí)區(qū)一致,小時(shí)數(shù)減8分鐘數(shù)不變。
date -s --
date –s ::
說(shuō)明:考慮到Link IoT Edge軟件包和OSS-C-SDK及其官方文檔處在不斷更新的狀態(tài),此文檔使用Link IoT Edge armv7 1.8.1、OSS- C-SDK 3.7.1供參考,隨文會(huì)貼出官方文檔連接。
1.各組件之間的關(guān)系如下圖:
說(shuō)明:藍(lán)色為TI提供的操作系統(tǒng),紫色為samba服務(wù)器,綠色為阿里云提供的軟件SDK,橙色為本文開(kāi)發(fā)的程序。
圖1系統(tǒng)框圖
2.在SD卡上安裝TI SDK:實(shí)際上是安裝TI定制的linux操作系統(tǒng)(圖1藍(lán)色部分)
TI SDK Version:ti-processor-sdk-linux-am57xx-evm-05.02.00.10
安裝參考鏈接:http://software-dl.ti.com/processor-sdk-linux/esd/docs/05_01_00_11/linux/Overview_Getting_Started_Guide.html
在AM5749上下載安裝Link IoT Edge標(biāo)準(zhǔn)版軟件包:link-iot-edge-armv7-v1.8.1.tar.gz
此軟件包提供阿里云在AM5749平臺(tái)上運(yùn)行的基本環(huán)境,負(fù)責(zé)網(wǎng)關(guān)設(shè)備與阿里云的通信、云資源部署等功能。(圖1綠色a)
安裝步驟:
a. AM5749開(kāi)發(fā)板超級(jí)終端窗口或者SSH終端窗口執(zhí)行以下命令,下載環(huán)境檢查工具并運(yùn)行:
#wget http://iotedge-web.oss-cn-shanghai.aliyuncs.com/public/testingTool/link-iot-edge_env-check.sh
#sudo chmod +x 。/link-iot-edge_env-check.sh
#sudo 。/link-iot-edge_env-check.sh
按照運(yùn)行環(huán)境檢查工具的提示在您的機(jī)器上安裝所有必需的依賴項(xiàng),當(dāng)檢查工具成功運(yùn)行完成后,返回如下圖信息,表示Link IoT Edge能夠在您的機(jī)器上成功運(yùn)行。
b. 在阿里云-》幫助文檔內(nèi),物聯(lián)網(wǎng)邊緣計(jì)算-》產(chǎn)品介紹-》發(fā)布?xì)v史 中尋找合適的軟件包,或使用下載地址:
http://link-iot-edge-packet.oss-cn-shanghai.aliyuncs.com/arm-linux-gnueabi/link-iot-edge-armv7-v1.8.1.tar.gz?spm=a2c4g.11186623.2.15.3bc42940lqj1FE&file=link-iot-edge-armv7-v1.8.1.tar.gz
c. 安裝:解壓即完成安裝,解壓命令如下:
$tar xzvf 《網(wǎng)關(guān)軟件包壓縮文件》.tar.gz –C /
至此,linkedge網(wǎng)關(guān)安裝完成
4. Link IoT Edge C SDK:link-iot-edge-access-sdk-c-master
此軟件包提供阿里云開(kāi)發(fā)的API,利用此API開(kāi)發(fā)者可以便捷的使用上述軟件包提供的服務(wù),是中間層的軟件庫(kù)。(圖1綠色c)
a. 在https://github.com/aliyun/link-iot-edge-access-sdk-c 下載SDK源文件,下載及解壓目錄可自定義;
b. 在編譯、生成驅(qū)動(dòng)程序時(shí)需要用到zip命令,但TI SDK中有unzip無(wú)zip,故需下載zip源碼,進(jìn)行編譯,下載地址:
https://sourceforge.net/projects/infozip/files/Zip%203.x%20%28latest%29/3.0/
下載完成后,解壓文件夾并放入目標(biāo)文件系統(tǒng)中,進(jìn)入目錄運(yùn)行命令:
#chmod +x 。/unix/configure
#./unix/configure
#make -f unix/Makefile generic
#make -f unix/Makefile install
至此zip命令可用
c. 開(kāi)始編譯安裝sdk和TI-test程序
#cd linkedge-thing-access-sdk-c
#make prepare //預(yù)編譯生成外部依賴庫(kù)將花費(fèi)一定時(shí)間
至此,SDK驅(qū)動(dòng)程序編譯完成。
5. Samba服務(wù)器(此步驟方便調(diào)試和文件交互,是可選步驟)。為方便使用EVM板文件系統(tǒng)的文件,故選擇安裝samba服務(wù)器。(圖1紫色)
源碼下載地址:https://download.samba.org/pub/samba/
安裝(EVM板上):
a. 進(jìn)入目錄/samba-3.5.22/source3;
b. 運(yùn)行。/configure
c. #make & make install(make時(shí)間比較長(zhǎng))
d. 配置動(dòng)態(tài)鏈接庫(kù)路徑:
#vi /etc/ld.so.conf
在添加一行新內(nèi)容:/usr/local/samba/lib
執(zhí)行命令: ldconfig
e. Samba配置文件smb.conf
配置文件的默認(rèn)路徑為 /usr/local/samba/lib/smb.conf
執(zhí)行命令 #vi /usr/local/samba/lib/smb.conf
添加內(nèi)容:
[share]
path = /
public = yes
writable = yes
available = yes
browseable = yes
f. 啟動(dòng)samba服務(wù)。
配置smb.conf文件后,在開(kāi)始運(yùn)行samba的服務(wù)進(jìn)程之前。我們需要先做一些準(zhǔn)備工作。運(yùn)行smbpasswd命令(在目錄/usr/local/samba/bin下)
# 。/smbpasswd –a root
向smb.conf文件中指定的/etc/samba/smbpasswd文件中添加root用戶以及密碼信息。
為使用方便,可以不設(shè)置密碼,直接回車即可。
下面是運(yùn)行samba的服務(wù)進(jìn)程smbd和nmbd
# /usr/local/samba/sbin/smbd –D –s /etc/samba/smb.conf
# /usr/local/samba/sbin/nmbd –D –s /etc/samba/smb.conf
g. 至此,可以根據(jù)上述用戶名登陸,無(wú)需密碼。
注意:AM574X EVM板掉電重啟后需要手動(dòng)啟動(dòng)samba服務(wù),故可創(chuàng)建一個(gè)txt文件,將上述命令寫入其中。
參考:https://www.cnblogs.com/lienhua34/archive/2012/03/18/2405081.html
6. 安裝阿里oss服務(wù)的 C-SDK(圖1綠色b):
此軟件包是阿里云存儲(chǔ)服務(wù)提供的API庫(kù)。
a. 安裝第三方依賴庫(kù):
Libcurl(7.64.0):https://curl.haxx.se/download.html?spm=a2c4g.11186623.2.20.364f27b91fJ4hg
apr(1.6.5)& apr-util(1.6.1):https://apr.apache.org/download.cgi?spm=a2c4g.11186623.2.22.364f27b9g4A30m&file=download.cgi
minixml(2.9):https://www.msweet.org/mxml/?spm=a2c4g.11186623.2.26.364f27b9uOegUa
安裝方式如下:
#./configure
#make
#make install
注意:
安裝apr時(shí),需使用。/configure CFLAGS=‘-Os’;
安裝apr-util時(shí),需使用 。/configure CFLAGS=‘-Os’ --with-apr=/usr/local/apr ;
minixml盡量安裝阿里OSS推薦的版本(2.9),以免報(bào)錯(cuò)。
b. 安裝C-SDK:
SDK下載地址:
此文檔實(shí)用的SDK版本為3.7.1
https://github.com/aliyun/aliyun-oss-c-sdk/tree/master?spm=a2c4g.11186623.2.10.3aa923d0lWS314
1. 安裝SDK需要用到CMAKE(2.6.0版本以上),CMAKE下載地址:
https://cmake.org/download?spm=a2c4g.11186623.2.18.6a7227b9pF3roO
安裝方式:
#./configure
#make
#make install
2. 安裝SDK:
#cmake 。
#make
#make install
官方文檔:https://help.aliyun.com/document_detail/32132.html?spm=a2c4g.11186623.6.868.14106ab3Nio9na
二、云端操作:創(chuàng)建網(wǎng)關(guān)設(shè)備、邊緣實(shí)例、云存儲(chǔ)空間
接下來(lái)需要在云端上創(chuàng)建相應(yīng)的網(wǎng)關(guān)設(shè)備、邊緣實(shí)例、camera、led設(shè)備;
官方文檔:https://help.aliyun.com/document_detail/103247.html?spm=a2c4g.11186623.6.564.7caa98caBP6fyd
1. 創(chuàng)建網(wǎng)關(guān)產(chǎn)品及設(shè)備:
a. 進(jìn)入阿里云控制臺(tái),進(jìn)入 邊緣計(jì)算à邊緣實(shí)例 頁(yè)面,點(diǎn)擊新建實(shí)例:
輸入實(shí)例名稱;
點(diǎn)擊新建網(wǎng)關(guān)產(chǎn)品;
輸入產(chǎn)品名稱,并在所屬分類中選擇 邊緣計(jì)算à邊緣網(wǎng)關(guān)點(diǎn)擊完成;
點(diǎn)擊新建網(wǎng)關(guān)設(shè)備,輸入設(shè)備名稱即可,結(jié)果如下:
單擊確認(rèn),邊緣實(shí)例已經(jīng)創(chuàng)建完成:
b. 創(chuàng)建設(shè)備:
ⅰ。 進(jìn)入邊緣實(shí)例詳情頁(yè)面(點(diǎn)擊上圖中的實(shí)例名稱):
ⅱ。 選擇子設(shè)備,并單擊分配子設(shè)備;
ⅲ。 在分配子設(shè)備頁(yè)面,單擊左下角的添加子設(shè)備;
ⅳ。單擊新產(chǎn)品,在輸入參數(shù)后,單擊完成:
ⅴ。 輸入設(shè)備名稱后單擊確定;
注意由于在AM574X EVM板上安裝mysql不成功,使用了txt文件作為存儲(chǔ)數(shù)據(jù)的載體,因此,為避免讀寫數(shù)據(jù)出錯(cuò),請(qǐng)將所有設(shè)備名統(tǒng)一長(zhǎng)度。
ⅵ。 在分配子設(shè)備頁(yè)面將上述添加的設(shè)備分配到邊緣節(jié)點(diǎn);
ⅶ。 進(jìn)入 設(shè)備管理à產(chǎn)品頁(yè)面,單擊傷處創(chuàng)建的產(chǎn)品進(jìn)入產(chǎn)品詳情頁(yè)面,選擇功能定義,在自定義功能一欄單擊添加功能:
按如圖為攝像頭產(chǎn)品添加自定義功能:
接下來(lái)將對(duì)Sub1GHz產(chǎn)品添加自定義功能(本平臺(tái)同時(shí)支持Sub1GHz傳感器網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)到云端):
ⅷ。 在子設(shè)備頁(yè)面,分別為子設(shè)備分配驅(qū)動(dòng);
1. 進(jìn)入 邊緣計(jì)算à驅(qū)動(dòng)管理 頁(yè)面,單擊新建驅(qū)動(dòng),語(yǔ)言類型選擇C語(yǔ)言,驅(qū)動(dòng)名稱自定義,上傳文件:為/demo/camera目錄下的zip文件。
2. 回到邊緣實(shí)例的子設(shè)備界面,為子設(shè)備分配驅(qū)動(dòng):
ⅸ。 至此,云端上所有設(shè)備創(chuàng)建完成
2. 對(duì)象存儲(chǔ)OSS存儲(chǔ)空間的創(chuàng)建
a. 進(jìn)入對(duì)象存儲(chǔ)服務(wù)的控制臺(tái),點(diǎn)擊左側(cè)列表的“+”新建存儲(chǔ)空間bucket:
b. Bucket名稱欄中,填入自定義的Bucket名稱,創(chuàng)建后無(wú)法修改;
c. 在區(qū)域欄中,選擇該存儲(chǔ)空間的數(shù)據(jù)中心,創(chuàng)建后無(wú)法修改;
d. 存儲(chǔ)類型選擇標(biāo)準(zhǔn)存儲(chǔ)
e. 讀寫權(quán)限使用私有,且不開(kāi)通實(shí)時(shí)日志查詢。
三、本地軟件編譯和配置
本文開(kāi)發(fā)的軟件包中,主要分為3部分:camera、imageRec、gateway_management。其中第一部分依賴阿里云Link IoT Edge C SDK開(kāi)發(fā)的虛擬設(shè)備驅(qū)動(dòng)程序,第二部分為基于TIDL的視頻物體識(shí)別程序,第三部分為協(xié)調(diào)前兩者的網(wǎng)關(guān)管理程序。為了三者能夠順利運(yùn)行,需進(jìn)行下述操作:
1. 將文件夾camera拷貝到
/link-iot-edge-access-sdk-c/demo目錄下,并將camera目錄下的demo.mk替換此目錄的demo.mk。在 /link-iot-edge-access-sdk-c/目錄下運(yùn)行下列命令,生成虛擬設(shè)備驅(qū)動(dòng)程序:
#make && make install
2.將文件夾imageRec拷貝到/usr/share/ti/tidl/examples目錄下,并在imageRec和 /imageRec/oss_server下執(zhí)行make命令進(jìn)行編譯。
注意:在oss_server下make之前需注意如下兩點(diǎn):
a. 需要設(shè)置環(huán)境變量:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LIBRARY_PATH=/usr/local/apr/lib:$LIBRARY_PATH
b. 需要對(duì)。/oss_server目錄下的upload.c作一定的修改:
設(shè)置在文件首定義的全局變量,這些全局變量的值根據(jù)上述創(chuàng)建的云存儲(chǔ)空間進(jìn)行賦值。
參考:https://yq.aliyun.com/articles/60924?spm=a2c4g.11186623.2.14.438551ffqcyND4
3. 文件夾gateway_management可放在任意位置,進(jìn)入該文件夾之后,通過(guò)。/make.txt完成編譯即可。
四、系統(tǒng)運(yùn)行步驟
1.進(jìn)入 設(shè)備管理à設(shè)備 頁(yè)面,點(diǎn)擊上述創(chuàng)建的網(wǎng)關(guān)設(shè)備,將設(shè)備信息中的ProductKey、DeviceName、DeviceSecret記錄下來(lái),用于后續(xù)啟動(dòng)網(wǎng)關(guān);
2.進(jìn)入目錄 /linkedge/gateway/build/script;
運(yùn)行命令,請(qǐng)講{YourProductKey} {YourDeviceName} {YourDeviceSecret}替換為1中記錄下來(lái)的三個(gè)信息:
#./set_gw_triple.sh {YourProductKey} {YourDeviceName} {YourDeviceSecret}
3.啟動(dòng)Link IoT Edge核定服務(wù);
#./iot_gateway_start.sh
4.執(zhí)行如下命令岔開(kāi)Link IoT Edge核心服務(wù)的運(yùn)行狀態(tài):
#./iot_gateway_status.sh
若系統(tǒng)顯示如下,表示Link IoT Edge核心服務(wù)啟動(dòng)成功
也可以進(jìn)入 邊緣計(jì)算à邊緣實(shí)例 點(diǎn)擊對(duì)應(yīng)的邊緣實(shí)例,查看網(wǎng)關(guān)狀態(tài),可以看到已經(jīng)在線:
5.在此頁(yè)面點(diǎn)擊右上角的部署,將資源部署到邊緣網(wǎng)關(guān)上:
6. 待部署完成后,后臺(tái)運(yùn)行g(shù)ateway_management程序,在gateway_management目錄下使用命令:
#./ gateway_management &
7.進(jìn)入/usr/share/ti/tidl/examples/imageRec/oss_server目錄,后臺(tái)運(yùn)行oss服務(wù)程序:
# 。/main &
8. 在/usr/share/ti/tidl/examples/imageRec目錄下,運(yùn)行TIDL的視頻物體識(shí)別程序:
# 。/imageRec -i 《視頻文件或目錄》
五、運(yùn)行結(jié)果
在云端,通過(guò)左側(cè)目錄,進(jìn)入 設(shè)備管理à設(shè)備 進(jìn)入前文創(chuàng)建的設(shè)備的詳情頁(yè)面,再進(jìn)入到運(yùn)行狀態(tài)的分頁(yè)面中,應(yīng)看到如下結(jié)果:
單擊成功率一欄的查看數(shù)據(jù),理應(yīng)看到如下結(jié)果:
為了使成功率更有說(shuō)服了,本文在識(shí)別圖片集里添加了部分不可識(shí)別的空白圖片,可以看到識(shí)別率很穩(wěn)定在0.679,說(shuō)明系統(tǒng)運(yùn)行平穩(wěn)。
本文驗(yàn)證了三大技術(shù):1,ALI IOT SDK在AM57XX平臺(tái)運(yùn)行,實(shí)現(xiàn)了邊緣計(jì)算網(wǎng)關(guān)的功能。2,AM57XX TIDL SDK利用AM5749 EVE加速單元實(shí)現(xiàn)了AI圖片分析的邊緣計(jì)算。3,同時(shí)此平臺(tái)還連接了運(yùn)行TI-15.4 Sub1G CC1310模塊,實(shí)現(xiàn)了傳感器網(wǎng)絡(luò)數(shù)據(jù)到Ali Cloud的轉(zhuǎn)發(fā)。
審核編輯:郭婷
-
傳感器
+關(guān)注
關(guān)注
2551文章
51106瀏覽量
753669 -
SDK
+關(guān)注
關(guān)注
3文章
1036瀏覽量
45957 -
邊緣計(jì)算
+關(guān)注
關(guān)注
22文章
3092瀏覽量
48972
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論