七个简单步骤构建起智能物联网网关

【】今天,我们的目标是了解如何构建一套智能物联网网关。我们将利用Ansible实现该网关的自动化配置,当然Ansible亦适用于配置管理及应用部署。如果大家面对大量网关配置与部署工作,那么Ansible绝对是值得强烈推荐的优秀工具。

[[176507]]

下面来看此网关的几大主要组件:

红帽企业 Linux:提供企业级基础。

红帽 JBoss A-MQ: 对传感器数据进行评判。

红帽 JBoss Fuse:传输传感器数据并将其路由至端点。

红帽 JBoss BRMS:在边缘位置实现实时决策制定。

在网关配置完成后,我们将启动红帽JBoss Fuse,而后构建并部署路由与业务规则服务,从而使其开始运作。我们随后会启动一款传感器应用,其利用MQTT将温度数据发送至红帽JBoss A-MQ代理。这些消息会被转发至我们此前启动的服务处。最后,我们将创建业务规则,用于在传感器值达到阈值时触发对应操作。

注意:在开始之前,大家首先需要在网关内的Downloads文件夹内保存一份红帽JBoss Fuse 6.2.1。大家可以从红帽客户门户站点处下载,亦可通过红帽开发者计划免费获取。

第一步:利用Ansible准备主机系统

在主机设备上克隆项目库。

打开终端并输入以下命令:

  1. [user@localhost ~]$ git clone -b Virtual-Lab-1-Host https://github.com/RedHat-IoT/Virtual_IoT_Gateway.git 

利用网关IP地址更新主机文件[Virtual-IoT-Gateway/Ansible/host],并将该主机的公钥存放于远程网关上(Ansible会利用ssh与远程系统进行通信)。

更新Ansible playbook BuildGW文件[Virtual-IoT-Gateway/Ansible/BuildGW],将其中的用户名修改为您网关的实际值:user=’user name’

输入以下命令以启动该Ansible playbook:

  1. [user@localhost ~]$ cd Virtual_IoT_Gateway/Ansible 
  2. [user@localhost ~]$ ansible-playbook BuildGW 

让Ansible运行此playbook中的各项任务。一旦Ansible完成执行,我们即可准备直接操作此网关。

第二步:登录至该网关

注意:在此套网关中,我们使用了username = ‘demo-user’与password = ‘change12_me’。

第三步:启动红帽JBoss Fuse服务器

开启新shell,输入以下命令:

  1. [demo-user@localhost ~]$ cd 
  2. [demo-user@localhost ~]$ cd IoT_Summit_Lab 
  3. [demo-user@iotlab IoT_Summit_Lab]$ ./runJBossFuse.sh 

等待红帽JBoss Fuse服务器完成启动流程。

红帽 JBoss Fuse需要安装‘camel-mqtt’ OSGi功能以处理MQTT消息。

在‘JBossFuse’命令提示符下输入以下命令:

  1. JBossFuse:karaf@root> features:install camel-mqtt 

最小化此shell,保持Fuse服务器在后台运行。

第四步:构建并部署Camel Route

传感器数据将由Camel Route负责传输及路由。现在我们需要构建红帽JBoss Fuse项目并将其部署至正在运行的Fuse服务器当中。我们将利用其提供的脚本以构建并部署此项目。

在终端内执行以下命令:

  1. [demo-user@iotlab Software_Sensor]$ cd 
  2. [demo-user@iotlab ~]$ cd IoT_Summit_Lab/ 
  3. [demo-user@iotlab IoT_Summit_Lab]$ ./runRoutingService.sh 

我们可以登录至JBoss Fuse管理员控制台以验证此Camel route是否部署完成。

第五步:创建业务规则

智能物联网网关最为重要的功能之一,是在传感器数据满足业务规则中设定的特定条件时触发对应操作。在本章节中,我们将了解如何创建一项业务规则服务。此服务将通过以下方式起效:

1. 从Message队列中读取传感器数据。

2. 将传感器数据传递至规则执行引擎,并由后者根据定义规则触发操作。

3. 经过变更的数据被放置在另一已定义Message队列中。

这里我们将使用微软Excel决策表来定义业务规则。下图所示为一套决策表实例,其中每一行表代表一条规则。蓝色的列为“条件(conditions)”,而黄色的列则定义一项“操作(action)”。规则语法非常简单:如果满足某条件,则执行某操作。

这套规则系统会从电子表格中读取规则,并将其按以上语法进行编译。在本示例中,我们的业务规则电子表格可用于创建新规则。

下面来看表格中各列所代表的含义:

Alerting Rule(警告规则):规则名称。此为可选字段,但在调试中非常有用。

Device Type(设备类型):传感器所报告的设备类型。

Payload(有效载荷):此规则需要匹配的数字范围。

Result(结果):由规则触发的操作,即将值更改为0或1。

打开示例规则表格:‘DecisionTable.xls.’

填写以下信息以创建两项规则:

规则一:如果我们读取到的温度为0到60之间,则将结果字段变更为0。

规则一:如果我们读取到的温度为61到100之间,则将结果字段变更为1。

注意:在第二条规则Payload列中,在“61”与“100”之间添加一个空格。

注意:将表格保存为微软Excel格式。

点击此处查看此业务规则服务的具体细节。

第六步:构建并运行业务规则服务

现在我们已经完成了规则添加,接下来需要构建新的服务版本并加以启动。

在终端内执行以下命令:

  1. [demo-user@localhost IoT_Summit_Lab]$ cd 
  2. [demo-user@localhost ~]$ cd IoT_Summit_Lab/ 
  3. [demo-user@localhost IoT_Summit_Lab]$ ./runRulesService.sh 

其应显示以下输出结果:

  1.  < output truncated > AMQ-Broker tcp://localhost:61616 ready to work
  2. Device-Type = temperature 
  3. Device-ID   = 4711 
  4. Payload     = 70 
  5. Result      = 1 
  6. ---------------------- 
  7. Sending 18.05.2016 10:46:22 766temperature47117000.01 

第七步:测试规则服务

我们通过软件传感器发送一条测试消息,从而进行服务测试。具体步骤如下:

软件传感器通过MQTT发送一条高值。

路由服务获取该值后,将其转换为消息并发送至AMQP消息队列。

业务规则服务从队列中获取此消息,并在其滞业务规则条件时将其添加至另一AMQP消息队列。

在新终端内输入以下命令:

  1. [demo-user@localhost Desktop]$ cd 
  2. [demo-user@localhost ~]$ cd IoT_Summit_Lab/ 
  3. [demo-user@localhost IoT_Summit_Lab]$ ./runHighSensor.sh 

输出结果如下:

  1. Starting the producer to send messages 
  2. Sending '70,0' 
  3. AMQ-Broker tcp://localhost:61616 ready to work
  4. Device-Type = temperature 
  5. Device-ID   = 4711 
  6. Payload     = 70 
  7. Result      = 1 
  8. ---------------------- 
  9. Sending 17.05.2016 15:08:59 265temperature47117000.01 
  10. ---------------------- 

大家也可以利用另一种方法进行消息验证,即通过‘http://localhost:8181’’查看红帽JBoss Fuse控制台。这里的入队与出队消息数量应该显示,已经有一条消息由message.to.rules’处获取并被放置在‘message.to.datacenter’当中。

注意:Fuse控制台的登录名/密码为admin/change12_me。

总结

我们可以利用Ansible并配合红帽自动化工具轻松完成智能物联网网关的构建工作。这套企业级智能物联网网关基于多项开源技术,包括红帽企业Linux、红帽JBoss Fuse、红帽JBoss BRMS以及红帽JBoss A-MQ。

这里我们已经提供了示例代码,包括部署路由机制与业务规则服务以保证此智能物联网网关开始正常运作。其中传感器应用负责向A-MQ代理发送温度数据。这些MQTT消息由我们此前启动的服务进行处理。最后,我们创建了业务规则,用于在传感器值达到阈值时触发特定操作。

感兴趣的朋友可以点击此处查看GitHub上的物联网网关源代码及相关视频。

原文标题:How to Build an Intelligent IoT Gateway in 7 Easy Steps,作者:Ishu Verma

【译稿,合作站点转载请注明原文译者和出处为.com】

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/153200.html<

(0)
运维的头像运维
上一篇2025-03-14 08:48
下一篇 2025-03-14 08:50

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注