鸿蒙项目云捐助第二十一讲云捐助项目物联网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…...
从代币角度介绍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…...

如何测量分辨率
一、什么是分辨率? 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率,但是相机在在不同的对比度的情况下还原低,中和高频率的能力,也可以显示全面综合的信息。…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...