Mục lục:
- Bước 1: MQTT là gì và nó hoạt động như thế nào
- Bước 2: Raspberry Pi
- Bước 3: Cách thiết lập địa chỉ Ip tĩnh
- Bước 4: NodeMCU
- Bước 5: Tập lệnh Python
- Bước 6: Kết nối và sơ đồ mạch
- Bước 7: Kết quả
Video: Raspberry Pi Nói chuyện với ESP8266 bằng MQTT: 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
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
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
Đ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
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
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
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ả
Đả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:
Tự động hóa Nói chuyện -- Âm thanh từ Arduino -- Tự động hóa điều khiển bằng giọng nói -- HC - 05 Mô-đun Bluetooth: 9 bước (có Hình ảnh)
Tự động hóa Nói chuyện || Âm thanh từ Arduino || Tự động hóa điều khiển bằng giọng nói || HC - 05 Mô-đun Bluetooth: …………………………. Please SUBSCRIBE To my YouTube channel for more videos … …. Trong video này, chúng tôi đã xây dựng Tự động hóa nói chuyện .. Khi bạn gửi lệnh thoại qua thiết bị di động thì lệnh đó sẽ bật các thiết bị gia đình và gửi phản hồi tôi
Cách thực hiện nhiều cuộc nói chuyện với ESP qua ESP-NOW bằng ESP32 và ESP8266: 8 bước
Cách thực hiện nhiều cuộc nói chuyện với ESP qua ESP-NOW Sử dụng ESP32 và ESP8266: Trong dự án đang diễn ra của tôi, tôi cần nhiều ESP để nói chuyện với nhau mà không cần bộ định tuyến. Để làm điều này, tôi sẽ sử dụng ESP-NOW để giao tiếp không dây với nhau mà không cần bộ định tuyến trên ESP
Đèn điều khiển bằng giọng nói từ mọi nơi với Jason: 7 bước
Đèn điều khiển bằng giọng nói từ mọi nơi với Jason: Đèn xoay chiều được điều khiển từ mọi nơi có kết nối internet bằng NodeMCU (ESP8266) và Jason (Ứng dụng Android) .Jason là một ứng dụng trợ lý điều khiển bằng giọng nói mà tôi đã mã hóa cho các thiết bị Android để kiểm soát trạng thái điện của một Thiết bị AC, cho đến khi
Trình viết chữ nổi Braille đơn giản (Lời nói sang chữ nổi Braille): 8 bước (có Hình ảnh)
Simple Braille Writer (Speech to Braille): Xin chào tất cả mọi người, Tất cả những điều này bắt đầu bằng việc làm một máy vẽ XY đơn giản sau khi hoàn thành nó thành công, tôi nghĩ rằng sẽ phát triển một trình chuyển đổi văn bản từ giọng nói sang chữ nổi Braille đơn giản. Tôi bắt đầu tìm kiếm nó trên mạng và không ngờ giá quá cao. , điều đó đã thúc đẩy tôi
Nói chuyện với Chọn và Trò chuyện Trí tuệ Nhân tạo bằng Cleverbot: 14 bước (có Hình ảnh)
Nói chuyện với Chọn và Trò chuyện Trí tuệ Nhân tạo bằng Cleverbot: Ở đây tôi không chỉ thử ra lệnh bằng giọng nói mà còn cả Trò chuyện Trí tuệ Nhân tạo với Máy tính bằng Cleverbot. Trên thực tế, ý tưởng xuất hiện khi phát hiện trẻ em trộn màu trong hộp màu khi lấy màu từ màu này đến màu gần nhất. Nhưng cuối cùng cũng thúc đẩy