Thiết Kế Hệ Thống IoT Cảnh Báo Cháy Nổ Trên Hạ Tầng Amazon Cloud Services

Đồ án tốt nghiệp trình bày thiết kế hệ thống IoT cảnh báo cháy nổ trên hạ tầng Amazon Cloud Services, ứng dụng công nghệ hiện đại.

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2024

128
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

TÓM TẮT

1. GIỚI THIỆU ĐỀ TÀI

1.1. Đặt vấn đề

1.2. Tính cấp thiết của đề tài

1.3. MỤC TIÊU ĐỀ TÀI

2. TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU

2.1. Tình hình nghiên cứu trong nước

2.2. Tình hình nghiên cứu ngoài nước

3. PHƯƠNG PHÁP NGHIÊN CỨU

4. BỐ CỤC ĐỀ TÀI

4.1. TỔNG QUAN VỀ NODEJS

4.1.1. Giới thiệu về NodeJS

4.1.2. Ưu nhược điểm của NodeJS

4.2. TỔNG QUAN VỀ NODEJS FRAMEWORK EXPRESS

4.2.1. Giới thiệu về ExpressJS

4.2.2. Ưu nhược điểm của ExpressJS

4.3. TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB

4.3.1. Giới thiệu về MongoDB

4.3.2. Cách thức hoạt động của MongoDB

4.3.3. Ưu nhược điểm của MongoDB

4.4. TỔNG QUAN VỀ REACT NATIVE VÀ EXPO

4.4.1. Giới thiệu về React Native và Expo

4.4.2. Những ưu nhược điểm của React Native và Expo

4.5. TỔNG QUAN VỀ FIREBASE CLOUD MESSAGING

4.6. TỔNG QUAN VỀ JWT - JSONWEBTOKEN

4.7. TỔNG QUAN VỀ DOCKER

4.7.1. Giới thiệu về Docker

4.7.2. Ưu nhược điểm của Docker

4.8. TỔNG QUAN VỀ KUBERNETES

4.8.1. Các thành phần chính của Kubernetes

4.8.2. Ưu và nhược điểm của Kubernetes

4.9. TỔNG QUAN VỀ AMAZON WEB SERVICE

4.9.1. Giới thiệu về AWS

4.9.2. Điểm mạnh của AWS

4.9.3. Nhược điểm của AWS

4.10. TỔNG QUAN VỀ TERRAFORM

4.10.1. Giới thiệu về Terraform

4.10.2. Ưu nhược điểm của Terraform

5. THIẾT KẾ HỆ THỐNG

5.1. YÊU CẦU HỆ THỐNG

5.2. ĐẶC TẢ HỆ THỐNG

5.2.1. Mô hình tổng quát của hệ thống

5.2.2. Sơ đồ khối hệ thống

5.3. THIẾT KẾ PHẦN MỀM

5.3.1. Thiết kế kiến trúc hệ thống máy chủ

5.3.2. Hệ thống mô phỏng cảm biến triển khai bằng AWS

5.3.3. Thiết kế chức năng hệ thống

5.3.4. Thiết kế cơ sở dữ liệu

5.3.5. Thiết kế giao diện ứng dụng

5.4. THIẾT KẾ KIẾN TRÚC CƠ SỞ HẠ TẦNG

5.4.1. Xây dựng ứng dụng Docker chạy trên môi trường Kubernetes

5.4.2. Triển khai lên môi trường Kubernetes

5.4.3. Xây dựng tài nguyên cơ sở hạ tầng Amazon Web Services

5.4.4. Thiết kế tự động hóa quy trình phát triển phần mềm

6. KẾT QUẢ THỰC HIỆN

6.1. KẾT QUẢ MÔ PHỎNG CẢM BIẾN

6.2. KẾT QUẢ PHẦN MỀM

6.2.1. Kết quả giao diện quản lý cảm biến

6.2.2. Kết quả của giao diện hiển thị màn hình chính của ứng dụng

6.2.3. Kết quả của giao diện màn hình thông báo hệ thống

6.2.4. Kết quả chức năng gọi điện khi có cảnh báo nổ

7. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

7.1. Kết quả đạt được

7.2. HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Thiết Kế Hệ Thống IoT Cảnh Báo Cháy Nổ

Hệ thống IoT cảnh báo cháy nổ trên nền tảng Amazon Cloud Services đang trở thành một giải pháp hiệu quả trong việc phát hiện và cảnh báo sớm các nguy cơ cháy nổ. Với sự phát triển của công nghệ IoT, việc tích hợp các cảm biến thông minh vào hệ thống giúp nâng cao khả năng giám sát và phản ứng kịp thời. Hệ thống này không chỉ giúp bảo vệ tài sản mà còn đảm bảo an toàn cho tính mạng con người.

1.1. Khái Niệm Về IoT Và Hệ Thống Cảnh Báo

IoT (Internet of Things) là một mạng lưới các thiết bị kết nối với nhau, cho phép thu thập và trao đổi dữ liệu. Hệ thống cảnh báo cháy nổ sử dụng công nghệ IoT để phát hiện các dấu hiệu bất thường như khói, nhiệt độ cao, và khí gas, từ đó gửi cảnh báo đến người dùng.

1.2. Lợi Ích Của Việc Sử Dụng Amazon Cloud Services

Amazon Web Services (AWS) cung cấp hạ tầng mạnh mẽ cho việc triển khai hệ thống IoT. AWS cho phép lưu trữ và xử lý dữ liệu lớn từ nhiều cảm biến, đồng thời cung cấp các dịch vụ như Amazon SNS để gửi thông báo đến người dùng một cách nhanh chóng và hiệu quả.

II. Vấn Đề Và Thách Thức Trong Hệ Thống Cảnh Báo Cháy Nổ

Mặc dù hệ thống cảnh báo cháy nổ mang lại nhiều lợi ích, nhưng vẫn tồn tại nhiều thách thức trong việc triển khai và duy trì. Các vấn đề như độ tin cậy của cảm biến, khả năng kết nối mạng, và việc xử lý dữ liệu lớn cần được giải quyết để đảm bảo hiệu quả của hệ thống.

2.1. Độ Tin Cậy Của Cảm Biến

Cảm biến khói và nhiệt độ cần phải được kiểm tra định kỳ để đảm bảo hoạt động chính xác. Việc sử dụng cảm biến chất lượng kém có thể dẫn đến cảnh báo sai, gây hoang mang cho người dùng.

2.2. Khả Năng Kết Nối Mạng

Hệ thống cần có khả năng kết nối ổn định để truyền tải dữ liệu từ cảm biến đến trung tâm xử lý. Mất kết nối có thể làm giảm hiệu quả của hệ thống cảnh báo.

III. Phương Pháp Thiết Kế Hệ Thống IoT Cảnh Báo Cháy Nổ

Thiết kế hệ thống IoT cảnh báo cháy nổ bao gồm việc lựa chọn cảm biến phù hợp, xây dựng kiến trúc hệ thống, và triển khai trên nền tảng AWS. Các bước này cần được thực hiện một cách cẩn thận để đảm bảo tính hiệu quả và an toàn của hệ thống.

3.1. Lựa Chọn Cảm Biến Phù Hợp

Việc lựa chọn cảm biến khói, nhiệt độ và khí gas là rất quan trọng. Các cảm biến này cần phải có độ nhạy cao và khả năng hoạt động trong nhiều điều kiện khác nhau.

3.2. Xây Dựng Kiến Trúc Hệ Thống

Kiến trúc hệ thống cần được thiết kế để tối ưu hóa việc thu thập và xử lý dữ liệu. Sử dụng AWS IoT Core để kết nối các cảm biến và xử lý dữ liệu là một giải pháp hiệu quả.

IV. Ứng Dụng Thực Tiễn Của Hệ Thống Cảnh Báo Cháy Nổ

Hệ thống IoT cảnh báo cháy nổ đã được triển khai tại nhiều khu vực như chung cư, nhà trọ và các khu vực có nguy cơ cháy nổ cao. Việc ứng dụng công nghệ này giúp nâng cao khả năng phát hiện và phản ứng kịp thời, giảm thiểu thiệt hại về người và tài sản.

4.1. Triển Khai Tại Các Khu Chung Cư

Nhiều khu chung cư đã áp dụng hệ thống cảnh báo cháy nổ IoT để bảo vệ cư dân. Hệ thống này giúp phát hiện sớm các dấu hiệu cháy và gửi cảnh báo đến người dân ngay lập tức.

4.2. Kết Quả Nghiên Cứu Và Đánh Giá

Các nghiên cứu cho thấy hệ thống cảnh báo cháy nổ IoT đã giảm thiểu đáng kể thời gian phản ứng của lực lượng cứu hỏa, từ đó nâng cao hiệu quả trong việc ứng phó với các tình huống khẩn cấp.

V. Kết Luận Và Tương Lai Của Hệ Thống Cảnh Báo Cháy Nổ

Hệ thống IoT cảnh báo cháy nổ trên nền tảng Amazon Cloud Services không chỉ mang lại lợi ích trong việc bảo vệ tài sản mà còn đảm bảo an toàn cho tính mạng con người. Tương lai của hệ thống này hứa hẹn sẽ còn phát triển hơn nữa với sự tiến bộ của công nghệ.

5.1. Tương Lai Của Công Nghệ IoT

Công nghệ IoT sẽ tiếp tục phát triển, mở ra nhiều cơ hội mới cho việc cải thiện hệ thống cảnh báo cháy nổ. Việc tích hợp AI và machine learning có thể giúp nâng cao khả năng phát hiện và phân tích dữ liệu.

5.2. Định Hướng Phát Triển Hệ Thống

Hệ thống cần được cải tiến liên tục để đáp ứng nhu cầu ngày càng cao của người dùng. Việc nghiên cứu và phát triển các giải pháp mới sẽ giúp nâng cao hiệu quả và độ tin cậy của hệ thống.

10/07/2025
Đồ án tốt nghiệp thiết kế hệ thống iot cảnh báo cháy nổ trên hạ tầng amazon cloud services

Trích đoạn nội dung tài liệu

Chương 1: Tổng quan. Chương này trình bày cái nhìn tổng quan về đề tài, bao gồm tính cấp thiết, lý do chọn đề tài, mục tiêu, tình hình nghiên cứu, phương pháp nghiên cứu, và bố cục của đề tài. • Chương 2: Cơ sở lý thuyết. Trong chương này giới thiệu sơ lược về công cụ phần mềm chính được sử dụng trong đề tài bao gồm MERN Stack, giao thức truyền thông HTTP, MQTT, Websocket, các dịch vụ Amazon Web Services như EC2, IoT Core, SNS, S3, DynamoDB.

Đồng thời chương này cũng giới thiệu về Docker, Kubernetes và Terraform, các công cụ quan trọng để tự động hóa quy trình triển khai ứng dụng và quản lý hạ tầng của hệ thống. • Chương 3: Thiết kế hệ thống. Trình bày về thiết kế hệ thống, thiết kế mô phỏng dữ liệu của nhiều cảm biến, tính toán thiết kế từng khối hoạt động ở backend, giới thiệu giao diện frontend, chức năng của ứng dụng di động giao tiếp với người dùng, quy trình thực hiện một sản phẩm phần mềm IoT và triển khai trên môi trường Amazon Cloud Services. • Chương 4: Kết quả.

Chương này trình bày kết quả các thành phần chức năng của hệ thống, phương thức phát hiện, cảnh báo và thông báo về ứng dụng của người dùng. • Chương 5: Kết luận và hướng phát triển. Tóm tắt những kết quả chính và kết luận về đề tài nghiên cứu, đồng thời đề xuất những hướng mở rộng, phát triển tiếp theo của đề tài trong tương lai, bao gồm cả những ý tưởng mới và tiềm năng ứng dụng thực tế.1 TỔNG QUAN VỀ NODEJS 2.1 Giới thiệu về NodeJS NodeJS là một môi trường chạy mã nguồn mở phổ biến được sử dụng cho các ứng dụng web và đa nền tảng. NodeJS cho phép các nhà phát triển và tận dụng nó để tạo các ứng dụng web có tính linh hoạt và mạnh mẽ nhờ sử dụng đồng bộ hóa, xử lý đa luồng và xử lý dữ liệu trên máy chủ.

Ngoài ra, NodeJS, một nền tảng JavaScript, cho phép các nhà phát triển tạo ra các ứng dụng web bằng cách sử dụng các ngôn ngữ lập trình phổ biến như JavaScript, HTML và CSS [6]. • Lịch sử hình thành của NodeJS Node.js là một phần của Công cụ JavaScript V8 của Google Chrome. Ryan Dahl đã phát triển Node.js vào năm 2009 và nó sử dụng vòng lặp sự kiện và API I/O cấp thấp để quản lý nhiều kết nối đồng thời. Điều này làm cho nó trở nên lý tưởng cho các ứng dụng liên quan đến thời gian thực, chẳng hạn như trò chuyện trực tuyến và trò chơi trực tuyến.js đã trở thành một trong những nền tảng phổ biến nhất để tạo ứng dụng web.

Netflix, Uber và PayPal là một số công ty lớn đã sử dụng nó [7]. Dưới đây là một số mốc quan trọng trong lịch sử phát triển của Node.js được phát hành lần đầu tiên. - 2010: Trình quản lý gói npm được giới thiệu. - 2011: Phiên bản Windows gốc của Node.js được phát hành.

- 2012: Ryan Dahl bước sang một bên và Isaac Schlueter trở thành người quản lý dự án.js, một nhánh của Node.js, được tạo ra.js Foundation được thành lập và Nodejs và io.js được hợp nhất lại với nhau. - 2018: Demo, một thay thế Node.js dựa trên TypeScript, được phát hành. - 2019: JS Foundation và Node.js Foundation hợp nhất để tạo thành OpenJS Foundation.js vẫn đang được phát triển và cải thiện và là một nền tảng mạnh mẽ và linh hoạt có thể được sử dụng để xây dựng nhiều loại ứng dụng web [6]. • Kiến trúc của NodeJS Hình 2.

1 Kiến trúc của NodeJS [6].js áp dụng mô hình xử lý đơn luồng dựa trên sự kiện, khác với mô hình đa luồng mà nhiều môi trường runtime khác sử dụng. Trong mô hình đa luồng, mỗi yêu cầu sẽ được xử lý bởi một luồng riêng lẻ cho đến khi tất cả các luồng có sẵn bị chiếm dụng, buộc máy chủ phải chờ đợi cho đến khi một luồng trở nên rảnh rỗi. Điều này có thể làm chậm ứng dụng và giảm hiệu quả, gây ảnh hưởng tiêu cực đến trải nghiệm người dùng. Ngược lại, Node.js xử lý tất cả các yêu cầu từ ứng dụng bởi duy nhất một luồng xử lý chính, sử dụng vòng lặp sự kiện để thực hiện các hoạt động I/O không đồng bộ, từ đó tăng cường hiệu suất xử lý đồng thời cải thiện tốc độ, phản hồi về ứng dụng [7].

• Một số khái niệm: - Event Queue: hàng đợi sự kiện là nơi tất cả các sự kiện (event) đã đi vào sẽ lần lượt được xử lý theo cơ chế FIFO, tức là các sự kiện đến server trước sẽ được NodeJS xử lý trước, các sự kiện đến server sau sẽ được xử lý sau. - Callbacks: là các thao tác, các xử lý, các hàm sẽ được thực hiện sau khi đã thực thi hoàn thành một hàm định nghĩa callback. Việc sử dụng callback giúp cho lập trình viên quản lý các vấn đề về. - Message: nội dung thông báo tương ứng với từng callback.

10 - Blocking I/O: là một cơ chế được sử dụng trong nhiều ngôn ngữ bên cạnh server. Nó quản lý các yêu cầu gửi đến server và lần lượt thực hiện các yêu cầu của yêu cầu tiếp theo sau khi yêu cầu đang xử lý đã hoàn thành. - Thread Pool là một chương trình được viết bởi ngôn ngữ lập trình C++, được tích hợp vào NodeJS cho phép xử lý nhiều luồng. Đây là môi trường xử lý chung và đóng vai trò chính cho tất cả các tác vụ được xử lý bởi server NodeJS, và các tác vụ này được xử lý trên nhiều luồng.

- Event Loop: là một vòng lặp vô tận chuyển các yêu cầu đã nhận được sang Threadpool đồng thời tự động đăng ký một Callback cho mỗi yêu cầu. Mỗi khi yêu cầu được xử lý xong, hàm Callback tương ứng sẽ được thực thi [8].2 Ưu nhược điểm của NodeJS • Ưu điểm của NodeJS Node.js được thiết kế dựa trên mô hình hướng sự kiện, điều này nhằm giúp I/O không đồng bộ nhưng vẫn hoạt động hiệu quả, xử lý nhiều sự kiện đồng thời trong một luồng đơn. Điều này giúp Node.js trở nên nhẹ, nhanh, có thể mở rộng và hiệu quả trong việc xử lý các tác vụ I/O và dữ liệu lớn, rất phù hợp cho một số ứng dụng web nhất định. Với những lợi thế này, Node.js được sử dụng rất phổ biến trong các ứng dụng, nghiên cứu về lĩnh vực IoT [9].

Dưới đây là một số ưu điểm nổi bật của Node.js: - Internet of Things (IoT): IoT là một mạng lưới các thiết bị như cảm biến, các thiết bị nhúng có chứa các vi xử lý, vi điều khiển, cho phép tạo ra nhũng kết nối giữa các thiết bị này và trao đổi dữ liệu lẫn nhau nhằm phục vụ các ứng dụng IoT trên nền tảng từ các thiết bị điện tử. Với kiến trúc dựa trên sự kiện và xử lý không đồng bộ, các máy chủ Node.js rất thích hợp cho các tác vụ I/O nặng trong hệ thống IoT, có thể bao gồm hàng nghìn thiết bị.js được sử dụng nó đại diện một lớp ứng dụng giữa các thiết bị, cảm biến tạo ra cơ sở dữ liệu lưu trữ dữ liệu giúp hiệu suất được cải thiện đáng kể. - Trò chuyện thời gian thực: Node.js cung cấp mọi thành phần cần thiết để xây dựng các ứng dụng trò chuyện thời gian thực với mức độ phức tạp khác nhau. API sự kiện mạnh mẽ của Node.js cho phép tạo các bộ phát sự kiện và sau đó phân tán 11 các sự kiện được đặt tên cho bộ xử lý sự kiện.

Tính năng này hỗ trợ triển khai các thông báo đẩy, thường được sử dụng trong nhắn tin trong ứng dụng cần tính nhanh chóng, lập tức. - Fullstack JavaScript: Trước khi Node.js ra đời, JavaScript chỉ được sử dụng cho phát triển phía khách hàng. Việc sử dụng các ngôn ngữ lập trình khác nhau cho phía máy chủ và máy khách là cần thiết. Tuy nhiên, với sự xuất hiện của Node.js, JavaScript đã trở thành một ngôn ngữ fullstack, cho phép các nhà phát triển sử dụng cùng một ngôn ngữ cho cả front-end và back-end.

Điều này làm cho việc phát triển ứng dụng web trở nên dễ dàng và hiệu quả hơn nhiều [9]. • Nhược điểm của NodeJS Bên cạnh những lợi ích mà NodeJS mang lại, nó cũng có một số nhược điểm, bao gồm: - Đa luồng chưa tốt: NodeJS được biết đến là một platform đơn luồng, vì vậy nó chỉ xử lý tất cả các yêu cầu bằng một luồng. Nói cách khác, NodeJS xử lý kém các ứng dụng có các tình huống cần xử lý đa luồng. - NodeJS thường được sử dụng để phát triển các ứng dụng nhiều I/O.

Do đó, nó không phù hợp với các ứng dụng sử dụng nhiều CPU. NodeJS sẽ không phù hợp với các ứng dụng sử dụng nhiều CPU. - Quản lý bộ nhớ kém và cấu trúc mã lệnh phức tạp: NodeJS chạy trên môi trường JavaScript, vì vậy nó có thể dễ dàng gây ra tình trạng "bộ nhớ rò rỉ", khiến bộ nhớ máy tính bị kín. Cấu trúc mã lệnh của NodeJS khá phức tạp, đặc biệt là khi so sánh với các nền tảng phát triển web khác như PHP hoặc Ruby on Rails [9].2 TỔNG QUAN VỀ NODEJS FRAMEWORK EXPRESS 2.1 Giới thiệu về ExpressJS Một framework phổ biến được xây dựng dựa trên Nodejs là Expressjs.

Nó cung cấp các khả năng vượt trội cho phát triển web và ứng dụng di động. Các API mạnh mẽ và dễ sử dụng được tạo ra bởi Expressjs, được hỗ trợ bởi các phương pháp HTTP và middleware [8]. 12 • Tính năng của ExpressJS: - Phát triển máy chủ: ExpressJS có khả năng cung cấp nhiều phương thức và các hàm, thư viện để xử lý các nhu cầu tạo ra tác vụ lập trình web phổ biến, đồng thời tối ưu hóa cú pháp lập trình. - Hệ thống định tuyến (Routing): Hệ thống định tuyến mạnh mẽ của ExpressJS cung cấp khả năng xác định các tuyến đường để xử lý yêu cầu và phản hồi từ người dùng một cách hiệu quả.

Điều này giúp dễ dàng sắp xếp, quản lý các phần của ứng dụng, và nâng cao trải nghiệm người dùng. - Middleware: Hỗ trợ việc sử dụng middleware cho các công việc thêm chức năng trung gian trong các quá trình xử lý yêu cầu và phản hồi. Middleware mang tính linh hoạt cao, hỗ trợ nhiều nhiệm vụ như xác thực người dùng, xử lý lỗi, nén dữ liệu, và nhiều tác vụ khác. - Cấu hình môi trường: ExpressJS không chỉ cung cấp phương tiện để cấu hình môi trường cho cả giai đoạn phát triển và sản xuất, mà còn cho phép người dùng linh hoạt thiết lập các biến môi trường, định dạng và quy tắc cấu hình.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu có tiêu đề "Thiết Kế Hệ Thống IoT Cảnh Báo Cháy Nổ Trên Amazon Cloud" cung cấp cái nhìn sâu sắc về việc phát triển một hệ thống cảnh báo cháy nổ thông minh sử dụng công nghệ IoT trên nền tảng đám mây của Amazon. Tài liệu này không chỉ trình bày các phương pháp thiết kế và triển khai hệ thống mà còn nhấn mạnh những lợi ích mà nó mang lại, như khả năng giám sát từ xa, giảm thiểu rủi ro và nâng cao hiệu quả trong việc phát hiện sớm các tình huống nguy hiểm.

Để mở rộng kiến thức của bạn về các khía cạnh liên quan đến IoT, bạn có thể tham khảo tài liệu Luận văn thạc sĩ khoa học máy tính authentication protocol for internet of things devices using bluetooth low energy, nơi trình bày các giao thức xác thực cho thiết bị IoT, hoặc tìm hiểu thêm về Thiết kế và thi công hệ thống cảnh báo cháy, tài liệu này sẽ giúp bạn có cái nhìn tổng quan hơn về các hệ thống cảnh báo cháy hiện đại. Những tài liệu này sẽ giúp bạn nắm bắt thêm nhiều thông tin hữu ích và mở rộng hiểu biết của mình về lĩnh vực IoT.