一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情。
经过前面几期的教程,我们已经认识了Node_RED的几种基础节点。接下来我们就进入实战阶段。本期我们使用使用Node_RED来读取树莓派下的温湿度传感器,并通过dashboard节点显示出来,效果如下:
准备工作
这里主要Node_RED的操作,对树莓派的安装与配置步骤就不做详细讲解了,有疑问可以留言。
1、树莓派安装Node_RED
请参考前面的文章:树莓派安装node-red
2、树莓派连接温湿度传感器
我们将温湿度的数据连接到树莓派3B+的第12个物理针脚,对应的BCM编码为18,GPIO编码为1
Node_RED组态开发
配置后的流如下图,我们接下来一一进行讲解。
-
周期触发节点
这是一个inject节点,作用是周期触发数据流,配置如下
-
温湿度读取节点
读取温湿度传感器的数据,我们要安装一个读取DHT11或DHT12的专用节点。在“节点管理”中搜索”node-red-contrib-dht-sensor“并安装。
安装成功后,在左侧Raspberry Pi分组中拖拽rpi-dht22到流中,我们配置引脚类型为BCM GPIO模式,对应引脚编号为18。
节点读取到的数据格式如下:
```json
{
"payload": "32.00",
"topic": "rpi-dht22",
"_msgid": "bbf50818f197189e",
"humidity": "28.00",
"isValid": true,
"errors": 0,
"location": "温湿度读取",
"sensorid": "dht11"
}
```
3. 数据转换节点
数据转换节点是一个function节点,功能是将读取到的温湿度数据分别输出到下一节点。
-
温度、湿度节点
温湿度节点是两个dashboard仪表盘,用来显示实时的温度、湿度。dashboard节点与node-red-contrib-dht-sensor一样需要手动安装,在节点管理中,搜索”node-red-dashboard“安装。
安装成功后,拖拽两个”gauge“节点,分别配置温度、湿度
配置完毕后,我们访问http://192.168.1.243:1880/ui/,来查看实际效果
- 导出的流程数据如下:
[
{
"id": "c96a2e4a3aed3e67",
"type": "tab",
"label": "流程 1",
"disabled": false,
"info": "",
"env": []
},
{
"id": "19ca8d2f55b633e1",
"type": "rpi-dht22",
"z": "c96a2e4a3aed3e67",
"name": "温湿度读取",
"topic": "rpi-dht22",
"dht": "11",
"pintype": "0",
"pin": "18",
"x": 290,
"y": 280,
"wires": [
[
"02b1abc15e998bee"
]
]
},
{
"id": "d0d597f1fc372e45",
"type": "inject",
"z": "c96a2e4a3aed3e67",
"name": "周期触发",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "1",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payloadType": "date",
"x": 110,
"y": 280,
"wires": [
[
"19ca8d2f55b633e1"
]
]
},
{
"id": "0ad987b4cb606a8b",
"type": "ui_gauge",
"z": "c96a2e4a3aed3e67",
"name": "",
"group": "84277f27ca55021f",
"order": 0,
"width": 0,
"height": 0,
"gtype": "gage",
"title": "温度",
"label": "℃",
"format": "{{value}}",
"min": "-10",
"max": "50",
"colors": [
"#00b500",
"#e6e600",
"#ca3838"
],
"seg1": "",
"seg2": "",
"className": "",
"x": 710,
"y": 240,
"wires": []
},
{
"id": "dba2b67a72039bec",
"type": "ui_gauge",
"z": "c96a2e4a3aed3e67",
"name": "",
"group": "84277f27ca55021f",
"order": 0,
"width": 0,
"height": 0,
"gtype": "gage",
"title": "湿度",
"label": "%rh",
"format": "{{value}}",
"min": "0",
"max": "100",
"colors": [
"#00b500",
"#e6e600",
"#ca3838"
],
"seg1": "",
"seg2": "",
"className": "",
"x": 710,
"y": 320,
"wires": []
},
{
"id": "02b1abc15e998bee",
"type": "function",
"z": "c96a2e4a3aed3e67",
"name": "数据转换",
"func": "// 设置两个返回值,分别返回温度湿度\nmsg1={\"payload\":msg.payload}\nmsg2={\"payload\":msg.humidity}\nreturn [msg1,msg2]",
"outputs": 2,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 460,
"y": 280,
"wires": [
[
"0ad987b4cb606a8b"
],
[
"dba2b67a72039bec"
]
]
},
{
"id": "84277f27ca55021f",
"type": "ui_group",
"name": "仪表盘",
"tab": "853119175c6746b7",
"order": 1,
"disp": true,
"width": "6",
"collapse": false,
"className": ""
},
{
"id": "853119175c6746b7",
"type": "ui_tab",
"name": "Home",
"icon": "dashboard",
"disabled": false,
"hidden": false
}
]
今天的文章12_Node-RED_树莓派实战_读取温湿度传感器分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16240.html