nodered docker 上的 modbus rtu

问题描述 投票:0回答:1

如何使用提供的 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 环境中正确配置串行通信的帮助或指导将不胜感激。谢谢!

docker-compose node-red modbus
1个回答
0
投票

您需要将任何设备安装到容器中才能访问它们,例如在这种情况下,您需要将

/dev/ttyACM0
设备绑定安装到同一路径上的容器中。

您还需要确保容器内的

node-red
用户可以读取该设备。

/dev/ttyACM0
设备很可能由主机上的
dialout
组拥有,因此您应该将以下内容添加到您的服务中:

group_add:
  - dialout

https://docs.docker.com/compose/compose-file/05-services/#group_add

© www.soinside.com 2019 - 2024. All rights reserved.