展会|IOTE 2023 物联网展完美收官
“ 5月19日,IOTE 2023 第十九届国际物联网展·上海站圆满落幕!五月的上海,迎来了一场盛大的科技盛宴,5月17-19日三天,IOTE 国际物联网展吸引了世界各地的企业和友人在沪相识,展示了最前沿的物联网技术及应用,成为了物联网人必来的行业盛典。”
此次物联网展,亿琪软件公司展示了一整套解决方案:
- 智能硬件
- 边缘计算
- 物联网平台
“ 5月19日,IOTE 2023 第十九届国际物联网展·上海站圆满落幕!五月的上海,迎来了一场盛大的科技盛宴,5月17-19日三天,IOTE 国际物联网展吸引了世界各地的企业和友人在沪相识,展示了最前沿的物联网技术及应用,成为了物联网人必来的行业盛典。”
此次物联网展,亿琪软件公司展示了一整套解决方案:
在物联网开发中对于数据可视是必须的一项工作,大家都清楚国内对于很数据驾驶仓和大屏展示有着效高的需求,如果用传统的方式来可视化需要逐句代码编写进行实现,这使得开发工作内容繁重且重复很多还不能应对各种需求的变化,
如果我们使用ThingsBoard的可视化进行开发这样就会极大的减少工作量提高效率和产出,我们可以通过部件方式将传统的HTML,JS,CSS进行代码开发做成自定义基础部件为后面我们的可视化添砖加瓦,效果图如下
导航部件库然后打开现有的部件包或创建一个新在部件包视图中单击屏幕右下角的大“ +”按钮然后单击“创建新的窗口部件类型”按钮。
选择窗口部件类型会弹出窗口选择你要开发的相应部件类型之后将根据先前选择的窗口部件类型打开“窗口部件编辑器”页面,该页面预填充了启动器窗口部件模板。
编辑器由工具栏和四个主要部分组成:
所有与部件相关的代码都位于JavaScript部分并提供了对部件实例的引用的内置变量self部件函数都必须定义主self变量的属性,self变量有ctx属性引用部件实例使用的所有API和数据的WidgetContext上下文对象。
参见以下表格:
属性 | 类型 | 描述 |
---|---|---|
$container | jQuery Object | 部件的容器元素。可用于使用jQuery API动态访问或修改部件DOM。 |
$scope | 动态部件组件 | 当前部件元素的角度范围对象。使用Angular方法构建窗口小部件时,可用于访问/修改范围属性。 |
width | Number | 部件容器的当前宽度(以像素为单位)。 |
height | Number | 部件容器的当前高度(以像素为单位)。 |
isEdit | Boolean | 指示仪表板是处于视图状态还是处于编辑状态。 |
isMobile | Boolean | 指示仪表板视图是否小于960px宽度(默认移动断点)。 |
widgetConfig | Object | 常见的窗口小部件配置,其中包含诸如颜色(文本颜色),backgroundColor(小部件背景颜色)等属性。 |
settings | Object | 根据定义的json模式包含小部件特定属性的小部件设置 |
units | String | 定义窗口小部件显示的值的单位文本的可选属性。对于简单的小部件(如卡片或仪表)很有用。 |
decimals | Number | 可选属性,用于定义应使用多少个位置来显示数值的小数部分。 |
hideTitlePanel | Boolean | 管理窗口小部件标题面板的可见性。对于具有自定义标题面板或不同状态的小部件很有用。 |
widgetTitle | String | 如果设置,将覆盖配置的窗口小部件标题文本。更改此属性后,必须调用updateWidgetParams()函数。 |
detectChanges() | Function | 介绍触发当前小部件的更改检测。由于窗口小部件数据更改而应更新窗口小部件HTML模板绑定时,必须调用此方法。 |
updateWidgetParams() | Function | 介绍使用运行时集属性(例如widgetTitle,hideTitlePanel等)更新小部件。必须调用这些属性才能使这些属性更改生效。 |
defaultSubscription | Object | 请参阅对象订阅 |
timewindowFunctions | Object | 请参阅Timewindow功能 |
controlApi | Object | 请参阅Control API |
actionsApi | Object | 请参阅Actions API |
stateController | Object | 请参阅状态Controller |
datasources | 数组<数据源> | 解析的窗口小部件数据源的数组。请参见订阅对象. |
函数 | 描述 |
---|---|
onInit() |
当widget准备好初始化时调用的第一个函数。应该用于准备小部件DOM,处理小部件设置和初始订阅信息。 |
onDataUpdated() |
在部件订阅中有新数据可用时调用。可以从窗口部件上下文(ctx)的defaultSubscription object访问最新数据。 |
onResize() |
调整窗口小部件容器的大小时调用。可以从窗口小部件上下文(ctx)获得最新的宽度和高度。 |
onEditModeChanged() |
更改仪表板编辑模式时调用。最新模式由ctx的isEdit属性处理。 |
onMobileModeChanged() |
当仪表板视图宽度超过移动断点时调用。最新状态由ctx的isMobile属性处理。 |
onDestroy() |
当部件元素被销毁时调用。如有必要,应使用它来清理所有资源。 |
getSettingsSchema() |
返回窗口小部件设置架构json的可选函数以替代设置部分的设置标签。 |
getDataKeySettingsSchema() |
返回特定数据密钥设置方案json的可选函数,替代设置部分Settings schema section的数据密钥设置方案标签。 |
typeParameters() |
检索描述窗口小部件数据源参数的对象。请参阅类型参数对象类型参数对象。 |
actionSources() |
调用对象,该对象描述用于定义用户操作的可用窗口小部件操作源。请参阅操作源对象。 |
通过对前面了我们可以根据自身的需求开发一个部件,这里小编用一个静态部件展示开发过程。
<div class="header">
<div class="header-left fl" id="time"></div>
<div class="header-center fl">
<div class="header-title" id="header-title" style=" font-size:{{font_size}}px">
{{text}}
</div>
<div class="header-img"></div>
</div>
<div class="header-right fl"></div>
<div class="header-bottom fl"></div>
</div>
{
"schema": {
"type": "object",
"title": "Settings",
"properties": {
"text": {
"title": "标题文本",
"type": "string",
"default": "可视化大屏"
},
"font_size": {
"title": "标题字号",
"type": "integer",
"default": "18"
}
}
},
"form": [
"text",
"font_size"
]
}
self.onInit = function() {
var settings=self.ctx.settings;
self.ctx.$scope.text = settings.text || "可视化大屏";//京州省智慧城市大屏
self.ctx.$scope.font_size = settings.font_size || 48;
}
上海亿琪软件有限公司成立于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
目录
最近做的几个项目中,客户都想自己组建团队来完成
自以为
简单的物联网项目,不仅造成项目延迟,而且还有失败的风险。
前期,写了一篇:开源|ThingsBoard 项目实施及二次开发要点总结,收到很多的的反馈。
今天,特来总结一下。
物联网技术应用是一项复杂且多元化
的路线,不仅不含了传统的 IT 技术,而且还蕴含着 IT 与 OT 的融合。很多企业和团队都只具备某一单方面的能力,IT 技术团队认为 OT 是比较简单而容易实现的,另一方面,OT 团队认为自己应该有能力驾驭自己并不擅长的 IT 技术。读者可能会觉得笔者在危言耸听,那且看下面我的解释说明。
典型的例子:
1、曾经在 IT 领域风生水起的人,天真的认为物联网不就是几个嵌入式设备,几十块钱几百块钱的小玩意儿,招几个人画画图纸、网上打样几张 PCB 电路板,轻松搞定了,果然是天真可爱,笔者从事 IT 领域多年,就是走过了这个线路,碰的鼻青脸肿,时间、精力、财力、物力,浪费了。同时,身边也有一些类似的人,做了同样的傻事,最后放弃的也有不少。
2、嵌入式,单片机,工业控制,等,这些领域也有不少自以为是的人,把物联网应用简单理解为就是插上一块物联网模组
,分分钟搞定了物联网技术,殊不知,自己的想法却是一条不归路。聪明的团队,很快试错后就果断放弃了,重操旧业,继续干自己的嵌入式。
3、笔者也见过很多集成商,方案商,买东买西,拼凑一下,也是像模像样的物联网应用,风生水起,热火朝天。毕竟不像前两个例子投入那么大,集成商通过口才和 PPT 就能够变现,着实让人羡慕不已,且不说到底是不是技术能力的体现,但是他们的软实力
的确是可以皆大欢喜。供应商出货了,客户满意。
言归正传,一起来看看组建这么一个团队需要具备哪些条件。
通信技术能力在各个能力领域都有这重要作用,这里不作单独的说明。这是基础能力范畴,既然是物联网,肯定离不开通信网络
,也是非常重要的一个环节。
这项能力算是综合能力的体现,纵览大局,不仅仅是技术能力
,还有管理经验,协调能力,项目管理,故障分析,等,是非常有挑战性的领域。
以下角色都是不可或缺且经验丰富的人才:
笔者所在的公司从事物联网解决方案多年积累了几十个案例,涵盖了8大领域
,详情请看公司网站:行业解决方案:
物联网平台,可以算是整个项目的神经中枢,简单理解,可以算是一个软件系统,只是不同于其他的行业软件解决行业问题,物联网平台只是解决了设备管理、规则引擎、数据存储、数据分析,等,不针对于某个行业,可以理解为一个通用的平台类软件
。
兼容各类物联网应用的高度适用性
;多租户
,租户与租户之间的逻辑隔离是最基本的需求,当然如果能做到处理隔离、数据隔离、权限隔离,那是更好了;我司基于多年经验积累和总结,开发和落地了多个物联网平台项目,Yi 系列平台产品 XaaS 群族帮助客户解决了很多应用场景落地,参考公司网站:XaaS 平台:
很多客户提出一个疑问:为什么我们的平台不支持云端解析各种边缘设备的协议
?
我们从一开始设计之初,就把平台定义为通用性为主,只是负责标准通信协议的接入服务,工业现场协议解析的工作交给边缘端来处理,一是,释放出平台端的处理资源,负责接入、规则、入库和分析;二是,把各式各样的协议解析下沉到边缘设备上处理,现在的边缘设备处理能力已经很强大。
市面上已经出现了种类繁多,协议解析能力强的产品,完全满足各种工业协议处理,如:PLC、OPC、Modbus、TCP/UDP,等,纯数采需求,直接用已有产品更加经济和方便,况且很多客户现场已经具备了各家的网关产品。
目前,支持512、1024、2048个测点的数采网关非常稳定可靠,价格优惠,只是性能上无法满足更高要求的实时数采,比如秒级处理
,还是比较吃力。由此,我们设计出更高新能的边缘计算网关。
边缘计算网关相对于数采网关,其性能更强、容量更大、接口更多、可定制化更强,等,诸多因素。
一套边缘计算框架,尤其是在日新月异高速发展时期,传统的单片机处理方式已经不能满足日综复杂的应用环境。
典型的例子:
成千上万测点的采集和处理
;本地 WEB SCADA 和 HMI
;我司基于 YiEDGE 软件框架,可完成强大的数采需求,更高的处理能力,更方便的部署。支持嵌入式主机部署,也支持服务器部署,更加灵活。参考公司网站:边缘计算网关
网络摄像头(IPC)产品在边缘计算领域越来越多,AI 推理工作也被客户重视,纯粹的 AI 网关并不能完成数采功能
,由此可见,边缘计算网关集成 AI 算力已经迫在眉睫。
看几个例子:
我司在以上需求的基础上,开发了 YiAI 引擎,支持自定义算法和模型导入
,方便视频分析。参考公司网站:AI 网关
那么,鉴于以上的需求分析和客户应用,把数采能力和 AI 能力结合被提上日程,客户现场有时候有很多网关设备,管理成了难题。
如果能将这些能力结合在一起,并且还能植入其他应用到一台网关,那就帮客户解决了非常多的问题。
由此,我司研发了 YiFUSION 工业边缘智能融合一体机,完美的解决了难题,微服务化部署应用,强大的处理能力。当然,融合网关的成本会比其他多种网关并行的系统要高出很多,这也是很多客户一直徘徊不定的原因。等到越来越多的客户接受了这样的网关,成本机会就来了,将会大规模应用
。参考公司网站:融合网关
有些客户现场,传感器采集需求多,分布广,全部采用网关+传感器必然不是一个好的选择
,那就需要有自主上网能力,集成传感器的智能硬件来支撑。
典型的例子:
智能模组是智能硬件的基础,参考公司网站:智能模组
我司经过多年研发和实施经验,积累了几十种智能传感器,即插即用,方便快捷,待机时间长,无需专业人员,自动联网,与平台无缝衔接
。电池电量,信号质量,都在平台端直接管理。参考公司网站:智能硬件
很多团队已经具备以上一些能力和经验,那就可以采用以下几种方式,与经验丰富的团队合作,快速完成物联网团队的建设,尽快为业务部门带来帮助。
借助有经验的团队经验,快速完成物联网应用的搭建,毕竟专业的事交给专业的人更合适
。
假如一次性投入太大,又怕会产生不良影响,可以从小型 POC项目开始,逐步形成传帮带:传
授,帮
助,带
动的方式来融合,避免了很多风险。
其实,如果没有任何物联网技术积累,又有业务需求的情况下,不建议立马招标采购,可以逐步来熟悉物联网整个过程,从以下几个方向入手:
购买专业的咨询服务,以学习的方式来了解物联网应用的来龙去脉,积累一些经验,通过不断的学习和交流,找到适合自己的方式进行下去。
业务驱动是最直接的,不了解业务需求,纯粹建一套物联网应用其实是没有意义的,浪费人力财力不说,自信心也受到伤害
,得不偿失。
做一个 POC,试试水,不仅是对自己业务理解的过程,也是考察供应商和合作伙伴的机会,为物联网应用成功迈出一小步。
大概过程:
需求文档
,这个很重要,也是 POC 的参考材料;能调动的人员
安排到 POC 小组,共同完成整个验证过程;不能陷入困境
;适可而止
;准备好资金
,肯定是要花钱才能把事情做好。function POC_DO_IT(
business_requirements list,
tech_details list,
exports list,
start_time datetime,
expire_time datetime)
{
...
if poc_success:
print "皆大欢喜,准备做一场更大的";
else
print "虽然失败了,但是过程一定很刺激";
}
上海亿琪软件有限公司成立于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
目录
众所周知,我们软件读取 PLC 数据时按照 Bool/Byte/Word/Real 等类型进行通讯,有时候,需要频繁读取 PLC 多个数据字段偏移量时,就会造成传输效率低下的问题。
15ms
(423行-421行:3.614448-3.598902=0.015546s);1秒1次
采集的需求。存入 SQL 数据库,完全控制在1秒一次采集
4 个 TCP 连接非常稳定
网关性能稳定
与 PLC 交互的网卡网络流量很少
上海亿琪软件有限公司成立于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
目录
在边缘计算视频分析方面,
ONVIF
协议实现了摄像头管理,YiEDGE
实现了拉流和图片输出,YiEVAS
模块 Pyairknn 实现推理。
开放型网络视频接口论坛(英语:Open Network Video Interface Forum,简称ONVIF),是一个国际开放型网络视频产品标准网络接口开发论坛.
YiEDGE 框架基于 EdgeX 框架做了深层次定制,实现了更加自动化的功能,增加了南向设备接口协议,增加了北向云平台接口协议。
![2023-02-17T14:38:59.png][1]
这里以 HK 摄像头为例,10s
轮训一次。
{
"apiVersion": "v2",
"statusCode": 200,
"device": {
"created": 1676646639846,
"modified": 1676646710817,
"id": "9a9a3276-cf19-4e01-908c-801a520ba5be",
"name": "IPC-HK",
"adminState": "UNLOCKED",
"operatingState": "UP",
"labels": [
""
],
"serviceName": "device-onvif-camera",
"profileName": "onvif-camera",
"autoEvents": [
{
"interval": "10s",
"onChange": false,
"sourceName": "StreamUri"
}
],
"protocols": {
"Onvif": {
"Address": "192.168.123.183",
"DeviceStatus": "UpWithAuth",
"FirmwareVersion": "V5.7.3 build 220315",
"FriendlyName": "HIKVISION DS-IPC-T12HV3-IA",
"HardwareId": "88",
"LastSeen": "Fri Feb 17 15:11:50 UTC 2023",
"MACAddress": "c0:6d:ed:eb:cb:59",
"Manufacturer": "HIKVISION",
"Model": "DS-IPC-T12HV3-IA",
"Port": "80",
"SerialNumber": "DS-IPC-T12HV3-IA20220913AACHK56293791"
}
}
}
}
streamUri 信息内容
[
{
"id": "c88007b8-4316-451c-87b4-2dec7f1f540d",
"origin": 1676646870752047000,
"deviceName": "IPC-HK",
"resourceName": "StreamUri",
"profileName": "onvif-camera",
"valueType": "Object",
"value": "",
"objectValue": {
"MediaUri": {
"InvalidAfterConnect": false,
"InvalidAfterReboot": false,
"Timeout": "PT60S",
"Uri": "rtsp://192.168.123.183:554/Streaming/Channels/0?transportmode=unicast&profile=Profile_1"
}
}
}
]
## 同步到 Message Bus
- 以上信息都会同步到数据总线;
- 可以自定义轮训时间;
- 筛选需要通告总线的 IPC;
# YiEVAS 系统
![2023-02-17T14:39:36.png][2]
## eKuiper 作为 pipeline 引擎
大概模式如下:
|source输入->|rule规则引擎->|sink输出->|
|:----|:----|:----|
|onvif 通告获取|拉流,抓帧,推理|结果输出|
### ONVIF 通告获取
#### stream
这里,直接用 EdgeX 数据总线即可。
{
"Name" : "EdgeXStream",
"Options" : {
"format" : "json",
"type" : "edgex"
},
"Statement" : null,
"StreamFields" : null,
"StreamType" : 0
}
#### rule-onvif-camera
从 stream 获取信息,并解析 StreamUri 通告给拉流处理。
SELECT
"true" as isRetImg,
(json_path_query(StreamUri, "$")->MediaUri)->Uri AS rtspUrl,
meta(deviceName) as deviceName
FROM EdgeXStream
where meta(profileName) = "onvif-camera"
StreamUri 解析结果
{
"deviceName": "IPC-HK",
"isRetImg": "true",
"rtspUrl": "rtsp://192.168.123.183:554/Streaming/Channels/0?transportmode=unicast&profile=Profile_1"
}
### 拉流,抓帧,推理
#### 拉流
- 通过 eKuiper video plugin:目前这个方式只能固定将 URI 写入配置文件,测试可以用,实际没有使用价值。
- 通过 YiEVAS application 实现:此处为商业代码和功能,有需要的可以咨询我们的热线: 18616669123
#### 抓帧
- 可以通过图片帧,输出到 总线或 mqtt broker,进行按图片推理,也方便其他应用进行二次处理;
- 还可以直接拉流时对图片帧进行推理,效率很高,不经过总线的方式进行转发,前提是其他应用不需要视频流和图片;
def get_frame(self):
cap = cv2.VideoCapture(rtspUri)
ret, frame = cap.read()
if ret:
image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
outputs = rknn_lite.inference(inputs=[image])
return outputs
else:
return None
#### 推理
- 可以单独对图片进行推理,通过总线获取图片帧;
- 也可以在拉流过程中直接推理,具体看业务需要。
### 结果输出
此处结果与前面的系列文章结果类似,都是以输出到云平台为主。
[1]: https://www.yiqisoft.cn/blogs/usr/uploads/2023/02/2516235241.png
[2]: https://www.yiqisoft.cn/blogs/usr/uploads/2023/02/3154521976.png