Lập trình ESP32 với MQTT – Giới thiệu

Giới thiệu MQTT

Phần này giới thiệu về MQTT và cách sử dụng MQTT với ESP32.

MQTT là viết tắt của Message Queuing Telemetry Transport. Đây là một hệ thống đăng ký và xuất bản, nơi bạn có thể Publish (xuất bản) và Subscribe (đăng ký) với tư cách là khách hàng.

MQTT là một giao thức nhắn tin đơn giản được thiết kế cho các thiết bị bị giới hạn có băng thông thấp. Vì vậy, nó là giải pháp hoàn hảo cho các ứng dụng Internet of Things. MQTT cho phép bạn gửi lệnh để kiểm soát đầu ra, đọc và xuất bản dữ liệu từ các nút cảm biến và nhiều tiện ích khác nữa.

MQTT khái niệm cơ bản

Trong MQTT, có một số khái niệm cơ bản mà bạn cần hiểu:

  • Publish/Subscribe (Xuất bản/đăng ký)
  • Messages (Tin nhắn)
  • Topics (Chủ đề)
  • Broker (Trung gian)

Publish/Subscribe

Khái niệm đầu tiên là hệ thống xuất bản và đăng ký. Trong hệ thống xuất bản và đăng ký, một thiết bị có thể xuất bản messages về topic hoặc có thể đăng ký một topic cụ thể để nhận messages.

  • Ví dụ Thiết bị 1 publish về một topic;
  • Thiết bị 2 được subscribe cho cùng một topic mà Thiết bị 1 đang publish;
  • Vì vậy, Thiết bị 2 nhận được messages.

Messages là những phần thông tin được trao đổi giữa các thiết bị của bạn: cho dù đó là lệnh hay dữ liệu.

Topics

Một khái niệm quan trọng khác là topics (chủ đề). Topics là cách bạn đăng ký sự quan tâm cho các tin nhắn đến hoặc chỉ định nơi bạn muốn xuất bản các tin nhắn.
Topics được thể hiện bằng các chuỗi tách nhau bằng dấu gạch chéo. Mỗi dấu gạch chéo cho biết cấp độ topic. Dưới đây là một ví dụ về cách bạn tạo topic cho đèn trong văn phòng tại nhà của mình:

Lưu ý: các topic có phân biệt chữ hoa chữ thường.

Nếu bạn muốn bật đèn trong văn phòng tại nhà của mình bằng MQTT và ESP32, bạn có thể hình dung tình huống sau:

  1. Bạn có một thiết bị đăng thông báo “ON” và “OFF” về topic home/office/lamp.
  2. ESP32 điều khiển đèn của bạn được subscribe cho topic đó.
  3. Vì vậy, khi một thông báo mới được publish về topic đó, ESP32 sẽ nhận được thông báo “ON” hoặc “OFF” và bật hoặc tắt đèn

Thiết bị đầu tiên này có thể là ESP32, ESP8266 hoặc platform bộ điều khiển tự động hóa tại nhà ví dụ như Node-RED, Home Assistant, Domoticz hoặc OpenHAB.

Broker

Cuối cùng, bạn cũng cần lưu ý về thuật ngữ broker. Broker (trung gian) chịu trách nhiệm chính về việc nhận tất cả các tin nhắn, lọc các tin nhắn, quyết định ai quan tâm đến chúng và gửi tin nhắn đến tất cả các khách hàng đã đăng ký.

Một vài broker bạn có thể sử dụng. Ví dụ: Mosquitto được lưu trữ trên Raspberry Pi hoặc bạn có thể sử dụng broker MQTT đám mây.

Chúng ta sẽ sử dụng broker Mosquitto được cài đặt trên Raspberry Pi.

Tổng kết

  • MQTT là một giao thức truyền thông rất hữu ích trong các dự án Internet of Things;
  • Trong MQTT, các thiết bị có thể publish tin nhắn về các topic cụ thể và có thể subcribe các topic khác để nhận tin nhắn;
  • Bạn cần một broker khi sử dụng MQTT. Nó nhận tất cả các tin nhắn và gửi chúng đến các thiết bị đã subscribe.

Trong ba phần tiếp theo, bạn sẽ tìm hiểu cách cài đặt broker MQTT và trao đổi dữ liệu giữa board ESP32 bằng giao thức MQTT.

Icons made by Freepik from www.flaticon.com