Mục lục:

Giao tiếp không dây SmartHome: Kiến thức cơ bản về MQTT: 3 bước
Giao tiếp không dây SmartHome: Kiến thức cơ bản về MQTT: 3 bước

Video: Giao tiếp không dây SmartHome: Kiến thức cơ bản về MQTT: 3 bước

Video: Giao tiếp không dây SmartHome: Kiến thức cơ bản về MQTT: 3 bước
Video: Giao Thức MQTT Trong Hệ Thống IoT 2024, Tháng bảy
Anonim
Giao tiếp không dây SmartHome: Khái niệm cơ bản về MQTT
Giao tiếp không dây SmartHome: Khái niệm cơ bản về MQTT
Giao tiếp không dây SmartHome: Khái niệm cơ bản về MQTT
Giao tiếp không dây SmartHome: Khái niệm cơ bản về MQTT

Khái niệm cơ bản về MQTT:

** Tôi sẽ thực hiện một loạt bài về Tự động hóa gia đình, tôi sẽ xem xét các bước tôi đã thực hiện để tìm hiểu mọi thứ tôi đã làm trong tương lai. Tài liệu hướng dẫn này là cơ sở về cách thiết lập MQTT để sử dụng trong Tài liệu hướng dẫn trong tương lai của tôi. Tuy nhiên, những lời dạy trong nội dung này sẽ có thể áp dụng cho bất kỳ dự án nào mà người ta muốn thực hiện. **

Internet of Things:

Internet of Things đang chiếm lĩnh thế giới, và đặc biệt là trong các cộng đồng giống như cộng đồng của chúng tôi ở đây tại Guiductables. Kể từ khi tôi tham gia cộng đồng này, cộng đồng này đã cố gắng cùng mọi người xây dựng

Các thiết bị được kết nối và điều khiển qua internet. Khi làm việc với Internet of Things, khó có thể không sử dụng giao thức MQTT. Đây là một giao thức truyền thông giống như các giao thức khác được sử dụng trên Internet ngày nay như HTTP hoặc FTP, tuy nhiên cách thức hoạt động của nó lại khác, điều này làm cho nó trở nên lý tưởng cho các ứng dụng Internet of Things.

MQTT là gì:

MQTT (Message Queueing Telemetry Transport là một giao thức truyền thông nhẹ sử dụng kiến trúc xuất bản / đăng ký. HTTP, là thứ mà hầu hết Internet sử dụng, được xây dựng trên hệ thống yêu cầu / phản hồi. Điều này có nghĩa là nó nhận được yêu cầu từ khách hàng và gửi phản hồi cho khách hàng đó. MQTT cũng có một máy chủ (được gọi là nhà môi giới) cũng như nhiều máy khách. Ngược lại với HTTP, MQTT cho phép khách hàng xuất bản hoặc đăng ký các “chủ đề” cụ thể. Điều này cho phép giao tiếp rộng rãi hơn thông qua một điểm tập trung, nhà môi giới. Mỗi nút có thể xuất bản một chủ đề trên nhà môi giới và bất kỳ nút nào đã đăng ký chủ đề đó sẽ nhận được thông báo. Khách hàng cũng có thể đăng ký nhiều chủ đề và sau đó có thể nhận nhiều chỉ thị hoặc cập nhật.

Toàn bộ hệ thống được điều khiển theo hướng sự kiện và cho phép các thông điệp từ nhà môi giới được đẩy đến từng khách hàng đã đăng ký. Vì vậy, thay vì HTTP, nơi khách hàng yêu cầu thông tin, khách hàng được đẩy thông tin trực tiếp từ nhà môi giới khi nhận được. Có các dịch vụ được tích hợp sẵn cũng như cho phép thực hiện các biện pháp bảo vệ khác nhau, chẳng hạn như thông số kỹ thuật QOS. Đặc tả QOS cho phép nhà môi giới xác định xem có cần gửi một thông điệp nhiều nhất một lần, ít nhất một lần hay chính xác một lần hay không. Điều này đảm bảo rằng dữ liệu được phân phối theo cách cần thiết cho mỗi khách hàng. Khách hàng cũng có thể yêu cầu các thông báo đã xuất bản cho chủ đề của họ được lưu vào bộ đệm trong nhà môi giới trong trường hợp họ bị ngắt kết nối với chủ đề đó vì bất kỳ lý do gì. Khi nó trực tuyến trở lại, dữ liệu đó sẽ được chuyển đến máy khách.

Một chủ đề không có gì đặc biệt, nó chỉ là nhiều chuỗi được ghép lại và phân tách bằng dấu gạch chéo. Định dạng trong ví dụ sẽ được sử dụng bên dưới như sau: nhà / phòng ngủ / trần_ đèn. Mỗi dấu gạch chéo được đặt sau một chủ đề để biểu thị một chủ đề phụ. Vì vậy, một tin nhắn có thể được xuất bản đến nhà, nơi tất cả các thiết bị trong nhà sẽ nhận được nó. Nó có thể được xuất bản trực tiếp đến nhà / phòng ngủ, nơi tất cả các thiết bị trong phòng ngủ sẽ nhận được tin nhắn. Và nó có thể đi xuống thiết bị cụ thể như được hiển thị đầu tiên là nhà / phòng ngủ / trần_hàng nơi chỉ có đèn trần trong phòng ngủ mới nhận được thông báo. Cách chúng ta có thể tóm tắt các thiết bị riêng lẻ như thế này cho đến toàn bộ hệ sinh thái là cực kỳ tiện dụng, đặc biệt là khi nói đến Tự động hóa gia đình. Có nhiều cách khác để chia nhỏ các chủ đề và tôi sẽ đi sâu hơn vào chúng trong Các tài liệu hướng dẫn trong tương lai, nơi ứng dụng có ý nghĩa nhất.

Quân nhu

Chỉ cần một trong những điều sau:

Ubuntu:

Hệ thống con của Windows dành cho Linux: https://ubuntu.com/wsl (Chỉ khi bạn không có Linux / MacOS)

MacOS: Yêu cầu MacBook

Điều này là bắt buộc:

Mosquitto MQTT Broker - Được tải xuống bằng apt-get (Tài liệu:

Bước 1: Thiết lập ban đầu (Tùy thuộc vào hệ điều hành của bạn)

MacOS / Linux:

Không cần thiết lập chỉ cần mở thiết bị đầu cuối của bạn và chuyển sang Thiết lập Mosquitto!

Các cửa sổ:

Nếu bạn đang sử dụng Windows, bạn sẽ cần cài đặt Hệ thống con Windows dành cho Linux. Đây là một công cụ siêu dễ sử dụng và cực kỳ có giá trị cho phép bạn chạy một thiết bị đầu cuối Ubuntu trong Windows. Không cần cài đặt và khởi động kép Ubuntu chỉ để kiểm tra sự phát triển trong thiết bị đầu cuối!

Các bước cài đặt:

1. Truy cập Windows Store và tìm kiếm ubuntu

2. Tải xuống và cài đặt Hệ thống con Windows dành cho Linux

3. Mở ứng dụng và làm theo hướng dẫn để hoàn tất thiết lập và bạn đã sẵn sàng để tiếp tục!

Bước 2: Thiết lập Mosquitto:

Thiết lập Mosquitto
Thiết lập Mosquitto
Thiết lập Mosquitto
Thiết lập Mosquitto
Thiết lập Mosquitto
Thiết lập Mosquitto

Vì vậy, như đã thảo luận trong phần giới thiệu về MQTT, giao thức yêu cầu một nhà môi giới (máy chủ). Nhà môi giới này là điểm cơ sở cho tất cả các kết nối đã thiết lập đến từng khách hàng. Tất cả các tin nhắn được chuyển qua và xếp hàng trong nhà môi giới này. Có nhiều tùy chọn để lựa chọn cho một nhà môi giới và bạn có thể tìm thấy những tùy chọn này trực tuyến, nhưng cái mà chúng tôi sẽ sử dụng có lẽ là phổ biến nhất: Mosquitto.

Mosquitto là một Nhà môi giới MQTT dựa trên Linux với rất nhiều chức năng. Tôi sẽ không đi sâu vào chi tiết cụ thể của chức năng đó ngay bây giờ, nhưng một số yêu cầu cơ bản mà nó đáp ứng là xác thực người dùng / mật khẩu và hỗ trợ mã hóa TLS, tất cả đều hữu ích trong sự phát triển của thiết bị Internet of Things.

Các bước:

Tất cả các bước này phải được hoàn thành trong một cửa sổ đầu cuối.

1. Cài đặt ứng dụng khách Mosquitto và MQTT

sudo apt-get install mosquitto mosquitto-client

2. Đăng ký một chủ đề

mosquitto_sub -t "thử nghiệm"

Điều này làm là đăng ký một chủ đề. Chủ đề này được ký hiệu là "-t" và giá trị chủ đề là "thử nghiệm". Giá trị theo sau "-t" này có thể là bất kỳ giá trị nào bạn muốn tiết kiệm cho một số đặt chỗ đặc biệt.

3. Mở cửa sổ đầu cuối mới và xuất bản tin nhắn tới chủ đề "kiểm tra"

mosquitto_pub -t "test" -m "Hello World with MQTT!"

Điều này xuất bản một thông báo cho chủ đề "thử nghiệm", cho phép phiên bản thiết bị đầu cuối khác của chúng tôi nhận được thông báo ở phía đăng ký. Tin nhắn đã xuất bản được ký hiệu bằng "-m" và giá trị tin nhắn là "Hello World With MQTT". Thông báo này, giống như chủ đề, có thể được thay đổi thành bất cứ điều gì bạn muốn!

4. Chuyển đến cửa sổ đầu cuối đầu tiên để xem kết quả của bạn! Bạn sẽ nhận được một thông báo có nội dung "Hello World With MQTT" được hiển thị. Nếu bạn không thấy điều này, hãy đảm bảo rằng bạn đã nhập đúng chủ đề. Nếu bạn đã hoàn thành việc này thành công, hãy tiếp tục chơi với nó. Hãy thử các chủ đề khác nhau, với các chủ đề phụ và các thông điệp khác nhau!

Bước 3: Kết thúc

Đó là nó! Khi bạn đã hoàn thành tất cả, bạn hiểu những điều cơ bản về cách MQTT hoạt động. Đây là một hướng dẫn rất thô sơ chỉ cho thấy mức tối thiểu của giao thức MQTT. Các tài liệu hướng dẫn trong tương lai sẽ đi sâu hơn về cách thức hoạt động của giao thức trong thực tế với Internet of Things, đặc biệt là với các mô-đun ESP8266 chạy Arduino. Ứng dụng thực tế đầu tiên của tôi sẽ là máy pha cà phê thông minh mà tôi đang có trong phòng. Nếu bạn muốn tìm hiểu cách pha một máy pha cà phê có thể được điều khiển từ cả điện thoại và Alexa, hãy theo dõi tôi để biết thêm hướng dẫn.

Đề xuất: