1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

BC giao thuc MQTT trong IOT

28 412 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 1,51 MB

Nội dung

Trongbối cảnh mà hàng ngày càng nhiều chủng loại thiết bị được kết nốivới nhau qua một mạng, sẽ là không thừa khi chúng ta trang bị chomình các kiến thức căn bản về hệ sinh thái Internet

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA: KỸ THUẬT ĐIỆN TỬ I

- -BÁO CÁO NGHIÊN CỨU KHOA HỌC

Đề tài: “Giao thức truyền tải MQTT trong IOT”

Gi ng viên h ả ướ ng d n: ẫ TS Nguy n Qu c Uy ễ ố

Sinh viên th c hi n: ự ệ Nguy n Huy Thông ễ

L p : ớ D14DT01

Trang 2

Mặc dù đã hoàn thiện sản phẩm cũng như báo cáo, tuy nhiên, do hạn chế về thờigian cũng như kiến thức của bản thân nên sản phẩm chưa thực sự tối ưu Em rất mongnhận được sự đóng góp từ quý thầy cô để có thêm kinh nghiệm trong việc nghiên cứu

và phát triển sản phẩm trong tương lai

Em xin chân thành cảm ơn

Hà Nôi, ngày 23 tháng 11 năm 2017

Sinh viên thực hiện

Nguyễn Huy Thông

Trang 3

MỤC LỤC

Trang 4

DANH MỤC HÌNH ẢNH

Trang 5

DANH MỤC BẢNG BIỂU

Trang 6

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

IoT Internet of Things

MQTT Message Queuing Telemetry

TransportRasPi3 Raspberry Pi 3

TCP Transmission Control Protocol Giao thức điều khiển truyền vận

Trang 7

LỜI MỞ ĐẦU

Trong khoảng 2 năm trở lại đây, chắc hẳn nhiều người đã không

ít lần nghe thoáng qua về khái niệm Internet of Things, hay bắt gặptin tức về các sản phẩm được quảng cáo là phục vụ cho nhu cầu

“smart home” (nhà thông minh) Trong đó, những thiết bị gia dụngnhư lò nướng hay tủ lạnh có thể "nói chuyện" được với nhau Trongbối cảnh mà hàng ngày càng nhiều chủng loại thiết bị được kết nốivới nhau qua một mạng, sẽ là không thừa khi chúng ta trang bị chomình các kiến thức căn bản về hệ sinh thái Internet of Things này.Một bối cảnh giả định điển hình sẽ diễn ra như sau: Khi chúng tabước gần về đến cửa nhà, cơ chế điều khiển tự động tích hợp trongchìa khóa (hay thậm chí là điện thoại, thẻ tín dụng, smartwatch) củachúng ta sẽ tự động mở cửa từ xa Khóa cửa sẽ gửi tín hiệu khôngdây đến hệ thống mạng nội bộ trong nhà, trước hết là khiến đèn cửa

và hàng lang được kích hoạt Hệ thống điều hòa, vốn đã chuyển sangtrạng thái chờ khi chúng ta rời đi, sẽ tiếp tục hoạt động trở lại Theomột số cài đặt sẵn, thậm chí máy pha cà phê sẽ có thể tự động đượckích hoạt để chuẩn bị sẵn 1 tách cà phê thơm phức ngay khi ta bướcchân vào phòng khách Mọi thiết bị trong một smart house sẽ giaotiếp và hoạt động một cách hài hòa, từ đó đưa chúng ta đến mộtđịnh nghĩa đơn giản nhất cho IoT: “Một hệ sinh thái IoT thực sự làmột thế giới trong đó mọi thiết bị đều có thể phối hợp được vớinhau”

Vậy cái gì đã làm nên giao thức giao tiếp đó, nguyên lý hoạt động các giao thức

mà IOT sử dụng là gì? Với mong muốn bước đầu tiếp cận với thế giới IoT,

em quyết định thực hiện đề tài: “Giao thức truyền tải MQTT trong IOT” Nội dung của đề tài bao gồm 3 chương:

Chương 1: Tổng quan về Internet of things.

Chương 2: Giao thức MQTT.

Chương 3: Ứng dụng của MQTT trong IOT

Trang 8

CHƯƠNG 1: TỔNG QUAN VỀ INTERNET OF THINGS1.1 Sự phát triển của IoT

Trong thời gian gần đây, cộng đồng những người nghiên cứu, đam mê tìm hiểu

về công nghệ thường hay nhắc tới IoT Tuy nhiên, chưa nhiều người thực sự hiểu vềkhái niệm này

Thực chất, biểu hiện của Internet of Things (IoT) đã xuất hiện ngay từ thời kỳ sơkhai của Internet, khi các nhà phát minh mong muốn kết nối tất cả mọi thứ qua mộtmạng lưới đồng nhất để có thể điều khiển chúng phục vụ cho mục đích của con người.Theo định nghĩa từ Wikipedia, Internet of Things (IoT) là một kịch bản của thếgiới, khi mà mỗi đồ vật, mỗi đồ vật, con người được cung cấp một định danh của riêngmì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 duynhấ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ớimá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

Gần đây, Internet of Things còn bao gồm cả những giao tiếp theo kiểu máy vớimáy (M2M), hạn chế sự tác động của con người nhưng chủ yếu được áp dụng trongsản xuất năng lượng hay các ngành công nghiệp nặng

Viễn cảnh tưởng chừng chỉ có trên phim ảnh này đã dần hiển hiện trên thực tế,với sự phát triển của Nhà thông minh, TV thông minh, tủ lạnh thông minh,… và cũngkhông thể không kể tới sự mở rộng không gian địa chỉ lên IPv6 thay vì IPv4 như trướcđây

Hình 1.1: Tổng quan về IoT

Nhiều chuyên gia công nghệ cũng như các kỹ sư đều dự đoán tương lai của IoT

sẽ rất phát triển từ nay cho tới năm 2020 với một kịch bản vô cùng khả thi:

Trang 9

• 4 tỷ người kết nối với nhau.

• 4 ngàn tỷ USD doanh thu

Trang 10

1.2 Phương thức kết nối thiết bị không dây

Với việc IoT trở nên phổ biến, làm sao mà có thể không tính đến khía cạnh an ninh như là một phần của cuộc cách mạng IoT toàn bộ Trong bối cảnh này, kiến thức

về IoT và các công nghệ truyền thông / các giao thức khác kết hợp với nó trở nên quantrọng Mark Walters, Phó Giám đốc Phát triển Chiến lược của ZigBee Alliance cho biết: “Các nhà lắp đặt bảo mật phải có một sự hiểu biết vững chắc về mạng, bảo mật mạng và dữ liệu, và mối quan ngại về sự riêng tư Ai nhận được thông tin gì, họ đang làm gì, và ai sở hữu và kiểm soát nó là những yếu tố rất quan trọng cần phải được tìm hiểu”.Ngay bây giờ, có một loạt các lựa chọn kết nối với các hệ khung IoT (IoT

Framework), mỗi một lựa chọn này đều quy định cụ thể một phạm vi truyền tải, tốc độ

dữ liệu, mức tiêu thụ năng lượng và mức độ bảo mật Một số trong số chúng được liệt

kê như sau

1.2.1 Bluetooth

Bluetooth là lý tưởng cho việc truyền dữ liệu tầm ngắn giữa các thiết bị hỗ trợ Bluetooth như điện thoại thông minh và máy tính xách tay Nó hoạt động trong băng tần 2.4GHz của phổ radio Phạm vi từ 1 đến 100 mét Tốc độ dữ liệu điển hình là 1 Mbps và tốc độ này có thể khác nhau tùy thuộc vào phiên bản Bluetooth được sử dụng.Với chuẩn Bluetooth năng lượng thấp (BLE), điện năng tiêu thụ giảm đáng kể Ngày càng có nhiều khách sạn và nhà ở sử dụng ổ khóa thông minh (smart lock) để đóng/mởcửa khi đọc được tín hiệu từ điện thoại thông minh có hỗ trợ BLE của người dùng

1.2.2 ZigBee và Z-Wave

Cả ZigBee và Z-Wave đều lý tưởng cho việc truyền dữ liệu với tốc độ thấp, và khả năng kết nối kiểu mạng lưới (mesh network) của chúng có thể mở rộng khoảng cách truyền nếu cần thiết Cả hai giao thức đều lý tưởng cho các mạng sử dụng trong gia đình, đang ngày càng trở nên phổ biến ở Hoa Kỳ

ZigBee hoạt động ở dải 2.4GHz Liên minh ZigBee (Zigbee Alliance) đã phát triển các công nghệ khác nhau, ví dụ như ZigBee PRO, ZigBee RF4CE và ZigBee IP

và gần đây đã kết hợp tất cả hồ sơ ứng dụng vào một giải pháp gọi là ZigBee 3.0 Wave sử dụng phần tần số 900MHz Các thiết bị bao gồm: cảm biến chuyển động, cảm

Z-biến cửa / cửa sổ và khóa cửa.

1.2.3 RFID

RFID hoạt động trong dải tần số 120kHz đến 2.45GHz, có tầm hoạt động từ 0.5đến 100 mét, và truyền dữ liệu từ 4 đến 424 kbps, tùy thuộc vào loại RFID được sử dụng Các ứng dụng công nghệ này đa dạng và tùy biến “RFID đã được sử dụng rộng rãi trong lĩnh vực nhận dạng tầm ngắn (công nghệ LF), ví dụ như trong điều khiển truycập, cho đến các ứng dụng UHF tầm xa (vài mét) mới nhất có khả năng xác định được

Trang 11

nhiều tập hợp của hàng ngàn vật thể trong vài giây” Andrea Azzoni, Quản lý Tiếp thị của Fluidmesh Networks

1.2.4 Wifi

Wi-Fi đã trở thành một công nghệ truyền dẫn không dây thống trị thị trường Tiêu chuẩn phổ biến nhất được sử dụng trong nhà ở và doanh nghiệp hiện nay là 802.11n, hoạt động trong dải tần 2.4GHz và 5GHz của phổ radio Tầm truyền dữ liệu khoảng 50 mét, và tốc độ dữ liệu thường là 150 đến 200 Mbps Mặc dù các tính năng này làm cho Wi-Fi thích hợp để chuyển các tập tin lớn nhưng chúng cũng tạo ra các sự

cố khác, ví dụ nhiễu và tiêu thụ điện năng lớn

1.2.5 MQTT

MQTT (Message Queuing Telemetry Transport) là một giao thức gởi dạng publish/subscribe sử dụng cho các thiết bị Internet of Things với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong mạng lưới không ổn đị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

Cụ thể với đề tài nghiên cứu khoa học , em sẽ đi sâu vào nghiên cứu với đề tài:

“Giao Thức truyền tải MQTT trong IOT” Với mục đích tìm hiểu và sử dụng nó để

nghiên cứu phát triển các mô hình IOT một cách dễ dàng hơn

Trang 12

CHƯƠNG 2: GIAO THỨC MQTT2.1 Tổng Quát

Ở chương này, em sẽ trình bày về giao thức MQTT, một giao thức được nhiều kỹ

sư khuyên dùng trong lĩnh vực IoT, đặc biệt trong việc điều khiển thiết bị và giám sát trạng thái cảm biến

Giao thức MQTT hoạt động theo cơ chế publish/subscribe, khác với cơ chế

request/response của một số giao thức như HTTP, CoAP,… Cơ chế publish/subscribe hoạt động dựa trên 3 yếu tố:

• Publisher: kết nối tới broker và gửi gói tin

• Subscriber: kết nối tới một broker tương tự, nhận bản tin mà thiết bị theo dõi

• Message Broker: bộ điều khiển trung tâm, luân chuyển bản tin giữa các thiết bịtrong hệ thống

Nội dung của bản tin được nhận biết bằng Topic do Publisher quy định Khi tiếnhành gửi bản tin, Publisher có quyền lựa chọn nội dung của bản tin có được giữ lại bởiserver hay không Nếu được giữ lại, mỗi Subscriber sẽ nhận được bản tin mới nhất khitheo dõi Topic của bản tin Bên cạnh đó, các Topic được sắp xếp theo cấu trúc cây.Dấu “/” được sử dụng để chia các Topic lớn thành các Topic nhỏ Khi theo dõi bản tin,Subscriber có thể theo dõi toàn bộ Topic lớn để nhận được bản tin từ những Topic nhỏ,hoặc chỉ theo dõi một vài Topic nhỏ để nhận những bản tin cần thiết

Ví dụ: trong một ngôi nhà có nhiều tầng và mỗi tầng có nhiều thiết bị thì ta cócác topic như sau:

Trang 13

Hình 2 1 Tổng quát về giao thức MQTT

2.2 Kiến trúc giao thức MQTT

Trang 14

tổ hợp tất cả các ứng dụng liên quan đến các chủ đề vào trong một lớp và đảm bảo sốliệu này được đóng gói thích hợp trước khi chuyển nó đến lớp kế tiếp TCP/IP khôngchỉ chứa các đặc tả về lớp Internet và lớp vận chuyển, như IP và TCP, mà còn đặc tảcho các ứng dụng phổ biến

2.3 Quản lý chất lượng dịch vụ

Có 3 mức độ quản lý chất lượng dịch vụ (Quality of Service – QoS: khả nănggiúp cho việc truyền dữ liệu với thời gian trễ tối thiểu và cung cấp băng thông chonhững ứng dụng truyền thông đa phương tiện thời gian thực) trong giao thức MQTT

2.3.1 Unacknowledged service (QoS 0)

Mức thấp nhất, bản tin được truyền ít nhất một lần tới Subscriber Bản tin sẽtruyền 1 lần tới subscriber Trong trường hợp không nhận được sẽ bị thất thoát thôngtin

Hình 2 2 Mô hình QoS 0

Ưu điểm tốn ít dữ liệu, do có nhược điểm nên thích hợp để gửi các dữ liệu từcảm biến có tính liên tục, thất thoát dữ liệu không quá ảnh hưởng đến hệ thống

2.3.2 Acknowledged service (QoS 1)

Mức thứ 2, mỗi thiết bị nhận sẽ xác nhận thông tin của bản tin được nhận Nếukhông có sự xác thực bản tin nào diễn ra, thông tin sẽ được gửi lại một lần nữa Điềunày sẽ đảm bảo gói tin được chuyển đi ít nhất một lần

Trang 15

Hình 2 3 Mô hình QOS 1

Việc nhận được message bên phía server được xác nhận bởi một messagePUBACK Nếu có lỗi do kết nối hoặc gửi đến device, hoặc message xác nhận khôngnhận được sau một khoảng thời gian nhất định, sender sẽ gửi lại message và set DUPbit 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 1 Khi nhậnđược một message lặp lại từ phía client, server sẽ publish các message đến cácsubscribers, và gửi một message PUBACK khác

Ở mức này thông tin được truyền đi có sự đảm bảo, nhưng nhược điểm là tốn

dữ liệu hơn mức thứ nhất thích hợp các dữ liệu có tần suất truyền tải ít

2.3.3 Assured service (QoS 2)

Mức cao nhất ,tại đây gói tin không chỉ được xác nhận, mà còn được gửi đi theo

2 bước Bước đầu tiên là truyền, nhận dữ liệu; bước tiếp theo là xác nhận gói tin Điềunày giúp đảm bảo rằng quá tin được gửi chính xác một lần tới Subscriber

Trang 16

Một luồng được thêm vào luồng QoS 1 ở trên để đảm bảo rằng message bị lặplạ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ếuphát hiện lỗi, hoặc sau một khoảng thời gian nhất định, luồng protocol sẽ được thựchiệ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.

Do có nhiều lần truyền và yêu cầu xác thực từ cả hai phía nên cách này tốn rấtnhiều dữ liệu và thời gian Nên sử dụng cho các thông tin có tính yêu cầu, ra lệnh vàkhông có tính lặp lại

Ở đây, nếu server nhận được message, các bên quan tâm nghĩa là các subscriberđến topic của message PUBLISH đó Nếu một subscriber nhận một message, thì cácbên quan tâm ám chỉ đến các ứng dụng bên phía client mà đã subcribe một hoặc nhiềutopics và đang đợi một message đến từ server

Nếu một server mà không xác nhận được một PUBLISH từ một client, thì nókhông có cách nào để thông bao đến client đó Vì thế nó phải đảm bảo một mức hiểubiết nhất định, tùy thuộc vào các rule QoS, client sẽ không được báo rằng việc xácthực message PUBLISH nó gửi đi

2.4 Mô tả gói tin

2.4.1 Connect

Sau khi Client kết nối với Server, gói tin đầu tiên được gửi đi từ Client tới Serverphải là gói tin Connect Một Client chỉ có thế gửi gói tin Connect một lần trong mạng

đã được khởi tạo

Bảng 2 2 Connect Packet Fixed Header

Trang 17

Bảng 2 3 Protocol Name

Nếu tên giao thức không được gửi đúng, Server sẽ bỏ qua bản tin và xử lý bản tintiếp theo

Bảng 2 4 Cờ trạng thái

Các bit cờ trạng thái cho phép bên Server nhận dạng gói tin, yêu cầu của gói tin

là như thế nào Ví dụ, nếu Username Flag được set lên 1, thì gói tin phải chứa thôngtin của người dùng, ngược lại nếu Username Flag bằng 0, gói tin sẽ không chứa thôngtin của người dùng

Nội dung của gói tin:

• Nhận dạng Client: mỗi Client kết nối tới Server có một ID riêng biệt ID phảiđược sử dụng bởi Client và Server để nhận dạng trạng thái của quá trình kết nốigiữa Client và Server trong một phiên “giao dịch” ClientID phải xuất hiệntrong gói tin CONNECT khi gửi từ Client tới Server ClientID là một chuỗiUTF-8 đã được mã hóa Server xử lý được ClientID có độ dài 1-23 bytes.ClientID chỉ được phép chứa các ký tự nhìn thấy được trong bảng mã ASCII

• Will Topic và Will Message là thành phần tiếp theo trong nội dung của gói tinConnect nếu cờ Will được set bằng 1

Trang 18

Bảng 2 5 Password

password có độ dài từ 0-65535 bytes, trong đó, 2 byte đầu cho phép nhận biết

độ dài của password được gửi tới

Phản hồi:

• Nếu Server không nhận được gói tin Connect trong một khoảng thời gian nhấtđịnh, Server sẽ ngắt kết nối tới Client

• Server phải chứng thực gói tin Connect sau khi nhận được

• Server sẽ kiểm tra gói tin Connect có thỏa mãn điều kiện kết nối không, sau đótrả lại tín hiệt ACK/NACK để Client biết liệu có thể kết nối tới Server haykhông

2.4.2 PUBLISH

Gói tin điều khiển Publish được gửi từ Client tới Server hoặc từ Server tới Client

để gửi bản tin

Header của gói tin Publish có dạng như sau:

Bảng 2 6 Header của gói tin Publish

Xử lý gói tin Publish: Client sử dụng gói tin Publish để gửi bản tin tới Server.Server cũng sử dụng gói tin Publish để gửi tin nhắn tới Client mà đang theo dõi Topicchứa tin nhắn Khi Client thực hiện đăng ký với bộ lọc Topic bao gồm các kí hiệu, nó

có thể cho 826 ID của Client chồng lên nhau để tin nhắn được công bố có thể phù hợpvới nhiều bộ lọc

Phản hồi trạng thái sau khi nhận được gói tin Publish

Ngày đăng: 21/05/2018, 21:34

TỪ KHÓA LIÊN QUAN

w