Thực Hành MQTT

Trong bài trước bạn đã tìm hiểu cách thức hoạt động của MQTT. Bài này chúng ta sẽ cùng nhau thực hành việc sử dụng MQTT thông qua một vài ví dụ cơ bản.

Gửi Nhận Dữ Liệu Thông Qua Topic Cụ Thể

Trong ví dụ này, ta sẽ lập trình cho Blocky đăng ký nhận dữ liệu của 1 topic cụ thể và đồng thời gửi dữ liệu đến topic này. Khi đó Blocky sẽ nhận lại được chính dữ liệu mà nó gửi đi.

Bạn upload chương trình như sau trong code lab

Trong chương trình này, ta sử dụng block Print device log để xuất ra màn hình log của Blocky trên trang web. Sau khi upload code và Blocky reboot, ta sẽ thấy được message nhận được được in ra trong khung Device Log

Sử Dụng Ký Tự Đại Diện (Wild Cards) Trong Topic

Trong ví dụ này, ta sẽ lập trình cho Blocky đăng ký nhận dữ liệu của topic liên quan đến nhiệt độ trong các phòng sử dụng ký tự đại diện + là /home/+/temperature và đồng thời gửi dữ liệu đến 2 topic khớp với ký tự này là nhiệt độ của phòng A (/home/roomA/temperature) và phòng B (/home/roomB/temperature). Khi đó Blocky sẽ nhận lại được chính dữ liệu mà nó gửi đi.

Bạn upload chương trình như sau trong code lab:

Tất cả các lệnh được thực hiện một lần trong block Setup, khi đó trên cửa sổ Device log, ta sẽ nhận được 2 message mặc dù ta chỉ đăng ký 1 topic là home/+/temperature:

Trong trường hợp bạn muốn nhận được message gửi đến topic bất kỳ, ta sẽ dùng ký tự đại diện là #. Ví dụ, ta muốn nhận được tất cả message liên quan đến roomA, ta sẽ đăng ký vào topic home/roomA/# và sẽ nhận được message gửi đến tất cả các topic như home/roomA/temperature, home/roomA/light hay home/roomA/sensor/motion, tức là từ cấp home/roomA trở xuống. Những message gửi đến topic home/roomB sẽ không nhận được.

Để test thử, bạn hãy nạp chương trình sau:

Khi đó trong Device log, ta sẽ chỉ nhận được 3 message đầu

Như vậy qua một vài ví dụ trên bạn đã hiểu phần nào cách thức hoạt động cơ bản của MQTT và có thể sử dụng nó trong việc trao đổi dữ liệu giữa thiết bị và server hoặc thiết bị với thiết bị.

results matching ""

    No results matching ""