解决Windows10上node-red-node-pi-sense-hat-simulator固定值问题及获取随机温压湿数据
解决Node-RED Pi Sense HAT模拟器数据固定问题及生成随机环境值方案
一、修复数据固定为20/80/1000的问题
- 检查节点配置:打开Pi Sense HAT模拟器节点的设置面板,确认**"Generate random data"**选项是否被勾选。默认未勾选时,节点会输出固定的默认值。
- 重新部署流程:修改配置后,点击Node-RED右上角的**"Deploy"**按钮,确保配置生效。
- 重置节点或服务:如果配置正确但数据仍固定,右键点击模拟器节点选择**"Restart node"**;或者在命令行执行
node-red-stop停止服务,再用node-red-start重启Node-RED。
二、生成随机环境事件值的两种方法
方法1:利用模拟器自带功能
- 编辑Pi Sense HAT模拟器节点,勾选**"Generate random data"**选项。
- 按需调整**"Update interval"**(比如设为1000毫秒),控制数据更新频率。
- 部署后,节点会自动生成在合理区间波动的随机温度、湿度、气压值。
方法2:自定义函数节点生成精准随机值
如果需要更灵活的数值范围控制,可以用函数节点实现:
- 拖入**"inject"节点,设置为重复触发(比如间隔1秒),连接到"function"**节点,再连接到调试或输出节点。
- 在function节点中写入以下代码:
// 生成自定义范围的随机环境数据 const temp = Math.round((15 + Math.random() * 10) * 10) / 10; // 15-25℃,保留1位小数 const humidity = Math.round(40 + Math.random() * 40); // 40-80%相对湿度 const pressure = Math.round(980 + Math.random() * 40); // 980-1020hPa气压 // 构造与Sense HAT模拟器一致的输出格式 msg.payload = { temperature: temp, humidity: humidity, pressure: pressure }; return msg;
- 部署后,inject节点会定时触发生成符合需求的随机环境数据。
内容的提问来源于stack exchange,提问作者rohit sajwan
相关产品推荐
相关产品推荐

