博客專欄

        EEPW首頁 > 博客 > 基于Sitara的Ali-IOT邊緣網(wǎng)關(guān)設(shè)置方法

        基于Sitara的Ali-IOT邊緣網(wǎng)關(guān)設(shè)置方法

        發(fā)布人:dianlaotie 時間:2019-07-09 來源:工程師 發(fā)布文章

        作者: Denny Yang, Hu ZongQi

        簡介:本文介紹了基于Sitara AM5749平臺的ali-iot邊緣網(wǎng)關(guān)的配置方法。TI的新一代處理器平臺AM5749是多核異構(gòu)結(jié)構(gòu)的SOC,片上有兩個ARM核(ARM CORTEX-A15),兩個DSP(C66x)核,兩個EVE AI加速模塊。AM5749處理器是高度集成的器件,可用于實現(xiàn)高性能和多媒體應(yīng)用。板載加速器提供加速視覺和深度學(xué)習(xí)功能,支持多個工業(yè)以太網(wǎng)協(xié)議和視頻處理。對比AM57XX家族其他產(chǎn)品,AM5749支持完善的memory ECC校驗功能,同時內(nèi)部直集成EVE深度學(xué)習(xí)加速模塊配合TIDL軟件開發(fā)包,可以快速在嵌入式平臺實現(xiàn)深度學(xué)習(xí)的功能。阿里云是阿里巴巴集團下的云計算產(chǎn)品,提供卓越的云計算服務(wù)與技術(shù)。本文間介紹阿里云和TIDL的環(huán)境搭建以及如何由阿里云和TIDL構(gòu)建一個云-邊緣聯(lián)合計算系統(tǒng)。本文在AM5749 IDK平臺上成功運行ALI SDK并在ALI SDK和TIDL SDK的基礎(chǔ)上開發(fā)了一系列適配軟件。軟件會對本地的存儲的圖片進行AI識別,并且把識別的統(tǒng)計信息發(fā)到ALI CLOUD進行統(tǒng)計。為了驗證識別率本文在本地圖片摻入若干不可識別的空白圖片,識別結(jié)果見第五小節(jié),可以看出來識別結(jié)果穩(wěn)定可靠。本文僅介紹邊緣網(wǎng)關(guān)配置和運行的操作步驟,本地程序原理等深入討論會在其他文章詳細描述。

        一、本地操作,環(huán)境準(zhǔn)備:

        注意:在編譯任何部件之前需要先設(shè)定EVM板的時間,日期與中國時區(qū)一致,小時數(shù)減8分鐘數(shù)不變。

        date -s <year>-<month>-<day>

        date –s <hour>:<minute>:<second>

        說明:考慮到Link IoT Edge軟件包和OSS-C-SDK及其官方文檔處在不斷更新的狀態(tài),此文檔使用Link IoT Edge armv7 1.8.1OSS- C-SDK 3.7.1供參考,隨文會貼出官方文檔連接。

        1.各組件之間的關(guān)系如下圖:

        說明:藍色為TI提供的操作系統(tǒng),紫色為samba服務(wù)器,綠色為阿里云提供的軟件SDK,橙色為本文開發(fā)的程序。


        1系統(tǒng)框圖


        2.在SD卡上安裝TI SDK:實際上是安裝TI定制的linux操作系統(tǒng)(圖1藍色部分)

        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

        下載連接:http://software-dl.ti.com/processor-sdk-linux/esd/AM57X/latest/index_FDS.html

        在AM5749上下載安裝Link IoT Edge標(biāo)準(zhǔn)版軟件包:link-iot-edge-armv7-v1.8.1.tar.gz

        此軟件包提供阿里云在AM5749平臺上運行的基本環(huán)境,負責(zé)網(wǎng)關(guān)設(shè)備與阿里云的通信、云資源部署等功能。(圖1綠色a)

        官方文檔: https://help.aliyun.com/document_detail/102729.html?spm=a2c4g.11186623.6.556.3bc42940lqj1FE 

        安裝步驟:

        a. AM5749開發(fā)板超級終端窗口或者SSH終端窗口執(zhí)行以下命令,下載環(huá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

        按照運行環(huán)境檢查工具的提示在您的機器上安裝所有必需的依賴項,當(dāng)檢查工具成功運行完成后,返回如下圖信息,表示Link IoT Edge能夠在您的機器上成功運行。

        b. 在阿里云->幫助文檔內(nèi),物聯(lián)網(wǎng)邊緣計算->產(chǎn)品介紹->發(fā)布歷史 中尋找合適的軟件包,或使用下載地址:

        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

        此軟件包提供阿里云開發(fā)的API,利用此API開發(fā)者可以便捷的使用上述軟件包提供的服務(wù),是中間層的軟件庫。(圖1綠色c)

        a. 在https://github.com/aliyun/link-iot-edge-access-sdk-c   下載SDK源文件,下載及解壓目錄可自定義;

        b. 在編譯、生成驅(qū)動程序時需要用到zip命令,但TI SDK中有unzip無zip,故需下載zip源碼,進行編譯,下載地址:

        https://sourceforge.net/projects/infozip/files/Zip%203.x%20%28latest%29/3.0/

        下載完成后,解壓文件夾并放入目標(biāo)文件系統(tǒng)中,進入目錄運行命令:

        #chmod +x ./unix/configure

        #./unix/configure

        #make -f unix/Makefile generic

        #make -f unix/Makefile install

        至此zip命令可用

        c. 開始編譯安裝sdk和TI-test程序

        #cd linkedge-thing-access-sdk-c

        #make prepare             //預(yù)編譯生成外部依賴庫將花費一定時間

        至此,SDK驅(qū)動程序編譯完成。

        5. Samba服務(wù)器(此步驟方便調(diào)試和文件交互,是可選步驟)。為方便使用EVM板文件系統(tǒng)的文件,故選擇安裝samba服務(wù)器。(圖1紫色)

        源碼下載地址:https://download.samba.org/pub/samba/

        安裝(EVM板上):

        a. 進入目錄/samba-3.5.22/source3;

        b. 運行./configure

        c. #make & make install(make時間比較長)

        d. 配置動態(tài)鏈接庫路徑:

        #vi /etc/ld.so.conf

        在添加一行新內(nèi)容:/usr/local/samba/lib

        執(zhí)行命令: ldconfig

        e. Samba配置文件smb.conf

        配置文件的默認路徑為   /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. 啟動samba服務(wù)。

        配置smb.conf文件后,在開始運行samba的服務(wù)進程之前。我們需要先做一些準(zhǔn)備工作。運行smbpasswd命令(在目錄/usr/local/samba/bin下)

        # ./smbpasswd –a root

        向smb.conf文件中指定的/etc/samba/smbpasswd文件中添加root用戶以及密碼信息。

        為使用方便,可以不設(shè)置密碼,直接回車即可。

        下面是運行samba的服務(wù)進程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ù)上述用戶名登陸,無需密碼。

        注意:AM574X EVM板掉電重啟后需要手動啟動samba服務(wù),故可創(chuàng)建一個txt文件,將上述命令寫入其中。

        參考:https://www.cnblogs.com/lienhua34/archive/2012/03/18/2405081.html

        6. 安裝阿里oss服務(wù)的 C-SDK(圖1綠色b):

        此軟件包是阿里云存儲服務(wù)提供的API庫。

        a. 安裝第三方依賴庫:

        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時,需使用./configure CFLAGS='-Os';

        安裝apr-util時,需使用 ./configure CFLAGS='-Os' --with-apr=/usr/local/apr ;

        minixml盡量安裝阿里OSS推薦的版本(2.9),以免報錯。

        b. 安裝C-SDK:

        SDK下載地址:

        此文檔實用的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è)備、邊緣實例、云存儲空間


        接下來需要在云端上創(chuàng)建相應(yīng)的網(wǎng)關(guān)設(shè)備、邊緣實例、cameraled設(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. 進入阿里云控制臺,進入 邊緣計算à邊緣實例 頁面,點擊新建實例:

        輸入實例名稱;

        點擊新建網(wǎng)關(guān)產(chǎn)品;

        輸入產(chǎn)品名稱,并在所屬分類中選擇  邊緣計算à邊緣網(wǎng)關(guān)點擊完成;

        點擊新建網(wǎng)關(guān)設(shè)備,輸入設(shè)備名稱即可,結(jié)果如下:

        單擊確認,邊緣實例已經(jīng)創(chuàng)建完成:

        b. 創(chuàng)建設(shè)備:

        ⅰ. 進入邊緣實例詳情頁面(點擊上圖中的實例名稱):

        ⅱ. 選擇子設(shè)備,并單擊分配子設(shè)備;

        ⅲ. 在分配子設(shè)備頁面,單擊左下角的添加子設(shè)備;

        ⅳ.單擊新產(chǎn)品,在輸入?yún)?shù)后,單擊完成:


        ⅴ. 輸入設(shè)備名稱后單擊確定;

        注意由于在AM574X EVM板上安裝mysql不成功,使用了txt文件作為存儲數(shù)據(jù)的載體,因此,為避免讀寫數(shù)據(jù)出錯,請將所有設(shè)備名統(tǒng)一長度。

        ⅵ. 在分配子設(shè)備頁面將上述添加的設(shè)備分配到邊緣節(jié)點;

        ⅶ. 進入 設(shè)備管理à產(chǎn)品頁面,單擊傷處創(chuàng)建的產(chǎn)品進入產(chǎn)品詳情頁面,選擇功能定義,在自定義功能一欄單擊添加功能:

        按如圖為攝像頭產(chǎn)品添加自定義功能:

        接下來將對Sub1GHz產(chǎn)品添加自定義功能(本平臺同時支持Sub1GHz傳感器網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)到云端):

        ⅷ. 在子設(shè)備頁面,分別為子設(shè)備分配驅(qū)動;



        1. 進入 邊緣計算à驅(qū)動管理 頁面,單擊新建驅(qū)動,語言類型選擇C語言,驅(qū)動名稱自定義,上傳文件:為<sdk director>/demo/camera目錄下的zip文件。



        2. 回到邊緣實例的子設(shè)備界面,為子設(shè)備分配驅(qū)動:



        ⅸ. 至此,云端上所有設(shè)備創(chuàng)建完成



        2. 對象存儲OSS存儲空間的創(chuàng)建



        a. 進入對象存儲服務(wù)的控制臺,點擊左側(cè)列表的“+”新建存儲空間bucket:


        b. Bucket名稱欄中,填入自定義的Bucket名稱,創(chuàng)建后無法修改;

        c. 在區(qū)域欄中,選擇該存儲空間的數(shù)據(jù)中心,創(chuàng)建后無法修改;

        d. 存儲類型選擇標(biāo)準(zhǔn)存儲

        e. 讀寫權(quán)限使用私有,且不開通實時日志查詢。



        三、本地軟件編譯和配置


        本文開發(fā)的軟件包中,主要分為3部分:cameraimageRecgateway_management。其中第一部分依賴阿里云Link IoT Edge C SDK開發(fā)的虛擬設(shè)備驅(qū)動程序,第二部分為基于TIDL的視頻物體識別程序,第三部分為協(xié)調(diào)前兩者的網(wǎng)關(guān)管理程序。為了三者能夠順利運行,需進行下述操作:


        1. 將文件夾camera拷貝到<Link IoT Edge軟件包安裝路徑>/link-iot-edge-access-sdk-c/demo目錄下,并將camera目錄下的demo.mk替換此目錄的demo.mk。在<Link IoT Edge軟件包安裝路徑>/link-iot-edge-access-sdk-c/目錄下運行下列命令,生成虛擬設(shè)備驅(qū)動程序:

        #make && make install



        2.將文件夾imageRec拷貝到/usr/share/ti/tidl/examples目錄下,并在imageRec和 /imageRec/oss_server下執(zhí)行make命令進行編譯。

        注意:在oss_server下make之前需注意如下兩點:

        a. 需要設(shè)置環(huán)境變量:

        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

        export LIBRARY_PATH=/usr/local/apr/lib:$LIBRARY_PATH

        b. 需要對./oss_server目錄下的upload.c作一定的修改:

        設(shè)置在文件首定義的全局變量,這些全局變量的值根據(jù)上述創(chuàng)建的云存儲空間進行賦值。

        參考https://yq.aliyun.com/articles/60924?spm=a2c4g.11186623.2.14.438551ffqcyND4 

        3. 文件夾gateway_management可放在任意位置,進入該文件夾之后,通過./make.txt完成編譯即可。

        四、系統(tǒng)運行步驟


        1.進入 設(shè)備管理à設(shè)備 頁面,點擊上述創(chuàng)建的網(wǎng)關(guān)設(shè)備,將設(shè)備信息中的ProductKey、DeviceName、DeviceSecret記錄下來,用于后續(xù)啟動網(wǎng)關(guān);


        2.進入目錄 /linkedge/gateway/build/script;

        運行命令,請講{YourProductKey} {YourDeviceName} {YourDeviceSecret}替換為1中記錄下來的三個信息:

        #./set_gw_triple.sh {YourProductKey} {YourDeviceName} {YourDeviceSecret}

        3.啟動Link IoT Edge核定服務(wù);

        #./iot_gateway_start.sh

        4.執(zhí)行如下命令岔開Link IoT Edge核心服務(wù)的運行狀態(tài):

        #./iot_gateway_status.sh

        若系統(tǒng)顯示如下,表示Link IoT Edge核心服務(wù)啟動成功

        也可以進入 邊緣計算à邊緣實例 點擊對應(yīng)的邊緣實例,查看網(wǎng)關(guān)狀態(tài),可以看到已經(jīng)在線:


        5.在此頁面點擊右上角的部署,將資源部署到邊緣網(wǎng)關(guān)上:

        6. 待部署完成后,后臺運行g(shù)ateway_management程序,在gateway_management目錄下使用命令:

        \#./ gateway_management &

        7.進入/usr/share/ti/tidl/examples/imageRec/oss_server目錄,后臺運行oss服務(wù)程序:

        # ./main &

        8. 在/usr/share/ti/tidl/examples/imageRec目錄下,運行TIDL的視頻物體識別程序:

        # ./imageRec -i <視頻文件或目錄>

        五、運行結(jié)果

        在云端,通過左側(cè)目錄,進入  設(shè)備管理à設(shè)備 進入前文創(chuàng)建的設(shè)備的詳情頁面,再進入到運行狀態(tài)的分頁面中,應(yīng)看到如下結(jié)果:

         單擊成功率一欄的查看數(shù)據(jù),理應(yīng)看到如下結(jié)果:

        為了使成功率更有說服了,本文在識別圖片集里添加了部分不可識別的空白圖片,可以看到識別率很穩(wěn)定在0.679,說明系統(tǒng)運行平穩(wěn)。

        本文驗證了三大技術(shù):1ALI IOT SDKAM57XX平臺運行,實現(xiàn)了邊緣計算網(wǎng)關(guān)的功能。2AM57XX TIDL SDK利用AM5749 EVE加速單元實現(xiàn)了AI圖片分析的邊緣計算。3,同時此平臺還連接了運行TI-15.4 Sub1G CC1310模塊,實現(xiàn)了傳感器網(wǎng)絡(luò)數(shù)據(jù)到Ali Cloud的轉(zhuǎn)發(fā)。


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。

        接地電阻相關(guān)文章:接地電阻測試方法




        關(guān)鍵詞:

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 凤山县| 蒙阴县| 建平县| 长泰县| 竹溪县| 连平县| 内乡县| 重庆市| 安塞县| 开封县| 博野县| 香格里拉县| 南郑县| 临颍县| 宁蒗| 永胜县| 泰安市| 斗六市| 微山县| 千阳县| 神木县| 南陵县| 安平县| 婺源县| 灵台县| 双鸭山市| 万盛区| 乃东县| 渝中区| 改则县| 崇左市| 新津县| 宜兰县| 遵义市| 来凤县| 招远市| 射阳县| 平泉县| 垫江县| 哈巴河县| 昌吉市|