002-温度传感器,自动控制空调

发布时间:2026/7/14 23:37:55

002-温度传感器,自动控制空调
视频演示 https://v.douyin.com/6pkAjPMHCTM/NodeRed工作流[{id: d500fe07916bb488,type: tab,label: 02-温度传感器控制空调,disabled: false,info: ,env: []},{id: 7005f0477b947b5a,type: modbus-read,z: d500fe07916bb488,name: 读取温度传感器,topic: ,showStatusActivities: false,logIOActivities: false,showErrors: false,showWarnings: true,unitid: 1,dataType: HoldingRegister,adr: 600,quantity: 4,rate: 2,rateUnit: s,delayOnStart: false,enableDeformedMessages: false,startDelayTime: ,server: 9e84b83cd9fb6aea,useIOFile: false,ioFile: ,useIOForPayload: false,emptyMsgOnFail: false,x: 150,y: 60,wires: [[7499a01364a8131a],[]]},{id: cc476978e7fbc83b,type: debug,z: d500fe07916bb488,name: debug 1,active: true,tosidebar: true,console: false,tostatus: false,complete: false,statusVal: ,statusType: auto,x: 560,y: 60,wires: []},{id: 7499a01364a8131a,type: function,z: d500fe07916bb488,name: 解析温度值,func: // 获取Modbus返回的4个寄存器值\nconst regs msg.payload;\nif (regs.length 4) {\n msg.error \读取寄存器数量不足请检查接线和配置\;\n return msg;\n}\n\n// 解析温度CDAB格式高字在后低字在前\n// 对应说明书温度数据 第2个寄存器 第1个寄存器拼成32位大端浮点数\nconst tempRaw (regs[1] 16) | regs[0];\nconst tempBuf Buffer.alloc(4);\ntempBuf.writeUInt32BE(tempRaw, 0);\nconst temperature tempBuf.readFloatBE(0);\n\n// 解析湿度同温度格式\nconst humRaw (regs[3] 16) | regs[2];\nconst humBuf Buffer.alloc(4);\nhumBuf.writeUInt32BE(humRaw, 0);\nconst humidity humBuf.readFloatBE(0);\n\n// 保留2位小数输出结构化数据\nmsg.payload {\n temperature: Number(temperature.toFixed(2)),\n humidity: Number(humidity.toFixed(2)),\n unit: {\n temperature: \℃\,\n humidity: \%RH\\n }\n};\nmsg.topic \博为温湿度传感器数据\;\nreturn msg;,outputs: 1,timeout: 0,noerr: 0,initialize: ,finalize: ,libs: [],x: 350,y: 60,wires: [[cc476978e7fbc83b,29ba4ec7c3184af3]]},{id: 29ba4ec7c3184af3,type: switch,z: d500fe07916bb488,name: 温度判断,property: payload.temperature,propertyType: msg,rules: [{t: gte,v: 33,vt: str},{t: lte,v: 32,vt: str}],checkall: true,repair: false,outputs: 2,x: 160,y: 120,wires: [[32e7890342b79c9e],[1462adf5b582b3a8]]},{id: 32e7890342b79c9e,type: function,z: d500fe07916bb488,name: 开灯红外码,func: // airconStatus空调状态为关false时才进入if中去开空调\nif(!flow.get(\airconStatus\)) {\n // 把HEX字符串转串口需要的Buffer\n msg.payload Buffer.from(\6863000022DC08B20446D5014347454745464646464645464646464646D50143D50143D50143D50143D50143D50143D50143D5014446464646464646464943494346464646D50144D50144D50144D50143D50144D40144D40144D026E50895024B1B16\, \hex\);\n flow.set(\airconStatus\, true); // 将空调状态设置为开\n}\nreturn msg;,outputs: 1,timeout: 0,noerr: 0,initialize: ,finalize: ,libs: [],x: 400,y: 200,wires: [[eb6016fcede26454]]},{id: 1462adf5b582b3a8,type: function,z: d500fe07916bb488,name: 关灯红外码,func: // airconStatus空调状态为开true时才进入if中去关空调\nif (flow.get(\airconStatus\)) {\n // 把HEX字符串转串口需要的Buffer\n msg.payload Buffer.from(\6863000022DE08B50443D5014347454745474547454745474547454745D50143D50143D50143D60143D60143D60143D501424745D60143474547454745474547454745D501434745D50143D50143D50142D60142D50143D50143D326DD089902471616\, \hex\);\n flow.set(\airconStatus\, false); // 将空调状态设置为关\n}\nreturn msg;,outputs: 1,timeout: 0,noerr: 0,initialize: ,finalize: ,libs: [],x: 400,y: 320,wires: [[eb6016fcede26454]]},{id: eb6016fcede26454,type: serial out,z: d500fe07916bb488,name: COM7,serial: b0d421786c2f6e99,x: 590,y: 260,wires: []},{id: 8c51d683caf368e5,type: inject,z: d500fe07916bb488,name: 测试开灯,props: [{p: payload},{p: topic,vt: str}],repeat: ,crontab: ,once: false,onceDelay: 0.1,topic: ,payload: ,payloadType: date,x: 140,y: 200,wires: [[32e7890342b79c9e,535eb5a292ee28a1]]},{id: 888f378ebefbf5ed,type: inject,z: d500fe07916bb488,name: 测试关灯,props: [{p: payload},{p: topic,vt: str}],repeat: ,crontab: ,once: false,onceDelay: 0.1,topic: ,payload: ,payloadType: date,x: 140,y: 320,wires: [[1462adf5b582b3a8,6b821f2e41bd0f88]]},{id: 535eb5a292ee28a1,type: function,z: d500fe07916bb488,name: 设置状态为false,func: flow.set(\airconStatus\,false);\nreturn msg;,outputs: 1,timeout: 0,noerr: 0,initialize: ,finalize: ,libs: [],x: 180,y: 260,wires: [[]]},{id: 6b821f2e41bd0f88,type: function,z: d500fe07916bb488,name: 设置状态为true,func: flow.set(\airconStatus\,true);\nreturn msg;,outputs: 1,timeout: 0,noerr: 0,initialize: ,finalize: ,libs: [],x: 180,y: 380,wires: [[]]},{id: 9e84b83cd9fb6aea,type: modbus-client,name: COM28,clienttype: simpleser,bufferCommands: true,stateLogEnabled: false,queueLogEnabled: false,failureLogEnabled: true,tcpHost: 127.0.0.1,tcpPort: 502,tcpType: DEFAULT,serialPort: COM28,serialType: RTU-BUFFERD,serialBaudrate: 9600,serialDatabits: 8,serialStopbits: 1,serialParity: none,serialConnectionDelay: 100,serialAsciiResponseStartDelimiter: 0x3A,unit_id: 1,commandDelay: 1,clientTimeout: 1000,reconnectOnTimeout: true,reconnectTimeout: 2000,parallelUnitIdsAllowed: true,showErrors: false,showWarnings: true,showLogs: true},{id: b0d421786c2f6e99,type: serial-port,name: COM7,serialport: COM7,serialbaud: 115200,databits: 8,parity: none,stopbits: 1,waitfor: ,dtr: none,rts: none,cts: none,dsr: none,newline: 10,bin: bin,out: interbyte,addchar: ,responsetimeout: 10000},{id: cd33721e7c96b796,type: global-config,env: [],modules: {node-red-contrib-modbus: 5.45.2,node-red-node-serialport: 2.0.3}}]

相关新闻

001-使用串口控制红外设备

001-使用串口控制红外设备

2026/7/9 15:30:33

视频演示: https://v.douyin.com/XDJCvNu2h5k/NodeRed工程流:[{"id": "b6590f52b7e68ea9","type": "tab","label": "01-串口,控制红外灯","disabled": true,"in…

Java面试通关⑰:设计模式全集

Java面试通关⑰:设计模式全集

2026/7/10 0:14:50

📖 前言导读 设计模式是代码架构思维、框架源码设计、高质量代码必备能力,大厂面试高频问模式原理、落地场景、源码应用。多数开发者只会CRUD,代码冗余、耦合严重、扩展性差,不懂设计模式思想,无法写出高复用、高扩展、…

条件拉丁超立方采样 (cLHS) 实战:基于 Python 的 7 维土壤数据空间采样案例

条件拉丁超立方采样 (cLHS) 实战:基于 Python 的 7 维土壤数据空间采样案例

2026/7/9 12:52:46

条件拉丁超立方采样 (cLHS) 实战:基于 Python 的 7 维土壤数据空间采样案例在环境科学和地质工程领域,如何高效获取具有代表性的土壤样本一直是个难题。传统随机采样往往需要大量样本才能准确反映污染分布,而网格化采样又可能遗漏关键热点区域…

雪花算法时钟回拨的问题,和百度UidGenerator、美团Leaf的选型对比

雪花算法时钟回拨的问题,和百度UidGenerator、美团Leaf的选型对比

2026/7/14 23:28:12

要解决分布式ID生成的难题,工业界的主流思路,可以理解为在“原生雪花算法”这棵树的主干上,长出了两个主要的分支:一类是以美团Leaf为代表的号段模式与雪花模式双修派;另一类是以百度UidGenerator为代表的极致性能派。…

智能驾驶中的车道线检测技术:从传统方法到深度学习

智能驾驶中的车道线检测技术:从传统方法到深度学习

2026/7/14 23:28:12

1. 车道线检测技术概述车道线检测作为计算机视觉在智能驾驶领域的核心应用,已经发展了近三十年。这项技术从最初的基于颜色分割的简单算法,逐步演变为如今融合深度学习与几何约束的复杂系统。在实际道路场景中,车道线不仅要应对光照变化、遮挡…

零基础做一个「每日壁纸 + 短句」静态网页

零基础做一个「每日壁纸 + 短句」静态网页

2026/7/14 23:28:12

本文使用AI做了一个「每日壁纸 短句」静态网页 1.需求 做一个极简静态网页,打开就是一张高清壁纸 一句温柔文案,干净、治愈、极简。 打开自动显示一张高清壁纸壁纸上叠加一句治愈短句 / 名言支持一键刷新换壁纸、换句子支持一键保存壁纸手机 / 电脑…

嵌入式系统电源管理:ADP5350 PMIC与STM32实战解析

嵌入式系统电源管理:ADP5350 PMIC与STM32实战解析

2026/7/14 23:28:12

1. 为什么需要高级电源管理解决方案在现代嵌入式系统中,电源管理已经成为一个关键的设计挑战。我最近为一个工业数据采集项目选型时,就深刻体会到了这一点。系统需要同时处理传感器数据采集、无线通信和本地存储,而传统的线性稳压方案根本无法…

Offline RL实战:IQL如何通过隐式Q学习规避OOD动作,实现策略提升

Offline RL实战:IQL如何通过隐式Q学习规避OOD动作,实现策略提升

2026/7/14 23:28:12

1. 离线强化学习与IQL的核心挑战想象你手里有一本菜谱合集,但厨房被封了——这就是离线强化学习(Offline RL)面临的基本场景。我们只能依靠历史数据训练智能体,无法像在线RL那样通过试错来优化策略。这种设定下,算法需…

Claude Code接入DeepSeek API:终端AI编程助手配置指南

Claude Code接入DeepSeek API:终端AI编程助手配置指南

2026/7/14 23:18:12

在实际编程工作中,很多开发者都希望有一个能在终端内直接使用的AI编程助手,既能理解代码上下文,又能快速生成和优化代码片段。Claude Code作为一款终端内的AI编程工具,配合DeepSeek的强大模型能力,可以显著提升日常开发…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/14 10:03:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/13 20:43:10

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南

XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南

2026/7/14 0:06:37

1. 项目概述:当游戏语言成为一堵墙作为一名玩了十几年日系、欧美独立游戏的“老油条”,我太懂那种面对一款心仪已久、画风玩法都戳中G点的游戏,却因为语言不通而望而却步的痛了。尤其是那些基于Unity引擎开发的、体量不大但内容精良的作品&am…

2026普通文员学数据分析的价值

2026普通文员学数据分析的价值

2026/7/14 0:06:37

一、2026年普通文员学习数据分析的必要性随着数字化转型加速,数据分析技能正逐渐成为职场基础能力。普通文员学习数据分析可以提升工作效率、增强竞争力,并为职业转型提供更多可能性。二、数据分析对文员的价值自动化办公:通过数据分析工具&a…

2026从计划员到主管,生产管理者学数据分析有用吗?

2026从计划员到主管,生产管理者学数据分析有用吗?

2026/7/14 0:06:37

一、生产管理领域的职业发展路径 从计划员到主管的角色转变,是生产管理者职业发展的典型路径。计划员主要负责生产排程、库存管理和资源协调等基础工作,而主管则需要承担团队管理、决策支持和效率优化等更高级别的职责。这种转变不仅仅是职位的提升&…