Truyền thông MQTT địa phương và xa


7

Trong dự án của tôi, tôi có một bộ cảm biến trong mạng cục bộ nên giao tiếp với Raspberry Pi 3 và sau đó với một nhà môi giới MQTT ở xa.

Vì tôi đang sử dụng ESP8266 cho các nút cảm biến, tôi nghĩ rằng tôi sẽ tạo các nút máy khách MQTT liên lạc trực tiếp với nhà môi giới thông qua kết nối internet của pi. Nhưng tôi cần pi để có quyền truy cập vào dữ liệu của cảm biến từ các nút cục bộ cũng như dữ liệu từ các cảm biến được liên kết với nó.

Vì vậy, tôi muốn giải pháp tốt nhất để thực hiện một giao tiếp như vậy. Tôi đã nghĩ đến việc thêm một nhà môi giới vào Pi sẽ được kết nối với nhà môi giới ở xa cũng như xuất bản các tin nhắn MQTT cho một chương trình python chạy trên Raspberry.

  1. Có cách nào để tránh đưa một nhà môi giới khác vào Pi không?

  2. Có một giải pháp tốt hơn để làm điều này?

  3. Người môi giới sẽ tiêu thụ quá nhiều bộ nhớ?

Biết rằng tôi có thể cần phải truyền dữ liệu khung hình máy ảnh là tốt.

Câu trả lời:


7

Một nhà môi giới như mosquitto sẽ vui vẻ chạy trên Pi và cầu nối với một nhà môi giới từ xa.

Nó sẽ tiêu thụ bao nhiêu tài nguyên hoàn toàn phụ thuộc vào lượng lưu lượng bạn gửi qua nó và nếu bạn kết thúc việc xếp hàng một lượng lớn tin nhắn được giữ lại. Trong hầu hết các trường hợp, nó khá thấp (trừ khi bạn dự định phát trực tuyến video qua MQTT).

Nhưng giải pháp này có lợi ích là nếu liên kết đến nhà môi giới từ xa đi xuống, mọi thứ sẽ tiếp tục hoạt động tại địa phương.

Các nhà môi giới phân lớp như thế này là một trong những trường hợp sử dụng cụ thể MQTT được thiết kế để xử lý.


2

Bạn có thể thiết lập một cái gì đó như Node-RED để thu thập các tải trọng từ các cảm biến ESP8266, và quay lại và gửi cùng một tải trọng bằng một chủ đề khác. Tôi tự làm điều này trên thiết lập tự động hóa nhà của tôi. Tôi có một số cách đọc tạm thời cứ sau ba giây cho một chủ đề, nhưng tôi cần phải giảm tốc độ xuống một lần một phút và gửi lại bằng một chủ đề khác. Cả hai bộ tin nhắn đều sử dụng cùng một Nhà môi giới.

Vì vậy, trong trường hợp của bạn, hãy sử dụng Raspberry Pi làm nhà môi giới MQTT cục bộ với bộ chủ đề riêng, Node-RED nắm bắt các gói cần gửi và sử dụng một nhóm chủ đề khác để gửi chúng. Tôi có một máy chủ Docker chạy bộ chứa môi giới Mosquitto và bộ chứa Node-RED cũng như hai bộ chứa khác sử dụng dữ liệu được chuyển đổi Node-RED. Hoạt động như một nhà vô địch.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.