当前位置: 首页 > 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…...

如何测量分辨率

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

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...

CppCon 2015 学习:REFLECTION TECHNIQUES IN C++

关于 Reflection(反射) 这个概念,总结一下: Reflection(反射)是什么? 反射是对类型的自我检查能力(Introspection) 可以查看类的成员变量、成员函数等信息。反射允许枚…...

【题解-洛谷】P10480 可达性统计

题目:P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M,接下来 M M M 行每行两个整数 x , y x,y x,y,表示从 …...