Giao thức MQTT

Một phần của tài liệu Nghiên cứu, chế tạo hệ thống giám sát và thu thập dữ liệu trên ô tô đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 41)

2.7.1. Khái niệm MQTT

Trong tập giao thức TCP/IP hiện nay có rất nhiều giao thức trên lớp ứng dụng (Application layer), mỗi giao thức trên lớp ứng dụng đều có một mục đích sử dụng riêng. Nếu như HTTP là giao thức truyền nhận siêu văn bản thường dùng trong các ứng dụng web, FTP là giao thức truyền nhận tập tin,… thì MQTT là một giao thức truyền tin theo tiêu chuẩn OASIS cho Internet of Things (IoT). MQTT được thiết kế như một phương tiện truyền tải tin nhắn cực kỳ nhẹ, lý tưởng để kết nối các thiết bị từ xa trong hệ thống IoT.

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ị IOT 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 machine to machine. MQTT cũng là giao thức sử dụng trong Facebook và Messager [12].

Để giao thức này hoạt động được, cần có một thành phần trung tâm gọi là Broker và các thiết bị/ứng dụng khách còn được gọi là các Client, các Client sẽ kết nối đến Broker. Broker và Client sẽ “nói chuyện” với nhau thông qua các gói tin MQTT được xây dựng dựa theo chuẩn OASIS. Tiêu chuẩn này còn định nghĩa các mức quality of service để đảm bảo độ tin cậy khi truyền nhận gói tin, các kịch bản always connected (luôn giữ kết nối) hoặc sometimes connected (thỉnh thoảng kết nối); khả năng mở rộng để hỗ trợ kết nối số lượng lớn thiết bị… Các phiên bản MQTT:  MQTT v3.1  MQTT v3.1.1  MQTT v5  MQTT-SN v1.2

33

2.7.2. Cấu trúc của MQTT

Giao thức MQTT có cấu trúc theo mô hình Publish/Subscribe giúp truyền tải dữ liệu giữa các thiết bị, ứng dụng với nhau. Dữ liệu trong giao thức này là một chuỗi nhị phân (binary) chứ không phải chuỗi văn bản (text string), được định dạng theo gói tin command hoặc gói tin command acknowledgement.

Cấu trúc của MQTT gồm 3 thành phần chính:

 MQTT Broker: Được cung cấp dưới dạng mã nguồn mở hoặc các phiên bản thương

mại, có thể đi kèm với các dịch vụ điện toán đám mây. Công việc của Broker là lọc các tin nhắn dựa trên topic, sau đó phân phối các tin nhắn đến các thiết bị/ứng dụng đã đăng ký topic đó. Có thể tham khảo một số MQTT Broker như: HiveMQ , Mosquitto, MQTTRoute, Jmqtt,…

 MQTT Client: Là các thiết bị/ứng dụng Client kết nối đến Broker để thực hiện

truyền nhận dữ liệu. Hiện nay có rất nhiều mã nguồn mở MQTT Client được viết dưới nhiều ngôn ngữ khác nhau như HiveMQ MQTT Client được phát triển dựa trên ngôn ngữ Java, Eclipse Paho dựa trên C/C++, Python, …

 Topic: Mỗi MQTT Client thực hiện truyền/nhận dữ liệu với nhau thông qua các

Topic được quản lý bởi Broker. Một Client đăng ký nhận dữ liệu được gọi là một Subcriber còn một Client gửi dữ liệu đi được gọi là một Publisher. Để nhận dữ liệu từ Publisher, đầu tiên Subcriber phải subscribe (đăng ký theo dõi) đến một Topic, sau đó bất cứ Client nào publish dữ liệu đến đúng Topic, thì Broker sẽ lọc và chuyển tiếp gói tin đến đúng Subscriber đó. Một Client có thể subscribe hoặc publish đến nhiều Topic khác nhau.

34

2.7.3. Ưu điểm của MQTT

 Chuyển thông tin hiệu quả hơn.

 Tăng khả năng mở rộng.

 Giảm đáng kể tiêu thụ băng thông mạng.

 Giảm tốc độ cập nhật xuống giây.

 Rất phù hợp cho điều khiển và do thám.

 Tối đa hóa băng thông có sẵn.

 Chi phí thấp.

 Rất an toàn với bảo mật dựa trên sự cho phép.

 Được ứng dụng nhiều trong ngành công nghiệp dầu khí và các tập đoàn lớn như

Amazon hay Facebook.

 Tiết kiệm thời gian phát triển.

 Giao thức publish/subscribe thu thập nhiều dữ liệu hơn với ít băng thông hơn so với

giao thức cũ.

2.7.4. Một số khái niệm cơ bản trong MQTT

MQTT thực chất là gì? Để có cái nhìn toàn diện và chi tiết nhất về MQTT thì có lẽ phải mất rất nhiều thời gian và công sức để tìm hiểu về nó. Trong khuôn khổ đồ án tốt nghiệp này, nhóm chúng em xin được trình bày một cách ngắn gọn và cơ bản nhất, đủ để hiểu về giao thức MQTT, bao gồm các định nghĩa: "subscribe", "publish", "qos", "retain", "last will and testament (LWT)".

Publish, subscribe

Trong một hệ thống sử dụng giao thức MQTT, nhiều node trạm (gọi là mqtt client - gọi tắt là client) kết nối tới một MQTT Server (gọi là Broker). Mỗi client sẽ đăng ký một vài kênh (topic), ví dụ như "/client1/channel1", "/client1/channel2". Quá trình đăng ký này gọi là "subscribe", giống như chúng ta đăng ký nhận tin trên một kênh Youtube vậy. Mỗi Client sẽ nhận được dữ liệu khi bất kỳ trạm nào khác gởi dữ liệu vào kênh đã đăng ký. Khi một Client gởi dữ liệu tới kênh đó, gọi là "publish".

QoS

Ở đây có 3 tuỳ chọn QoS (Qualities of service) khi "publish" và "subscribe":

 QoS0: Broker/Client sẽ gởi dữ liệu đúng 1 lần, quá trình gởi được xác nhận bởi chỉ

35

 QoS1: Broker/Client sẽ gởi dữ liệu với ít nhất 1 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.

 QoS2: Broker/Client đảm bảm khi gởi dữ liệu thì phía nhận chỉ nhận được đúng 1

lần, quá trình này phải trải qua 4 bước bắt tay.

Một gói tin có thể được gởi ở bất kỳ QoS nào, và các Client cũng có thể subscribe với bất kỳ yêu cầu QoS nào. Có nghĩa là Client sẽ lựa chọn QoS tối đa mà nó có để nhận tin. Ví dụ, nếu 1 gói dữ liệu được publish với QoS2, và Client subscribe với QoS0, thì gói dữ liệu được nhận về Client này sẽ được broker gởi với QoS0, và 1 Client khác đăng ký cùng kênh này với QoS 2, thì nó sẽ được Broker gởi dữ liệu với QoS2.

Một ví dụ khác, nếu 1 Client subscribe với QoS2 và gói dữ liệu gởi vào kênh đó publish với QoS0 thì Client đó sẽ được Broker gởi dữ liệu với QoS0. QoS càng cao thì càng đáng tin cậy, đồng thời độ trễ và băng thông đòi hỏi cũng cao hơn.

Retain

Nếu RETAIN được set bằng 1, khi gói tin được publish từ Client, Broker PHẢI lưu trữ lại gói tin với QoS, và nó sẽ được gởi đến bất kỳ Client nào subscribe cùng kênh trong tương lai. Khi một Client kết nối tới Broker và subscribe, nó sẽ nhận được gói tin cuối cùng có RETAIN = 1 với bất kỳ topic nào mà nó đăng ký trùng. Tuy nhiên, nếu Broker nhận được gói tin mà có QoS = 0 và RETAIN = 1, nó sẽ huỷ tất cả các gói tin có RETAIN = 1 trước đó. Và phải lưu gói tin này lại, nhưng hoàn toàn có thể huỷ bất kỳ lúc nào.

Khi publish một gói dữ liệu đến Client, Broker phải set RETAIN = 1 nếu gói được gởi như là kết quả của việc subscribe mới của Client (giống như tin nhắn ACK báo subscribe thành công). RETAIN phải bằng 0 nếu không quan tâm tới kết quả của việc subscribe.

LWT

Gói tin LWT (last will and testament) không thực sự biết được Client có trực tuyến hay không, cái này do gói tin KeepAlive đảm nhận. Tuy nhiên gói tin LWT như là thông tin điều gì sẽ xảy đến sau khi thiết bị ngoại tuyến.

Ví dụ: chúng ta có 1 cảm biến, nó gởi những dữ liệu quan trọng và rất không thường xuyên. Nó có đăng ký trước với Broker một tin nhắn lwt ở topic /node/gone-offline với tin nhắn id của nó. Và ta cũng đăng ký theo dõi topic /node/gone-offline, sẽ gởi SMS tới điện thoại mỗi khi nhận được tin nhắn nào ở kênh mà ta theo dõi. Trong quá trình hoạt động, cảm biến luôn giữ kết nối với Broker bởi việc luôn gởi gói tin keepAlive. Nhưng nếu vì lý do gì

36 đó, cảm biến này chuyển sang ngoại tuyến, kết nối tới Broker timeout do Broker không còn nhận được gói keepAlive. Lúc này, do cảm biến của ta đã đăng ký LWT, do vậy broker sẽ đóng kết nối của Cảm biến, đồng thời sẽ publish một gói tin là Id của cảm biến vào

kênh /node/gone-offline, dĩ nhiên là ta cũng sẽ nhận được tin nhắn báo cái cảm biến yêu quý

của mình đã ngoại tuyến.

Ngoài việc đóng kết nối của Client đã ngoại tuyến, gói tin LWT có thể được định nghĩa trước và được gởi bởi Broker tới kênh nào đó khi thiết bị đăng ký LWT ngoại tuyến.

2.8. Internet of Thing (IoT) 2.8.1. Khái niệm IoT 2.8.1. Khái niệm IoT

Internet of Thing (hoặc Internet Vạn Vật, hoặc Mạng lưới vạn vật kết nối Internet, hoặc Mạng lưới thiết bị kết nối) là một liên mạng, trong đó các thiết bị, phương tiện vận tải (được gọi là "thiết bị kết nối" và "thiết bị thông minh"), phòng ốc và các trang thiết bị khác được nhúng với các bộ phận điện tử, phần mềm, cảm biến, cơ cấu chấp hành cùng với khả năng kết nối mạng máy tính giúp cho các thiết bị này có thể thu thập và truyền tải dữ liệu [13]

IoT là một kịch bản của thế giới, khi mà mỗi đồ vật, con người đượ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 đó.

2.8.2. Ứng dụng của IoT

IoT có ứng dụng rộng vô cùng, có thể kể ra một số thứ như sau:

 Quản lý chất thải

 Quản lý và lập kế hoạch quản lý đô thị

 Quản lý môi trường

 Phản hồi trong các tình huống khẩn cấp

 Mua sắm thông minh

 Quản lý các thiết bị cá nhân

 Đồng hồ đo thông minh

37 Những lợi ích mà IoT đem lại được dàn trải hầu hết đến các tất cả các lĩnh vực trong đời sống, kinh doanh,… Dưới đây trình bày ngắn gọn một số tính năng hữu ích và có tầm ảnh hưởng quan trọng của IoT:

 Cải thiện việc gắn kết khách hàng: Hệ thống IoT giúp phân tích các điểm mù hiện

tại, tìm ra những sai sót về độ chính xác. IoT thay đổi điều này để mang lại nhiều sự gắn kết hơn và hiệu quả hơn với người dùng. Một ứng dụng tại các cửa hàng, dịch vụ iBeacon giúp tăng số lượng sản phẩm tới người tiêu dùng bằng cách chỉ dẫn người dùng tới khu vực cụ thể trong cửa hàng và đưa ra các gợi ý về sản phẩm. Chúng cung cấp các thông tin chi tiết, các đánh giá về sản phẩm,… Bên cạnh đó chúng cũng có khả năng cho phép người dùng chia sẻ các sản phẩm qua mạng xã hội.

 Tối ưu hóa công nghệ:giúp nâng cao trải nghiệm của khách hàng cũng như cải thiện

việc sử dụng thiết bị và hỗ trợ cải tiến công nghệ.

 Giảm sự hao phí:IoT giúp việc quản lí tài nguyên ở các lĩnh vực được cải thiện 1

cách rõ ràng. Các phân tích hiện tại thường cung cấp cho chúng ta cái nhìn ở khía cạnh bên ngoài, trong khi IoT cung cấp các dữ liêu, thông tin thực tế để quản lí tài nguyên một cách hiệu quả hơn.

 Tăng cường việc thu thập dữ liệu: Thông thường, việc thu thập dữ liệu bị hạn chế

do thiết kế hệ thống mang tính thụ động. IoT phá vỡ sự ràng buộc, giới hạn của thiết kế và tạo ra 1 hình ảnh chính xác của tất cả mọi thứ.

2.8.3. Các mô hình IoT ứng dụng trên xe ô tô

Mặc dù thực tế là thị trường IoT ô tô chỉ mới nổi lên, xong thị trường này có giá trị ước tính lên đến 82,79 tỷ đô la vào năm 2022. Nhu cầu về các công nghệ xe hơi được kết nối đang tăng lên một cách nhanh chóng. Giải pháp IoT ô tô cung cấp một cách đơn giản và giá cả phải chăng để nâng cấp bất kỳ chiếc xe nào. Một số lợi ích mà các ứng dụng đó cung cấp cho người dùng bao gồm:

 Giám sát xe thời gian thực và phòng ngừa sự cố.

 Tăng tính an toàn và hiệu quả của xe.

 Tăng cường khả năng chế tạo của xe bằng các công cụ của bên thứ ba.

Có nhiều cách ứng dụng ô tô có thể tăng cấp cho chiếc xe của bạn. Các ví dụ hiện có trong cửa hàng ứng dụng có xu hướng tập trung vào các tính năng như GPS và điều hướng, an toàn, bảo dưỡng xe, tiêu thụ nhiên liệu và ghi nhật ký số dặm, điều khiển bằng giọng

38 nói và cử chỉ và truy cập đa phương tiện. Dưới đây trình bày một số ứng dụng của IoT trên ô tô đã và đang mang lại những hiệu quả thiết thực đối với ngành công nghiệp ô tô.

2.8.3.1. Ứng dụng Dash

Dash là một ứng dụng quản lý hành trình xe và giúp hiển thị các thông số cơ bản của xe trên điện thoại thông minh. Với các tính năng chính như: Nhật ký chuyến đi chi tiết, giám sát và chẩn đoán xe theo thời gian thực, khả năng xác định vị trí các trạm xăng và cửa hàng sửa chữa rẻ nhất gần đó, ước tính và lên lịch sửa chữa xe và đề xuất lái xe [14].

 Liên kết: Web, App Store, Google Play

 Loại sản phẩm: IoT, ứng dụng bảo trì ô tô

 Phần cứng: sử dụng một số thiết bị OBD hỗ trợ WiFi và Bluetooth của bên thứ ba

được hỗ trợ.

 Nền tảng mục tiêu: iOS và Android.

 Tích hợp của bên thứ ba: Tích hợp với các ứng dụng khác.

 Mô hình kiếm tiền từ ứng dụng: API độc quyền, Khung gầm, có thể được truy cập

bởi các doanh nghiệp bên thứ ba để xây dựng bảo hiểm, quản lý đội tàu và các giải pháp sau thị trường.

Hình 2.23. Giao diện ứng dụng Dash trên điện thoại thông minh

2.8.3.2. Hệ thống ADAS trên các dòng xe cao cấp

Advanced Driver Assistance Systems (ADAS), hay còn gọi là “Hệ thống hỗ trợ lái xe tiên tiến”, là hệ thống điện tử giúp người điều khiển phương tiện lái xe an toàn và thuận tiện hơn. Không đơn giản chỉ là hệ thống camera giám sát, ADAS là hệ thống bao gồm nhiều loại cảm biến, các tính năng xử lý thông tin cảm biến, phát hiện và theo dõi người đi

39 bộ và xe cộ, phân tích hành vi tài xế,… nhằm đưa ra các cảnh báo phù hợp giúp người điều khiển phương tiện tập trung chú ý và lái xe an toàn hơn [15].

Năm 2016, Cục Quản lý An toàn giao thông Đường cao tốc Quốc gia (NHTSA) đã thông qua các mô tả về chức năng lái xe tự động, được phát triển bởi Hiệp hội Kỹ sư Ô tô (SAE) International, gồm năm cấp công nghệ ADAS. Nó dựa trên “ai làm gì, khi nào”.

 Cấp độ 0 - Người lái xe làm mọi thứ.

 Cấp độ 1 - Hệ thống tự động trên xe đôi khi có thể hỗ trợ người lái thực hiện một số

phần của nhiệm vụ lái xe.

 Cấp độ 2 - Hệ thống tự động trên xe thực sự có thể thực hiện một số phần của nhiệm

vụ lái xe, trong khi con người tiếp tục theo dõi môi trường lái xe và thực hiện phần còn lại của các nhiệm vụ lái xe.

 Cấp độ 3 - (Các) hệ thống tự động có thể thực hiện một số phần của nhiệm vụ lái xe

và giám sát môi trường lái xe trong một số trường hợp, nhưng người lái xe phải sẵn sàng lấy lại quyền kiểm soát khi hệ thống tự động yêu cầu.

 Cấp độ 4 - Hệ thống tự động có thể thực hiện nhiệm vụ lái xe và giám sát môi trường

lái xe, và con người không cần lấy lại quyền kiểm soát, nhưng hệ thống tự động chỉ có thể

Một phần của tài liệu Nghiên cứu, chế tạo hệ thống giám sát và thu thập dữ liệu trên ô tô đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 41)

Tải bản đầy đủ (PDF)

(97 trang)