You are on page 1of 12

BỘ MÔN KỸ THUẬT MÁY TÍNH – VIỄN THÔNG

CƠ SỞ VÀ ỨNG DỤNG IOTS


MMH: ITFA436064
Thời gian thực hiện: 1 buổi
Đoàn Gia Hân – 20119225

1. MQTT là gì? Đặc điểm của MQTT. 1 2


Đây là một giao thức truyền thông điệp (message) theo mô hình publish/subscribe (publish – theo dõi), sử
dụng băng thông thấp, độ tin cậy cao và có khả năng hoạt động trong điều kiện đường truyền không ổn định.
Các bước cài đặt và thiết lập MQTT trên máy tính, và ESP32.
MQTT là một giao thức nhắn tin gọn nhẹ được thiết kế để liên lạc nhẹ giữa các thiết bị và hệ thống máy
tính. MQTT được thiết kế ban đầu cho các mạng SCADA, các kịch bản sản xuất và băng thông thấp, MQTT
đã trở nên phổ biến gần đây do sự phát triển của Internet-of-Things (IoT).
MQTT là lựa chọn lý tưởng trong các môi trường như:
 Những nơi mà giá mạng viễn thông đắt đỏ hoặc băng thông thấp hay thiếu tin cậy.
 Khi chạy trên thiết bị nhúng bị giới hạn về tài nguyên tốc độ và bộ nhớ.
 Bởi vì giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao nên nó là một giao thức
lý tưởng cho các ứng dụng M2M (Machine to Machine).
Tính năng, đặc điểm nổi bật
 Dạng truyền thông điệp theo mô hình Pub/Sub cung cấp việc truyền tin phân tán một chiều, tách biệt
với phần ứng dụng.
 Việc truyền thông điệp là ngay lập tức, không quan tâm đến nội dung được truyền.
 Sử dụng TCP/IP là giao thức nền.
 Tồn tại ba mức độ tin cậy cho việc truyền dữ liệu (QoS: Quality of service)
 QoS 0: Broker/client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác nhận bởi chỉ giao thức
TCP/IP.
 QoS 1: Broker/client sẽ gửi dữ liệu với ít nhất một lần xác nhận từ đầu kia, nghĩa là có thể có nhiều
hơn 1 lần xác nhận đã nhận được dữ liệu.
 QoS 2: Broker/client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được đúng một lần, quá trình này
phải trải qua 4 bước bắt tay.
 Phần bao bọc dữ liệu truyền nhỏ và được giảm đến mức tối thiểu để giảm tải cho đường truyền.

1
“Giao thức MQTT trong IoT là gì ? Những ứng dụng của MQTT như thế nào”, https://smartindustry.vn/technology/internet-of-
things/giao-thuc-mqtt-la-gi-nhung-ung-dung-cua-mqtt-nhu-the-nao/, 06/10/2021
2
Khuê Nguyễn, “Giao thức MQTT là gì? Cách sử dụng trong lập trình IOT”, https://khuenguyencreator.com/giao-thuc-mqtt-la-gi-
cach-su-dung/, 20/10/2021
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
2. Các bước cài đặt và thiết lập MQTT trên máy tính, và ESP32.
Bước 1: Vào Arduino IDE -> Tool -> chọn Manage Libraries

Bước 2: Tìm “Adafruit IO Arduino” trong thanh tìm kiếm và bấm Install để cài đặt thư viện Adafruit
IO Arduino

Bước 3: Truy cập vào io.adafruit.com và tiến hành tạo tài khoản mới

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Bước 4: Sau khi đăng kí/ đăng nhập vào tài khoản thực hiện lấy mã key bằng cách chọn biểu tượng
hình ở góc phải màn hình

Bước 5: Copy phần key của bản thân:

Bước 6: Dán phần key mới copy vô code tại arduino IDE
Bước 7: Vào Feeds chọn New Feed

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Bước 8: khởi tạo Feed mới:

Bước 9: Vào phần Dashboard chọn New Dashboard

Bước 10: tạo Dashboard mới chọn create để tạo

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Bước 11: Nhấp vào biểu tượng chọn create new block để tạo khối mới

Bước 12: Chọn block ở đây nhóm chọn toggle để thực hiện giao tiếp

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Bước 13: Chọn liên kết với feed mới tạo lúc nãy

Bước 14: Thiết lập thông số cho nút nhấn và bấm chọn create block để tạo

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Bước 15: Button sau khi được thiết lập

3. Kết quả thực hiện và chương trình giao tiếp (bao gồm hình ảnh thực hiện, kết quả và video clip nếu
có)
Chương trình giao tiếp:

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Giải thích chương trình:
Dòng 1 và 8: Thêm thư viện AdafruitIO.h và AdafruitIO_WiFi.h để kết nối đến Server
Dòng 2 và 3: Key lấy được từ io.adafruit.com
Dòng 5 và 6: thông tin Wifi mà ESP sẽ kết nối
Dòng 9: Kết nối đến Server
Dòng 11: Khai báo chân led sử dụng
Dòng 13: khai báo con trỏ Test để chứa dữ liệu lấy từ feed của server
Dòng 15 đến 23: Hàm đọc dữ liệu và xuất ra màn hình trạng thái của nút bấm
Dòng 28 đến 31: Kết nối với Adafruit IO
Dòng 32: Lấy dữ liệu từ Feed

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Dòng 33: Gọi hàm đọc dữ liệu
Dòng 38: Gọi hàm Run
Kết quả thực hiện:
Hình ảnh:

Link Video: https://youtu.be/ThsorGxkXHc

4. Giới thiệu ưu và nhược điểm các giao thức truyền dữ liệu; CoAP, AMQP, DDS và XMPP

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Ưu điểm Nhược điểm
CoAP  Đây là giao thức đơn giản và header nhỏ gọn  CoAP là giao thức không tin cậy lắm do
3
hơn do hoạt động qua UDP. Nó cho phép thời sử dụng UDP. Do đó, các thông điệp
gian wake-up ngắn và trạng thái sleep dài. CoAP đến không có thứ tự hoặc sẽ bị
Điều này giúp đạt được tuổi thọ pin dài để sử lạc khi chúng đến đích;
dụng;  Nó xác nhận mỗi lần nhận bản tin và do
 Nó sử dụng IPSEC (IP Security) hoặc DTLS đó tăng thời gian xử lý. Hơn nữa, nó
(Datagram Transport Layer Security) để cung không xác minh xem bản tin nhận đã
cấp giao tiếp an toàn; được giải mã đúng cách hay chưa;
 Giao tiếp đồng bộ không cần thiết trong giao  Đây là giao thức không được mã hóa
thức CoAP; như MQTT và sử dụng DTLS để cung
 Nó có độ trễ thấp hơn so với HTTP; cấp bảo mật;
 Nó tránh được việc truyền lại không cần thiết,  CoAP gặp vấn đề giao tiếp khi các thiết
nên nó tiêu thụ năng lượng ít hơn so với bị nằm sau NAT.
HTTP;
 Giao thức CoAP được sử dụng như một lựa
chọn giao thức tốt nhất cho các mạng trong các
thiết bị thông tin, thiết bị truyền thông và thiết
bị điều khiển trong mạng nhà thông minh.
AMQ AMQP cung cấp nhiều khả năng hơn MQTT cho hàng đợi tin nhắn cho mục đích chung, với chi
P4 phí là một số hiệu quả và độ phức tạp. AMQP không nhắm mục tiêu vào các giải pháp IoT, thiếu
ý chí và thông điệp được giữ lại. Cấu hình của các cấu trúc liên kết định tuyến có thể xảy ra lỗi,
điều này không thể xảy ra trong thế giới MQTT đơn giản hơn.
DDS 5  Đây là một giao thức phi tập trung (broker-  Không hỗ trợ việc tạo ra nhiều kho dữ
less) với truyền thông ngang hàng trực tiếp liệu phục vụ cho nhiều mục đích khác
theo kiểu peer-to-peer giữa các publishers và nhau dựa trên dữ liệu sẵn có. Nếu có
subscribers và được thiết kế để trở thành một nhu cầu chỉ cần sử dụng 1 phần của kho
ngôn ngữ và hệ điều hành độc lập. dữ liệu thì phải xây dựng 1 gói ETL
 DDS gửi và nhận dữ liệu, sự kiện, và thông tin khác phục vụ quá trình này;
lệnh trên UDP nhưng cũng có thể chạy trên  Không tái sử dụng được gói ETL đã
các giao thức truyền tải khác như IP Multicast, làm. Mỗi 1 quy trình rút trích – biến đổi

3
“Các giao thức IoT phố biến nhất là gì? Đặc điểm và ứng dụng của chúng”, https://www.daviteq.com/blog/vi/cac-giao-thuc-iot-
pho-bien-nhat/, 21/09/2020
4
Lan Craggs, “MQTT vs AMQP for IoT”, https://www.hivemq.com/blog/mqtt-vs-amqp-for-iot/, 29/06/2022
5
Lê Công Vĩnh Khải, “5 giao thức truyền tải dữ liệu trong IoT”, https://tapit.vn/5-giao-thuc-truyen-tai-du-lieu-trong-internet-
things/, 19/06/2017
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
TCP/IP, bộ nhớ chia sẻ,… – nạp cho từng thành phần trong kho dữ
 DDS hỗ trợ các kết nối được quản lý many-to- liệu đầu cuối được thực hiện độc lập gây
many theo thời gian thực và ngoài ra còn hỗ khó khăn cho việc xây dựng những kho
trợ dò tìm tự động (automatic discovery). dữ liệu lớn.
 Các ứng dụng sử dụng DDS cho truyền thông
được tách riêng và không yêu cầu sự can thiệp
từ các ứng dụng của người dùng, có thể đơn
giản hóa việc lập trình mạng phức tạp.
 Các tham số QoS được sử dụng để xác định
các cơ chế tự dò tìm của nó được thiết lập một
lần.
XMPP  Là mô hình phân quyền client-server phi tập  Nhắn tin dựa trên văn bản, không cung
6
trung, được sử dụng cho các ứng dụng nhắn cấp mã hóa đầu cuối
tin văn bản. Có thể nói XMPP gần như là thời  Không cung cấp chất lượng dịch vụ
gian thực và có thể mở rộng đến hàng trăm
hàng nghìn nút.
 Dữ liệu nhị phân phải được mã hóa base64
trước khi nó được truyền đi trong băng tần.
 XMPP tương tự như MQTT, có thể chạy trên
nền tảng TCP.

Hình ảnh làm việc nhóm.

Tài liệu tham khảo IEEE


[1] “Giao thức MQTT trong IoT là gì ? Những ứng dụng của MQTT như thế nào”, https://smartindustry.vn/technology/internet-of-
things/giao-thuc-mqtt-la-gi-nhung-ung-dung-cua-mqtt-nhu-the-nao/, 06/10/2021
[2] Khuê Nguyễn, “Giao thức MQTT là gì? Cách sử dụng trong lập trình IOT”, https://khuenguyencreator.com/giao-thuc-mqtt-la-
gi-cach-su-dung/, 20/10/2021

6
Trần Quốc Hoàng, “Các giao thức nhắn tin IoT là gì?”, https://helpex.vn/article/cac-giao-thuc-nhan-tin-iot-la-gi-
5c6ba0beae03f61e2464e02d, 02:00, 28/09/2018
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
[3] “Các giao thức IoT phố biến nhất là gì? Đặc điểm và ứng dụng của chúng”, https://www.daviteq.com/blog/vi/cac-giao-thuc-iot-
pho-bien-nhat/, 21/09/2020
[4] Lan Craggs, “MQTT vs AMQP for IoT”, https://www.hivemq.com/blog/mqtt-vs-amqp-for-iot/, 29/06/2022
[5] Lê Công Vĩnh Khải, “5 giao thức truyền tải dữ liệu trong IoT”, https://tapit.vn/5-giao-thuc-truyen-tai-du-lieu-trong-internet-
things/, 19/06/2017
[6] Trần Quốc Hoàng, “Các giao thức nhắn tin IoT là gì?”, https://helpex.vn/article/cac-giao-thuc-nhan-tin-iot-la-gi-
5c6ba0beae03f61e2464e02d, 02:00, 28/09/2018

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064

You might also like