当前位置: 首页 > news >正文

鸿蒙项目云捐助第二十一讲云捐助项目物联网IoT模拟器的使用

鸿蒙项目云捐助第二十一讲云捐助项目物联网IoT模拟器的使用

在前面的内容中,已经实现了云捐助物联网IoT的产品及设备设置,并且使用华为云Iot设备的在线调试工具进行命令下发的调试,这里也可以通过华为Iot物联网提供的MQTT模拟器进行连接。

一、华为Iot物联网中的MQTT模拟器连接

华为IoT物联网的直实设备可以使用MQTT模拟器,下载地址可以通过点击华为Iot产品实例页面左侧的“产品文档”实现查找,如下图所示。

点击“产品文档”后,在左侧的搜过框中输入“MQTT”,然后进行搜索。如下图所示。

这里的MQTT就是使用物联网进行连接实体的协议。这里搜索出来的结果如下图所示。

这里点击搜索到的第一个链接“设备接入IoTDA”,在左侧“设备侧开发”条目下的“使用MQTT Demo接入”中有“使用MQTT.fx检测”,这里的模拟器名称就是MQTT.fx,如下图所示。

这里在左侧导航条中可以看到“使用MQTT.fx检测”,点击这个条目项,右侧帮助文档在“连接鉴权”中可以看到“下载”的链接。如下图所示。

点击“下载”可以完成MQTT.fx的下载,这就是MQTT的模拟器,下载后的文件如下图所示。

下载后的文件通过双击,在每个界面中点击“下一步”即可完成安装,安装后在windows系统打开“开始”图标,可以搜索到“MQTT.fx”的应用图标,如下图所示。

这里双击搜索到的程序“MQTT.fx”的应用图标,出现的界面如下图所示。

在这个界面中可以完成华为云IoT设备的连接,不过这里需要先完成设置,再进行连接。在界面中点击“齿轮”图标进行设置,如下图所示。

这里需要设置的参数需要在华为IoT的云平台中进行查询。首先进入到华为IoT产品实例的“所有设备”界面,如下图所示。

在设备界面中,找到云捐助的设备“云捐助电子证件”,在当前设备后面有对应的“详情”按钮,如下图所示。

这里点击“详情”进入到“云捐助电子证件”的详情页面,可以看到页面中有“MQTT的连接参数”项,如下图所示。

这里点击“MQTT的连接参数”后面的“查看”按钮,就可以看到MQTT的连接参数。现在需要把连接参数填入到MQTT.fx模拟器设置中,当点击MQTT.fx启动界面的“齿轮”图标时,弹出的界面中左侧最底端有一个“+”(加号)按钮,如下图所示。

这里点击“+”(加号)按钮,右侧出现MQTT.fx连接参数的实例设置内容,把华为IoT产品实例设备详情页面中MQTT连接参数中的client_id复制到MQTT.fx连接参数设置内容的ClientID输入中,如下图所示。

这里MQTT连接参数中的port端口号保持不变,仍然使用1883,然后需要把华为IoT产品实例设备详情页面中MQTT连接参数中的hostname复制到MQTT.fx连接参数设置内容的“Broker Address”按输入中,如下图所示。

下面需要设置MQTT.fx模拟器连接的用户名和密码,把华为IoT产品实例设备详情页面中MQTT连接参数中的username和password复制到MQTT.fx连接参数设置内容的“username”和“password”的输入框中,设置MQTT.fx的username和password需要点击界面中部导航的“User Credentials”。如下图所示。

这些参数配置后,就完成了模拟器MQTT.fx的设置,点击“Apply”和“确定”就完成了MQTT.fx模拟器的配置。配置成功后,可以点击“齿轮”图标后面的connect连接按钮,如下图所示。

点击“连接”后当前的“Connect”按钮状态虚化,后面的“DisConnect”关闭按钮文字变得很明显,意思可以点击“DisConnect”关闭连接,此时连接已正常,从导航中的Log日志中可以看到连接的客户端id。如下图所示。

同时因为有了真实设备的存在,“云捐助电子证件”在华为IoT产品实例所有设备列表也由“离线状态”变成“在线状态”,如下图所示。

这里在华为IoT产品实例所有设备列表中的“云捐助电子证件”设备后面点击“调试”,如下图所示。

点击“调试”后再次进入到在线设备调试的页面,继续在产品的命令中输入属性的值,点击“发送”按钮,如下图所示。

点击“发送”按钮之后,在MQTT.fx模拟器的Log日志中可以看到“messageArrived”信息到达的字样,但是没有显示出数据,如下图所示。

在日志中的“messageArrived”信息到达的后面有一个“topic”字样,“topic”后面显示了一个地址,如下图所示。

对于客户端来说,如果需要显示返回的数据结果,需要开启订阅的功能,这个地址就是MQTT订阅服务器属性数据的地址,这里我们点击MQTT.fx模拟器界面的“Subscribe”选项卡,进入到MQTT.fx模拟器的订阅界面。

然后把日志中的topic主题后面的地址复制到“Subscribe”选项卡界面的输入框中,注意这个地址后面是request请求id是随机产生的,这里不能获取到,因此topic地址到command就停止了,后面使用#号结束。如下图所示。

把Log日志中的地址经过截取填入“Subscribe”的订阅界面后,可以点击输入地址后面的“Subscribe”的订阅按钮。如下图所示。

点击“Subscribe”的订阅按钮后,按钮变虚,然后回到网页中的华为IoT产品实例设备的调试页面,继续点击“发送”指令。如下图所示。

发送后,在IoT平台中可以看到发送的结果。如下图所示。

下面切换到MQTT.fx模拟器的“Subscribe”的订阅界面,就可以看到IoT平台发送指令携带的信息,如下图所示。

在实际设备中,mystar的属性变量可能就对应C语言操作硬件的变量,通过这个变量控制实际卡片中的功能,比如这里可以过mystar值决定云捐助爱心卡中亮几个灯。

MQTT.fx也可以把属性的改变上报到IoT平台,这里需要点击MQTT.fx模拟器的“Publish”选项卡,如下图所示。

当“云捐助电子证件”的mystar变量值发生变化时就需要上报给IoT平台,这里可以通过MQTT的产品文档查询属性上报的接口。如下图所示。

在MQTT的设计指南中,有API参数,在这里有使用MQTT的设备上报的相关示例,如下图所示。

图中的topic就是设备属性上报的地址,数据格式中需要指明产品服务的id,产品修改的属性,还有event_time的上报属性时间戳。这里把文档中的topic地址复制到MQTT.fx模拟器的Publish选项卡的输入框中,如下图所示。

复制接口后,这时有一个device_id需要把MQTT.fx模拟器Log日志中的device_id复制过去,如下图所示。

MQTT.fx模拟器中上报的地址填写好后,再进行上报参数的填写,其数据从MQTT文档中复制过来,然后只保留其中一条数据即可。如下图所示。

复制在services中保留一条数据,并改变service_id,这个service_id就是华为IoT平台产品实例中产品详情中创建过的服务列表,如下图所示。

这里服务列表中的名称就是service_id,把这个service_id复制到MQTT.fx模拟器的“Publish”选项卡中的参数设置内容中,并设置调用的properties属性名称,这里是mystar的捐赠星级,最后定义时间戳,如下图所示。

### 在MQTT.fx中设置结束上报属性后,就可以点击“Publish”按钮进行上报,如下图所示。

点击“Publish”按钮上报属性后,可以在华为云IoT平台产品实例“云捐助电子证件”设备的在线调试界面中看到上报的信息,如下图所示。

这样就使用MQTT.fx模拟器实现了华为IoT属性的上报和订阅,后续还会带来鸿蒙云捐助项目云技术方面的应用,欢迎关注。

相关文章:

鸿蒙项目云捐助第二十一讲云捐助项目物联网IoT模拟器的使用

鸿蒙项目云捐助第二十一讲云捐助项目物联网IoT模拟器的使用 在前面的内容中,已经实现了云捐助物联网IoT的产品及设备设置,并且使用华为云Iot设备的在线调试工具进行命令下发的调试,这里也可以通过华为Iot物联网提供的MQTT模拟器进行连接。 …...

大数据技术原理与应用期末复习-知识点(二)

HBASE Hbase与传统关系数据库的对比分析 1.数据类型: 关系型数据库采用关系模型 Hbase采用更简单的数据模型(把数据存储为未经解释的字符串) 2.数据操作: 关系数据库:增删改查等 Hbase:插入 查询 删…...

高效准确的PDF解析工具,赋能企业非结构化数据治理

目录 准确性高:还原复杂版面元素 使用便捷:灵活适配场景 贴心服务:快速响应机制 在数据为王的时代浪潮中,企业数据治理已成为组织优化运营、提高竞争力的关键。随着数字化进程的加速,企业所积累的数据量呈爆炸式增长…...

C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码

一、介绍 栈和队列是限定插入和删除只能在表的“端点”进行的线性表,是线性表的子集,是插入和删除位置受限的线性表。 (操作受限的线性表) 二、栈 1)概念: 栈(stack)是一个特殊的线性表,是限…...

读书笔记~管理修炼-缄默效应

缄默效应:学会正确批评下属 员工明明犯了错误,却不及时告知你,总是拖到最后一刻无法弥补时才不得不承认出了问题——你遇到过这样的问题吗? 这其实是缄默效应在发挥作用。 在职场中,即使再扁平化的环境&…...

视频会议系统会前预约模块必须包含哪些功能?

视频会议系统会前预约模块必须包含哪些功能? 视频会议系统的会前预约模块是企业高效管理会议资源、提升会议效率的重要工具。一个完善的会前预约模块必须包含一系列功能,以确保会议的顺利进行和资源的合理分配。以下是对视频会议系统会前预约模块必须包…...

RabbitMQ中的Topic模式

在现代分布式系统中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个广泛使用的开源消息代理,支持多种消息传递模式,其中 Topic 模式 是一种灵活且强大的模式,允许生产者…...

tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录

目录 tslib的简介tslib的源码和make及make install后得到的文件下载tslib的主要功能tslib的工作原理tslib的核心组成部分tslib的框架和核心函数分析tslib的框架tslib的核心函数ts_setup()的分析(对如何获取设备名和数据处理流程的分析)函数ts_setup()自身的主要代码ts_setup()对…...

Ubuntu vi(vim)编辑器配置一键补全main函数

1.打开对应的配置文件 vi ~/.vim/snippets/c.snippets 2.按G将光标定位到文件末尾 3.按i进入插入模式 以tab键开头插入下的内容,空行也要加 tab键 4.:wq保存退出 5.再打开任意一个新的 .c文件后,插入模式输入 main 然后按tal键就能补全了...

验证码机制

偶然间看到了验证码机制,顺便总结一下: 首先,验证码是从后端生成的,随机生成; 【后端永远认为前端有可能会被伪造】 1.后端调用相关的绘图第三方类库,或是(平台PHP、.NET、java)系…...

【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE

大多数开发人员都同意,与 15 年前相比,PHP 是一种更加理智、更加安全和可靠的语言。PHP5早期的不良设计已让位于更好的开发生态系统,其中包括类、自动加载、更严格的类型、更理智的语法以及一大堆其他改进。安全性也没有被忽视。 register_globals一些老读者可能还记得和的…...

使用FakeSMTP创建本地SMTP服务器接收邮件具体实现。

以下代码来自Let’s Go further节选。具体说明均为作者本人理解。 编辑邮件模版 主要包含三个template: subject:主题plainBody: 纯文本正文htmlBody:超文本语言正文 {{define "subject"}}Welcome to Greenlight!{{end}} {{def…...

【网络安全】逆向工程 练习示例

1. 逆向工程简介 逆向工程 (RE) 是将某物分解以了解其功能的过程。在网络安全中,逆向工程用于分析应用程序(二进制文件)的运行方式。这可用于确定应用程序是否是恶意的或是否存在任何安全漏洞。 例如,网络安全分析师对攻击者分发…...

Oracle Database 21c Express Edition数据库 和 Sqlplus客户端安装配置

目录 一. 前置条件二. Win10安装配置Oracle数据库2.1 数据库获取2.2 数据库安装2.3 数据库配置确认2.4 数据库访问 三. Win10配置Oracle数据库可对外访问3.1 打开文件和打印机共享3.2 开放1521端口 四. 端口与地址确认4.1 查看监听器的状态4.2 Win10查看1521端口是否被监听4.3 …...

arcgisPro将面要素转成CAD多段线

1、说明:正常使用【导出为CAD】工具,则导出的是CAD三维多线段,无法进行编辑操作、读取面积等。这是因为要素面中包含Z值,导出则为三维多线段数据。需要利用【复制要素】工具禁用M值和Z值,再导出为CAD,则得到…...

相机内外参知识

已知相机的内外参数矩阵,可以求得相机在世界坐标系下的原点坐标。这里需要理解几个概念: 内参数矩阵(Intrinsic Matrix): 描述相机本身的属性,比如焦距、主点位置等。外参数矩阵(Extrinsic Matrix&#xf…...

从代币角度介绍solana账户体系

1、solana 的账户概念介绍 Solana的账户体系是其区块链的核心组成部分,它允许数据和价值在链上存储和转移。以下是Solana账户体系的一些关键特点: • 账户模型: • 在Solana上,所有数据都存储在所谓的“账户”中,类似…...

前端引入字体文件

1. 字体下载 阿里矢量图图标库地址 https://www.iconfont.cn/,页面打开后选中,素材库 > 字体库 左侧两个标签页可以切换,右侧放大镜图标可以搜索自己需要的字体 字体预览区域可以自行调整进行字体预览 右上角点击字体包下载,下…...

qemu启动后网络怎么设置?配合qemu-system-riscv64的命令设置

QEMU启动的时候,可以选择组网方式,一般有两种选择,user模式和tap模式 user模式就是用NAT,tap模式就是用bridge网桥模式。以前也有过一次实践:FreeBSD RISCV 在QEME中实践-网络配置_pkg.txz: not found-CSDN博客 user…...

如何测量分辨率

一、什么是分辨率? 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率,但是相机在在不同的对比度的情况下还原低,中和高频率的能力,也可以显示全面综合的信息。…...

汇总贴:cocos creator

1 cocoscreator-doc-TS:目录-CSDN博客 访问节点和组件 常用节点和组件接口 创建和销毁节点 加载和切换场景 获取和设置资源 监听和发射事件 节点系统事件 缓动系统(cc.tween) 使用计时器 使用对象池 使用 TypeScript 脚本 模块化脚本 脚本执行顺序 全局…...

[N1CTF 2018]eating_cms

[N1CTF 2018]eating_cms 知识点 文件上传 解题 这个题感觉还好,知识点真心不难,就是全混在一起。 思路差不多挺离谱 首先看到,有一个登录界面,然后猜测有注册界面 admin注册不了,随便注册一个账号。 注册之后&…...

重拾设计模式--建造者模式

文章目录 建造者模式(Builder Pattern)概述建造者模式UML图作用:建造者模式的结构产品(Product):抽象建造者(Builder):具体建造者(Concrete Builder&#xff…...

【机器学习】以机器学习为翼,翱翔网络安全创新苍穹

我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 在数字化浪潮汹涌澎湃的当下,网络安全如同守护数字世界的坚固堡垒,其重要性不言而喻。而机器学习技术的蓬勃…...

人工智能在VR展览中扮演什么角色?

人工智能(AI)在VR展览中扮演着多重关键角色,这些角色不仅增强了用户体验,还为展览的组织者提供了强大的工具。 接下来,由专业从事VR展览制作的圆桌3D云展厅平台为大家介绍AI在VR展览中的一些主要作用: 个性…...

mysql,创建数据库和用户授权核心语句

一.库操作1.创建库create database if not exists 库名 default 字符集 default 校对规则2.删除库drop database if exists 库名3.修改库的,字符集,校对规则alter databse 库名 default 字符集 default 校对规则4.查看当前使用的库seclect databse();5.查看库show databases;…...

日期区间选择器插件的操作流程

我们知道,在开发过程中,为了能够在规定时间内完成项目,有时候我们都会使用插件来大大提高我们的开发效率,有些插件是可以直接拿来用,但是有些插件拿过来之后是需要进行修改,在使用插件的时候还有很多的注意…...

【WRF教程第3.2期】预处理系统 WPS详解:以4.5版本为例

预处理系统 WPS 详解:以4.5版本为例 WPS 嵌套域(WPS Nested Domains)USGS 和 MODIS 土地利用重力波拖拽方案静态数据(Gravity Wave Drag Scheme Static Data)1. 什么是重力波拖拽方案(GWDO)静态…...

深度学习的DataLoader是什么数据类型,为什么不可用来索引

在 Python 中,DataLoader是torch.utils.data.DataLoader类的实例对象,用于加载数据,它本身不是一种基本数据类型,而是一种特殊的迭代器类型,主要用于按批次加载数据,以下是其通常不可索引的原因&#xff1a…...

物理信息神经网络(PINN)八课时教案

物理信息神经网络(PINN)八课时教案 第一课:物理信息神经网络概述 1.1 PINN的定义与背景 物理信息神经网络(Physics-Informed Neural Networks,简称PINN)是一种将物理定律融入神经网络训练过程中的先进方…...