亿琪软件-开源博客 - EdgeX
type: channel
link: https://www.yiqisoft.cn/blogs/tag/EdgeX/
items: 在 ubuntu22.04 中 安装 EdgeX 并运行 device-sdk-c sample
items: K3S 私有化部署方案实践
items: 喜报｜亿琪软件被认定为2023年高新技术企业
items: 文档｜EdgeX 设备微服务之 OPC-UA -- device-opcua 完整使用手册
items: 开源｜EdgeX 边缘计算驱动之 OPC-UA
items: 文档｜EdgeX 设备微服务之西门子 S7 -- device-s7 完整使用手册
items: 分享｜EdgeX 案例之 BACnet 设备读取，并通过物联网平台展示分析
items: 分享｜EdgeX FAQ4 常见问题和解答四
items: 分享｜EdgeX FAQ3 常见问题和解答三
items: 分享｜EdgeX FAQ2 常见问题和解答二

在 ubuntu22.04 中 安装 EdgeX 并运行 device-sdk-c sample
type: item
date: 2025-03-13T09:15:00+00:00
description: 在 ubuntu22.04 中 安装 EdgeX 并运行 device-sdk-c sample 1.克隆源码-EdgeX 2.安装工具 3.编译运行-EdgeX 4.克隆源码-SDK-C 5.添加第三方依赖库 6.编译-C SDK 7.编译运行 random 设备服务示例 总结 在 ubuntu22.04 中 安装 EdgeX 并运行 device-sdk-c sample EdgeX Foundry 作为一个开源的边缘计算框架，为开发者提供了一个灵活、可扩展的平台，用于构建和管理边缘设备及服务。然而，对于初次接触 EdgeX 的用户来说，从零开始安装并运行其相关组件（如 device-sdk-c 示例）可能会面临不少挑战。 无论是环境的配置、依赖的安装，还是编译与调试的过程，每一步都需要细致的操作和清晰的思路。本文将以 Ubuntu 22.04 为基础平台，详细记录如何从克隆 EdgeX 源码到成功运行 device-sdk-c 的 sample 示例的全过程。希望通过这篇博客，不仅能为新手提供一份实用的操作指南，也能让有经验的开发者在遇到问题时找到解决思路。 1.克隆源码-EdgeX 在开始安装 EdgeX 之前，我们需要先获取其源码，而 GitHub 是获取最新版本的最佳途径。为了让后续操作更加有条理，我们首先在用户主目录下创建一个专属的工作目录，用于存放 EdgeX 相关的文件。以下是具体操作： 打开终端，输入以下命令创建一个名为 edgex 的文件夹，并进入该目录： mkdir edgex && cd edgex 接下来，我们需要从 GitHub 上克隆 EdgeX 的 Compose 文件仓库，这是运行 EdgeX 服务的核心配置文件集合。执行以下命令： git clone https://github.com/edgexfoundry/edgex-compose.git cd edgex-compose 结果显示如下： root@ubuntu:/home/ubuntu# mkdir edgex && cd edgex root@ubuntu:/home/ubuntu/edgex# git clone https://github.com/edgexfoundry/edgex-compose.git Cloning into 'edgex-compose'... remote: Enumerating objects: 5826, done. remote: Counting objects: 100% (3563/3563), done. remote: Compressing objects: 100% (319/319), done. remote: Total 5826 (delta 3504), reused 3250 (delta 3244), pack-reused 2263 (from 3) Receiving objects: 100% (5826/5826), 1.59 MiB | 1.76 MiB/s, done. Resolving deltas: 100% (4949/4949), done. root@ubuntu:/home/ubuntu/edgex# ls edgex-compose 输出信息显示了克隆进度，最终 ls 命令确认目录中已存在 edgex-compose 文件夹，说明这一步成功完成。 2.安装工具 EdgeX 的部署离不开 Docker，因为它通过容器化技术简化了服务的管理和运行。因此，我们需要先在 Ubuntu 系统中安装 Docker。以下是详细的安装步骤： 使用官方脚本安装 Docker，并指定阿里云镜像源以加速下载： curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh --mirror Aliyun docker -v 第一条命令通过 curl 下载安装脚本并保存为 get-docker.sh 文件；第二条命令执行脚本，--mirror Aliyun 参数指定使用阿里云镜像源，避免默认源下载缓慢；最后通过 docker -v 检查版本，确保安装成功。安装过程的输出类似： root@ubuntu:/home/ubuntu# curl -fsSL https://get.docker.com -o get-docker.sh root@ubuntu:/home/ubuntu# sh get-docker.sh --mirror Aliyun # Executing docker install script, commit: 4c94a56999e10efcf48c5b8e3f6a…

K3S 私有化部署方案实践
type: item
date: 2024-10-05T16:32:00+00:00
description: 准备工作 硬件 软件 基础配置 数据库配置 Docker 数据库 PostgreSQL MySQL 部署 K3S 管理集群 主机名 K3S 核心安装 自动安装(推荐) 手动二进制文件安装(不推荐) Master / Worker 手动加入(如有必要) 安装 Rancher 集群管理工具和 Harbor Registry 仓库 准备工作 安装 Kubernetes 包管理工具 Helm 安装证书管理器 cert-manager 安装 Rancher 安装 Harbor 使用 Ceph（推荐） 使用 NFS 部署 pv 和 pvc 部署 Harbor Helm 批量上传所需 image 到 Harbor 部署 K3S 业务集群 所有的 Master 和 Worker 都加入业务集群 Rancher 中创建一个新的集群 Master 加入集群(初始化业务集群) Worker 加入业务集群 (部署/更新) Harbor hub CA 证书到所有的 Master 和 Worker (手动操作)导出 Harbor hub HTTPS 证书 (自动部署)Harbor Hub CA 证书 新建一个 Secret 新建一个 DaemonSet 基于 K3S 部署业务应用(边缘计算框架) EdgeX Foundry Base 部署辅助应用：流媒体，推理服务器，NVR 部署 OpenVINO AI 应用 总结 准备工作 硬件 主 K3S Master 节点：3台, master101, master102, master103 业务 K3S Master 节点：3台，master151, master152, master153 Worker 节点：N台，随意, worker01, worker02, ... 软件 基础配置 操作系统：Ubuntu Server 22.04 最小化安装系统，包含：openssh-server, iputils-ping, net-tools, vim PRETTY_NAME="Ubuntu 22.04.5 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.5 LTS (Jammy Jellyfish)" 管理集群 主机名 IP 其他 database 192.168.198.100 数据库+NFS存储，如有需要做 HA master101 192.168.198.101 管理 K3S master master102 192.168.198.102 管理 K3S master master103 192.168.198.103 管理 K3S master 业务集群 主机名 IP 其他 master151 192.168.123.151 业务 K3S master + worker master152 192.168.123.152 业务 K3S master + worker master153 192.168.123.153 业务 K3S master + worker worker161 192.168.123.161 业务 worker worker162 192.168.123.162 业务 worker 数据库配置 Docker 准备 docker 环境 curl -fsSL https://get.docker.com | sh - 验证 docker docker images REPOSITORY TAG IMAGE ID CREATED SIZE 设置一个 Registry 镜像 cat /etc/docker/daemon.json { "insecure-registries" : [ "0.0.0.0/0" ], "registry-mirrors": [ "https://xxx.mirror.swr.myhuaweicloud.com" ] } 重启 docker systemctl restart docker 数据库 PostgreSQL 创建 compose.yml services: postgres: image: postgres:alpine container_name: postgres restart: unless-stopped environment: POSTGRES_USER: k3s POSTGRES_PASSWORD: talent POSTGRES_DB: k3s ports: - "5432:5432" volumes: - ./data:/var/lib/postgresql/data - ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh …

喜报｜亿琪软件被认定为2023年高新技术企业
type: item
date: 2024-01-08T08:48:00+00:00
description: 近日，根据科技部、财政部、国家税务总局《高新技术企业认定管理办法》（国科发火〔2016〕32号）、《高新技术企业认定管理工作指引》（国科发火〔2016〕195号）、《上海市高新技术企业认定管理实施办法》（沪科合〔2021〕21号）的有关规定，上海亿琪软件有限公司被认定为2023年度“高新技术企业”。 关于我们 上海亿琪软件有限公司，国家级高新技术企业，全球开放边缘计算和物联网领域的领导者，全球领先的工业物联网软件开发商和解决方案提供商，助力企业和组织实现数字化转型。公司专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域，致力于物联网领域前沿技术的创新，为用户提供全方位、智能化和安全的物联网解决方案。 2023 年，公司发布“ YiFUSION ｜工业边缘智能融合网关 ”产品，为工业客户提供一整套的边缘计算+AI 能力：高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上，集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。 2022 年，公司推出 “ YiCLOUD ｜亿琪云 ”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域，公司软硬件产品和解决方案获得华为技术认证，得到中国移动 OCP 认证，公司还是边缘计算产业联盟 ECC 成员。 公司公众号 ThingsBoard中文社区 EdgeX爱好者社区 联系我们--商业服务 网站：http://yiqisoft.cn 邮件：support@yiqisoft.cn 电话：021-68863086 手机：186-1666-9123

文档｜EdgeX 设备微服务之 OPC-UA -- device-opcua 完整使用手册
type: item
date: 2023-12-18T02:58:45+00:00
description: EdgeX Foundry （以下统一简称：EdgeX）设备微服务 device-opcua 由我司根据已有代码优化后贡献给社区，文档也是必不可少的环节，社区要求英文，现翻译成中文，方便国内客户阅读和使用。 目的 入门 配置 协议属性 API 参考 源代码 目的 该服务的目的是将 OPC-UA 设备连接到 EdgeX。 入门 本页介绍如何将 OPC-UA 设备连接到 EdgeX。 在此示例中，我们使用模拟器来实现（OPC UA Simulation Server）。 这提供了一种测试设备服务功能的简单方法。 环境 您可以使用任何可以安装 docker 和 docker-compose 的操作系统。 在本例中，我们使用 Ubuntu 使用 docker 部署 EdgeX。 设置 Prosys OPC UA Simulation Server 设备 !!! warning "警告" 本页面并不是设置 OPC-UA 设备的完整指南，仅介绍了几个重要步骤供参考。 下载 Prosys OPC UA 模拟服务器 从 OPC UA 模拟服务器下载 下载最新版本的 OPC UA Simulation Server Download。 安装模拟服务器 启动模拟服务器 验证模拟服务器 Status 复制连接地址(UA TCP)值：opc.tcp://jiekemacbookpro14.lan:53530/OPCUA/SimulationServer Objects 启动微服务之前 以下部分介绍如何在启动服务之前完成设置。 使用预定义的配置进行测试 设置新配置 使用预定义的配置进行测试 文件夹中的预定义配置：cmd/res/ 预定义 Device Profile 设备配置 Device Profile profiles/Simple-Driver.yaml 描述了一个 OPC-UA 设备，它包含 3 个资源，如下所示： name: OPCUA-Server manufacturer: Prosys model: Simlulator labels: - OPCUA - TEST description: Simulation OPCUA Server deviceResources: - name: Constant description: generated constant number properties: valueType: Float64 readWrite: RW attributes: nodeId: ns=3;i=1001 - name: Counter description: generated counter number properties: valueType: Int32 readWrite: R attributes: nodeId: ns=3;i=1002 - name: Random description: generated random number properties: valueType: Float64 readWrite: R attributes: nodeId: ns=3;i=1003 deviceCommands: - name: ConstantNum isHidden: false readWrite: RW resourceOperations: - deviceResource: Constant defaultValue: 0.0 - name: CounterNum isHidden: false readWrite: R resourceOperations: - deviceResource: Counter defaultValue: 0 - name: RandomNum isHidden: false readWrite: R resourceOperations: - deviceResource: Random defaultValue: 0.0 该表描述了设备配置文件的每个资源： Resource Name valueType of EdgeX nodeId Description Constant Float64 ns=3;i=1001 generated constant number Counter Int32 ns=3;i=1002 generated counter number Random Float64 ns=3;i=1003 generated random number 预定义设备配置 Device Configuration 设备配置 Device Configuration devices/Simple-Devices.yaml 描述…

开源｜EdgeX 边缘计算驱动之 OPC-UA
type: item
date: 2023-12-15T01:09:11+00:00
description: EdgeX Foundry 边缘计算框架的分层和服务为边缘设备/节点和云/企业应用之间提供了一个双向转换引擎。EdgeX 作为边缘计算平台是非常不错的选择。 OPC-UA Micro Service - 用于 OPC-UA 设备连接到 EdgeX 的设备服务。 01 介绍 EdgeX Foundry 边缘计算框架的分层和服务为边缘设备/节点和云/企业应用之间提供了一个双向转换引擎。EdgeX 作为边缘计算平台是非常不错的选择。 OPC-UA Micro Service - 用于 OPC-UA 设备连接到 EdgeX 的设备服务。 02 技术要点 工业互联网应用场景中，OPC-UA 是非常常见的工业控制设备，边缘计算框架 EdgeX 对于其驱动一直在 EdgeX Foundry 社区没有开源支持，我司经过项目的验证和长期的维护，在社区原有项目基础之上进行了 V3.2.0 版本驱动的移植和扩展。 本开源 EdgeX 设备驱动使用 github.com/goopcua/opcua 作为基础库，在基于 EdgeX device-sdk-go 的框架下，完成了驱动的开发和验证。 03 版本支持 本次开源的 EdgeX 驱动支持 EdgeX v3.x（最新版本，且持续更新和维护）。 开源代码：https://github.com/edgexfoundry-holding/device-opcua-go 04 使用文档 预计发布在：https://docs.edgexfoundry.org/3.1/microservices/device/services/device-opcua，敬请期待。 05 产品应用 EdgeX 框架应用于我司的边缘计算产品 YiEDGE（边缘计算软件） 和 YiFUSION（工业边缘智能融合网关）。 YiFUSION: 边缘融合智能网关是指具备边缘计算、智能分析、数据融合等功能的智能网关，能够在边缘侧实现数据采集、处理、分析、融合和应用，为用户提供更加智能、高效和低成本的服务。 简洁定义 英文名称：YiFUSION 中文名称：工业边缘智能融合网关 产品形态：软硬件一体机 硬件架构：X86/ARM/超融合/国产化 软件架构：全微服务化 关于我们 "亿琪软件" 上海亿琪软件有限公司成立于 2016 年，专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域，致力于物联网领域前沿技术的创新，为用户提供全方位、智能化和安全的物联网解决方案。 2023 年，公司发布“YiFUSION ｜工业边缘智能融合一体机”产品，为工业客户提供一整套的边缘计算+AI 能力：高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上，集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。 2022 年，公司推出 “YiCLOUD ｜亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域，公司软硬件产品和解决方案获得华为技术认证，得到中国移动 OCP 认证，公司还是边缘计算产业联盟 ECC 成员。 "联系我们--商业服务" 网站：http://yiqisoft.cn 邮件：support@yiqisoft.cn 电话：021-68863086 手机：186-1666-9123

文档｜EdgeX 设备微服务之西门子 S7 -- device-s7 完整使用手册
type: item
date: 2023-12-11T00:39:00+00:00
description: EdgeX Foundry （以下统一简称：EdgeX）设备微服务 device-s7 由我司贡献给社区，文档也是必不可少的环节，社区要求英文，现翻译成中文，方便国内客户阅读和使用。 目录 目的 入门 环境 设置 S7 设备 设置 ISO-on-TCP 访问 IP protocol 启用 S7 Communication 远程访问 (可选) 保留 S7 communication 设置数据块 Data Blocks 启动微服务之前 使用预定义的配置进行测试 预定义 Device Profile 预定义设备配置 Device Configuration 设置一个新的配置 Configuration 创建自定义配置文件夹 设置新的设备配置 Device Profile 设置设备服务配置 Configuration 准备 docker-compose 文件 生成 docker compose 文件 将自定义配置添加到 docker-compose 文件 在 Docker 上启动 EdgeX Foundry 启动服务后设置 执行命令 查找可执行命令 执行设置命令 执行获取命令 自动事件 配置 协议属性 API 参考 源代码 额外细节 读命令 Read Command 写命令 Write Command 何时转换数据 支持的转换 "亿琪软件" "联系我们--商业服务" 目的 该服务的目的是将西门子 S7 PLC 设备连接到 EdgeX。 入门 本页介绍如何将 S7 设备连接到 EdgeX。 在此示例中，我们使用真实设备（例如 S7-1200）。 这提供了一种测试设备服务功能的简单方法。 环境 您可以使用任何可以安装 docker 和 docker-compose 的操作系统。 在本例中，我们使用 Ubuntu 使用 docker 部署 EdgeX。 设置 S7 设备 !!! warning "警告" 本页面并不是设置 S7 设备的完整指南，仅介绍了几个重要步骤。 设置 ISO-on-TCP 访问 IP protocol 设置 Ethernet addresses -> IP protocol, 例如： 192.168.123.199/255.255.255.0 启用 S7 Communication 远程访问 启用 Permit access with PUT/GET communication from remote partner. (可选) 保留 S7 communication S7 Communication 保留和使用的资源数量，“Configured” 为 0，表示 EdgeX 最多可以建立 8 个连接。 !!! warning "提示" 重要提示：不要与单个 S7 设备创建超过“6”个连接！ 我们需要为 WINCC 保留 “2” 个连接。 设置数据块 Data Blocks Data Block 1 在本例子中，只需使用 Clcok 偏移量 160.0 中的进行测试即可。 Data Block 4 在本例子中, 使用 bool, byte, word, dword, int, dint, real 作为测试. 启动微服务之前 以下部分介绍如何在启动服务之前完成设置。 使用预定义的配置进行测试 设置新配置 使用预定义的配置进行测试 文件夹中的预定义配置：cmd/res/ 预定义 Device Profile 设备配置 Device Profile profiles/Simple-Driver.yaml 描述了一个 S7-1200 设备，它包含 8 个资源，如下所示： name: S7-Device manufacturer: YIQISOFT description: Example of S7 Device model: Siemens S7 labels: [ISO-on-TCP] deviceResources: - name: bool description: PLC bool isHidden: false properties: valueType: Bool readWrite: RW attributes: NodeName: DB4.DBX0.0 - name: byte description: PLC byte isHidden: false properties: valueType: Uint8 readWrite: RW attributes: NodeName: DB4.DBB1 - name: word description: PLC word isHidden: false properties: valueType: Int16 readWrite: RW attributes: N…

分享｜EdgeX 案例之 BACnet 设备读取，并通过物联网平台展示分析
type: item
date: 2023-12-01T00:54:00+00:00
description: 物联网边缘端协议很多，BACnet 就是一种比较常见的监控协议。今天，就来跟大家分享一下 BACnet 基于 EdgeX 框架数据采集、控制和分析。 目录 BACnet 是什么？ 准备工作 EdgeX 微服务 EdgeX 基本微服务 EdgeX BACnet 微服务 配置 Device Profile 和 Device 获取 BACnet 设备数据 了解 BACnet 工作机制，可采用多种方法来做 数据上传 亿琪软件物联网平台 YiCONNECT 物联网平台展示和分析数据 关于我们 "亿琪软件" "联系我们--商业服务" BACnet 是什么？ !!! info "BACnet 协议" BACnet是用于智能建筑的通信协议，是国际标准化组织（ISO）、美国国家标准协会（ANSI）及美国采暖、制冷与空调工程师学会（ASHRAE）定义的通信协议1。BACnet针对智能建筑及控制系统的应用所设计的通信，可用在暖通空调系统（HVAC，包括暖气、通风、空气调节），也可以用在照明控制、门禁系统、火警侦测系统及其相关的设备。优点在于能降低维护系统所需成本并且安装比一般工业通信协议更为简易，而且提供有五种业界常用的标准协议，此可防止设备供应商及系统业者的垄断，也因此未来系统扩展性与兼容性大为增加。 !!! tip "最常见的 BACnet 协议有两种" BACnet IP：网络层通讯，基于以太网，使用 IP 通信，==本案例使用此协议== BACnet MS/TP：主从站通讯，就是串口，比如RS-485 !!! warning "什么是 BACnet BBMD？" BACnet/IP 使用 UDP/IP 在现有的 IP 网络中进行通信，在多个IP子网中如果需要对 BACnet 的广播消息进行管理的时候就需要一种特殊的BBMD设备（Broadcast Management Device）。 更多信息，请查阅其他相关资源，非本案例的重点内容。 准备工作 !!! info "BACnet 模拟器" 本案例中，使用 Yabe (Yet Another Bacnet Explorer)，请自行通过互联网下载。 其中，我们会用到一个子工具：==Bacnet.Room.Simulator==，将作为 BACnet 模拟设备来获取数据和控制。 软件打开后，类似如下，请记住右下角的 Id: ==2179272== !!! info "BACnet 查询工具" 本案例中，使用两种查询工具，都可以从互联网下载来使用。 Yabe：新建一个 BACnet/IP over UDP，自动出现 Device BACnetSCAN：双击 ==BACnet IP== 条目，就会出现 Device。 !!! warning "注意" BACnetSCAN 既可以作为查询工具，也可以作为 到目前为止，都是 BACnet 相关的准备和设置。 EdgeX 微服务 EdgeX 基本微服务 !!! info "启动你的 EdgeX 核心模块" 下载 docker compose 运行环境 git clone -b v3.1.0 https://github.com/edgexfoundry/edgex-compose.git cd edgex-compose/compose-builder make run no-secty 保证你的 EdgeX 基本微服务启动成功 ✔ Container edgex-core-consul Running ✔ Container edgex-redis Running ✔ Container edgex-ui-go Running ✔ Container edgex-core-common-config-bootstrapper Running ✔ Container edgex-core-metadata Running ✔ Container edgex-kuiper Running ✔ Container edgex-support-notifications Running ✔ Container edgex-support-scheduler Running ✔ Container edgex-core-command Running ✔ Container edgex-core-data Running ✔ Container edgex-app-rules-engine Running EdgeX BACnet 微服务 !!! info "增加 BACnet 微服务" !!! warning "注意" 官方版本不能直接使用，拿不到 BACnet 设备信息，需要根据以下步骤执行 重新编译你的微服务，增加 ==ds-bacnet-ip== 即可…

分享｜EdgeX FAQ4 常见问题和解答四
type: item
date: 2023-12-01T00:43:35+00:00
description: EdgeX 爱好者社区 在使用和开发过程中，收到很多使用者和开发者的提问和反馈，我们将在一系列文章中给大家分享出来。 EdgeX Foundry 在下面将统一简称为 EdgeX。 系列文章四： 如何集成 RBAC 到 EdgeX？ 如何一次获取多个数据测点？ EdgeX 有 API Gateway 吗？ 如何接入云或企业网络？ 常见问题(FAQ) "如何集成 RBAC 到 EdgeX？" 这个问题是由老外在 GitHub 社区 discussions 里面提出来，他希望 EdgeX 能够集成第三方认证软件，比如 Keycloak，以便完成权限对接。 RBAC，其实不适合 EdgeX，这只是一个边缘计算框架而已，不是一个完整的业务系统； EdgeX 本身有 token 机制来保证安全，控制中心与 EdgeX 交互是安全可靠的就好了，无需 RBAC； 当然，你也可以改造 EdgeX 使得其能够支持 RBAC，这个工作量社区无法作出评估； "如何一次获取多个数据测点？" 当然可以，而且数量不限制。主要的问题就是每次 core-command 能承受的数据量需要手工进行调整，以达到你的数量请求。 定义一个 command，包含你所需要的 resource，即可进行绑定，EdgeX 会一次性获取完所有的数据，返回到 message bus 中； 修改 Service - MaxResultCount ，以便容纳你的 command； "EdgeX 有 API Gateway 吗？" GitHub 社区里，经常有人问关于 API Gateway 的事情，总的来说，基本都是没有好好读官方文档的人，不了解 EdgeX 的机制，所以不清楚。 EdgeX API Gateway 使用 nginx 来实现，并且集成了 Secure 机制，从 v3 版本开始，微服务之间也需要 JWT 认证，这是为了防止有应用绕过 API Gateway； 也可以自行修改 API Gateway 配置，完成更多集成和扩展，就是 nginx 配置而已； kong 安全机制已经从 EdgeX 被移除，相对简单了很多； "如何接入云或企业网络？" 这个问题，也是 GitHub 社区问的比较多的，尤其是那些不需要接入公有云服务的客户，他们有自己的云或企业网络，要接入进去。 用 eKuiper 规则引擎，可以通过简单的配置和命令完成简单的云对接，而且 eKuiper 已经内置了很多云服务的对接； eKuiper 除了一些云资源对接，也需要接入企业网络，比如数据库，时序数据库等，都可以完美支持； 自己开发一个 Application Service 来对接，官方提供了很多例子可以参考，主要是修改对接协议的数据格式皆可完成。 关于我们 "亿琪软件" 上海亿琪软件有限公司成立于 2016 年，专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域，致力于物联网领域前沿技术的创新，为用户提供全方位、智能化和安全的物联网解决方案。 2023 年，公司发布“YiFUSION ｜工业边缘智能融合一体机”产品，为工业客户提供一整套的边缘计算+AI 能力：高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上，集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。 2022 年，公司推出 “YiCLOUD ｜亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域，公司软硬件产品和解决方案获得华为技术认证，得到中国移动 OCP 认证，公司还是边缘计算产业联盟 ECC 成员。 "联系我们--商业服务" 网站：http://yiqisoft.cn 邮件：support@yiqisoft.cn 电话：021-68863086 手机：186-1666-9123

分享｜EdgeX FAQ3 常见问题和解答三
type: item
date: 2023-11-18T07:15:00+00:00
description: EdgeX 爱好者社区 在使用和开发过程中，收到很多使用者和开发者的提问和反馈，我们将在一系列文章中给大家分享出来。 EdgeX Foundry 在下面将统一简称为 EdgeX。 系列文章三：主要介绍边缘计算框架对比相关的问答。 EdgeX 太占资源了，相比其他数据采集网关，硬件要求太高了，怎么竞争？ 在学习 EdgeX 开发过程中，出现各种稀奇古怪 或 古灵精怪 的问题，我该怎么处理？ 相比其他边缘计算或数据采集框架少则上百种多则几百种驱动，EdgeX 设备层驱动才二十种，完全不是一个量级，什么情况？ 打个不太恰当，又有一番道理的比喻，自己去体会：EdgeX 是一个航空母舰级别的产品，不能与那些小快艇、驱逐舰、巡洋舰相提并论。 常见问题(FAQ) 性能相关 "EdgeX 运行太占资源" 资源占用，跟业务要求有关系： 传感器数量：比如，接 10 个传感器和接1000个传感器，完全不一样的资源使用率； 采集频率：5秒采集一次数据比较正常，假如你调整到 500ms 一次采集，又是另一番景象； 设备类型：业务简单的话 1-2 种设备类型，复杂环境下几十上百种都可以，资源占用那是天壤之别； "软硬件要求高" 官方有最低资源要求，如果你的硬件低于这个要求，建议要么 ==别上== EdgeX，要么升级硬件： 硬件： 内存：最小 1GB，操作系统用掉一些，其他就是看你运行的容器数量，1GB 只适合测试验证，不适合商业用途； 存储：最小 3GB，操作系统占用多一些，docker image 占用不多，剩下的就是 container 运行过程中产生的日志，这个需要在 docker compose 中定义参数，回滚日志文件； CPU：没有特定限制（X86，ARM32需要自己编译 ，ARM64都可以），具体看业务处理量，做好观测，最大 CPU 负载不要超过 50%，保持一定的缓冲； 软件： 操作系统：宿主主机，虽然可以支持常见的 Windows、Linux、macOS，但是，生产环境还是应该以 Linux 为主（推荐 Ubuntu 系列）； 软件环境： 开发：采用开发工具包（包含：编译器，各种函数库），docker runtime； 生产：docker runtime 即可； "关于竞争" 这个问题比较宽泛，不能一概而论，可以从以下几个方面考虑： 摆正位置：要充分理解 EdgeX 在边缘计算领域所处的层次结构，你到底是做数据采集还是边缘计算？不要把传统的DTU和RTU称之为边缘计算就算是明白人了 竞争对象：如果用预装 EdgeX 的产品去跟其他单一功能的采集器相比，完全没必要，不是一个量级； 竞争场景：这个具体看你的市场策略和业务需要，你愿意用低价换取市场占有率，另当别论； 开发相关 社区经常出现一些奇怪又频繁的错误信息，贴出来问" 当然，你完全有这个权利和必要，毕竟遇到问题了，需要去解决它。 根据错误提示，去搜索引擎找找看，也许是一个通用的问题，或许并不是 EdgeX 本身； 可以到 GitHub issue 里面找，变换一些搜索关键字，也许被人也遇到过且已经被解决了； 各种开发基本能力，尤其是 docker，golang，物联网相关，保证能明白到底问题出在哪里，有时候并不是问题复杂，而是自己不熟悉整个过程； "提醒" 官方已经发布 v3 版本，最新版本 v3.1（LTS 长期支持版本） 刚刚在 2023年11月15日 发布，已经解决了 v3 以来的绝大部分问题。 理论上来说，官方社区已经不会提供更早版本的技术支持： 有 bug 不回修复； 新特性不会增加； 友善提醒更新到当前发布版本； 设备层驱动相关 "有人提问：这么少的驱动支持数量，如何成为一个官方应用的边缘计算框架？" 建议，还是先读一读 EdgeX 官方文档：a vendor-neutral open source project（供应商中立的开源项目） 以目前 EdgeX 应用情况来说，已经成为很多行业和领域的事实规范，不需要质疑，也无需考证，就冲着——供应商中立的开源项目，已经征服了很多开源边缘计算框架的使用者。 老外比较直接又比较委婉，以笔者的措辞：难道把开源软件拿来主义，换个皮，改一下项目名称，改一下程序接口名，顺便让社区把所有你需要的都做好，开放给你，免费给你技术支持，…… 参与开源，也可以奉献开源，你可以把你的驱动贡献给社区，也可以让社区帮你改改 bug 什么的； 可以提出你需要的驱动类型，参与社区讨论，帮助提高社区驱动支持的范围； 关于我们 "亿琪软件" 上海亿琪软件有限公司成立于 2016 年，专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域，致力于物联网领域前沿技术的创新，为用户提供全方位、智能化和安全的物联网解决方案。 2023 年，公司发布“…

分享｜EdgeX FAQ2 常见问题和解答二
type: item
date: 2023-11-13T00:40:12+00:00
description: EdgeX Foundry 中文社区 在使用和开发过程中，收到很多使用者和开发者的提问和反馈，我们将在一系列文章中给大家分享出来。 系列文章二：主要介绍一些跟设备和驱动相关的问答。 EdgeX Foundry 性能如何？单个实例能承载多少设备？一次性能采集多少设备数据？ 如何开发一个新的 Device Service 设备驱动？ EdgeX 如何支持 I2C, SPI, UART 接口数据采集？ 官方支持通用协议情况如何？ ModBus，MQTT，REST，ONVIF 分别是什么情况？ 官方支持工业协议情况如何？ S7，OPC-UA，BACnet 分别是什么情况？ 常见问题(FAQ) 性能相关 !!! question "EdgeX Foundry 性能如何？" 这个问题由一位外国开发者在 GitHub 上提出来，坦率地说，这个问题范围太广了，不好完整的回答。 [x] 非要给个答案的话，那就是：EdgeX 性能完全取决于你的硬件配置。 !!! question "单个实例能承载多少设备？" 接着上一个大的问题，这是其中一个分支问题，假如计算资源足够的话，应该可以承受几十万设备。 [x] 笔者所在公司，采用 4核心，8G内存，可以跑 virtual device 50000-80000个，丝毫没有什么影响； [x] 把几万，几十万设备承载在一个实例中，其实并不是一个好的选择，要考虑到如果发生单点故障，应该如何应急处理； !!! question "一次性能采集多少设备数据？" 测试中有多少个命令以及命令间隔是多少？并且，您应该关注许多选项，例如：数据持久性、南向设备协议种类多少。 [x] 单协议采集，数量非常多的情况下，就看每个采集设备的测点数量，不会出现什么大问题，注意观察宿主机器上的资源利用率情况，及时作出调整； [x] 多协议采集，这样的情况下需要启动多个不同的设备服务微服务来运行，资源占用比单协议采集要多很多，需要更多的资源进行配合； 设备服务（驱动）开发 !!! question "如何开发一个新的 Device Service 设备驱动？" 其实，这个应该不是一个问答能解决的事情，需要一个章节或一个课题来解决。官方给出了很完整的[开发手册][3]，具备一些基础能力后，一步一步来，很容易开发出新的设备驱动。 [x] Golang SDK 符合官方的统一开发语言； 开发更简单； [x] C SDK 嵌入式设备上，或需要调用 C 库函数的情况下； 需要开启 C 编译环境，尤其是 docker 相关，生成 docker image 需要更多依赖； 总的来说，开发一个设备驱动，是一件很复杂且繁琐的工作，要测试的内容很多，稳定性/可靠性都是需要很多经验配合。 外设驱动开发 !!! question "EdgeX 如何支持 I2C, SPI, UART 接口数据采集？" 这个问题，是由一个国人在 GitHub 上提出来的，他的提法是否支持 I2C。 我的回答：不必要！ 原因有如下： EdgeX 更加偏向于计算，而不是针对一些串口协议进行解析； 这些传感器协议，也不适合接在边缘计算网关之上，太过于底层的协议，应该由 MCU + 实时操作系统来完成； 将这些协议转换成 ModBus RTU，我想这是更加合适的选择； 官方驱动支持情况 !!! question "通用协议：ModBus，MQTT，REST，ONVIF 分别是什么情况？" 这些协议，大部分都由社区开发完成，并且经过多轮迭代，稳定可靠，完全可以用在商业环境下。 ModBus: RTU/TCP 两个版本都支持的很好； MQTT: 跟随主版本一起发布，效果很好； REST: 跟随主版本一起发布，效果很好； ONVIF: 跟随主版本一起发布； v3.0 之前的版本隐性 bug 比较多，慢慢的完善了很多； 还需要一个流媒体服务器配合使用，毕竟 EdgeX 只是做了 ONVIF 协议适配； !!! question "工业场景协议：S7，OPC-UA，BACnet 分别是什么情况？" 工业场景下，稳定性要求高，性能要求也很高，那么，需要更多的时间来完成开发和测试。 Siemens S7: 官方还没有完整的开源子项目，笔者公司贡献了第一套代码，目前（11月12日）还在 review 中，详见：https://github.com/edgexfoundry-holding/device-s7 OPC-UA: 由社区完成了贡献，不过，也不是标准的 EdgeX 组件，需要自己编译和测试，并且用到项目中； BACnet: 官方有一个 C 版本的，也跟随主版本一起发布； 关于我们 !!! success "亿琪软件" 上海亿琪软件有限公司成立于 2016 年，专注于 5G 通信、AI 人工智能、…