mqtt 传递和推送 温湿度计消息 js

mqtt 传递和推送 温湿度计消息

做了一个mqtt的小网站

包括设备管理,订阅管理,连接认证+订阅授权
请添加图片描述
请添加图片描述
请添加图片描述
这里我新增了一个设备

订阅组温湿度里面有两个订阅
在这里插入图片描述
设备详情授权给设备使用

设备连接

和之前的wifi连接一样 温湿度也和之前的使用一样

require('utils/wifi.js').connent(WIFI_NAME, WIFI_OPTIONS, function () {console.log('start')initMqtt();
})

wifi连接上后 这里我用的1883

function initMqtt() {try {var mqtt = require("modules/MQTT.js").create("mqtt address", {client_id: "xxx",port: 1883,username: 'xxx',password: 'xxx',});mqtt.on('connected', function () {mqtt.subscribe("dh11/send");var dht = require("modules/DHT11.js").connect(NodeMCU.D1);mqtt.publish("dh11/data", "设备连接成功");setInterval(function () {dht.read(function (a) {var temp = a.temp.toString();var rh = a.rh.toString();var data = "温度为" + temp + "湿度为" + rh;mqtt.publish("dh11/data", data);});}, 1000)// setInterval(function () {//     mqtt.publish("joystick/direction", "我是傻逼");// }, 1000);});mqtt.on('publish', function (pub) {if (pub.topic == 'dh11/send') {console.log("message: " + pub.message);}});mqtt.connect();} catch (error) {console.log(error);}
}

连接成功后设备详情显示连接信息
请添加图片描述
显示订阅使用状态

请添加图片描述
请添加图片描述
查看数据

推送消息给设备

请添加图片描述
请添加图片描述

更改数据获取方式

设备一连接不直接推送

通过告知设备消息让设备返回

修改 mqtt.on(‘publish’, function (pub) {

 var dht = require("modules/DHT11.js").connect(NodeMCU.D1);mqtt.on('publish', function (pub) {if (pub.topic == 'dh11/send') {console.log("message: " + pub.message);var param = JSON.parse(pub.message);if (param.type == 1) {dht.read(function (a) {var temp = a.temp.toString();var rh = a.rh.toString();var data = "温度为" + temp + " 湿度为" + rh;mqtt.publish("dh11/data", data);});}}});

当收到type:1 再推送 一个简单的交互
请添加图片描述

请添加图片描述
请添加图片描述

当然 平台上推送消息具有局限性,可以多个设备公用订阅组来数据交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/5102.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

xinference 使用命令实践记录

1. qwen-chat 模型相关的参数组合,以决定它能够怎样跑在各种推理引擎上 命令 xinference engine -e http://0.0.0.0:9997 --model-name qwen-chat 结果 2. 将 qwen-chat 跑在 VLLM 推理引擎上,但是我不知道什么样的其他参数符合这个要求。 命令: xin…

【代码随想录day22】【C++复健】77. 组合;216.组合总和III; 17.电话号码的字母组合

77. 组合 这题做完之后还是有一种稀里糊涂的感觉。思考了半天什么范围合理,并且怎么设置才能让这个范围合理,然而一看答案,发现答案完全没考虑这些因素,直接暴力全遍历了。只能说确实这样能够放弃思考,比较省心一些.…

选择适合你的报表工具,山海鲸报表与Tableau深度对比

在数据分析和报表制作的领域,企业往往面临着选择合适工具的难题。尤其是当市场上有很多功能强大的工具时,如何从中挑选出最适合自己需求的报表软件成为了一个关键问题。今天,我们将对比两款报表工具——山海鲸报表和Tableau,看看它…

unity优化webgl下的textMeshPro字体大小

成果:优化前2.5M的字体文件优化后只有几百kb不到1m了 背景:unity微信小游戏要求字体文件在3m以内姑且我认为2.5m以内实际可以干到1M以内。微信小游戏要求尽可能的进游戏快,在这个背景下我们需要对字体进行优化,我采用的是3500字的…

Spark的学习-02

Spark Standalone集群的安装 架构:普通分布式主从架构 主:Master:管理节点:管理从节点、接客、资源管理和任务 调度,等同于YARN中的ResourceManager 从:Worker:计算节点:负责利用自己…

Vue前端框架

一.Vue概述 *Vue 是一套前端框架,用于免除原生JavaScript中的DOM 操作,简化书写。 *基于MVVM(Model-View-ViewModel)思想,实现数据的双 向绑定,将编程的关注点放在数据上。 *官网: https://cn.vuejs.org/ 二.Vue快速…

软件设计师 7日速成

数据流图和数据字典 数据流图 定义 数据流图是一种图形化的工具,用于描述系统中数据的流动情况。它可以帮助我们可视化数据在系统中的处理过程,包括数据的来源、去向、存储位置以及处理方式。 组成元素 数据流图通常包含以下四个基本元素&#xff1…

基于 Vue3、Vite 和 TypeScript 实现开发环境下解决跨域问题,实现前后端数据传递

引言 本文介绍如何在开发环境下解决 Vite 前端(端口 3000)和后端(端口 80)之间的跨域问题: 在开发环境中,前端使用的 Vite 端口与后端端口不一致,会产生跨域错误提示: Access to X…

【Allure】allure装饰器函数

**allure装饰器**​作用:用于将测试用例的数据展示到测试报告中 1.需要将这些装饰器函数添加**测试方法或测试类的开头**。2.同一个类或者一个方法可以添加多个装饰器函数 ,这样此用例就具有了个作用属性 。 allure.epic() 敏捷中的概念 项目名称 allu…

python验证码滑块图像识别

文章目录 1、案例图片1、需求说明2、代码实现总结 1、案例图片 1、需求说明 python 3.10,写一个滑块验证码的自动化程序。需要一个opencv的函数,能准确的计算,在这同一张图片上,滑块形状和缺口形状的坐标位置及两个形状之间在X轴上的距离。请…

Linux基础-常用操作命令详讲

Linux基础-常用操作命令详讲 一、openssl加密简单介绍 1. 生成加密的密码散列(password hash)​编辑 1.1 常见的选项总结表 1.2 加密参数详解 2. 自签名证书 3. 证书转换 二、文件管理 1. 创建空文件 ​编辑 2. 删除文件 4. 新建目录 ​编辑…

【RAG系列】KG-RAG 用最简单的方式将知识图谱引入RAG

目录 前言 一、引入知识图谱的作用 二、引入知识图谱的挑战 三、KG-RAG的理论 query多跳有限性 知识局部密集性 四、KG-RAG的方法 向量入库 向量相似搜索 扩展子图 LLM Rerank LLM response 五、效果比对 六、源码 总结 前言 本文介绍一种比较新颖的RAG范式&am…

编程语言越来越多,为什么C/C++还没有被现在的时代淘汰呢?

近年来,随着人工智能、大数据等领域的兴起,各种新兴编程语言层出不穷,例如Python、Go等,它们以更简洁的语法、更丰富的库以及更友好的开发体验,吸引了大量开发者。 在这样的背景下,不少人开始质疑C/C这类“…

Docling:开源的文档解析工具,支持多种格式的解析和转换,可与其他 AI 工具集成

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 🥦 微信公众号&#xff…

学习笔记:Spring框架源码Part.2——核心

学习视频链接:https://www.bilibili.com/video/BV1zd4y1L7YD Spring学习笔记——核心 前言第三章 容器和上下文一、认识bean工厂1、基础能力2、更强的枚举能力3、灵活的分层能力4、构建和自动装配的能力5、更强的配置能力6、更多配置项7、工厂的生命周期 二、bean工…

linux守护进程与后台进程的区别

守护进程与后台进程有以下区别: 1. 概念与定义 后台进程: 是指在操作系统后台运行的进程,它不与用户直接交互(没有连接到用户的终端)。用户在终端中启动一个程序并让其在后台运行(如通过在命令后加“&…

【360】基于springboot的志愿服务管理系统

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装志愿服务管理系统软件来发挥其高效地信息处理的作用&#x…

【LLM Agents体验】Dify框架的安装指南

Dify简介: 核心功能‌12 ‌Dify是一款开源的大语言模型(LLM)应用开发平台,融合了后端即服务(Backend as a Service, BaaS)和LLMOps的理念,使开发者可以快速搭建生产级的生成式AI应用。LLMOps涵盖了大型语言模型的开发、…

TODO Error occurred while trying to proxy:【】

文章目录 场景异常解决 场景 使用 Ant Disign Pro 连接本地接口。 异常 Error occurred while trying to proxy: localhost:8000/api/login/account?token%20%20123[HPM] Error occurred while proxying request localhost:8000/api/login/account?token%20%20123 to http…

Linux 文件基本属性

1.Linux 文件基本属性 Linux 系统是一种典型的多用户系统,不同用户处于不同地位,拥有不同的权限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。Linux 通常使用以下两…