Mục lục:

Raspberry Pi Nói chuyện với ESP8266 bằng MQTT: 8 bước
Raspberry Pi Nói chuyện với ESP8266 bằng MQTT: 8 bước

Video: Raspberry Pi Nói chuyện với ESP8266 bằng MQTT: 8 bước

Video: Raspberry Pi Nói chuyện với ESP8266 bằng MQTT: 8 bước
Video: TBĐC thông minh: 5. Kết nối ESP với máy tính qua MQTT (ESP32, ESP8266, MQTT, Raspberry Pi,...) 2024, Tháng bảy
Anonim
Raspberry Pi Nói chuyện với ESP8266 bằng MQTT
Raspberry Pi Nói chuyện với ESP8266 bằng MQTT

Trong dự án này, tôi sẽ giải thích giao thức MQTT là gì và cách nó được sử dụng để giao tiếp giữa các thiết bị. cho nhau hoặc gửi tin nhắn khi nhấn nút.

Vật liệu cần thiết

1. Raspberry Pi 3

2. NodeMCU

3. ĐÈN LED

4. Nút

5. Điện trở (10k, 475 ohm)

Bước 1: MQTT là gì và nó hoạt động như thế nào

MQTT

MQTT là một giao thức truyền dữ liệu giữa máy và máy (M2M). MQTT được tạo ra với mục tiêu thu thập dữ liệu từ nhiều thiết bị và sau đó vận chuyển dữ liệu đó đến cơ sở hạ tầng CNTT. Nó có trọng lượng nhẹ và do đó lý tưởng để giám sát từ xa, đặc biệt là trong các kết nối M2M yêu cầu dấu chân mã nhỏ hoặc nơi băng thông mạng bị hạn chế.

Cách MQTT hoạt động

MQTT là một giao thức xuất bản / đăng ký cho phép các thiết bị biên của mạng xuất bản cho nhà môi giới. Khách hàng kết nối với nhà môi giới này, sau đó làm trung gian giao tiếp giữa hai thiết bị. Mỗi thiết bị có thể đăng ký hoặc đăng ký các chủ đề cụ thể. Khi một khách hàng khác đăng thông báo về một chủ đề đã đăng ký, nhà môi giới sẽ chuyển tiếp thông báo đó đến bất kỳ khách hàng nào đã đăng ký.

MQTT là hai chiều và duy trì nhận thức về phiên trạng thái. Nếu một thiết bị biên của mạng mất kết nối, tất cả các máy khách đã đăng ký sẽ được thông báo với tính năng “Di chúc và Di chúc cuối cùng” của máy chủ MQTT để bất kỳ máy khách được ủy quyền nào trong hệ thống đều có thể xuất bản giá trị mới trở lại vùng biên- thiết bị mạng, duy trì kết nối hai chiều.

Dự án được chia thành 3 phần

Đầu tiên, chúng tôi tạo máy chủ MQTT trên RPi và cài đặt một số thư viện.

Thứ hai, chúng tôi sẽ cài đặt các thư viện trong Arduino IDE để NodeMCU hoạt động với MQTT, tải lên mã và kiểm tra xem máy chủ có hoạt động hay không.

Cuối cùng, chúng tôi tạo một tập lệnh trong Rpi, tải lên mã được yêu cầu trong NodeMCU và chạy tập lệnh python để điều khiển led từ cả phía máy chủ và máy khách. Ở đây, máy chủ là RPi và máy khách là NodeMCU.

Bước 2: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Để cài đặt máy chủ và máy khách MQTT mới nhất trong RPi, để sử dụng kho lưu trữ mới, trước tiên bạn phải nhập khóa ký gói kho lưu trữ.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key thêm mosquitto-repo.gpg.key

2. Làm cho kho lưu trữ có sẵn cho apt.

cd /etc/apt/sources.list.d/

3. Tùy thuộc vào phiên bản Debian bạn đang sử dụng.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get cập nhật

4. Cài đặt máy chủ Mosquitto bằng lệnh.

sudo apt-get install mosquitto

Nếu bạn đang gặp lỗi khi cài đặt Mosquitto như thế này.

#################################################################

Các gói sau có các phụ thuộc chưa được đáp ứng: mosquitto: Phụ thuộc: libssl1.0.0 (> = 1.0.1) nhưng không thể cài đặt Phụ thuộc: libwebsockets3 (> = 1.2) nhưng không thể cài đặt E: Không thể sửa lỗi, bạn đã bị hỏng các gói.

#################################################################

Sau đó, sử dụng lệnh này để khắc phục sự cố.

sudo apt - cài đặt bị hỏng bản sửa lỗi

5. Sau khi cài đặt máy chủ MQTT, hãy cài đặt máy khách bằng lệnh

sudo apt-get install mosquitto-client

Bạn có thể kiểm tra các dịch vụ bằng lệnh.

trạng thái systemctl mosquitto.service

Khi máy chủ và máy khách MQTT của chúng tôi được cài đặt. Bây giờ, chúng tôi có thể kiểm tra nó bằng cách sử dụng đăng ký và xuất bản. Để đăng ký và xuất bản, bạn có thể kiểm tra các lệnh hoặc truy cập trang web như được cung cấp bên dưới.

Mosquitto Sub

Quán rượu Mosquitto

Để cài đặt thư viện paho-mqtt, hãy sử dụng lệnh bên dưới.

sudo pip cài đặt paho-mqtt

Paho

Bước 3: Cách thiết lập địa chỉ Ip tĩnh

Cách thiết lập địa chỉ Ip tĩnh
Cách thiết lập địa chỉ Ip tĩnh

Đi tới thư mục cd / etc và mở tệp dhcpcd.conf bằng bất kỳ trình chỉnh sửa nào. Cuối cùng, hãy viết bốn dòng này.

interface eth0 static ip_address = 192.168.1.100 // ip bạn muốn sử dụng

giao diện wlan0

static ip_address = 192.168.1.68

static routers = 192.168.1.1 // Cổng mặc định của bạn

static domain_name_servers = 192.168.1.1

Sau đó, lưu nó và khởi động lại pi của bạn.

Bước 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Cài đặt các thư viện bắt buộc trong Arduino IDE cho NodeMCU

1. Vào Sketch ==> Bao gồm thư viện ==> Quản lý thư viện.

2. Tìm kiếm mqtt và cài đặt thư viện bằng Adafruit hoặc bạn có thể cài đặt bất kỳ thư viện nào.

3. Nó phụ thuộc vào thư viện sleepydog nên chúng ta cũng cần thư viện này.

Chương trình được đưa ra ở trên, chỉ để kiểm tra xem nó có hoạt động hay không. Ở đây tôi chưa tạo tập lệnh nào trong RPi. Chúng tôi chỉ sử dụng các lệnh để đăng ký và xuất bản. Chúng tôi sẽ tạo tập lệnh để kiểm soát sau này.

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "BẬT"

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "TẮT"

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "TOGGLE"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "BẬT"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "TẮT"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "TOGGLE"

-h ==> tên máy chủ-t ==> chủ đề

-m ==> tin nhắn

Sau khi kiểm tra chương trình hoàn tất tải lên chương trình Mqtt_check trong NodeMCU

Bước 5: Tập lệnh Python

Tập lệnh Python
Tập lệnh Python
Tập lệnh Python
Tập lệnh Python

Như tôi đã thảo luận ở trên, chúng ta cần tập lệnh python để điều khiển đèn led bằng các nút. Vì vậy, chúng ta sẽ tạo tập lệnh. Tập lệnh được đưa ra ở trên.

Khi bạn chạy script, script của bạn sẽ giống như trong hình, nếu mã kết quả không bằng 0 thì đó là lỗi bạn có thể kiểm tra lỗi trên trang web paho.

Bước 6: Kết nối và sơ đồ mạch

Kết nối và Sơ đồ mạch
Kết nối và Sơ đồ mạch
Kết nối và Sơ đồ mạch
Kết nối và Sơ đồ mạch

Giao diện của nút, đèn LED với NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Cathode (-ve)

GPIO5 (D1) ===> Cực dương (+ ve)

Giao diện của nút, đèn LED với RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Cathode (-ve)

GPIO 24 ===> Cực dương (+ ve)

Bước 7: Kết quả

Image
Image
Kết quả
Kết quả

Đảm bảo rằng tập lệnh của bạn đang chạy nếu không nó sẽ không thể điều khiển đèn led bằng các nút.

Đề xuất: