Arduino UNO R4 MQTT
Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Arduino UNO R4 để gửi và nhận dữ liệu từ MQTT broker bằng giao thức MQTT. Chúng ta sẽ tìm hiểu các chi tiết sau:
- Cách kết nối Arduino UNO R4 với MQTT broker
- Cách lập trình Arduino UNO R4 để gửi dữ liệu đến MQTT broker bằng cách publish vào một MQTT topic
- Cách lập trình Arduino UNO R4 để nhận dữ liệu bằng cách subscribe một MQTT topic.

Chúng ta sẽ xem xét hai ví dụ khác nhau:
- Sử dụng Arduino UNO R4 với MQTT broker trên internet.
- Sử dụng Arduino UNO R4 với MQTT broker được cài đặt trên máy tính của bạn.
Phần Cứng Cần Thiết
| 1 | × | Arduino UNO R4 WiFi | ||
| 1 | × | Alternatively, DIYables STEM V4 IoT | ||
| 1 | × | (Tùy chọn) DIYables STEM V4 IoT | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Power Splitter for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Arduino UNO R4 và MQTT
Chúng ta sẽ học cách lập trình Arduino UNO R4 để gửi và nhận dữ liệu thông qua MQTT broker (còn gọi là MQTT server). MQTT broker có thể là:
- MQTT broker trên Internet, chẳng hạn như Mosquitto hoặc AWS IoT.
- MQTT broker được cài đặt trên máy tính của bạn, như Mosquitto hoặc HiveMQ.
- MQTT broker chạy trên Raspberry Pi của bạn, ví dụ như Mosquitto.
- MQTT broker trên cloud, chẳng hạn như Mosquitto hoặc HiveMQ trên AWS EC2.
Trong hướng dẫn này, chúng ta sẽ bắt đầu bằng cách kiểm tra xem Arduino UNO R4 có thể kết nối với Mosquitto broker trực tuyến hay không. Arduino UNO R4 sẽ gửi và nhận tin nhắn đến và từ broker này qua internet.
Tiếp theo, chúng ta sẽ cài đặt Mosquitto broker trên máy tính của chúng ta. Sau đó, chúng ta sẽ kết nối Arduino UNO R4 với MQTT broker trên máy tính. Chúng ta sẽ sử dụng nó để gửi và nhận dữ liệu thông qua broker cục bộ này.
Kết nối Arduino UNO R4 với MQTT broker trực tuyến
Trong phần này, chúng ta sẽ hiểu cách liên kết Arduino UNO R4 với test.mosquitto.org, một dịch vụ MQTT trực tuyến được cung cấp bởi Mosquitto. Hãy nhớ rằng, dịch vụ này chỉ dành cho việc thử nghiệm.
Code Arduino UNO R4
Code Arduino UNO R4 này thực hiện các nhiệm vụ sau:
- Kết nối với MQTT broker
- Subscribe một topic
- Thường xuyên gửi tin nhắn đến cùng topic mà bạn đã subscribe
Các Bước Nhanh
Hãy làm theo hướng dẫn từng bước sau:
- Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
- Kết nối board Arduino Uno R4 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn board Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và COM port.
- Nhấp vào biểu tượng "Library Manager" ở phía bên trái của Arduino IDE để mở nó.
- Trong ô tìm kiếm, nhập MQTT và tìm kiếm thư viện MQTT của Joel Gaehwiler.
- Nhấp nút Install để thêm thư viện MQTT.

- Tìm kiếm ArduinoJson trong ô tìm kiếm và tìm thư viện ArduinoJson của Benoit Blanchon. Sau đó, nhấp nút Install để cài đặt thư viện.

- Copy code và mở nó trong Arduino IDE.
- Thay đổi thông tin WiFi (SSID và password) trong code thành của bạn.
- Bạn sẽ thấy 'YOUR-NAME' ba lần trong code. Thay thế nó bằng tên của bạn hoặc bất kỳ chữ cái nào (không có dấu cách). Sự thay đổi này rất quan trọng để tránh xung đột từ nhiều người dùng chạy cùng một code.
- Nhấp nút Upload trong Arduino IDE để upload code lên Arduino UNO R4 của bạn.
- Mở Serial Monitor.
- Kiểm tra kết quả trên Serial Monitor.
Arduino UNO R4 gửi tin nhắn đến MQTT broker và sau đó nhận lại cùng tin nhắn đó. Điều này xảy ra vì nó được thiết lập để nhận tin nhắn từ cùng topic mà nó gửi. Nếu bạn không muốn Arduino UNO R4 nhận lại tin nhắn của chính nó, chỉ cần sử dụng các topic khác nhau cho việc gửi và nhận.
Kết nối Arduino UNO R4 với MQTT broker được cài đặt trên PC của bạn
Cài đặt Mosquitto MQTT Broker
- Tải xuống Mosquitto MQTT Broker
- Cài đặt nó trên ổ đĩa D:, không phải ổ đĩa C:. Điều này giúp tránh những vấn đề có thể xảy ra.
Chạy Mosquitto MQTT broker
Bây giờ, hãy xem liệu MQTT broker có hoạt động đúng không bằng cách thực hiện các bước sau:
- Điều hướng đến thư mục nơi bạn đã cài đặt Mosquitto, chẳng hạn như D:\Draft\mosquitto. Tạo một file có tên test.conf, dán các chi tiết sau vào đó, và lưu file trong thư mục này.
- Mở Command Prompt dưới quyền Administrator trên máy tính của bạn. Gọi nó là "Broker Window." Hãy nhớ không đóng cửa sổ này cho đến khi bạn hoàn thành hướng dẫn.

- Thực thi các lệnh sau một cách tuần tự:
- Bạn sẽ thấy:
- Mở một Command Prompt mới dưới quyền Administrator trên máy tính của bạn.
- Để tìm địa chỉ IP của máy tính, chạy lệnh này:
- Hãy ghi lại địa chỉ IP để tham khảo sau này. Trong ví dụ được cung cấp: 192.168.0.11.
Kiểm tra xem Mosquitto Broker có hoạt động không
- Mở một Command Prompt khác dưới quyền Administrator trên máy tính của bạn. Chúng ta sẽ gọi nó là "Subscriber Window."
- Để subscribe một topic, nhập các lệnh sau từng cái một, thay thế "địa chỉ IP của bạn" bằng địa chỉ IP thực tế của bạn:
- Mở thêm một Command Prompt với quyền Administrator trên máy tính của bạn. Đặt tên nó là Publisher Window.
- Để publish một tin nhắn đến cùng topic, thực hiện các lệnh sau một cách tuần tự (thay thế bằng địa chỉ IP của bạn):
- Bạn sẽ thấy:
Tin nhắn được gửi đến Subscriber Window như thế này:
Bạn đã cài đặt thành công Mosquitto MQTT broker trên PC của mình. Hãy không đóng ba cửa sổ: Broker Window, Subscriber Window, và Publisher Window. Chúng ta sẽ sử dụng chúng ở bước tiếp theo.
Code Arduino UNO R4
Code sau đây dành cho Arduino UNO R4 và nó thực hiện các việc sau:
- Kết nối với MQTT broker
- Subscribe một topic
- Thường xuyên gửi tin nhắn đến một topic khác
Các Bước Nhanh
- Copy code ở trên và mở nó bằng Arduino IDE
- Thay đổi thông tin WiFi (SSID và password) trong code thành của bạn.
- Thay đổi địa chỉ MQTT broker trong code (có thể là tên miền hoặc địa chỉ IP).
- Nhấp nút Upload trong Arduino IDE để gửi code lên Arduino UNO R4 của bạn.
Gửi tin nhắn từ Arduino UNO R4 đến PC qua MQTT
Arduino UNO R4 gửi thông tin đến MQTT topic có tên arduino-uno-r4/send. Trên máy tính, Subscriber Window subscribe topic đó để nhận dữ liệu.
- Mở Serial Monitor để xem Arduino UNO R4 thường xuyên gửi tin nhắn đến một topic.
- Nhìn vào Subscriber Window và bạn sẽ thấy nó hiển thị tin nhắn được gửi bởi Arduino UNO R4 như thế này:
Gửi tin nhắn từ PC đến Arduino UNO R4 qua MQTT
Arduino UNO R4 được thiết lập để nhận tin nhắn từ topic arduino-uno-r4/receive. Publisher Window trên PC gửi tin nhắn đến topic này để giao tiếp với Arduino UNO R4.
- Gửi một tin nhắn đến topic được subscribe bởi Arduino UNO R4 bằng lệnh này trong Publisher Window:
- Bạn sẽ thấy Arduino UNO R4 nhận được tin nhắn này, như được hiển thị trên Serial Monitor:
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.