1. Trang chủ
  2. » Luận Văn - Báo Cáo

EE4266 Hệ thống iot, môn iot

35 30 0

Đ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

Tiêu đề Triển Khai Một Hệ Thống Cảm Biến Với Mục Đích: Đếm Số Lượng Lượt Khách Dừng Lại Xem Sản Phẩm Và Thời Gian Khách Lưu Lại Tại Sản Phẩm Đó
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Đo Và Tin Học Công Nghiệp
Thể loại Đề Tài
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 35
Dung lượng 2 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN ĐIỆN TỬ BỘ MÔN KỸ THUẬT ĐO VÀ TIN HỌC CÔNG NGHIỆP MẠNG VÀ CÁC GIAO THỨC TRONG IOT ĐỀ TÀI Triển khai một hệ thống cảm biến với mục đ.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG ĐIỆN - ĐIỆN TỬ

BỘ MÔN KỸ THUẬT ĐO VÀ TIN HỌC CÔNG NGHIỆP

*******************************

MẠNG VÀ CÁC GIAO THỨC TRONG IOT

ĐỀ TÀI: Triển khai một hệ thống cảm biến với mục đích: Đếm số lượng lượt khách dừng lại xem sản phẩm và thời gian khách lưu lại tại sản phẩm đó.

1

Trang 2

Hà Nội – 2022

Nội dung

1.1 Yêu cầu chung: 6

1.2 Yêu cầu cần đạt : 6

1.3 Các bước cần thực hiện: 7

3.1 Phân tích yêu cầu và đề xuất giải pháp 10

3.1.1 Node cảm biến: 10

1.2 MQTT Server 10

1.3 MQTT Client: 11

3.2 Kiến trúc của hệ thống 11

3.2.1 Mô hình Client-Sever 11

3.2.2 Sơ đồ khối kiến trúc hệ thống 13

3.2.3 Một số vấn đề, khái niệm liên quan 14

3.2.3.1 Giao thức MQTT 14

3.2.3.2 MQTT Server (Broker) 15

3.2.3.3 MQTT client 16

3.4.2.4 Bảo mật trong giao thức MQTT 16

3.3 Triển khai dự án 20

3.3.1 Node cảm biến 20

3.3.1.1 Cảm biến hồng ngoại thụ động PIR 20

3.3.1.2 ESP32 NodeMCU 21

3.3.1.3 Thiết kế node cảm biến: 23

3.3.1.4 Lập trình node cảm biến: 23

3.3.2 MQTT Server 23

3.3.2.1 Mosquitto 23

3.3.2.2 Cài đặt sử dụng và thiết lập bảo mật 24

3.3.3 MQTT Client 28

3.3.3.1 MIT APP INVENTOR 28

Phần 4: Đánh giá, kiểm tra 33

Phần 5: Kết luận 33

Phần 6: Tài liệu tham khảo 34

2

Trang 4

LỜI NÓI ĐẦU

Internet vạn vật (IoTs) đang phát triển với tốc độ nhanh chóng và ngày càng trởnên quan trọng đối mọi lĩnh vực Để khai thác một cách hiệu quả sức mạnh của IoT,chúng ta cần hiểu nó là gì, hoạt động như thế nào và làm cách nào để vận dụng IoTtrong các ứng dụng và mô hình kinh doanh Trong môn học Mạng và các giao thứcIoT, chúng em đã được học về cách thức hoạt động của IoTs, về các mạng IoTs vàcách mà các “things” kết nối trong mạng IoTs cũng như việc xử lý thông tin cục bộ và

từ xa (Cloud) Bên cạnh đó, chúng em được tìm hiểu về các kiểu kết nối, mô hìnhphân lớp của các mạng cũng như các giao thức và chuẩn trong IoTs

Và để ứng dụng những kiến thức được giảng dạy ở trên lớp, nhóm chúng em đãcùng nhau thực hiện Project do thầy giao “Thiết kế hệ thống chat thông qua mạngLAN (hoặc Internet)

4

Trang 5

Danh mục hình ảnh

5

Trang 6

Phần 1: Yêu cầu, mục tiêu, kết quả cần đạt

1.1 Yêu cầu chung:

Hình 1: Mô hình hệ thống

Cấu trúc hệ thống được thiết kế bao gồm:

 Các nút cảm biến PIR có kết nối Wifi

 Access point để gần các nút cảm biến

 Gateway để kết nối Internet

 MQTT server để nhận thông tin từ cảm biến và xử lý thông tin nếu cần thiết

 Các client là các App hoặc phần mềm trên PC để nhận thông báo sự kiện khi cómột khách đến và khi khách rời đi (ví dụ: sự kiện tại kệ số 1 có khách đến , tại

kệ số 3 khách rời đi….)

1.2 Yêu cầu cần đạt :

 Triển khai hệ thống được mô tả như trên

 Phần cảm biến có thể tích hợp các mô-đun, không nhất thiết phải làm PCB

 Lập trình nút cảm biến và MQTT server

 Hiển thị thông tin nhận được trên MQTT server để kiểm tra

 Client trên App hoặc Máy tính

6

Trang 7

 Lưu ý đến tính bảo mật thông tin khi truyền dữ liệu từ nút cảm biến đến MQTTserver

 Lưu ý về năng lượng tiêu thụ của các nút cảm biến

1.3 Các bước cần thực hiện:

 Phân tích yêu cầu

 Tìm các giải pháp liên quan

 Phân tích, đánh giá sơ bộ và lựa chọn giải pháp

 Thiết kế sơ đồ kiến trúc mô tả luồng thông tin của hệ thống (có thể sử dụng môhình TCP/IP, MQTT publisher/broker… để mô tả )

 Phân công nhiệm vụ cho các thành viên (cần phân công công liên quan đếnmạng cho tất cả các thành viên Ví dụ: nhóm làm nút cảm biến, nhóm làmMQTT server, Nhóm làm App…)

 Các nhóm triển khai Lưu ý mỗi thành phần trong hệ thống khi được thiết kếcần có kịch bản đánh giá riêng thành phần đó trước khi tích hợp thành hệthống

- Test thử một số tính năng cơ bảnpublish/subscribe

Trung - Tìm hiểu về hoạt động của PIR,

ESP32

- Publish lên test server trênmqtt.eclipseprojects.io

7

Trang 8

Phương - Tìm hiểu về MQTT Server &

MQTT Client

- Viết chương trình đơn giảnsubscribe 1 topic trên test server

2

Đức - Dịch địa chỉ Private IP sang

Public IP, test truyền nhận tin quaMQTT Server với public IP

- Tìm hiểu về phương thức bảomật của mosquitto

Trung - Test hoạt động của cảm biến

PIR, đo thời gian

Phương - Viết chương trình Client đơn

giản gửi nhận thông tin bằng MITApp Inventor

3&4

Đức - Tìm hiểu và thử nghiệm về bảo

mật TLS/SSL của mosquitto.Trung - Thử phương án sử dụng cảm

- Sửa lại giao diện hiển thị thêm

số lượng bản tin nhận được và nộidung mỗi bản tin

8

Trang 10

Phần 3: Phân tích, thiết kế3.1 Phân tích yêu cầu và đề xuất giải pháp.

3.1.1 Node cảm biến:

Yêu cầu:

- Node cảm biến sử dụng cảm biến PIR và kết nối với WiFi

- Node cảm biến đếm số lượng khách hàng dừng lại ở mỗi sản phẩm và thời gianmỗi khách hàng dừng lại ở mỗi sản phẩm đó

- Phải chú ý đến vấn đề năng lượng của node cảm biến (không bắt buộc tối ưunhưng phải tính toán được)

Đề xuất:

- Sử dụng ESP32 NodeMCU tích hợp sẵn Wifi và hỗ trợ trên Arduino IDE

- Cảm biến PIR để phát hiện có người và sử dụng timer để đo thời gian

- MCU ở chế độ deepsleep và sử dụng ngắt ngoài để wake up khi phát hiệnngười đến

- Đối với mỗi lượt dừng lại MCU sẽ gửi đi 1 bản tin => số lượt người là số bảntin được gửi đi

- Nội dung bản tin được gửi đi là thời gian dừng lại mỗi lượt

- MCU gửi dữ liệu qua gateway lên Internet

Trang 11

 Sử dụng Mosquitto - là một MQTT Broker mã nguồn mở Mosquitto có một thưviện viết bằng ngôn ngữ C để triển khai các MQTT Client và có thể dễ dàng sửdụng (libmosquitto)

 Dùng kỹ thuật NAT để dịch địa chỉ Private IP sang Public IP

 Hiển thị được số lượng người và thời gian người đó xem sản phẩm

3.2 Kiến trúc của hệ thống.

3.2.1 Mô hình Client-Sever.

Client-Server là mô hình mạng máy tính bao gồm 2 thành phần chính là máy khách(Client) và máy chủ (Server) Trong mô hình này, Server là nơi lưu trữ tài nguyên, càiđặt các chương trình dịch vụ và thực hiện các yêu cầu của Client Client đón vai trògửi yêu cầu đến Server Client gồm máy tính và thiết bị điện tử nói chung

11

Hình 2: Mô hình kết nối Client-Server

Trang 12

Trên thực tế thì một Server có thể được nối tới nhiều Server khác nhằm làm việc hiệuquả và nhanh hơn

Hoạt động: Khi nhận được 1 yêu cầu từ Client, Server này có thể gửi tiếp yêu cầu vừa

nhận được cho Server khác ví dụ như Database Server vì bản thân nó không thể xử lýyêu cầu này được Máy Server có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp

Ưu điểm của Client Server :

 Client Server có khả năng chống quá tải mạng

 Client Server đảm bảo toàn vẹn dữ liệu khi có sự cố xảy ra

Trang 13

Client Server đảm bảo toàn vẹn dữ liệu khi có sự cố xảy ra.

Ví dụ :

Web Server: Người dùng nhập địa chỉ Website => Client gửi yêu cầu đến Web

Server => Web Server gửi toàn bộ nội dung của Website về cho Client

Mail Server: Người dùng soạn mail => Client gửi đến mail Server => mail

Server tiếp nhận, lưu trữ, tìm kiếm địa chỉ email được gửi đến & gửi mail đi

File Server: File Server nhận tập tin từ phía Client, lưu trữ và truyền tập tin đi.

Người dùng có thể upload, download các tập tin lên Server qua giao thức FTPhay Web Browse

Nhược điểm của Client Server là gì ?

 Cần bảo trì, bảo dưỡng Server thường xuyên

 Khả năng bảo mật thông tin mạng là một hạn chế nữa của Client Server Bởi vì,nguyên lý hoạt động của Client Server là trao đổi dữ liệu giữa Server và Client

ở 2 khu vực địa lý khác nhau Trong quá trình trao đổi dữ liệu, khả năng thôngtin mạng bị lộ là điều dễ xảy ra Tuy nhiên trong đề tài của nhóm em khắc phụcnhược điểm bằng cách phía bên người nhận gửi bản tin đi, sẽ thêm bảo mậttheo RSA

3.2.2 Sơ đồ khối kiến trúc hệ thống

13

Trang 14

Hình 2 Sơ đồ khối kiến trúc hệ thống

14

Trang 15

Giao thức này hoạt động trên nền tảng TCP/IP MQTT được thiết kế cho các kết nốicho việc truyền tải dữ liệu cho các thiết bị ở xa, các thiết bị hay vi điều khiển nhỏ cótài nguyên hạn chế hoặc trong các ứng dụng có băng thông mạng bị hạn chế.

Ưu điểm của giao thức MQTT:

 Truyề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

 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, bảo mật

 Được sử dụng trong các ngành công nghiệp dầu khí, các công ty lớn nhưAmazon, 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à tốn ít băng thônghơn so với giao thức cũ

3.2.3.2 MQTT Server (Broker)

MQTT Broker hay máy chủ mô giới được coi như trung tâm, nó là điểm giao của tất

cả các kết nối đến từ Client (Publisher/Subscriber)

Nhiệm vụ chính của Broker là nhận thông điệp (message) từ Publisher, xếp vào hàngđợi rồi chuyển đến một địa điểm cụ thể Nhiệm vụ phụ của Broker là nó có thể đảmnhận thêm một vài tính năng liên quan tới quá trình truyền thông như: bảo mậtmessage, lưu trữ message, logs, …

15

Trang 16

Mô tả hoạt động của cơ chế Publish/SubscribeMQTT Broker được cung cấp dưới dạng mã nguồn mở hoặc các phiên bản thươngmại giúp người dùng có thể tự cài đặt và tạo broker riêng Ngoài ra ta cũng có thể sửdụng Broker trên điện toán đám mây với các nền tảng IOT như hive broker, amazon,

3.2.3.3 MQTT client

2 thành phần publisher và subscriber là đặc trưng tạo nên giao thức MQTT CácMQTT Client không kết nối trực tiếp với nhau, mọi gói dữ liệu được gửi đi đều thôngqua MQTT Broker

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 Mỗi client sẽ nhận được dữ liệu khi bất kỳ trạm nàokhá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"

3.4.2.4 Bảo mật trong giao thức MQTT

Khi nói đến Internet of Things là nói đến sự kết nối internet của mọi vật từ tivi, tủlạnh, điều hòa cho đến xe cộ, máy móc… Và với sự gia tăng chóng mặt của các thiết

bị và dữ liệu, sự an toàn của các hệ thống IoTs luôn là vấn đề lớn; lỗ hỗng bảo mật củacác hệ thống thông minh hiện nay rất nhiều, tạo điều kiện cho tin tặc dễ dàng tấn công

và khai thác Vì vậy bảo mật cho Internet of Things là vấn đề cần quan tâm hàng đầu.Bài viết này sẽ giới thiệu về các nguyên tắc bảo mật dùng trong một hệ thống IoTsnói chung và giao thức MQTT nói riêng

16

Trang 17

Bảo mật trong MQTT được chia thành nhiều lớp Mỗi lớp có tác dụng ngăn ngừacác kiểu tấn công khác nhau Giao thức MQTT được tạo ra với mục đích là cung cấpgiao thức truyền thông thực sự nhẹ và dễ sử dụng cho các ứng dụng Internet ofThings, vì vậy bản thân giao thức chỉ cung cấp một vài cơ chế bảo mật đơn giản.Nhưng khi triển khai một dự án thực tế đòi hỏi sự an toàn dữ liệu cao, thì các tiêuchuẩn bảo mật hiện đại khác sẽ được sử dụng Thông thường có 3 lớp bảo mật được

sử dụng:

Lớp mạng (Network layer): Sử dụng một mạng bảo mật vật lý hoặc công nghệ

VPN (virtual private network) làm nền tảng cho quá trình giao tiếp giữa cácClient và Broker nhằm cung cấp một kết nối an toàn và đáng tin cậy

Lớp giao vận (Transport layer): Với mục đích cung cấp tính bảo mật ở lớp này,

TLS/SSL đang được sử dụng rộng rãi để mã hóa dữ liệu Giao thức bảo mậtnày cung cấp sự an toàn cho dữ liệu nhằm đảm bảo không ai có thể đọc trộmnội dung trong quá trình truyền tin ngoài client và server, ngoài ra giao thứccòn sử dụng các chứng chỉ xác thực số nhằm xác thực thông tin ở cả hai phíaclient và server

Lớp ứng dụng (Application layer): Nếu ở lớp giao vận có thể đảm bảo rằng

thông tin liên lạc giữa Client và Server được mã hóa và có thể xác thực thôngtin lẫn nhau thì ở lớp ứng dụng giao thức MQTT cung cấp hình thức bảo mật

đó là sử dụng định danh máy khách (Client identifier) và thông tin đăng nhậpusername/password Việc triển khai các thuộc tính bảo mật này nhằm kiểm soátquyền truy cập của các client nằm trong quyền hạn của MQTT broker Ngay cảkhi không có mã hóa tầng giao vận, thì bảo mật lớp ứng dụng vẫn có khả nănggiúp cho thông tin truyền đi được bảo mật bằng cách sử dụng cơ chết mã hóanội dung gói tin (payload encryption)

Đối với quy mô và mục đích của dự án này ta chỉ tìm hiểu vào vấn đề bảo mật ở hailớp sau

Bảo mật lớp ứng dụng (Application Layer Sercurity)

a, Xác thực với User và Password:

Xác thực (authentication) là một phần của cơ chế bảo mật ở tầng giao vận và tầngứng dụng được sử dụng trong giao thức MQTT, là hành động nhằm xác nhận sự thậthay nguồn gốc của một thuộc tính của một đơn vị dữ liệu hoặc một thực thể nào

đó Khi nói đến xác thực trong giao thức MQTT, bản thân giao thức cung cấp cáctrường username (tên người dùng) và password (mật khẩu) trong gói tin CONNECT

từ client gửi đến broker Nghĩa là một client có khả năng gửi một username vàpassword khi kết nối đến MQTT broker

17

Trang 18

CONNECT MessageTrường username là một chuỗi có định dạng UTF-8 và trường password là dữ liệunhị phân với kích thước tối đa là 65535 bytes Sự bất cập trong phiên bản MQTT v3.1

là sử dụng mật khẩu với 12 ký tự đã được bãi bỏ ở phiên bản MQTT v3.1.1 Ngoài raphiên bản này cũng định nghĩa rằng: một client có thể có username mà không cầnpassword nhưng không thể tồn tại trạng thái ngược lại Khi sử dụng xác thực bằng tênngười dùng và mật khẩu, MQTT broker sẽ đánh giá thông tin client dựa trên cơ chếxác thực đã được triễn khai và gửi trả về gói tin phản hồi gọi là CONNACK, trong đó

bao gồm một mã trạng thái gọi là return code.

CONNACK MessageCác mã trạng thái được sử dụng để phản hồi về client đối với xác thựcbằng username / password là:

18

Trang 19

b Xác thực với Client Identifier:

Mỗi MQTT client đều có một mã nhận dạng duy nhất được gọi là client identifier.Tương tự như Username/Password, mã nhận dạng này cũng được cung cấp bởi clientkhi gửi một gói tin CONNECT đến broker, được cung cấp trong trường clientid Giátrị của trường có thể chứa tối đa 65535 ký tự, trường hợp thường được sử dụng trongthực tế để thể hiện giá trị của trường clientid là sử dụng chuẩn UUID gồm 36 ký tự đểtạo ra các giá trị random không trùng nhau hoặc sử dụng địa chỉ MAC của thiết bị Vàtrong gói tin phản hồi kết nối CONNACK, cũng sẽ bao gồm mã trạng thái, tất cả cáctrạng thái trả về được cho trong bảng sau:

Trong quá trình xác thực, mã nhận dạng của client thường được sử dụng để xác thựcbên cạnh tên người dùng và mật khẩu Mặc dù không phải là cách thức bảo mật tốt khi

sử dụng trong thực tiễn tuy nhiên đối với các hệ thống khép kín và ít thiết bị thì loạixác thực này cũng đủ để chúng ta cân nhắc sử dụng

Bảo mật lớp giao vận (Transport Layer Sercurity)

Trang 20

Mosquitto, HiveMQ đều cho phép sử dụng TLS Port 8883 được chuẩn hóa để sửdụng cho kết nối MQTT có bảo mật Tên được đặt theo tổ chức IANA là “secure-mqtt” và port 8883 được dành riêng cho giao thức MQTT sử dụng TLS Tuy nhiên, dễđoán rằng có một nhược điểm khi sử dụng TLS cho giao thức MQTT đó là tăng tínhbảo mật đồng nghĩa với tiêu tốn năng lượng cho CPU nhiều hơn và quá trình giao tiếp

sẽ không mượt mà như mọi khi Mặc dù so với TCP thông thường, việc sử dụng CPUdành cho giao thức bảo mật TLS nhiều hơn không đáng kể nhưng đối với các thiết bịđược thiết kế dành cho một nhiệm vụ chuyên sâu nào đó rất hạn chế về tốc độ, bộnhớ hay băng thông kênh truyền thì đó là một vấn đề lớn Vì vậy kỹ thuật SessionResump thường được sử dụng để tăng hiệu suất khi sử dụng TLS, đây là một kỹ thuậtdùng để nối lại phiên làm việc cũ mà không cần bắt đầu lại tất cả các bước

“handshake”

3.3 Triển khai dự án

3.3.1 Node cảm biến

3.3.1.1 Cảm biến hồng ngoại thụ động PIR

Cảm Biến Thân Nhiệt Chuyển Động PIR SR505:

20

Ngày đăng: 21/09/2022, 11:58

HÌNH ẢNH LIÊN QUAN

Hình 1: Mơ hình hệ thống - EE4266 Hệ thống iot, môn iot
Hình 1 Mơ hình hệ thống (Trang 6)
Bảng 1: Tiến độ hoàn thành theo từng tuần - EE4266 Hệ thống iot, môn iot
Bảng 1 Tiến độ hoàn thành theo từng tuần (Trang 7)
 Client Server cho phép tích hợp các kỹ thuật hiện đại như GIS, mơ hình thiết kế hướng đối tượng, … - EE4266 Hệ thống iot, môn iot
lient Server cho phép tích hợp các kỹ thuật hiện đại như GIS, mơ hình thiết kế hướng đối tượng, … (Trang 12)
Hình 2 Sơ đồ khối kiến trúc hệ thống - EE4266 Hệ thống iot, môn iot
Hình 2 Sơ đồ khối kiến trúc hệ thống (Trang 14)
 Góc quét: Max 100 độ (hình nón có tâm là cảm biến)  Khoảng cách bắt: 3 meters - EE4266 Hệ thống iot, môn iot
c quét: Max 100 độ (hình nón có tâm là cảm biến)  Khoảng cách bắt: 3 meters (Trang 21)
Để cấu hình user/password cho MQTT Broker ta chỉnh sửa file config test.conf như sau: - EE4266 Hệ thống iot, môn iot
c ấu hình user/password cho MQTT Broker ta chỉnh sửa file config test.conf như sau: (Trang 27)

TỪ KHÓA LIÊN QUAN

w