Node-red 网络温湿度计

news2025/1/15 21:49:51

文章目录

  • 前言
  • 一、温度数采集
  • 二、Node-red流程
    • 1.串口
    • 2.数据解析
    • 3.设置Dashboard
    • 3.流程图
  • 三、效果展示


前言

本文使用SHT40温湿度模块、ESP32S3实现温湿度数据采集,通过串口发送给计算机,使用Node-red Dashboard进行展示,可以在局域网任意计算机类设备上显示温湿度。其中ESP32S3可替换位任何MCU;计算机操作系统为WIN11,可替换为树莓派等其他可以运行Node-red的设备。

一、温度数采集

温度数采集的介绍在另外一篇文章中:Arduino开发ESP32 S3(二):使用库读取SHT40温湿度,此处不再赘述。ESP32S3串口输出的数据如下,Node-red只需要处理这些数据就可以了。
在这里插入图片描述

二、Node-red流程

注意:流程的编写描述了实现方法的大致过程,没有逐步的详细描写,需阅读这一部分要有Node-red基础。

1.串口

加入serial in 和serial out节点,串口配置如下:
在这里插入图片描述
注意:每个计算机识别串口不同,需要替换。

2.数据解析

加入function节点将输出设为2个,一个为温度数据、一个为湿度数据。
在这里插入图片描述
解算从串口收到的数据。
在这里插入图片描述
代码如下:

let data = msg.payload.toString();  // 将 Buffer 数据转换为字符串
node.warn(data);  // 输出数据以便调试

let temperature = null;
let humidity = null;

// 使用正则表达式提取温度和湿度
let tempMatch = data.match(/Temperature:\s*([\d\.]+)/);
let humMatch = data.match(/Humidity:\s*([\d\.]+)/);

if (tempMatch) {
    temperature = parseFloat(tempMatch[1]);

    // 校准温度数据:加上 10 度
    temperature = temperature - 5
    ;  // 调整温度高 10 度
    // 保留两位小数
    temperature = temperature.toFixed(2);
}

if (humMatch) {
    humidity = parseFloat(humMatch[1]);
    // 保留两位小数
    humidity = humidity.toFixed(2);
}

// 创建两个消息对象
let msg1 = { payload: temperature };  // 包含校准后的温度数据
let msg2 = { payload: humidity };     // 包含湿度数据

// 输出数据以调试
node.warn("Temperature (calibrated): " + temperature);
node.warn("Humidity: " + humidity);

// 返回两个消息对象
return [msg1, msg2];

3.设置Dashboard

在流程中添加两个gauge节点,一个命名为温度,一个命名为湿度,配置如下:

在这里插入图片描述
在这里插入图片描述

3.流程图

在这里插入图片描述

三、效果展示

在手机上查看温湿度(需要连接ESP32 S3的计算机和手机在同一个WIFI网络下)。

在这里插入图片描述

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

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

相关文章

程序算术题-2

程序算术题-2 输出所有组合逻辑实例代码 输出所有排列逻辑实例代码 输出所有组合 计算一组数字按n位数组合的所有组合。 逻辑 /*** param stringBuilder 用于组合的拼接* param list 组合数序列* param level 目前位数* param exceptedLevel 组合期待位数*/…

mac删除程序坞(Dock)中“无法打开的程序“

参考: Mac删除软件之后图标还在怎么办?https://blog.csdn.net/weixin_46500474/article/details/124284161Mac程序坞中软件删除出现残留“?”图标无法删除解决方法: https://blog.csdn.net/shenwenhao1990/article/details/12865…

Simdroid-EC:液冷仿真新星,助力新能源汽车电机控制器高效散热

近年来,新能源电动车的销量呈现出快速增长的态势。据统计,2024 年1-10月中国新能源汽车销量达728万辆,同比增长37.8%。 电机控制器在新能源汽车中对于保障动力和安全性能扮演着至关重要的角色,其核心部件IGBT(绝缘栅双…

使用 ESP32 构建倒车雷达系统:蜂鸣器警报功能详解

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:趣享先生的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏&…

【数据结构】堆的概念、结构、模拟实现以及应用

本篇我们来介绍一下数据结构中的堆。 1.堆的概念及结构 1)堆是一颗完全二叉树。 2)堆又分为大堆和小堆,大堆就是树里面任何一个父节点都大于子节点,所以根节点是最大值;小堆就是树里面任何一个父节点都小于子节点&am…

MySQL(五)--- 事务

1、CURD操作不加控制时,可能会出现什么问题 即:类似于线程安全问题,可能会导致数据不一致问题。 因为,MySQL内部本身就是多线程服务。 1.1、CURD满足什么属性时,才能避免上述问题 1、买票的过程得是原子的吧。 2、买票互相应该不能影响吧。 3、买完票应该要永久有效吧。…

UE5中的自定义 Object Channel 和 Trace Channel

在 UE5(Unreal Engine 5) 中,项目设置中的 自定义 Object Channel 和 Trace Channel 主要用于管理物体和射线的碰撞检测行为。这两者是为 碰撞系统 和 物理模拟 提供定制化设置的工具。 1. Object Channel(物体通道) …

【AI+网络/仿真数据集】1分钟搭建云原生端到端5G网络

导语: 近期智慧网络开放创新平台上线了端到端网络仿真能力,区别于传统的网络仿真工具需要复杂的领域知识可界面操作,该平台的网络仿真能力主打一个小白友好和功能专业。 https://jiutian.10086.cn/open/​jiutian.10086.cn/open/ 端到端仿…

mybatisplus如何自定义xml文件-源码下载

1、问题概述? MybatisPlus通过BaseMapper为我们带来了丰富的基础功能操作,非常使用。 但是在实际的操作中,我们还需要大量的自定义SQL的的时候,这时候就需要自定义xml,从而自定义sql语句。 2、创建工程 2.1、项目结…

经纬度坐标系转换:全面解析与实践

摘要 在地理信息处理与地图应用开发领域,经纬度坐标系的转换起着举足轻重的作用。不同的地图服务提供商,如百度和高德,各自采用了特定的坐标系,并且在某些情况下需要进行相互转换以及与其他通用坐标系之间的转换。本文将深入探讨…

Qt之第三方库‌QXlsx使用(三)

Qt开发 系列文章 - QXlsx(三) 目录 前言 一、Qt开源库 二、QXlsx 1.QXlsx介绍 2.QXlsx下载 3.QXlsx移植 4.修改项目文件.pro 三、使用技巧 1.添加头文件 2.写入数据 3.读出数据 总结 前言 Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用…

C++类的运算符重载

目标 让自定义的类直接使用运算符运算 代码 头文件及类定义 #include <iostream>using namespace std; class Complex {int rel;int vir; public:void show(){cout <<"("<<this->rel<<","<<this->vir<<&quo…

SQL注入--Sqlmap使用

一.GET型注入 介绍&#xff1a;注入点在URL里的称之为GET型注入。 单目标 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id1" sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id1&page10" -p page sqlmap.py -u "http://127.0.0.1/sqli/Less-…

前端编辑器JSON HTML等,vue2-ace-editor,vue3-ace-editor

与框架无关 vue2-ace-editor有问题&#xff0c;ace拿不到&#xff08;brace&#xff09; 一些组件都是基于ace-builds或者brace包装的 不如直接用下面的&#xff0c;不如直接使用下面的 <template><div ref"editor" class"json-editor"><…

知行之桥EDI系统V2024 12月9111版本更新

知行之桥EDI系统V2024于12月推出版本更新&#xff08;版本号&#xff1a;9111&#xff09;&#xff0c;在原有产品的基础上进行了一系列的新增、更改和修复&#xff0c;以确保 EDI 和 MFT 集成尽可能的简单化。 主要特性 新增 新增EDI 交易伙伴管理控制台 交易伙伴管理控制台…

nmap详解

Nmap&#xff08;Network Mapper&#xff09;是一个开放源代码的网络探测和安全审核的工具。由于它的功能强大&#xff0c;被广泛应用于网络安全领域。以下是Nmap的一些主要功能及其在实战中的应用举例。 Nmap的主要功能&#xff1a; 端口扫描&#xff1a;检测目标主机上开放…

HarmonyOS 5.0应用开发——属性动画

【高心星出品】 文章目录 属性动画animateTo属性动画animation属性动画 属性动画 属性接口&#xff08;以下简称属性&#xff09;包含尺寸属性、布局属性、位置属性等多种类型&#xff0c;用于控制组件的行为。针对当前界面上的组件&#xff0c;其部分属性&#xff08;如位置属…

求解自洽场方程

Let’s break down the problem and the solving process step-by-step. Problem Overview The problem appears to be related to linear algebra and possibly quantum mechanics (given the mention of “eigenvalues” and “Hamiltonian” in the Chinese text). We hav…

yarn 安装问题

Couldn’t find package “regenerator-runtime” on the “npm” registry. Error: Couldn’t find package “watch-size” on the “npm” regist 标题Error: Couldn’t find package “babel-helper-vue-jsx-merge-props” on the “npm” registry. Error: Couldn’t f…

Edge SCDN的独特优势有哪些?

强大的边缘计算能力 Edge SCDN&#xff08;边缘安全加速&#xff09;是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术&#xff0c;智能调度使用户就近获取所需内容&#xff0c;为用户提供稳定快速的访问…