0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Sitara AM5749平台的ali-iot边缘网关的配置方法

电子设计 来源:电子设计 作者:电子设计 2022-01-19 14:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Other Parts Discussed in Post:AM5749, CC1310

作者: Denny Yang, Hu ZongQi

简介:本文介绍了基于Sitara AM5749平台的ali-iot边缘网关的配置方法。TI的新一代处理器平台AM5749是多核异构结构的SOC,片上有两个ARM核(ARM CORTEX-A15),两个DSP(C66x)核,两个EVE AI加速模块。AM5749处理器是高度集成的器件,可用于实现高性能和多媒体应用。板载加速器提供加速视觉和深度学习功能,支持多个工业以太网协议和视频处理。对比AM57XX家族其他产品,AM5749支持完善的memory ECC校验功能,同时内部直集成EVE深度学习加速模块配合TIDL软件开发包,可以快速在嵌入式平台实现深度学习的功能。阿里云是阿里巴巴集团下的云计算产品,提供卓越的云计算服务与技术。本文间介绍阿里云和TIDL的环境搭建以及如何由阿里云和TIDL构建一个云-边缘联合计算系统。本文在AM5749 IDK平台上成功运行ALI SDK并在ALI SDK和TIDL SDK的基础上开发了一系列适配软件。软件会对本地的存储的图片进行AI识别,并且把识别的统计信息发到ALI CLOUD进行统计。为了验证识别率本文在本地图片掺入若干不可识别的空白图片,识别结果见第五小节,可以看出来识别结果稳定可靠。本文仅介绍边缘网关配置和运行的操作步骤,本地程序原理等深入讨论会在其他文章详细描述。

一、本地操作,环境准备:

注意:在编译任何部件之前需要先设定EVM板的时间,日期与中国时区一致,小时数减8分钟数不变。

date -s--

date –s::

说明:考虑到Link IoT Edge软件包和OSS-C-SDK及其官方文档处在不断更新的状态,此文档使用Link IoT Edge armv7 1.8.1、OSS- C-SDK 3.7.1供参考,随文会贴出官方文档连接。

1.各组件之间的关系如下图:

说明:蓝色为TI提供的操作系统,紫色为samba服务器,绿色为阿里云提供的软件SDK,橙色为本文开发的程序。

poYBAGGKU82AeoXGAACjGzx8hzY141.png

图1系统框图

2.在SD卡上安装TI SDK:实际上是安装TI定制的linux操作系统(图1蓝色部分)

TI SDKVersion: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标准版软件包:link-iot-edge-armv7-v1.8.1.tar.gz

此软件包提供阿里云在AM5749平台上运行的基本环境,负责网关设备与阿里云的通信、云资源部署等功能。(图1绿色a)

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

安装步骤:

a. AM5749开发板超级终端窗口或者SSH终端窗口执行以下命令,下载环境检查工具并运行:

#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

按照运行环境检查工具的提示在您的机器上安装所有必需的依赖项,当检查工具成功运行完成后,返回如下图信息,表示Link IoT Edge能够在您的机器上成功运行。

poYBAGGKU8-AKJgaAAGZyEGidnc614.png

b. 在阿里云->帮助文档内,物联网边缘计算->产品介绍->发布历史 中寻找合适的软件包,或使用下载地址:

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 <网关软件包压缩文件>.tar.gz –C /

至此,linkedge网关安装完成

4. Link IoT Edge C SDK:link-iot-edge-access-sdk-c-master

此软件包提供阿里云开发的API,利用此API开发者可以便捷的使用上述软件包提供的服务,是中间层的软件库。(图1绿色c)

a. 在https://github.com/aliyun/link-iot-edge-access-sdk-c 下载SDK源文件,下载及解压目录可自定义;

b. 在编译、生成驱动程序时需要用到zip命令,但TI SDK中有unzip无zip,故需下载zip源码,进行编译,下载地址:

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

下载完成后,解压文件夹并放入目标文件系统中,进入目录运行命令:

#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 //预编译生成外部依赖库将花费一定时间

至此,SDK驱动程序编译完成。

5. Samba服务器(此步骤方便调试和文件交互,是可选步骤)。为方便使用EVM板文件系统的文件,故选择安装samba服务器。(图1紫色)

源码下载地址:https://download.samba.org/pub/samba/

安装(EVM板上):

a. 进入目录/samba-3.5.22/source3;

b. 运行./configure

c. #make & make install(make时间比较长)

d. 配置动态链接库路径:

#vi /etc/ld.so.conf

在添加一行新内容:/usr/local/samba/lib

执行命令: ldconfig

e. Samba配置文件smb.conf

配置文件的默认路径为 /usr/local/samba/lib/smb.conf

执行命令 #vi /usr/local/samba/lib/smb.conf

添加内容:

[share]

path = /

public = yes

writable = yes

available = yes

browseable = yes

f. 启动samba服务。

配置smb.conf文件后,在开始运行samba的服务进程之前。我们需要先做一些准备工作。运行smbpasswd命令(在目录/usr/local/samba/bin下)

# ./smbpasswd –a root

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

为使用方便,可以不设置密码,直接回车即可。

下面是运行samba的服务进程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. 至此,可以根据上述用户名登陆,无需密码。

注意:AM574X EVM板掉电重启后需要手动启动samba服务,故可创建一个txt文件,将上述命令写入其中。

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

6. 安装阿里oss服务的 C-SDK(图1绿色b):

此软件包是阿里云存储服务提供的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

二、云端操作:创建网关设备、边缘实例、云存储空间

接下来需要在云端上创建相应的网关设备、边缘实例、camera、led设备;

官方文档:https://help.aliyun.com/document_detail/103247.html?spm=a2c4g.11186623.6.564.7caa98caBP6fyd

1. 创建网关产品及设备:

a. 进入阿里云控制台,进入 边缘计算à边缘实例 页面,点击新建实例:

pYYBAGGKU9CAV-X6AAAwEktjEvs208.png

输入实例名称;

点击新建网关产品;

输入产品名称,并在所属分类中选择边缘计算à边缘网关点击完成;

点击新建网关设备,输入设备名称即可,结果如下:

pYYBAGGKU9KAWsQcAAAw83-0BRU466.png

单击确认,边缘实例已经创建完成:

poYBAGGKU9SABx55AACCYiA2jD0956.png

b. 创建设备:

ⅰ. 进入边缘实例详情页面(点击上图中的实例名称):

ⅱ. 选择子设备,并单击分配子设备;

ⅲ. 在分配子设备页面,单击左下角的添加子设备;

poYBAGGKU9WAFQo-AABB94L14lA651.png

ⅳ.单击新产品,在输入参数后,单击完成:

pYYBAGGKU9eAS_JWAAAfD8w_F1c049.png

ⅴ. 输入设备名称后单击确定;

注意由于在AM574X EVM板上安装mysql不成功,使用了txt文件作为存储数据的载体,因此,为避免读写数据出错,请将所有设备名统一长度。

ⅵ. 在分配子设备页面将上述添加的设备分配到边缘节点;

ⅶ. 进入 设备管理à产品页面,单击伤处创建的产品进入产品详情页面,选择功能定义,在自定义功能一栏单击添加功能:

按如图为摄像头产品添加自定义功能:

poYBAGGKU9mAY2seAAB2LLBKYus657.png

接下来将对Sub1GHz产品添加自定义功能(本平台同时支持Sub1GHz传感器网络数据转发到云端):

poYBAGGKU9uAAkvPAABa3DaIPrQ108.png

ⅷ. 在子设备页面,分别为子设备分配驱动;

1. 进入 边缘计算à驱动管理 页面,单击新建驱动,语言类型选择C语言,驱动名称自定义,上传文件:为/demo/camera目录下的zip文件。

2. 回到边缘实例的子设备界面,为子设备分配驱动:

ⅸ. 至此,云端上所有设备创建完成

2. 对象存储OSS存储空间的创建

a. 进入对象存储服务的控制台,点击左侧列表的“+”新建存储空间bucket:

pYYBAGGKU9yAN5iZAABX4c8bf_s142.png

b. Bucket名称栏中,填入自定义的Bucket名称,创建后无法修改;

c. 在区域栏中,选择该存储空间的数据中心,创建后无法修改;

d. 存储类型选择标准存储

e. 读写权限使用私有,且不开通实时日志查询。

三、本地软件编译和配置

本文开发的软件包中,主要分为3部分:camera、imageRec、gateway_management。其中第一部分依赖阿里云Link IoT Edge C SDK开发的虚拟设备驱动程序,第二部分为基于TIDL的视频物体识别程序,第三部分为协调前两者的网关管理程序。为了三者能够顺利运行,需进行下述操作:

1. 将文件夹camera拷贝到

/link-iot-edge-access-sdk-c/demo目录下,并将camera目录下的demo.mk替换此目录的demo.mk。在/link-iot-edge-access-sdk-c/目录下运行下列命令,生成虚拟设备驱动程序:

#make && make install

2.将文件夹imageRec拷贝到/usr/share/ti/tidl/examples目录下,并在imageRec和 /imageRec/oss_server下执行make命令进行编译。

注意:在oss_server下make之前需注意如下两点:

a. 需要设置环境变量:

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

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

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

设置在文件首定义的全局变量,这些全局变量的值根据上述创建的云存储空间进行赋值。

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

3. 文件夹gateway_management可放在任意位置,进入该文件夹之后,通过./make.txt完成编译即可。

四、系统运行步骤

1.进入 设备管理à设备 页面,点击上述创建的网关设备,将设备信息中的ProductKey、DeviceName、DeviceSecret记录下来,用于后续启动网关;

2.进入目录 /linkedge/gateway/build/script;

运行命令,请讲{YourProductKey} {YourDeviceName} {YourDeviceSecret}替换为1中记录下来的三个信息:

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

pYYBAGGKU96AGj78AADLoueh2Pw737.png

3.启动Link IoT Edge核定服务;

#./iot_gateway_start.sh

poYBAGGKU-CAGhqRAACe8WhwNJE896.png

poYBAGGKU-KAaHnGAACoc2_rz5Q217.png

pYYBAGGKU-OAXVQaAADqQYl6tTk795.png

4.执行如下命令岔开Link IoT Edge核心服务的运行状态:

#./iot_gateway_status.sh

若系统显示如下,表示Link IoT Edge核心服务启动成功

poYBAGGKU-WAHSeZAACg5kBLuhs572.png

也可以进入边缘计算à边缘实例点击对应的边缘实例,查看网关状态,可以看到已经在线:

poYBAGGKU-aARLJlAAB4DpjkuMg009.png

5.在此页面点击右上角的部署,将资源部署到边缘网关上:

pYYBAGGKU-iAXej7AAA-qM9R6Qg743.png

6. 待部署完成后,后台运行gateway_management程序,在gateway_management目录下使用命令:

\#./ gateway_management &

7.进入/usr/share/ti/tidl/examples/imageRec/oss_server目录,后台运行oss服务程序:

# ./main &

8. 在/usr/share/ti/tidl/examples/imageRec目录下,运行TIDL的视频物体识别程序:

# ./imageRec -i <视频文件或目录>

五、运行结果

在云端,通过左侧目录,进入设备管理à设备进入前文创建的设备的详情页面,再进入到运行状态的分页面中,应看到如下结果:

poYBAGGKU-qAX_VTAABWU8yQ6GQ591.png

单击成功率一栏的查看数据,理应看到如下结果:

pYYBAGGKU-uAOPo5AAA1-Lwa9e4733.png

为了使成功率更有说服了,本文在识别图片集里添加了部分不可识别的空白图片,可以看到识别率很稳定在0.679,说明系统运行平稳。

本文验证了三大技术:1,ALI IOT SDK在AM57XX平台运行,实现了边缘计算网关的功能。2,AM57XX TIDL SDK利用AM5749 EVE加速单元实现了AI图片分析的边缘计算。3,同时此平台还连接了运行TI-15.4 Sub1G CC1310模块,实现了传感器网络数据到Ali Cloud的转发。

审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式处理
    +关注

    关注

    0

    文章

    341

    浏览量

    10450
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    IoT模组与IoT网关有什么区别和联系

    IoT模组 IoT网关 功能定位 设备端通信与数据处理核心 网络边缘的数据汇聚与协议转换枢纽 核心作用 实现设备与网络的连接及基础数据处理 连接异构设备、优化数据传输、保障安全 技术
    的头像 发表于 10-24 15:24 346次阅读

    AM243x Sitara™ 微控制器技术文档总结

    AM243x 是 Sitara 工业级产品组合向高性能微控制器的扩展。AM243x 器件专为工业应用而构建,例如电机驱动器和远程 I/O 模块,这些应用需要实时通信和处理的结合。AM2
    的头像 发表于 10-10 09:53 792次阅读
    ‌<b class='flag-5'>AM</b>243x <b class='flag-5'>Sitara</b>™ 微控制器技术文档总结

    MQTT网关具备边缘计算功能吗?有什么功能?

    现代MQTT网关通常具备边缘计算功能,尤其是为适应物联网(IoT)场景中低延迟、高可靠、带宽优化等需求而设计的新一代网关。传统MQTT网关
    的头像 发表于 07-15 15:01 578次阅读
    MQTT<b class='flag-5'>网关</b>具备<b class='flag-5'>边缘</b>计算功能吗?有什么功能?

    边缘计算网关有些品牌?有哪些推荐

    ,依托华为云IoT平台无缝对接100+工业协议,构建“端-边-管-云”闭环生态。典型案例中,华为网关在煤矿项目中通过远程操控和4K视频回传,将事故率降低60%,成为智能矿山、汽车制造等场景的首选。推荐型号如EC-
    的头像 发表于 07-11 14:31 626次阅读

    开疆智能ModbusTCP转CClinkIE网关连接达DVP-ES3 PLC配置案例

    本案例是通过开疆智能研发的ModbusTCP转CClinkIE网关连接达DVP-ES3 PLC的配置案例。
    的头像 发表于 06-28 13:56 643次阅读
    开疆智能ModbusTCP转CClinkIE<b class='flag-5'>网关</b>连接<b class='flag-5'>台</b>达DVP-ES3 PLC<b class='flag-5'>配置</b>案例

    边缘计算网关+工业互联网平台有什么应用

    边缘计算网关与工业互联网平台的结合在工业领域具有广泛且重要的应用,主要体现在以下几个方面: 一、实时数据采集与处理 高效数据采集:边缘计算网关
    的头像 发表于 06-23 15:37 537次阅读

    开疆智能Devicenet转ModbusTCP网关连接达从站通讯模块配置案例

    本案例是通过开疆智能Devicenet转ModbusTCP网关连接达Devicenet从站通讯模块DVPDT02-H2的配置案例,网关作为ModbusTCP服务器和Devicenet
    的头像 发表于 06-17 16:45 686次阅读
    开疆智能Devicenet转ModbusTCP<b class='flag-5'>网关</b>连接<b class='flag-5'>台</b>达从站通讯模块<b class='flag-5'>配置</b>案例

    蓝牙网关选择的方法

    ‌ · 支持集中管理平台(如AC Server)的网关可批量配置参数,提升运维效率。 · 开放API接口(300+)和SDK支持二次开发,便于与第三方系统(如阿里云、AWS IoT)集
    发表于 04-21 16:25

    工业人必看:边缘网关与普通网关的区别

    在物联网(IoT)技术迅猛发展的背景下,网关作为连接物理世界和数字世界的桥梁,扮演着至关重要的角色。然而,随着应用场景的不断拓展和技术要求的日益提高,传统的普通网关已经难以满足所有需求。边缘
    的头像 发表于 04-19 09:46 576次阅读
    工业人必看:<b class='flag-5'>边缘</b><b class='flag-5'>网关</b>与普通<b class='flag-5'>网关</b>的区别

    工业智能网关与数据采集IOT有哪些关系

    工业智能网关与数据采集IoT是工业互联网架构中的核心组件,二者协同构建从边缘到云端的数据全链路。其核心联系体现在以下层面: 1. 数据管道的构建者
    的头像 发表于 03-27 17:10 778次阅读
    工业智能<b class='flag-5'>网关</b>与数据采集<b class='flag-5'>IOT</b>中<b class='flag-5'>台</b>有哪些关系

    使用边缘采集网关时的常见问题

    在工业互联网与物联网(IoT)快速发展的背景下,边缘采集网关作为连接物理设备与数字世界的核心枢纽,其重要性不言而喻。然而,在实际应用中,用户常面临数据采集异常、网络连接不稳定、协议兼容性不足等
    的头像 发表于 03-27 16:22 823次阅读

    什么是边缘计算网关?深度解析边缘计算网关的核心技术与应用场景

    在物联网(IoT)和工业 4.0 的浪潮中,边缘计算网关正成为连接物理世界与数字世界的核心枢纽。这种设备不仅能够实时处理数据,还能减轻云端负担,提升系统响应速度。本文将从技术原理、架构设计、应用场
    的头像 发表于 03-24 10:02 1319次阅读
    什么是<b class='flag-5'>边缘</b>计算<b class='flag-5'>网关</b>?深度解析<b class='flag-5'>边缘</b>计算<b class='flag-5'>网关</b>的核心技术与应用场景

    IOT边缘计算网关有什么功能及应用场景

    IOT边缘计算网关是一种部署在物联网边缘设备与云端平台之间的智能设备,具有以下主要功能: 数据采集与处理 数据采集:
    的头像 发表于 03-18 17:25 864次阅读

    AI赋能边缘网关:开启智能时代的新蓝海

    在数字化转型的浪潮中,AI与边缘计算的结合正掀起一场深刻的产业变革。边缘网关作为连接物理世界与数字世界的桥梁,在AI技术的加持下,正从简单的数据采集传输节点,进化为具备智能决策能力的边缘
    发表于 02-15 11:41

    5G/4G工业边缘网关 边缘计算 硬核配置强算力

    随着物联网(IoT)和工业4.0的快速发展,边缘计算逐渐成为企业数字化转型的重要组成部分,旨在优化工业生产过程中的数据处理和设备管理。工业边缘网关作为连接现场设备与云
    的头像 发表于 12-27 14:35 961次阅读
    5G/4G工业<b class='flag-5'>边缘</b><b class='flag-5'>网关</b> <b class='flag-5'>边缘</b>计算 硬核<b class='flag-5'>配置</b>强算力