Tải bản đầy đủ (.docx) (63 trang)

Ứng dụng iot trong nhà thông minh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.49 MB, 63 trang )

Ứng dụng IoT trong nhà thông minh

1
SV thực hiện: Huỳnh Văn Tiên

GV hướng dẫn: TS Giáp Quang Huy


TÓM TẮT
Tên đề tài: ứng dụng IoT trong nhà thông minh
Sinh viên thực hiện: Huỳnh Văn Tiên
Số thẻ SV: 105130293

Lớp: 13TDH1

Đề tài này em tập trung nghiên cứu về IoT để ứng dụng vào
nhà thông minh, từ đó thiết kế mô hình nhà thông minh. Công việc
của đề tài bao gồm: tìm hiểu và chọn Server để ngôi nhà giao tiếp
với người qua smartphone, thiết lập các chế độ hoạt động cho ngôi
nhà.
Đồ án chia làm 5 chương:
Chương 1: Tổng quan về ứng dụng IoT trong nhà thông minh. Tìm
hiểu khái niệm cấu trúc của hệ thống IoT và ứng dụng của nó nói
chung trong nhà thông minh nói riêng.
Chương 2: Tổng quan về Internet và giao thức sử dụng trong hệ
thống IoT. Các khái niệm mạng Internet và giao thức được sử dụng
trong IoT, lựa chọn giao thức và Server để truyền dữ liệu.
Chương 3: Lựa chọn thiết bị phần cứng và phần mềm. Tìm hiều chíp
điều khiển, chíp WiFi và các phần cứng liên quan khác, từ đó lựa
chọn ngôn ngữ và phần mêm lập trình .
Chương 4: Lắp đặt và lập trình cho hệ thống: trong chương này tập


trung đưa ra nguyên lý điều khiển, sơ đồ nối dây để viết chương trình
và chạy hệ thống; thiết kế giao diện người dùng trên Smartphone
Chương 5: Mô hình và đánh giá kết quả làm được.

kk



LỜI NÓI ĐẦU
Hiện nay công nghiệp 4.0 đang phát triển mạnh mẽ trên thế
giới, đối với Việt Nam có vẻ còn xa vời. IoT là một phần của cuộc
cách mạng công nghiệp 4.0, nó đang phát triển nhanh chóng và phổ
biến ở nước ta. Nhiều công ty đã chọn các dự án IoT làm hướng phát
triển; smarthome là một trong những ứng dụng phổ biến nhất. Cùng
với sự phát triển đó em đã chọn đề tài “Ứng dụng IoT trong nhà
thông minh” làm đề tài tốt nghiệp.

kk


CAM ĐOAN
Tôi xin cam đoan đồ án ỨNG DỤNG IOT TRONG NHÀ THÔNG
MINH do chính bản thân tôi thực hiện dưới sự hỗ trợ và hướng dẫn
của Thầy Giáp Quang Huy.
Mọi tham khảo được sử dụng trong đồ án này đều được trích dẫn rõ ràng tên tác
giả, tên công trình, thời gian và địa điểm công bố.
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá tôi xin chịu
hoàn toàn trách nhiệm.

Sinh viên thực hiện

Huỳnh Văn Tiên


kk


MỤC LỤC
TÓM TẮT............................................................................................................ 4
LỜI NÓI ĐẦU...................................................................................................... 6
CAM ĐOAN......................................................................................................... 7
Chương 1: TỔNG QUAN VỀ ỨNG DỤNG IOT TRONG NHÀ THÔNG MINH.............9
1.1

Internet of Things (IoT)..............................................................................9

1.1.1

Khái niệm IoT....................................................................................... 9

1.1.2

Cấu trúc một hệ thống IoT...................................................................9

1.1.3

Ứng dụng của IoT trên thế giới hiện nay...........................................10

1.2

Ứng dụng IoT vào nhà thông minh..........................................................11


Chương 2: TỔNG QUAN VỀ MẠNG INTERNET VÀ GIAO THỨC MẠNG SỬ DỤNG
TRONG HỆ THỐNG IOT..................................................................................... 13
2.1

Tổng quan về mạng internet...................................................................13

2.1.1

Khái niệm.......................................................................................... 13

2.1.2

Hoạt động của mạng internet............................................................13

2.1.3

Kết Nối Internet.................................................................................15

2.1.4

Giao Thức TCP/IP................................................................................ 15

2.2

Các giao thức sử dụng trong IoT..............................................................17

2.2.1

MQTT................................................................................................. 17


2.2.2

CoAP (Constrained Application Protocol)...........................................17

2.2.2

AMQP(Advanced Message Queue Protocol).......................................18

2.2.3

HTTP (Hypertext Transfer Protocol)....................................................18

2.3

Giao thức MQTT....................................................................................... 18

2.3.1

Mô hình MQTT....................................................................................18

2.3.2

Cấu trúc gói tin của MQTT.................................................................19

2.2.3

Quy trình truyền nhận dữ liệu chính trong MQTT...............................20

2.2.4


Sử dụng MQTT................................................................................... 24

Chương 3: LỰA CHỌN THIẾT BỊ PHẦN CỨNG VÀ PHẦN MỀM...........................26
3.1

Phần cứng điều khiển.............................................................................. 26

3.1.1

Arduino Uno R3..................................................................................26

3.1.2

Node MCU ESP8266...........................................................................27

3.1.3

Cảm biến phát hiện chuyển động PIR................................................30

Cảm biến phát hiện chuyển động PIR(Passive InfraRed sensor )....................30
3.1.4

Cảm biến nhiệt độ LM35....................................................................30

3.1.5

Động cơ bước và modul điều khiển...................................................31

3.1.6


Modul relay........................................................................................ 32


3.2

Phần mền Arduino IDE............................................................................. 33

Chương 4: LẮP ĐẶT VÀ LẬP TRÌNH CHO HỆ THỐNG.........................................35
4.1

Thiết kế lắp đặt các thiết bị điện trong nhà.............................................35

4.2

Phương pháp điều khiển..........................................................................36

4.2.1

Sơ đồ khối của hệ thống....................................................................36

4.2.2

Thuật toán chương trình....................................................................37

4.3

4.3.1

Chương trình điều khiển cho Nodemcu ESP8266...............................40


4.3.2

Chương trình điều khiển cho arduino.................................................45

4.3.3

Giao tiếp giữa Arduino và nodemcu ESP8266....................................48

4.4

kk

Chương trình điều khiển..........................................................................40

Giao diện giao tiếp người dùng qua Smartphone.....................................49


Ứng dụng IoT trong nhà thông minh

Chương 1: TỔNG QUAN VỀ ỨNG DỤNG IOT TRONG NHÀ
THÔNG MINH
1.1

Internet of Things (IoT)

1.1.1

Khái niệm IoT
Internet of Things (IoT) - Mạng lưới vạn vật kết nối Internet là


khi mà mỗi đồ vật được cung cấp một định danh của riêng mình, và
tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một
mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người
với người, hay người với máy tính. IoT đã phát triển từ sự hội tụ của
công nghệ không dây, công nghệ vi cơ điện tử và Internet. Nói đơn
giản là một tập hợp các thiết bị có khả năng kết nối với nhau, với
Internet và với thế giới bên ngoài để thực hiện một công việc nào đó.
1.1.2

Cấu trúc một hệ thống IoT

Hình 1.1: Cấu trúc hệ thống IoT
-

Sensor (cảm biến ): Có nhiệm vụ thu thập dữ các thông số ta
cần đo, tín hiệu lấy được có thể là tương tự hoặc số.

-

Local processing : Xử lý các tín hiệu đầu vào trước khi đưa lên
internet.

-

Local storage : Lưu trữ dữ liệu cần xử lý

-

Network : Phần cứng kết nối mạng


-

Internet: Kết nối ra internet
1

SV thực hiện: Huỳnh Văn Tiên

GV hướng dẫn: TS Giáp Quang Huy


-

Cloud processing: Xử lý tính toán đám mây

-

Cloud storage: lưu trữ đám mây

1.1.3

Ứng dụng của IoT trên thế giới hiện nay
Thị trường IoT trên thế giới được dự đoán là rộng lớn trong

tương lai, có rất nhiều công ty lớn trên thế giới đã đầu tư vào các dự
án này như Cisco, Intel, google và Qualcomm. Dưới đây là 1 số ứng
dụng của IoT được sử dụng rộng rải trên thế giới:
Nhà thông minh (smart home): là một trong những ứng dụng
phổ biến nhất của IoT trên thế giới, theo thống kê thì số công ty
nghiên cứu nhà thông minh là 256 công ty và các công ty khởi

nghiệp. Những lợi ích mà nhà thông minh mang lại cho người sử dụng là rất lớn.
Thiết bị mang theo (wearables) : Wearables cũng là một chủ đề
khá nóng. Đã có nhiều sáng kiến về Wearables như đồng hồ thông
minh của Apple, máy huấn luyện thông minh của Sony (smart BTrainer), điều khiển cử chỉ Myo, hoặc vòng đeo tay LookSee.
Thành phố thông minh (smart city) : Thành phố thông minh là
ứng dụng để quản lý lưu lượng nước trong phân phối nước, quản lý
chất thải, an ninh đô thị và giám sát môi trường. Nhiều giải pháp
thành phố thông minh được đưa ra hứa hẹn mang lại chất lượng cuộc
sống con người tốt hơn. Giải pháp IoT trong khu vực của thành phố
thông minh giải quyết vấn đề ùn tắc giao thông, giảm thải tiếng ồn
và ô nhiễm, giúp làm cho thành phố an toàn hơn.
Lưới điện thông minh (smart grid): lưới điện thông minh là
trường hợp đặc biệt của IoT. Một lưới điện thông minh trong tương lai
hứa hẹn nâng cao hiệu quả, độ tin cậy và kinh tế của việc sử dụng
điện dựa trên mức sử dụng điện của người sử dụng điện và nhà cung
cấp điện.
Internet công nghiệp (industrial internet): Internet công nghiệp
cũng là một ứng dụng đặc biệt của IoT. Internet công nghiệp được
đánh giá là có tiềm năng rất cao nhưng hiện nay chưa được sử dụng
rộng rãi.
Ô tô kết nối (connected car): Hiện nay các ô tô tự hành được
các nhà phát lớn quan tâm như :Google, Microsoft và Apple. Tuy
nhiên xe tự hành vẫn chưa được công nhận chính thức.
kk


Y tế kết nối(connected health) : Một hệ thống chăm sóc sức
khỏe và các thiết bị y tế thông minh được kết nối mang lại một tiềm
năng rất lớn không chỉ cho các công ty mà còn mang lại lợi ích cho
con người nói chung.

Trang trại thông minh (smart farming): Ứng dụng này hiện nay
cũng được quan tâm nhiều nó được sử dụng rộng rãi trong các vườn
cây hay chuồng trại.

1.2

Ứng dụng IoT vào nhà thông minh

Hệ thống chiếu sáng thông minh
Hệ thống đèn thông minh cho phép người dùng có thể bật/ tắc
đèn của tất cả các phòng hoặc từng phòng riêng lẻ mà không cần di
chuyển bất kì bước chân nào. IoT giúp người dùng xử trí dễ dàng khi
ra ngoài mà quên tắt đèn phòng ngủ, dù chủ nhà có đang cách xa
ngôi nhà của mình. Ngoài ra, hệ thống chiếu sáng thông minh cũng
cho phép hẹn giờ bật/ tắt đèn cho các vị trí chiếu sáng cố định, ví dụ
như đèn trang trí sân vườn, đèn chiếu sáng cổng chính..
Hệ thống điều hòa nhiệt độ và bình nước nóng
Trước đây, người dùng thường mất 5 – 10 phút chờ đợi sau khi
bật điều hòa, bình nóng lạnh để làm mát căn phòng hoặc có nước
nóng sử dụng. Tuy nhiên, với IoT, người dùng có thể khởi động các hệ
thống này bằng smartphone hay tablet của mình, để đảm bảo khi về
tới nhà tất cả mọi thứ đã sẵn sàng sử dụng. Các thao tác hẹn giờ,
thay đổi nhiệt độ cũng có thể thực hiện nhanh chóng và dễ dàng trên
thiết bị di động thông minh, giúp gia chủ có thể tiết kiệm tối đa thời
gian và lượng điện tiêu thụ trong gia đình – tránh trường hợp quên
không tắt bình nóng lạnh, điều hòa khi ra ngoài.
Tương tự, các thiết bị khác trong gia đình như rèm cửa cũng
hoàn toàn tự động hóa bằng ứng dụng IoT.
Giải pháp âm thanh đa vùng
Việc nghe nhạc, giải trí với IoT trở nên đơn giản hơn bao giờ hết,

vì cùng một nguồn nhạc từ smartphone, tablet có thể phát nhạc cho


cả ngôi nhà hoặc từng khu vực riêng biệt tùy thuộc vào lựa chọn của
người sử dụng. Đặc biệt hơn, người dùng có thể tạo lập cho mình
những “kịch bản” rất riêng như “Chào buổi sáng”, “Ăn tối”… Khi đó,
chỉ cần chạm vào “Chào buổi sáng”, rèm cửa tự động mở, âm nhạc
sẵn sàng phát những âm thanh vui tươi chào đón ngày mới, tạo sự
thư thái, tiện nghi trọn vẹn cho người sử dụng.
Hệ thống an ninh
Sở hữu một ngôi nhà thông minh sử dụng ứng dụng IoT đồng
nghĩa với việc hệ thống an ninh giám sát an toàn, chặt chẽ hơn nhiều
lần so với camera thông thường. IoT cho phép người dùng có thể
theo dõi, giám sát ngôi nhà của mình dù đang đi công tác hay trong
những kì nghỉ xa nhà qua smartphone hay tablet. Khi có dấu hiệu đột
nhập, dựa vào những thiết lập sẵn, còi hú sẽ vang lên, đèn xoáy
quay sáng, hệ thống chiếu sáng bật lên, rèm cửa ngay lập tức mở
ra…. tất cả các thiết bị sẽ cùng tham gia vào “công cuộc” chống
trộm, bảo đảm an ninh tuyệt đối cho ngôi nhà của bạn.
Hệ thống cảnh báo
Cùng với sự kết hợp các cảm biến như cảm biến khí ga, cảm
biến nhiệt độ, cảm biến khói … cảnh báo tức thời cho con người khi
xảy ra sự cố để gia chủ xử lý một cách nhanh nhất, để tổn thất ít
nhất có thể.
Ngoài ra còn có rất nhiều chức năng như tự chăm sóc cây vườn,
điều khiển bằng giọng nói ha cử chỉ, chăm sóc sức khỏe cho gia chủ.

kk



Chương 2:
TỔNG QUAN VỀ MẠNG INTERNET VÀ GIAO
THỨC MẠNG SỬ DỤNG TRONG HỆ THỐNG IOT
2.1

Tổng quan về mạng internet

2.1.1

Khái niệm

Internet là một hệ thống thông tin toàn cầu có thể được truy nhập
công cộng gồm các mạng máy tính được liên kết với nhau. Hệ thống
này truyền thông tin theo kiểu nối chuyển gói dữ liệu (packet
switching) dựa trên một giao thức liên mạng đã được chuẩn hóa
(giao thức IP). Hệ thống này bao gồm hàng ngàn mạng máy tính nhỏ
hơn của các doanh nghiệp, của các viện nghiên cứu và các trường
đại học, của người dùng cá nhân, và các chính phủ trên toàn cầu.
Chúng cung cấp một khối lượng thông tin và dịch vụ khổng lồ trên
internet.
Mạng Internet mang lại rất nhiều tiện ích hữu dụng cho người sử
dụng, một trong các tiện ích phổ thông của Internet là hệ thống thư
điện tử (email), trò chuyện trực tuyến (chat), máy truy tìm dữ liệu
(search engine), các dịch vụ thương mại, chuyển ngân, và các dịch
vụ về y tế giáo dục như là chữa bệnh từ xa hoặc tổ chức các lớp học
ảo…
Nguồn thông tin khổng lồ kèm theo các dịch vụ tương ứng chính
là hệ thống các trang Web liên kết với nhau và các tài liệu khác trong
WWW (World Wide Web). Trái với một số cách sử dụng thường ngày,
Internet và WWW không đồng nghĩa. Internet là một tập hợp các

mạng máy tính kết nối với nhau bằng dây đồng, cáp quang, v.v..; còn
WWW, hay Web, là một tập hợp các tài liệu liên kết với nhau bằng
các siêu liên kết (hyperlink) và các địa chỉ URL, và nó có thể được
truy nhập bằng cách sử dụng Internet.


2.1.2

Hoạt động của mạng internet

Các giao thức( Protocols): là tập các luật mà các máy tính phải
tuân theo khi giao tiếp trên Internet.
-

Tranmission Control Protocol (TCP): thiết lập kết nối giữa hai

máy tính để truyền tải dữ liệu, chia dữ liệu thành những gói nhỏ và
đảm bảo việc truyền nhận dữ liệu. TCP là giao thức hướng kết nối
(connection-oriented protocol).
-

User Datagram Protocol (UDP): thiết lập kết nối nhanh nhưng

không chắc chắn giữa các máy tính để truyền tải dữ liệu, cung cấp ít
dịch vụ để khắc phục lỗi.
-

Internet Protocol (IP): điều chỉnh đường đi của những gói dữ

liệu đường truyền nhận trên Internet. TCP là giao thức phi kết nối

(connectionless protocol).
o

HTTP: cho phép trao đổi thông tin trên Internet.

o

FTP: cho phép truyền nhận file trên Internet.

o

SMTP: cho phép gửi thư điện tử trên Internet.

o

POP3: cho phép nhận thư điện tử trên Internet.
TCP/IP được dùng làm giao thức chuẩn khi giao tiếp trên

Internet vì nó độc lập với nền của hệ thống (platform independent)
và không có tổ chức nào có quyền sở hữu giao thức này.
a)

Địa Chỉ IP ( IP Adress)
Internet là một mạng kết nối rộng lớn giữa các máy tính. Để xác

định một máy tính trên mạng này, người ta dùng một con số gọi là

kk



địa chỉ IP. Địa chỉ IP gồm một tập 4 số nhỏ hơn 255 và được ngăn
cách bởi các dấu ‘.’. Ví dụ: 41.212.196.197.
b)

Mô Hình Khách – Chủ ( Client – Server Model)
Internet dựa trên mô hình khách – chủ (client – server), trong đó

dữ liệu được trao đổi thông qua các trang web. Trong mô hình client –
server, mỗi máy tính được xác định bởi một địa chỉ Internet protocol
(IP) và cả máy tính client, server cùng chấp nhận một giao thức
chung để để giao tiếp với nhau.
Trong mô hình khách - chủ, máy khách (client computer) yêu
cầu thông tin từ một máy chủ (server). Máy chủ chấp nhận yêu cầu
và gửi thông tin về cho máy khách. Việc trao đổi thông tin này được
diễn ra thông qua những trang web.
c)

Hệ Thống Tên Miền ( DNS- Domain Name System)
Mỗi máy tính trên mạng Internet được xác định bằng địa chỉ IP,

nhưng con số này rất khó nhớ. Để khắc phục nhược điểm này, người
ta dùng hệ thống tên miền để đặt tên cho máy tính. Ví dụ: tên miền
www.yahoo.com ứng với địa chỉ IP 216.109.127.28. request web
page Miền (domain) ứng với một tập các máy tính trên Internet.
Phần mở rộng của tên miền (domain name extension) được dùng để
xác định quốc gia hay tổ chức.

2.1.3

Kết Nối Internet

Để kết nối với Internet cần có một số yêu cầu về phần cứng và

phần mềm sau:
-

Phần cứng: máy tính, kết nối thông qua đường dây điện thoại
hoặc kết nối cáp, modem.

-

Phần mềm: kết nối internet, hệ điều hành, giao thức TCP/IP,
trình duyệt web. Các yêu cầu thiết yếu khi kết nối với Internet:
kết nối với Internet thông qua một nhà cung cấp Internet
(Internet Service Provider), modem, trình duyệt và địa chỉ URL.


2.1.4

Giao Thức TCP/IP
TCP/IP là bộ giao thức cho phép kết nối các hệ thống mạng

không đồng nhất với nhau. TCP/IP là viết tắt của Transmission
Control

Protocol (Giao thức

Điều

Khiển


Truyền

thông)/Internet

Protocol (Giao thức Internet), ngày nay TCP/IP được sử dụng rộng rãi
trong c ác mạng cục bộ cũng như trên mạng Internet toàn cầu.
TCP/IP không chỉ gồm 2 giao thức mà thực tế nó là tập hợp của
nhiều giao thức. Chúng ta gọi đó là 1 hệ giao thức hay bộ giao thức
(Suite Of Protocols).

TCP/IP được xem là giản lược của mô hình tham chiếu OSI với
bốn tầng, trong mô hình này là (theo thứ tự từ trên xuống):
+ Tầng ứng dụng (Application Layer)
+ Tầng giao vận (Transport Layer)
+Tầng mạng (Internet Layer)
+ Tầng liên mạng (Network Interface Layer)
a) Tần liên mạng (Network Interface Layer): Tầng Liên Mạng có
trách nhiệm đưa
dữ liệu tới và nhận dữ liệu từ phương tiện truyền dẫn. Tầng này bao
gồm các thiết bị

kk


giao tiếp mạng(Card Mạng và Cáp Mạng) và chương trình cung cấp
các thông tin cần
thiết để có thể hoạt động, truy nhập đường truyền vật lý qua thiết bị
giao tiếp mạng đó.
b) Tầng mạng (Internet Layer): Nằm trên tầng liên mạng. Tầng này
có chức năng gán địa chỉ, đóng gói và định tuyến (Route) dữ liệu.

Bốn giao thức quan trọng nhất trong tầng này gồm:
IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu
trước khi truyền và định tuyến chúng tới đích.
ARP (Address Resolution Protocol): Có chức năng biên dịch
địa chỉ IP của máy đích thành địa chỉ MAC (Media Access Control).
ICMP (Internet Control Message Protocol): Có chức năng
thông báo lỗi trong trường hợp truyền dữ liệu bị hỏng.
IGMP (Internet Group Management Protocol): Có chức
năng điều khiển truyền đa hướng (Multicast).
Tầng giao vận (Transport Layer): Có trách nhiệm thiết lập
phiên truyền thông giữa các máy tính và quy định cách truyền dữ
liệu 2 giao thức chính trong tầng này gồm có hai giao thức chính:
TCP

(Transmission Control

Protocol)

và UDP

(User Datagram

Protocol). TCP cung cấp các kênh truyền thông hướng kết nối và đảm
bảo truyền dữ liệu một cách tin cậy, nó cung cấp một luồng dữ liệu
tin cậy giữa hai trạm, nó sử dụng các cơ chế như chia nhỏ các gói tin
của tầng trên thành các gói tin có kích thước thích hợp cho tầng
mạng bên dưới, báo nhận gói tin, đặt hạn chế thời gian time-out để
đảm bảo bên nhận biết được các gói tin đã gửi đi. TCP thường truyền
các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về các
gói tin đã nhận. Do tầng này đảm bảo tính tin cậy, tầng trên sẽ

không cần quan tâm đến nữa.
UDP cung cấp một dịch vụ đơn giản hơn cho tầng ứng dụng.
UDP cung cấp kênh truyền thông phi kết nối, nó chỉ gửi các gói dữ


liệu từ trạm này tới trạm kia mà không đảm bảo các gói tin đến được
tới đích. Các ứng dụng dùng UDP thường chỉ truyền những gói có
kích thước nhỏ, độ tin cậy dữ liệu phụ thuộc vào từng ứng dụng.
Các cơ chế đảm bảo độ tin cậy cần được thực hiện bởi tầng
trên.
Tầng ứng dụng (Application Layer): Tầng ứng dụng là tầng trên
cùng của mô hình TCP/IP bao gồm các tiến trình và các ứng dụng
cung cấp cho người sử dụng để truy cập mạng. Một số giao thức
thông dụng trong tầng này là:
DHCP (Dynamic Host Configuration Protocol): Giao thức
cấu hình trạm động.
DNS (Domain Name System): Hệ thống tên miền
SNMP

(Simpe

Network

Management

Protocol): Giao

thức quản lý mạng đơn giản.
FTP (File Transfer Protocol): Giao thức truyền tập tin
TFTP (Trivial File Transfer Protocol): Giao thức truyền tập

tin bình thường
SMTP (Simple Mail Transfer Protocol): Giao thức truyền thư
đơn giản.
2.2

Các giao thức sử dụng trong IoT

2.2.1

MQTT
MQTT (Message Queuing Telemetry Transport) là một giao thức

mã nguồn mở để truyền các messages giữa nhiều Client (Publisher
và Subscriber) thông qua một Broker trung gian, được thiết kế để
đơn giản và dễ dàng triễn khai. Kiến trúc MQTT dựa trên Broker trung
gian và sử dụng kết nối TCP long-lived từ các Client đến Broker.
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 máy với máy. Giao thức này nhẹ đến mức nó có thể được hỗ trợ
bởi một số thiết bị đo lường và giám sát nhỏ nhất và nó có thể
truyền dữ liệu qua các mạng có khả năng tiếp cận. MQTT là một giao
thức gởi thông điệp (message) theo cơ chế xuất bản (public) và đăng
ký (subcribe), được tối ưu hóa để kết nối các thiết bị và sự kiện trên
thế giới vật lý với các máy chủ doanh nghiệp và người tiêu dùng.

kk


MQTT được thiết kế để vượt qua những thách thức khi kết nối thế giới
vật lý cả các cảm biến, các thiết bị truyền động, điện thoại và máy

tính bảng với các công nghệ xử lý phần mềm đã được thiết lập.

Hình 2.1: Giao thức MQTT
2.2.2

CoAP (Constrained Application Protocol)
CoAP là một giao thức truyền tải tài liệu theo mô hình

client/server dự án trên internet tương tự như giao thức HTTP nhưng
thiwwts kế cho các thiết bị ràng buộc. Giao thức này sử dụng một
giao thức one-to –one để chuyển đổi thông tin trạng thái client/ và
server.
CoAP sử dụng UDP (User Datagram Protocol), không hổ trợ TCP,
mà UDP có thể dể dàng triển khai trên các vi điều khiển hơn TCP.
2.2.2

AMQP(Advanced Message Queue Protocol)
AMPQ là một giao thức trung gian cho các gói tin trên lớp ứng

dụng với các mục đích thay thế các hệ thống truền tin độc quyền và
không tương thích. Các tính năng chính của AMQP là định hướng
message, hang đợi, định tuyến (bao gồm point-to –point va publishsubscrible) có độ tin cậy và bảo mật cao. Các hoạt động thực hiện
thông qua broker


2.2.3

HTTP (Hypertext Transfer Protocol)
HTTP - Hypertext Transfer Protocol (giao thức truyền dẫn siêu


văn bản), là giao thức để truyền dữ liệu giữa các máy tính qua www
(World Wide Web), với dữ liệu có thể là dạng text, file, ảnh, hoặc
video…
HTTP được thiết kế để trao đổi dữ liệu giữa Client và Server trên
nền TCP/IP, nó vận hành theo cơ chế yêu cầu/trả lời, stateless không lưu trữ trạng thái. Trình duyệt Web chính là Client, và một máy
chủ chứa Web Site là Server. Client sẽ kết nối tới Server, gởi dữ liệu
đến server bao gồm các thông tin header. Server nhận được thông
tin và căn cứ trên đó gởi phản hồi lại cho Client. Đồng thời đồng kết
nối.
So sánh về ưu điểm và nhược điểm các giao thức trên đưa ra
kết luận: Giao thức được sử dụng trong hệ thống là MQTT
2.3

Giao thức MQTT

2.3.1

Mô hình MQTT
Các thành phần chính của MQTT là clients, servers (=brokers),

sessions, subscriptions và topics
MQTT client (publisher, subscriber): Client thực hiện subscribe
đến topics để publish và receive các gói tin.
MQTT server (broker): Servers thực hiện run các topic, đồng
thời nhận subscriptions từ clients yêu cầu các topics, nhận các
messages từ clients và forward chúng.
Topic: Về mặt kỹ thuật, topics là các hàng đợi chứa message.
Về logic, topics cho phép clients trao đổi thông tin và dữ liệu.
Session: Một session được định nghĩa là kết nối từ client đến
server. Tất cả các giao tiếp giữa client và server đều là 1 phần của

session.
Subscription: Không giống như sessions, subscription về mặt
logic là kết nối từ client đến topic. Khi thực hiện subscribed đến
topic, client có thể trao đổi messages với topic. Subscriptions có thể
ở trạng thái ‘transient’ hoặc ‘durable’, phụ thuộc vào cờ clean
session trong gói Connect.
Message: Messages là các đơn vị dữ liệu được trao đổi giữa các
topic clients.

kk


Hình 2.2: Cách thức hoạt động của MQTT

2.3.2

Cấu trúc gói tin của MQTT

a) Định dạng của message
Tất cả các message luôn chứa phần cố định theo bảng 2.1


Bảng 2.1 : Phần cố định của message
Bit
7
6
5
4
3
2

1
0
Byte
Loại Message
Cờ DUP QoS level RETAIN
1
Byte
Độ dài còn lại
2
Byte 1 : Chứa loại Message và các cờ (DUP, QoS level, and RETAIN).
Byte 2 : (Ít nhất 1 byte) quy định độ dài còn lại.
Loại Message
Vị trí: byte 1, bits 7-4.
Một số 4-bit không dấu diễn tả các giá trị được miêu tả dưới
bảng 2.2

Bảng 2.2: Các loại message
Giá trị
thứ Tự
0
1
2
3
4
5

Từ gợi nhớ

Miêu tả


Reserved
CONNECT
CONNACK
PUBLISH
PUBACK
PUBREC

Chưa dùng
Client yêu cầu kết nối Server
Kết nối được chấp nhận
Xuất bản message
Xuất bản message được chấp nhận
Xuất bản đã được nhận (đảm bảo nhận
được part 1)
Xuất bản release (đảm bảo nhận được
part 2)
Xuất bản hoàn thành (đảm bảo nhận part
3)
Yêu cầu subcribe từ client
Yêu cầu subcribe được chấp nhận
Yêu cầu unsubcribe

6

PUBREL

7

PUBCOMP


8
9
10
11
12
13
14
15

SUBSCRIBE
SUBACK
UNSUBSCRIB
E
UNSUBACK
PINGREQ
PINGRESP
DISCONNECT
Reserved

Yêu cầu unsubcribe được chấp nhận
Request PING
Response PING
Client đang mất kết nối
Reserved

Bảng 2.3: Bảng chức năng các cờ
Vị trí bit
3
2-1


kk

Tên viết gọn
DUP
QoS

Miêu tả
Nhận lặp lại
Quality of Service (chất lượng dịch vụ)


0

2.2.3

RETAIN

Cờ RETAIN

Quy trình truyền nhận dữ liệu chính trong MQTT

a) CONNECT and SUBSCRIBE message sequence
Session và subscription được thiết lập với clean session flag = 1
(transient subscription)

Hình 2.3. Session và subscription được thiết lập với clean session flag = 1
Quy trình truyền nhận dữ liệu trong MQTT khi session flag = 1:
- Client và Server được kết nối qua giao thức TCP.
- Client gửi gói tin CONNECT yêu cầu kết nối đến Server, clean
session = 1. Đây là thời điểm đánh dấu session được thiết lập.

- Server gởi gói CONNACK xác nhận thiết lập kết nối thành công.
- Client thực hiện SUBSCRIBE đến topic XYZ. Đây là thời điểm bắt
đầu timeout của một subscription.
- Server gởi gói SUBACK xác nhận quá trình subscription.
- Client PUBLISH để gởi topic - message đến server.
- Sau khi nhận đủ thông tin, client gửi gói UNSUBSCRIBE topic XYZ để
kết thúc quá trình Subscribe.

- Server trả về gói UNSUBACK.


- Client gửi gói DISCONNECT để kết thúc session truyền thông.
b) PUBLISH message flows
Message được phân phối dựa trên best efforts của tầng mạng
TCP/IP bên dưới. Một response sẽ không được định nghĩa trong giao
thức. Các message đến server hoặc chỉ 1 lần hoặc không bao giờ.

Hình 2.4: QoS mức 0
QoS level 1: At least once delivery
Việc nhận được message bên phía server được xác nhận bởi
một message PUBACK. Nếu có lỗi do kết nối hoặc gửi đến device,
hoặc message xác nhận không nhận được sau một khoảng thời gian
nhất định, sender sẽ gửi lại message và set DUP bit trong phần
header của message header. Message đến server ít nhất 1 lần. Cả
message SUBSCRIBE và message UNSUBSCRIBE đều sử dụng QoS
level là 1.
Khi nhận được một message lặp lại từ phía client, server sẽ
publish các message đến các subscribers, và gửi một message
PUBACK khác.


Hình 2.5: QoS mức 1
kk


QoS level 2: Exactly once delivery
Một luồng được thêm vào luồng QoS level bằng 1 ở trên để đảm
bảo rằng message bị lặp lại không bị chuyển đến ứng dụng. Đây là
mức độ cao nhất khi khi phân phối message, không message lặp nào
được chấp nhận. Nhờ đó mà lưu lượng mạng sẽ tăng lên.
Nếu phát hiện lỗi, hoặc sau một khoảng thời gian nhất định,
luồng protocol sẽ được thực hiện lại từ kết quả của message xác
nhận cuối cùng; hoặc là PUBLISH , hoặc là PUBREL. Luồng protocol
đảm bảo rằng message đến các subscriber chỉ đúng 1 lần.

Hình 2.6. QoS mức 2


×