Giao thức nhắn tin xếp hàng từ xa, hoặc MQTT, là một giao thức nhắn tin nhẹ được thiết kế cho các thiết bị và môi trường băng thông thấp. Đây là một giải pháp nhanh chóng, dễ triển khai và tiết kiệm năng lượng để kết nối và trao đổi thông tin giữa nhiều thiết bị IoT. Nó yêu cầu một nhà môi giới / máy chủ MQTT và chủ đề mà các thông báo được xuất bản và đăng ký bởi các thiết bị hoặc người dùng để gửi hoặc nhận thông tin.
Trong hướng dẫn này, chúng tôi sẽ triển khai nhà môi giới MQTT và công cụ Node-RED trên Raspberry Pi để kết nối các thiết bị IoT thông minh tự làm có hỗ trợ MQTT và sử dụng chúng để tự động hóa gia đình.
Những thứ bạn sẽ cần
Để xây dựng và triển khai máy chủ MQTT với Node-RED, bạn sẽ cần những thứ sau:
- Raspberry Pi Zero W hoặc tốt hơn. Chúng tôi khuyên bạn nên sử dụng Raspberry Pi 3 hoặc 4 (nếu có).
- Thẻ nhớ microSD (8GB hoặc cao hơn).
- Đầu đọc thẻ nhớ microSD.
- PC Linux, Mac hoặc Windows PC.
- Kết nối Internet (Wi-Fi).
Bước 1: Cài đặt Raspberry Pi OS Lite (64-bit)
Bạn sẽ cần phiên bản Lite 64-bit của Hệ điều hành Raspberry Pi. bên trong Raspberry Pi Imager trên một máy tính khác, nhấp vào Chọn hệ điều hành > Hệ điều hành Raspberry Pi (Khác) , sau đó chọn Raspberry Pi OS Lite (64-bit) . Ngoài ra, bạn sẽ muốn sử dụng cài đặt nâng cao của Imager để bật SSH (chúng tôi đã sử dụng số Pi và dâu rừng làm tên người dùng và mật khẩu cho hướng dẫn này) và định cấu hình kết nối Wi-Fi. Để biết thêm chi tiết, hãy xem hướng dẫn của chúng tôi về cách cài đặt hệ điều hành trên Raspberry Pi . Sau khi ghi hệ điều hành vào thẻ, hãy đẩy nó ra và lắp vào Raspberry Pi của bạn.
Bước 2: Kết nối qua SSH và cập nhật các gói
Bạn có thể kết nối với Raspberry Pi của mình qua SSH bằng PuTTY trên Windows hoặc Terminal trên macOS và Linux. Tuy nhiên, bạn nên biết IP của Raspberry Pi để kết nối qua SSH. Để tìm hiểu, bạn có thể mở cài đặt DHCP của bộ định tuyến không dây hoặc sử dụng Fing ứng dụng trên điện thoại thông minh của bạn.
Nhập địa chỉ IP vào PuTTY và bấm vào Liên kết . Nhập tên người dùng và mật khẩu của bạn để đăng nhập.
tại sao video chính của tôi không hoạt động
Trên thiết bị đầu cuối Linux hoặc macOS, hãy nhập YourPiUsername @ IPAddress và sau đó gõ mật khẩu để đăng nhập. Sau khi kết nối qua SSH, hãy chạy lệnh sau để cập nhật danh sách gói và nâng cấp các gói.
sudo apt update && sudo apt upgrade –y
Bước 3: Cài đặt MQTT Broker
Để cài đặt và kích hoạt nhà môi giới MQTT (Mosquitto), hãy thực hiện các bước sau.
- Cài đặt Mosquitto bằng cách chạy lệnh sau trong cửa sổ Terminal.
Thao tác này sẽ bắt đầu cài đặt Mosquitto (nhà môi giới MQTT) và các dịch vụ khách.sudo apt install mosquitto mosquitto-clients -y
- Sau khi cài đặt, hãy bật dịch vụ Mosquitto và kiểm tra phiên bản MQTT bằng các lệnh sau ..
sudo systemctl enable mosquitto.service
mosquitto -v - Tạo tài khoản người dùng để cho phép truy cập từ xa đã xác thực bằng lệnh sau.
Nơi đây sự đối đãi là tên người dùng (bạn có thể sử dụng bất cứ thứ gì bạn thích). Nhập mật khẩu khi được nhắc. Ghi lại tên người dùng và mật khẩu này để sử dụng sau này.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
- Mở mosquitto.conf tệp trong trình chỉnh sửa nano bằng cách sử dụng lệnh sau .
Dán mã sau vào trình soạn thảo nano.sudo nano /etc/mosquitto.conf
Nhấn CTRL + X theo dõi bởi Y và đi vào để lưu các thay đổi.per_listener_settings true
pid_file /run/mosquitto/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
allow_anonymous false
listener 1883
password_file /etc/mosquitto/passwd - Khởi động lại trình môi giới MQTT bằng cách chạy lệnh sau.
sudo systemctl restart mosquitto
- Kiểm tra trạng thái nhà môi giới MQTT để xem MQTT có đang chạy hay không.
Nếu bạn thấy đầu ra ở trên, MQTT đang chạy.sudo systemctl status mosquitto
Bước 4: Kiểm tra nhà môi giới MQTT
Để kiểm tra xem nhà môi giới MQTT có hoạt động hay không, hãy cài đặt MQTTLens hoặc một ứng dụng MQTT tương tự trong Chrome hoặc bất kỳ trình duyệt web nào khác và khởi chạy nó. Nhập địa chỉ IP của Raspberry Pi và tên người dùng / mật khẩu MQTT. Nhấp chuột Tạo kết nối .
Nhập bất kỳ chủ đề nào trong Đặt mua đồng ruộng và chủ đề tương tự trong Công bố đồng ruộng. Nhập 'Xin chào' hoặc bất kỳ thứ gì trong trường tin nhắn và nhấp vào Công bố .
Nếu bạn thấy thông báo dưới các đăng ký, nhà môi giới MQTT đang hoạt động tốt.
Bước 5: Cài đặt Node-RED
Với Node-RED, bạn có thể xuất bản tin nhắn hoặc gửi và nhận tải trọng đến hoặc từ các thiết bị thông minh của mình. Tải trọng này có thể được sử dụng để kích hoạt các thiết bị thông minh bật / tắt hoặc nhận dữ liệu (chẳng hạn như nhiệt độ) từ cảm biến. Bạn có thể sử dụng trình duyệt web của mình để tạo các luồng như vậy trong Node-RED và điều khiển các thiết bị thông minh của mình.
Để cài đặt Node-RED, hãy thực hiện lệnh sau trong cửa sổ Terminal.
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Thao tác này sẽ tải xuống và cài đặt Node-RED trên Raspberry Pi của bạn. Có thể mất một lúc để hoàn thành. Sau khi Node-RED được cài đặt, bạn cần tạo tệp cài đặt Node-RED bằng cách chạy lệnh sau.
node-red admin init
Sau đó làm theo các bước sau:
- Nhấn nút đi vào Chìa khóa.
- Bạn có muốn thiết lập bảo mật người dùng không? Lựa chọn Đúng . Nhập tên người dùng và mật khẩu. Giữ nó an toàn vì nó sẽ được sử dụng để đăng nhập và quản lý Node-RED thông qua giao diện web.
- Chọn Toàn quyền truy cập .
- Bạn có thể thêm người dùng khác hoặc chọn Không tiến hành với.
- Lựa chọn Không khi được yêu cầu bật các tính năng của dự án.
- Nhấn đi vào .
- Nhập cụm mật khẩu và giữ nó an toàn.
- Chọn hình nền mặc định > Monaco (mặc định) .
- Lựa chọn Không khi được yêu cầu tải các nút bên ngoài.
Sau khi hoàn tất, hãy khởi động lại Node-RED.
cách tìm mật khẩu wifi trên điện thoại
node-red restart
Bây giờ bạn có thể ghé thăm Your-Raspberry-Pi-IP: 1880 trong trình duyệt web để mở và đăng nhập vào bảng quản trị Node-RED.
Bây giờ bạn có thể tạo luồng trong Node-RED. Dưới đây là ví dụ về luồng Node-RED mà chúng tôi sử dụng để chạy màn hình ma trận WS2812B 8x32 hiển thị các thông tin cảm biến khác nhau được cài đặt trong nhà của chúng tôi theo thời gian thực.
Để bắt đầu, bạn cũng có thể chế tạo đồng hồ thông minh tự làm bằng ma trận điểm MAX7219 và kết nối nó với máy chủ MQTT của bạn để hiển thị văn bản hoặc tin nhắn trên đó.
Bật tự động hóa gia đình bằng MQTT và Node-RED
Giờ đây, bạn có thể tạo các luồng để kiểm soát hoặc giám sát các thiết bị gia đình thông minh hỗ trợ MQTT của mình. Bạn cũng có thể chế tạo công tắc thông minh Tasmota DIY hoặc cảm biến thông minh dựa trên Arduino và các thiết bị thông minh khác có điều khiển MQTT và sử dụng chúng với máy chủ MQTT và Node-RED này. Bạn có thể tạo quy trình tự động hóa gia đình dựa trên các sự kiện, thời gian hoặc tải trọng nhận được từ ứng dụng MQTT trên điện thoại thông minh của bạn.
Trên điện thoại thông minh Android của mình, bạn có thể cài đặt MQTT Dash để kết nối với nhà môi giới MQTT của mình và gửi hoặc nhận tải trọng đến hoặc từ các chủ đề khác nhau mà thiết bị thông minh của bạn đăng ký hoặc xuất bản.