Tôi có thể sử dụng ESP8266 làm nhà môi giới MQTT không?


7

Tôi đang thực hiện một dự án tự động hóa nhà dựa trên cấu trúc liên kết sao. Những gì tôi đang cố gắng đạt được là một trong những cái gật đầu / ESP8266 hoạt động như một máy chủ có thể truy cập được cho thế giới bên ngoài và cái gật đầu / ESP8266 khác hoạt động như các máy khách được kết nối với rơle hoặc cảm biến.

Khi nhận được lệnh từ máy chủ, rơle phải được kích hoạt tương ứng và cập nhật trạng thái trở lại máy chủ. Tôi đọc rất nhiều hướng dẫn thông qua các phương pháp khác nhau. MQTT có vẻ tốt nhưng tôi không muốn sử dụng bất kỳ nhà môi giới bên thứ ba nào như Adaf nhung. Tôi muốn lưu trữ máy chủ web trên gật đầu hoặc máy chủ web của tôi. Điều đáng buồn là tôi không sở hữu Raspberry Pi.

Tôi có thể sử dụng một trong các thiết bị ESP8266 của mình làm nhà môi giới MQTT không, hoặc có phương án nào phù hợp không?


2
Để sử dụng MQTT, bạn cần một nhà môi giới và một Esp8266 không có khả năng hoạt động như một nhà môi giới. Bạn cần một cái gì đó "lớn hơn"
hardillb

1
Bạn có thể lưu trữ một nhà môi giới MQTT trên PC / Laptop của bạn mặc dù chạy 0/24 có thể làm tăng hóa đơn tiền điện của bạn một chút.
Bence Kaulics

1
@hardillb -> một cái gì đó lớn hơn có nghĩa là quả mâm xôi pi? hoặc Arduino Mega cũng có thể được sử dụng cho cùng mục đích
Rohit Mathur

1
Nó có nghĩa là một máy tính thực sự, vì vậy không phải là Arduino Mega, Pi Zero là đủ
hardillb

1
@BenceKaulics -> tôi có thể sử dụng lưu trữ web của mình thay vì để máy tính xách tay của mình trong suốt cuộc đời của nó. Tôi có một lưu trữ web chia sẻ.
Rohit Mathur

Câu trả lời:


9

Về mặt kỹ thuật, vâng, một chiếc ESP8266 có thể hoạt động như một nhà môi giới MQTT. Trong thực tế, ai đó đã thử nó ! Đến cuối dự án , họ tuyên bố có một nhà môi giới có thể kết nối với một nhà môi giới MQTT trên nền tảng đám mây, với giao diện web và thời lượng hoạt động khá. Trong các bình luận, họ nói rằng mã của họ là độc quyền, vì vậy bạn sẽ không thể sử dụng mã của họ một cách chính xác, nhưng nó có tác dụng như một bằng chứng về khái niệm nếu bạn thực sự muốn sử dụng ESP8266.

Tuy nhiên, sử dụng một chiếc ESP8266 làm nhà môi giới có thể sẽ có rất nhiều nỗ lực . Sử dụng Pi, như được đề xuất bởi MatsK , sẽ dễ dàng hơn rất nhiều và mặc dù các đơn vị Raspberry Pi đắt hơn một chút (từ £ 5 đến £ 25 + bưu chính, tùy thuộc vào kiểu máy bạn chọn), bạn sẽ tiết kiệm được nhiều thời gian . Với một Pi, bạn chỉ có thể sử dụng một nhà môi giới được thành lập như Mosquitto . Trên một chiếc ESP8266, không có cơ hội Mosquitto sẽ chạy và có lẽ bạn phải viết nhà môi giới của riêng bạn hoặc sử dụng một công ty kém tin cậy hơn nhiều.

Ngoài ra, bạn chỉ có thể kết nối trực tiếp tất cả các máy ESP8266 của mình với dịch vụ đám mây như AWS IoT . Điều này giúp đơn giản hóa thiết lập của bạn, nhưng điều đó có nghĩa là mọi yêu cầu đều được định tuyến qua Internet và bạn không thể điều khiển các thiết bị cục bộ. Nếu kết nối Internet của bạn bị hỏng khi sử dụng phương pháp này, bạn cũng sẽ không kiểm soát được các thiết bị.


1
Tôi khuyên bạn nên sử dụng "Node-red" một giao diện web đồ họa nơi bạn có thể tạo logic để tự động hóa.
MatsK

@Aurora - Cảm ơn bạn đã giải thích điều đó với độ sâu như vậy. Nó mang lại sự rõ ràng cho suy nghĩ của tôi. Tôi hiểu rằng Pi là cần thiết cho các máy chủ độc lập. Nhưng nếu tôi muốn đưa thứ này qua đám mây. Có cần thiết phải sử dụng dịch vụ IoT của bên thứ ba không? Tôi có thể sử dụng máy chủ web của mình cho nó không? Nếu không quá khó. Tôi mới chỉ 14. Vì vậy, tôi không có nhiều kiến ​​thức kỹ thuật.
Rohit Mathur

@RohitMathur Vâng, bạn có thể sử dụng máy chủ web của riêng mình, tùy thuộc vào loại máy chủ web nào bạn có, nếu đó là một cái gì đó như VPS hoặc máy chủ chuyên dụng, vâng; nếu nó chỉ là một máy chủ web truyền thống chỉ dành cho các trang web thì không. Nếu bạn chia sẻ máy chủ nào bạn đang sử dụng, tôi có thể cố gắng chỉ cho bạn đi đúng hướng. Ngoài ra, hãy chắc chắn đọc Tôi nên làm gì khi ai đó trả lời câu hỏi của tôi? để bạn có thể thưởng bất kỳ câu trả lời hữu ích nào bạn nhận được.
Aurora0001

Tôi có một máy chủ lưu trữ được chia sẻ. Hiện tại, tôi nghĩ mình phải thỏa hiệp với Pi. Chi phí VPS cao. Có bao nhiêu nút có thể được kết nối với một Pi như các máy khách? Giống như ESP8266 có thể quản lý tối đa 4 khách hàng. Dự án của tôi có thể là của không. của các nút. Một số kết nối với rơle, một số có cảm biến.
Rohit Mathur

@RohitMathur Tôi không biết con số chính xác, nhưng tôi sẽ tưởng tượng rằng một Pi có thể xử lý hàng trăm tin nhắn trong một giây, đặc biệt là Pi 3, khá mạnh mẽ. Gần như chắc chắn bạn sẽ không đạt đến giới hạn về khả năng của Pi với trường hợp sử dụng của bạn.
Aurora0001

8

Đề nghị của tôi sẽ là một nhà môi giới MQTT mosquitto trên Raspberry Pi.

Có một bài viết ở đây https://tech.scargill.net/a-christmas-script/ nơi Peter Scargill đã tạo ra một kịch bản cài đặt tất cả các thành phần và phụ thuộc cần thiết.

Hãy nhìn vào Node-red. Với nó, bạn có thể tạo logic để bổ sung cho dự án của bạn.

Cập nhật:

Tôi chỉ tìm thấy một nhà môi giới ESP8266 MQTT, có sẵn miễn phí. Cái này tôi phải thử ....

https://www.youtube.com/watch?v=0K9q4IuB_oA

https://github.com/martin-ger/esp_mqtt


Vâng, tôi nghĩ rằng tôi cần phải mua một Pi. Và bài viết này thực sự hữu ích. Bạn có thể vui lòng chia sẻ thêm một số hướng dẫn cho dự án của tôi? Tôi sẽ đi qua chúng khi tôi nhận được Pi.
Rohit Mathur

Rui Santos có nhiều hướng dẫn hay, như: Randomnerdtutorials.com/ và nhiều hơn nữa và cuốn sách "tự động hóa nhà" của ông được khuyến khích.
MatsK

Tôi đã được theo một hướng dẫn. Randomnerdtutorials.com/ . Raspberry Pi đang hoạt động hoàn toàn tốt. Nhưng tôi tin rằng Esp8266 không nhận được tin nhắn. Vì vậy, tôi không thể điều khiển rơle có dây với Esp8266.
Rohit Mathur

6

Ngoài các câu trả lời và nhận xét khuyên bạn nên sử dụng Raspberry Pi vì tài nguyên hạn chế của ESP8266, nói chung sẽ có ý nghĩa khi sử dụng ESP32 , s, người kế thừa không chính thức cho ESP8266. Do có lõi kép + RAM gấp 3 lần, nó khắc phục các sự cố kết nối WiFi tăng lên khi các chương trình của người dùng tăng kích thước.

Về phạm vi giá, nó chỉ đắt hơn một vài đô la so với ESP8266 và rẻ hơn đáng kể so với RaspberryPi's (ít nhất là cho đến khi số 0 giảm giá). Các câu trả lời khác nên có bạn bao quát về phía phần mềm.


5

Thêm vào những gì các câu trả lời xuất sắc khác đã nêu, sử dụng ESP8266 làm nhà môi giới MQTT của bạn không lý tưởng vì lý do đơn giản là nó thiếu các yêu cầu hệ thống để thực hiện theo tốc độ. Một người nào đó trên Github đã thử một chiến công tương tự, và được cho biết:

Nó không phải là không thể nhưng nó không có nhiều ý nghĩa. Nhà môi giới cần một số tài nguyên như CPU, bộ nhớ và số lượng kết nối TCP (một cho mỗi máy khách), có thể là bộ nhớ không bay hơi (đối với các tin nhắn liên tục), cấu hình cho quyền truy cập của người dùng và nhiều chi tiết khác.

Tôi lặp lại những câu trả lời tuyệt vời khác: hãy kiếm cho mình một Raspberry Pi hoặc một số máy tính giá rẻ khác để làm người môi giới của bạn. Đơn giản là ESP sẽ thiếu thông số kỹ thuật để hoạt động tốt.


1
Đúng. Bây giờ rất rõ ràng rằng tôi sẽ cần một Pi để hoàn thành dự án này
Rohit Mathur

Đây chủ yếu là một vấn đề mở rộng - nó không thực sự hiển thị cho đến khi số lượng nút tăng lên. Vấn đề hiện diện ngay từ đầu là phần mềm phải được viết lại, có thể từ đầu, để tạo chức năng môi giới theo cách tài nguyên tối thiểu.
Chris Stratton

Vì vậy, MCU lớn hơn sẽ là đủ, nhưng sẽ không rẻ hơn SBC cấp thấp?
Sean Houlihane


2

Bạn có thể sử dụng một ESP8266 làm nhà môi giới MQTT. Nó hỗ trợ 20 thiết bị, ổ cắm web và kết nối cầu nối với một thể hiện MQTT trên đám mây cung cấp ổ cắm web MQTT và SSL.

Trong ba phút, bạn có thể có một nhà môi giới MQTT đầy đủ chức năng. Kiểm tra nền tảng iotcentral.eu. Tạo một tài khoản và bạn đã sẵn sàng.


cảm ơn lời đề nghị của Dan. Nhưng bây giờ tôi đang sử dụng Raspberry Pi làm nhà môi giới MQTT. nhưng bây giờ vấn đề là với Esp8266. Đôi khi, nó kết nối với Wifi nhưng đôi khi nó chỉ báo "Kết nối ................." và các dấu chấm tiếp tục. Tôi đã thử sử dụng nguồn điện bên ngoài vì nó không hoạt động. Có ý tưởng nào để làm việc này không?
Rohit Mathur
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.