Tôi đang bận với ứng dụng loại IoT yêu cầu phần cứng vật lý được kết nối qua cổng nối tiếp. Chúng tôi đã chọn sử dụng kiến trúc Azure IoT Edge để triển khai ứng dụng trên PC hiện có. Điều này giúp ích cho chu trình DevOps của chúng tôi.
Để sử dụng Azure IoT Edge, ứng dụng của chúng tôi phải được chứa trong bộ chứa và do đó, việc hiển thị các cổng nối tiếp có thể là một thách thức khá lớn. PC là 64-bit và đang chạy Ubuntu 20.04 và có nhiều cổng USB, cổng nối tiếp và LAN mà chúng tôi có thể cắm thiết bị vào.
Chúng tôi đã theo dõi tuyệt vời này hướng dẫn từ Losant để thiết lập điều này.
Các tùy chọn tạo vùng chứa của chúng tôi trông như thế này:
{
"HostConfig": {
"PortBinding": {
"80/tcp": [
{
"Cổng máy chủ": "5000"
}
]
},
"Đặc quyền": đúng,
"Tập": {
"/dev": {}
}
}
}
Chúng tôi ánh xạ ứng dụng từ cổng 80 của ứng dụng sang cổng 5000 trên PC và chúng tôi đặt thẻ Tập và thẻ Đặc quyền như được đề xuất trong liên kết hướng dẫn ở trên.
Bản thân thiết bị được kết nối qua USB và do đó chúng tôi phải cài đặt trình điều khiển trên Ubuntu 20.04 từ trang web FTDI.
Câu hỏi của tôi:
Trong một số trường hợp, ứng dụng của chúng tôi sẽ tìm thấy cổng nối tiếp (tty/USB0), nhưng trong hầu hết các trường hợp thì không. Nếu chúng tôi cấp nguồn cho PC với thiết bị được kết nối, ứng dụng thường tìm thấy thiết bị. Làm cách nào chúng tôi có thể thay đổi thiết lập PC/thiết lập docker/thiết lập ứng dụng để nó luôn tìm thấy thiết bị?
LƯU Ý: Đây là một bản sao của câu hỏi này trên StackOverflow vì tôi không chắc liệu câu hỏi thuộc về ở đó hay ở đây.