Cài đặt Máy chủ MQTT và Node-RED trên Raspberry Pi để Tự động hóa tại nhà

Cài đặt Máy chủ MQTT và Node-RED trên Raspberry Pi để Tự động hóa tại nhà

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 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.



  tìm ip của mâm xôi của bạn thông qua cài đặt dhcp bộ định tuyế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
  kết nối với raspberry pi qua ssh

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.

  1. Cài đặt Mosquitto bằng cách chạy lệnh sau trong cửa sổ Terminal.
    sudo apt install mosquitto mosquitto-clients -y
      cài đặt máy chủ mqtt mosquitto 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.
  2. 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
      kích hoạt dịch vụ mosquitto
  3. 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.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    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.
  4. Mở mosquitto.conf tệp trong trình chỉnh sửa nano bằng cách sử dụng lệnh sau .
    sudo nano /etc/mosquitto.conf
    Dán mã sau vào trình soạn thảo nano.
    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
      chỉnh sửa tệp cấu hình mosquitto Nhấn CTRL + X theo dõi bởi Y đi vào để lưu các thay đổi.
  5. 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
  6. Kiểm tra trạng thái nhà môi giới MQTT để xem MQTT có đang chạy hay không.
    sudo systemctl status mosquitto
      kiểm tra trạng thái máy chủ mqtt Nếu bạn thấy đầu ra ở trên, MQTT đang chạy.

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 .





  kết nối với máy chủ mqtt và gửi tin nhắn đến chủ đề thử nghiệm để kiểm tra nhà môi giới mqtt đang hoạt động

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ố .

  thông báo được xuất bản thành công cho biết mqtt đang hoạt động

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)
  cài đặt nút màu đỏ

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:

  1. Nhấn nút đi vào Chìa khóa.
  2. 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.
  3. Chọn Toàn quyền truy cập .
  4. Bạn có thể thêm người dùng khác hoặc chọn Không tiến hành với.
  5. Lựa chọn Không khi được yêu cầu bật các tính năng của dự án.
  6. Nhấn đi vào .
  7. Nhập cụm mật khẩu và giữ nó an toàn.
  8. Chọn hình nền mặc định > Monaco (mặc định) .
  9. Lựa chọn Không khi được yêu cầu tải các nút bên ngoài.
  cấu hình cài đặt nút màu đỏ

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.

  truy cập nút màu đỏ trên ip raspberry pi tại cổng 1880

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.

  nút mẫu dòng màu đỏ để hiển thị các giá trị cảm biến khác nhau trên màn hình ma trận 8x32

Để 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.