如何使用提供的 docker-compose.yml 文件在 Node-RED Docker 容器内配置串行通信 (modbus rtu),特别是与 Arduino 设备的串行通信?
这是我的 docker-compose.yml 文件中的片段:
version: "3"
services:
node-red:
image: nodered/node-red:latest
environment:
- TZ=Asia/Jakarta
- NODE_RED_ADMIN_PW=${NODE_RED_PW_1}
container_name: secure_noderedx
ports:
- "1880:1880"
- "1883:1883"
command:
- "/settings/settings.js"
volumes:
- volume_server_1:/data
- ./settings/settings.js:/data/settings.js
devices:
- /dev/ttyACM0 # <-- Arduino device
env_file:
- .env
我已将 Arduino 设备连接到 /dev/ttyACM0,但在 Docker 容器内运行的 Node-RED 似乎无法访问它。为了在 Docker 容器内启用 Arduino 和 Node-RED 之间的串行通信,我是否缺少特定的配置或步骤?
任何有关如何在 Dockerized Node-RED 环境中正确配置串行通信的帮助或指导将不胜感激。谢谢!
您需要将任何设备安装到容器中才能访问它们,例如在这种情况下,您需要将
/dev/ttyACM0
设备绑定安装到同一路径上的容器中。
您还需要确保容器内的
node-red
用户可以读取该设备。
/dev/ttyACM0
设备很可能由主机上的dialout
组拥有,因此您应该将以下内容添加到您的服务中:
group_add:
- dialout
https://docs.docker.com/compose/compose-file/05-services/#group_add