Do đó, để đảm bảo an toàn cũng như tăng sự tiện lợi chocuộc sống, dự án nhà thông minh do nhóm thực hiện sẽ không chỉ giải quyết các nhược điểm của căn hộchung cư mà còn mang lại nhiều l
Mô tả dự án
Hiện nay, tốc độ phát triển của công nghệ kỹ thuật trên thế giới ngày càng nhanh, cùng với đó là nhu cầu sử dụng các thiết bị công nghệ thông minh của người dùng ngày càng tăng cao Họ muốn trải nghiệm các công nghệ tiên tiến ngay trong chính ngôi nhà của mình để đem đến sự an toàn, tiện lợi cho cuộc sống Chính vì vậy, nhà thông minh (Smart home) đang trở thành xu thế, sẽ hướng người dùng tiếp cận đến lối sống hiện đại, đảm bảo sự an toàn và tiện nghi cho cư dân, đồng thời giúp tiết kiệm năng lượng và tối ưu hóa quản lý tài nguyên.
Dự án này tập trung nhắm đến đối tượng là cư dân trong các căn hộ chung cư bao gồm cả gia đình và người sống độc thân, với mong muốn tối ưu hóa trải nghiệm sống hàng ngày của họ Ngày nay, sống trong các căn hộ chung cư là lựa chọn phổ biến tại nhiều đại đô thị, do mật độ dân số cao và diện tích đất thấp Dù có một vài ưu điểm hơn so với nhà đất, song căn hộ chung cư vẫn còn nhiều điểm hạn chế,đặc biệt là các sự cố như: cháy nổ, chập điện Do đó, để đảm bảo an toàn cũng như tăng sự tiện lợi cho cuộc sống, dự án nhà thông minh do nhóm thực hiện sẽ không chỉ giải quyết các nhược điểm của căn hộ chung cư mà còn mang lại nhiều lợi ích vô cùng thiết thực.
Các bên liên quan (Stakeholders)
Dự án hệ thống nhà thông minh cho căn hộ chung cư bao gồm các stakeholder như:
• Cư dân: Sử dụng, quản lý các tiện ích thông minh trong căn hộ, yêu cầu lắp thêm thiết bị, báo cáo khi thiết bị hỏng hoặc có sự cố, góp ý về dịch vụ thông minh.
• Nhân viên kỹ thuật: Bảo trì và vận hành các hệ thống thông minh, sửa chữa thay thế khi người dùng báo cáo lỗi, lắp đặt thêm các thiết bị khi người dùng yêu cầu.
• Nhà cung cấp công nghệ: Cung cấp các thiết bị cho toà nhà, chịu trách nhiệm về sản phẩm cung cấp.
• Chủ đầu tư: Quyết định đầu tư vào dự án, cung cấp nguồn vốn và tài trợ.
• Các nhà thầu xây dựng: Thực hiện việc xây dựng, lắp đặt và triển khai các hệ thống thông minh.
• Đội ngũ phát triển dự án: bao gồm PM, BA, Developers, chịu trách nhiệm về việc triển khai dự án thành công Họ đảm bảo rằng hệ thống an toàn, đáng tin cậy và đáp ứng nhu cầu của người dùng
• Ban quản lý chung cư: Quản lý các hoạt động hàng ngày của chung cư.
Yêu cầu người dùng (User Requirements)
Là cư dân trong các căn hộ chung cư, người dùng đòi hỏi hệ thống nhà thông minh phải đáp ứng đầy đủ các yêu cầu sau:
• Người dùng có khả năng điều khiển các thiết bị trong gia đình (đèn , quạt điện, điều hòa, ) thông qua ứng dụng theo mong muốn.
• Người dùng có khả năng xem nhiệt độ bên trong ngôi nhà qua ứng dụng.
• Người dùng mong muốn hệ thống gửi thông báo cho người dùng thông qua ứng dụng về các sự kiện như phát hiện chuyển động, phát hiện cháy, thiết bị vượt ngưỡng
• Người dùng mong muốn hệ thống dễ sử dụng, mượt mà, ít xảy ra lỗi hay bảo trì ứng dụng.
• Người dùng mong muốn khả năng truy cập ứng dụng là mọi lúc mọi nơi với đa dạng thiết bị và chỉ cần có kết nối internet.
• Người dùng mong muốn hệ thống có độ bảo mật tốt, tránh bị xâm hại bởi bên thứ ba.
Trong các yêu cầu trên, nhóm nhận thấy chức năng gửi thông báo cho người dùng thông qua ứng dụng về các sự kiện như phát hiện chuyển động, phát hiện cháy, thiết bị vượt ngưỡng là quan trọng nhất vì nó đảm bảo sự an toàn cho ngôi nhà cũng như bảo vệ người dùng khỏi các sự cố không đáng có. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 4/67
Yêu cầu chức năng và phi chức năng
Yêu cầu chức năng (Functional Requirements)
• Người dùng có thể bật/tắt quạt và điều chỉnh tốc độ quay của quạt thông qua ứng dụng.
• Người dùng có thể bật/tắt đèn LED RGB thông qua ứng dụng.
• Người dùng có thể xem được nhiệt độ và độ ẩm bên trong ngôi nhà trên ứng dụng thông qua cảm biến đo nhiệt độ và độ ẩm không khí (DHT20).
• Người dùng có thể điều khiển cửa đóng hoặc cửa mở thông qua ứng dụng
• Hệ thống gửi thông báo cho người dùng khi phát hiện có người.
• Hệ thống gửi thông báo cho người dùng khi phát hiện input thiết bị vượt ngưỡng.
• Hệ thống tự động bật đèn khi ánh sáng vượt ngưỡng và tắt đèn khi ánh sáng thấp hơn ngưỡng cho phép.
• Hệ thống tự động bật quạt khi nhiệt độ, độ ẩm vượt ngưỡng và tắt quạt khi nhiệt độ, độ ẩm thấp hơn ngưỡng cho phép.
Yêu cầu phi chức năng (Non-functional Requirements)
• Bảo mật dữ liệu: Hệ thống phải sử dụng mã hóa mạnh mẽ để bảo vệ thông tin cá nhân và dữ liệu nhạy cảm của người dùng, đặc biệt là khi truyền qua mạng.
Xác thực và ủy quyền là yếu tố quan trọng để bảo vệ thiết bị Nhà thông minh, đảm bảo chỉ những người dùng được phép mới có quyền truy cập và điều khiển thông qua ứng dụng Hệ thống nên tích hợp cơ chế xác thực hai yếu tố để nâng cao bảo mật Ngoài ra, độ ổn định và độ tin cậy của ứng dụng cũng rất cần thiết để đảm bảo trải nghiệm người dùng mượt mà và đáng tin cậy.
• Kiểm thử và đảm bảo chất lượng: Phát triển hệ thống cần được kiểm thử kỹ lưỡng để đảm bảo tính ổn định và tin cậy, đồng thời cần có quy trình giám sát và báo cáo lỗi để sửa chữa kịp thời.
• Sao lưu và khôi phục: Cần có cơ chế sao lưu dữ liệu định kỳ và khả năng khôi phục nhanh chóng sau sự cố để đảm bảo không mất mát dữ liệu quan trọng.
• Hệ thống phải có thời gian phản hồi nhanh chóng cho các yêu cầu điều khiển từ người dùng, đảm bảo rằng các thiết bị có thể được điều khiển một cách trơn tru và hiệu quả Cụ thể là thời gian phản hồi của hệ thống cho các yêu cầu điều khiển từ người dùng không vượt quá 2 giây.
• Ứng dụng hỗ trợ chạy real-time.
• Mở rộng tính năng: Có khả năng cập nhật phần mềm và tích hợp tính năng mới một cách dễ dàng để đáp ứng nhu cầu và yêu cầu mới của người dùng.
Hệ thống phải có khả năng mở rộng để xử lý đồng thời một lượng lớn người dùng và thiết bị, đồng thời có khả năng mở rộng linh hoạt khi nhu cầu tăng cao.
Dễ sử dụng và trải nghiệm người dùng
• Giao diện người dùng thân thiện: Ứng dụng có giao diện người dùng đơn giản, dễ sử dụng và dễ hiểu, với các tính năng được sắp xếp một cách logic và có thể truy cập dễ dàng.
• Đa nền tảng và đa thiết bị: Hệ thống có tính tương thích cao với các nền tảng và thiết bị khác nhau, bao gồm cả điện thoại di động, máy tính bảng và máy tính cá nhân. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 5/67
Danh sách các thiết bị
• Đặc điểm: Điện áp hoạt động 3.3V, là một module gồm một dãy 4 đèn nối tiếp với nhau, có 3 màu cơ bản: đỏ - xanh lá – xanh dương Dễ điều khiển và có nhiều ứng dụng.
• Công dụng: Chiếu sáng tự động, tạo hiệu ứng ánh sáng dựa theo yêu cầu hệ thống.
• Đặc điểm: Điện áp hoạt động 3.3V, sử dụng giao tiếp truyền thông I2C và tương thích với nhiều thiết bị Có độ bền cao và rất phổ biến.
• Công dụng: Hiển thị dữ liệu và thông báo.
• Đặc điểm: Điện áp hoạt động 3.3V, có 2 tín hiệu điều khiển Phổ biến và có nhiều ứng dụng trong cuộc sống.
• Công dụng: Có thể kết hợp với module cảm biến khác để điều khiển bật tắt quạt theo thời gian, dựa trên giá trị nhiệt độ để bật tắt quạt, .
• Đặc điểm: Điện áp hoạt động 3.3V, góc đo khoảng 30°, có thể đo khoảng cách trong phạm vi từ 3cm đến 200cm.
• Công dụng: Dùng cho các dự án giúp xe tự động tránh chướng ngại vật, đo khoảng cách, . Cảm biến nhiệt độ, độ ẩm
• Đặc điểm: Điện áp hoạt động 3.3V, sử dụng giao thức I2C Cảm biến có độ chính xác cao, giá thành thấp, thích hợp với các ứng dụng cần đo nhiệt độ, độ ẩm của môi trường.
• Công dụng: Sử dụng trong nhiều dự án điều khiển tự động, ghi nhận dữ liệu về nhiệt độ, độ ẩm trong môi trường xung quanh, làm máy hút ẩm .
• Đặc điểm: Điện áp hoạt động 3.3V, có độ chính xác cao, phạm vi đo rộng, phổ biến và tương thích với nhiều hệ thống.
• Công dụng: Nhận biết và phát hiện cường độ ánh sáng của môi trường xung quanh. Động cơ servo
• Đặc điểm: Điện áp hoạt động 5V, có thể quay tối đa 180°, tốc độ chậm nhưng lực khá mạnh, độ chính xác cao.
• Công dụng: Được sử dụng trong các dự án cần sự điều khiển chính xác và có điểm dừng như đóng mở cửa tự động, lái robot, .
Trung tâm của hệ thống cảm biến có vai trò chủ chốt trong việc thu thập dữ liệu từ mạch mở rộng Sau khi thực hiện xử lý sơ bộ, dữ liệu này được chuyển đến máy chủ để phân phối tới các thiết bị thông minh đang kết nối.
• Có độ tương thích cao và hỗ trợ nhiều ngôn ngữ lập trình (Python, Scratch, )
• Là shield mở rộng tương thích với Yolo:Bit, giúp mở rộng thêm 9 port kết nối, dễ dàng kết nối Yolo:Bit với các cảm biến bên ngoài.
• Là một thiết bị được sử dụng để chuyển đổi nguồn điện từ bên ngoài thành nguồn 5V DC, dùng để cung cấp nguồn điện ổn định cho hệ thống. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 6/67
Biểu đồ use-case và kịch bản use-case
Biểu đồ use-case cho toàn hệ thống
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 7/67
Use-case: Đèn tự động
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 8/67
Tên Use-case Đèn tự động
Actor cảm biến ánh sáng
Description Đèn tự động bật tắt theo dữ liệu từ cảm biến
Trigger Người dùng chọn chức năng đèn tự động ở phòng
Precondition đèn hoạt động bình thường
Postcondition Đèn bật và tắt theo đúng như thao tác của người dùng với phần mềm
Normal Flows 1 hệ thống quan sát dữ liệu từ cảm biến.
2 Hệ thống gửi yêu cầu thay đổi chế độ tới thiết bị.
3 Thiết bị nhận tín hiệu, lắng nghe thông tin gửi về từ cảm biến thông qua hệ thống và thực hiện yêu cầu.
4 Hệ thống lưu trạng thái thay đổi mới xuống database.
5 database gửi phản hồi thành công và tiến hành lưu trạng thái.
Exception Flows ở bước 4, nếu hệ thống không nhận được phản hồi sau 5s thì sẽ gửi lại yêu cầu. ở bước 5, nếu hệ thống không nhận được phản hồi thành công sau 3s, hệ thống sẽ gửi lại yêu cầu Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 9/67
Use-case: Bật và tắt đèn
Tên Use-case Bật và tắt đèn
Actor Người dùng phần mềm
Description Người dùng sử dụng thiết bị có kết nối Internet để bật và tắt đèn
Trigger Người dùng ấn vào tab "Bảng điều khiển" trên thanh Sidebar
Precondition Người dùng đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì.
Postcondition Đèn bật và tắt theo đúng như thao tác của người dùng với phần mềm
Normal Flows 1.hệ thống lấy dữ liệu các phòng từ database
2.Màn hình hiện ra danh sách các phòng trong gia đình (living room, bedroom, kitchen )
3.Người dùng ấn vào phòng cụ thể muốn điều khiển đèn 4.Hệ thống nhận được yêu cầu từ người dùng và lấy dữ liệu thiết bị và cảm biến có trong phòng từ database.
Màn hình giao diện chính được chia thành 3 phần: bảng điều khiển trên cùng hiển thị danh sách các phòng; phần cảm biến thông minh thể hiện thông tin cảm biến từ trái sang phải; cuối cùng là phần Thiết bị hiển thị các thiết bị trong phòng như đèn, quạt.
6 Người dùng ấn vào toggle của thiết bị đèn để điều khiển bật tắt, với chữ ON bên cạnh toggle biểu thị đèn bật, OFF biểu thị đèn tắt Với chữ ON ở hiện tại nếu ấn vào toggle thì đèn sẽ chuyển sang OFF đồng nghĩa với đèn sẽ tắt và ngược lại.
7 Hệ thống nhận yêu cầu từ phía người dùng và gửi yêu cầu điều khiển tới thiết bị
8 Thiết bị nhận tín hiệu, gửi phản hồi về hệ thống và thao tác theo yêu cầu.
9 Hệ thống lưu trạng thái thay đổi mới xuống database.
10 database gửi phản hồi thành công và tiến hành lưu trạng thái.
Alternative Flows Ở bước 7 của normal flow, nếu người dùng muốn bật, tắt đèn ở nhiều phòng khác nhau nữa thì quay lại bước 3 của normal flow
Exception Flows ở bước 1, nếu hệ thống lấy dữ liệu không thành công, màn hình sẽ hiện thị "gặp lỗi, vui lòng thử lại". ở bước 4, nếu hệ thống lấy dữ liệu không thành công, màn hình sẽ hiện thị "gặp lỗi, vui lòng thử lại". ở bước 7, nếu hệ thống không nhận được yêu cầu từ người dùng, màn hình vẫn sẽ thay đổi nhưng đèn sẽ không điều khiển được. ở bước 7, nếu hệ thống gửi tín hiệu thất bại, đèn sẽ không thay đổi, hệ thống sẽ hiển thị ra màn hình "gặp lỗi, vui lòng thử lại". ở bước 9, nếu hệ thống không nhận được phản hồi thành công sau 3s, hệ thống sẽ gửi lại yêu cầu Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 10/67
Use-case: Đóng và mở cửa
Tên Use-case Đóng và mở cửa
Actor Người dùng phần mềm
Description Người dùng sử dụng thiết bị có kết nối Internet để đóng và mở cửa Trigger Người dùng ấn vào tab "Bảng điều khiển" trên thanh Sidebar
Precondition Người dùng đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì.
Postcondition Cửa đóng và mở theo đúng như thao tác của người dùng với phần mềm
Normal Flows 1.hệ thống lấy dữ liệu các phòng từ database
2.Màn hình hiện ra danh sách các phòng trong gia đình (living room, bedroom, kitchen )
3.Người dùng ấn vào phòng cụ thể muốn điều khiển đèn 4.Hệ thống nhận được yêu cầu từ người dùng và lấy dữ liệu thiết bị và cảm biến có trong phòng từ database.
5.Hệ thống hiển thị lên màn hình được chia ra làm 3 phần chính gồm bảng điều khiển trên cùng chưa nội dung là danh sách các phòng phía dưới, tiếp theo là phần cảm biến thông minh với nội dung bao gồm thông tin của các cảm biến trong phòng theo thứ tự từ trái qua phải, cuối cùng là phần Thiết bị với nội dung phía dưới là các thiết bị trong phòng như đèn,quạt.
6 Người dùng ấn vào toggle của cửa để điều khiển đóng mở, với chữ OPEN bên cạnh toggle biểu thị cửa mở, CLOSE biểu thị cửa đóng Với chữ OPEN ở hiện tại nếu ấn vào toggle thì sẽ chuyển sang OFF đồng nghĩa với cửa sẽ đóng và ngược lại.
7 Hệ thống nhận yêu cầu từ phía người dùng và gửi yêu cầu điều khiển tới thiết bị
8 Thiết bị nhận tín hiệu, gửi phản hồi về hệ thống và thao tác theo yêu cầu.
9 Hệ thống lưu trạng thái thay đổi mới xuống database.
10 database gửi phản hồi thành công và tiến hành lưu trạng thái.
Alternative Flows Ở bước 7 của normal flow, nếu người dùng muốn đóng mở cửa ở nhiều phòng khác nhau nữa thì quay lại bước 3 của normal flow
Exception Flows ở bước 1, nếu hệ thống lấy dữ liệu không thành công, màn hình sẽ hiện thị "gặp lỗi, vui lòng thử lại". ở bước 4, nếu hệ thống lấy dữ liệu không thành công, màn hình sẽ hiện thị "gặp lỗi, vui lòng thử lại". ở bước 7, nếu hệ thống không nhận được yêu cầu từ người dùng, màn hình vẫn sẽ thay đổi nhưng đèn sẽ không điều khiển được. ở bước 7, nếu hệ thống gửi tín hiệu thất bại, đèn sẽ không thay đổi, hệ thống sẽ hiển thị ra màn hình "gặp lỗi, vui lòng thử lại". ở bước 9, nếu hệ thống không nhận được phản hồi thành công sau 3s, hệ thống sẽ gửi lại yêu cầu Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 11/67
Use-case: Điều khiển quạt
Tên Use-case Điều khiển quạt
Actor Người dùng phần mềm
Description Người dùng sử dụng thiết bị có kết nối Internet để điều khiển quạt
Trigger Người dùng ấn vào tab "Bảng điều khiển" trên thanh Sidebar
Precondition Người dùng đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì.
Postcondition Quạt được thay đổi trạng thái theo đúng như thao tác của người dùng với phần mềm
Normal Flows 1 Hệ thống truy xuất database để lấy dữ liệu của các phòng trong nhà
2 Hệ thống hiển thị giao diện trang "Bảng điều khiển" với danh sách các phòng trong gia đình (living room, bedroom, kitchen )
3 Người dùng ấn vào phòng cụ thể muốn điều khiển quạt
4 Hệ thống nhận được yêu cầu từ người dùng và lấy dữ liệu thiết bị và cảm biến có trong phòng từ database.
5 Hệ thống hiển thị giao diện gồm các cảm biến và các thiết bị trong phòng.
6 Người dùng nhấn vào biểu tượng công tắc của thiết bị quạt để thay đổi trạng thái bật/tắt.
7 Hệ thống nhận yêu cầu từ phía người dùng và gửi yêu cầu điều khiển tới thiết bị.
8 Thiết bị nhận tín hiệu, gửi phản hồi về hệ thống và thao tác theo yêu cầu.
9 Hệ thống lưu trạng thái thay đổi mới xuống database.
10 Hệ thống gửi thông báo người dùng thay đổi trạng thái thành công.
6.1 Người dùng thay đổi tốc độ của quạt tương ứng với các mức độ 1, 2, 3.
Use case tiếp tục bước 7.
Ở Bước 1, nếu hệ thống không lấy được dữ liệu thì sẽ hiển thị thông báo "Lỗi, vui lòng thử lại" Trường hợp chưa có phòng trong nhà, thông báo "Không tìm thấy phòng" sẽ xuất hiện Tương tự ở Bước 4, nếu quá trình lấy dữ liệu thất bại, thông báo "Lỗi, vui lòng thử lại" được hiển thị Khi không có thiết bị nào trong phòng, thông báo "Không tìm thấy thiết bị trong phòng" sẽ xuất hiện Đối với Bước 9, nếu hệ thống không nhận được phản hồi thành công từ cơ sở dữ liệu sau 3 giây, yêu cầu sẽ được gửi lại Cuối cùng, ở Bước 6.1, nếu quạt đang tắt, thông báo "Không thể điều chỉnh tốc độ khi quạt tắt" sẽ được hiển thị.
Use-case: Quạt tự động
Tên Use-case Quạt tự động
Actor Cảm biến (Cảm biến nhiệt độ, độ ẩm DHT20)
Description Hệ thống tự động bật hoặc tắt quạt dựa vào cảm biến nhiệt độ, độ ẩm DHT20
Trigger Cảm biến DHT20 phát hiện nhiệt độ và độ ẩm trong nhà vượt ngưỡng hoặc thấp hơn ngưỡng cho phép.
Precondition Cảm biến nhiệt độ, độ ẩm DHT20 được kết nối thành công vào hệ thống Postcondition Quạt được tự động thay đổi trạng thái thành công
Normal Flows 1 Cảm biến gửi phản hồi đến hệ thống về phát hiện nhiệt độ và độ ẩm vượt ngưỡng
2 Hệ thống nhận phản hồi và gửi yêu cầu bật quạt đến thiết bị
3 Thiết bị nhận tín hiệu, gửi phản hồi về hệ thống và thao tác theo yêu cầu.
4 Hệ thống lưu trạng thái thay đổi mới xuống database.
5 Hệ thống gửi thông báo tự động thay đổi trạng thái của quạt thành công.
1.1 Cảm biến DHT20 gửi phản hồi đến hệ thống về phát hiện nhiệt độ và độ ẩm thấp hơn ngưỡng
2.1 Hệ thống nhận phản hồi và gửi yêu cầu tắt quạt đến thiết bị Use case tiếp tục bước 3.
Exception Flows Ở bước 2, nếu hệ thống không nhận được phản hồi từ cảm biến sau 3s, cảm biến sẽ gửi lại yêu cầu đến hệ thống. Ở bước 5, nếu hệ thống không nhận được phản hồi thành công từ database sau 3s, hệ thống sẽ gửi lại yêu cầu. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 13/67
Use-case: Xem nhiệt độ và độ ẩm
Tên Use-case Xem nhiệt độ và độ ẩm
Actor Người dùng phần mềm, Cảm biến (Cảm biến nhiệt độ, độ ẩm
Description Người dùng sử dụng thiết bị có kết nối Internet để xem nhiệt độ và độ ẩm trong căn phòng của ngôi nhà.
Trigger Người dùng ấn vào "Bảng điều khiển" trên thanh Sidebar.
Precondition Người dùng đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì.
Postcondition Người dùng đã xem được thông tin về nhiệt độ và độ ẩm hiện tại trong phòng.
Normal Flows 1.Hệ thống lấy dữ liệu các phòng từ database.
2 Hệ thống hiển thị ra danh sách các phòng trong gia đình (living room, bedroom, kitchen )
3.Người dùng ấn vào phòng cụ thể muốn xem nhiệt độ và độ ẩm.
4.Hệ thống nhận được yêu cầu từ người dùng và lấy dữ liệu của cảm biến có trong phòng từ database.
5.Cảm biến gửi dữ liệu nhiệt độ, độ ẩm lên hệ thống.
6.Hệ thống hiển thị các giá trị của nhiệt độ và độ ẩm mà cảm biến đo được ra màn hình.
7 Người dùng có thể quan sát thông tin nhiệt độ và độ ẩm trên giao diện.
Alternative Flows Ở bước 7 của normal flow, nếu người dùng muốn xem nhiệt độ ở phòng khác thì quay lại bước 2 của normal flow
Exception Flows Ở bước 1, nếu hệ thống lấy dữ liệu không thành công, hệ thống hiển thị thông báo "gặp lỗi, vui lòng thử lại". Ở bước 1, nếu trong nhà chưa có phòng nào, hệ thống hiển thị thông báo "Không tìm thấy phòng". Ở bước 4, nếu hệ thống lấy dữ liệu không thành công, hệ thống hiển thị thông báo "gặp lỗi, vui lòng thử lại". Ở bước 4, nếu trong phòng chưa có cảm biến, hệ thống hiển thị thông báo "Không tìm thấy cảm biến trong phòng". Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 14/67
Use-case: Bật/Tắt chế độ phát hiện người
Tên Use-case Bật/Tắt chế độ phát hiện người
Description Người dùng có thể bật/tắt tính năng thông báo phát hiện người.
Trigger Người dùng ấn vào tab "Bảng điều khiển" trên thanh Sidebar
Precondition Người dùng đã đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì, các thiết bị hoạt động bình thường.
Postcondition Người dùng bật/tắt thành công tính năng thông báo phát hiện người
Normal Flows 1 Hệ thống lấy dữ liệu phòng từ database
2 Màn hình hiện ra danh sách các phòng trong gia đình
3 Người dùng ấn vào phòng cụ thể muốn bật chế độ phát hiện người
4 Hệ thống nhận được yêu cầu từ người dùng và lấy dữ liệu thiết bị và cảm biến có trong phòng từ database
5 Hệ thống hiển thị lên màn hình được chia ra làm 3 phần chính gồm bảng điều khiển trên cùng chưa nội dung là danh sách các phòng phía dưới, tiếp theo là phần cảm biến thông minh với nội dung bao gồm thông tin của các cảm biến trong phòng theo thứ tự từ trái qua phải, cuối cùng là phần Thiết bị với nội dung phía dưới là các thiết bị trong phòng như đèn, quạt, cảm biến phát hiện người
6 Người dùng ấn vào toggle chế độ phát hiện người để điều khiển bật tắt, với chữ ON bên cạnh toggle biểu thị chế độ bật, OFF biểu thị chế độ tắt.
7 Hệ thống nhận yêu cầu từ phía người dùng và gửi yêu cầu điều khiển tới thiết bị
8 Thiết bị nhận tín hiệu, gửi phản hồi về hệ thống và thao tác theo yêu cầu.
Exception Flows Ở bước 1, nếu hệ thống lấy dữ liệu không thành công, màn hình sẽ hiện thị "gặp lỗi, vui lòng thử lại". Ở bước 4, nếu hệ thống lấy dữ liệu không thành công, màn hình sẽ hiện thị "gặp lỗi, vui lòng thử lại". Ở bước 7, nếu hệ thống gửi tín hiệu thất bại, hệ thống sẽ hiển thị ra màn hình "gặp lỗi, vui lòng thử lại". Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 15/67
Use-case: Phát hiện người
Tên Use-case Phát hiện người
Actor Cảm biến phát hiện người
Description Khi nhận thấy có người, cảm biến sẽ phát hiện và gửi thông báo tới ứng dụng cho người dùng biết Trigger Cảm biến phát hiện có người đi vào khu vực
Precondition Người dùng đã đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì, các thiết bị hoạt động bình thường.
Người dùng đã bật chế độ phát hiện người.
Postcondition Cảm biến phát hiện có người và gửi thông báo tới thiết bị
Normal Flows 1 Cảm biến quan sát
2 Cảm biến phát hiện người
3 Cảm biến gửi phản hồi đến hệ thống
4 Hệ thống nhận phản hồi và gửi thông báo đến thiết bị
5 Hệ thống lưu log (thời gian phát hiện) xuống database Alternative Flows None
Exception Flows None Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 16/67
Use-case: Phát hiện vượt ngưỡng
Tên Use-case Phát hiện vượt ngưỡng
Actor Cảm biến DHT20 và cảm biến ánh sáng
Description Khi cảm biến phát hiện giá trị của nhiệt độ, độ ẩm hoặc ánh sáng vượt ngưỡng do người dùng thiết lập, hệ thống sẽ gửi thông báo đến cho người dùng biết
Trigger Hệ thống ghi nhận giá trị của nhiệt độ, độ ẩm hoặc ánh sáng vượt ngưỡng do người dùng thiết lập Precondition Phần mềm không bị bảo trì, các cảm biến hoạt động bình thường.
Postcondition Người dùng nhận được thông báo vượt ngưỡng do hệ thống gửi đến
Normal Flows 1 Hệ thống tạo thông báo tương ứng với giá trị của cảm biến nào đang bị vượt ngưỡng
2 Hệ thống gửi thông báo vượt ngưỡng đến cho người dùng Alternative Flows None
Exception Flows None Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 17/67
Use-case: Điều khiển bằng giọng nói
Tên Use-case Điều khiển bằng giọng nói
Description Người dùng điều khiển các thiết bị như đèn, quạt, cửa bằng giọng nói thông qua ứng dụng
Trigger Tại giao diện bảng điều khiển, người dùng nhấn vào biểu tượng micro
Precondition Người dùng đã đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì, các thiết bị hoạt động bình thường.
Postcondition Các thiết bị được điều khiển qua giọng nói của người dùng thành công
Normal Flows 1 Hệ thống hiển thị ra modal điều khiển bằng giọng nói
2 Người dùng ra lệnh cho ứng dụng thông qua giọng nói của mình
3 Hệ thống nhận phản hồi và gửi yêu cầu thay đổi trạng thái đến server của các thiết bị
4 Hệ thống nhận phản hồi và gửi thông báo đến thiết bị
5 Hệ thống hiển thị thông báo điều khiển thành công Alternative Flows None
3.1 Hệ thống không nhận diện được câu lệnh của người dùng 4.1 Hệ thống hiển thị thông báo "Lệnh không hợp lệ"
Use case kết thúc Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 18/67
Use-case: Xem hoạt động của thiết bị
Tên Use-case Xem hoạt động của thiết bị
Description Người dùng xem lịch sử hoạt động các thiết bị như đèn, quạt, cửa và các cảm biến qua ứng dụng Trigger Người dùng nhấn nút "Hoạt động" trên sidebar
Precondition Người dùng đã đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì.
Postcondition Người dùng xem hoạt động của các thiết bị thành công
Normal Flows 1 Hệ thống hiển thị ra giao diện hoạt động thiết bị với giao diện bảng gồm tên thiết bị, giá trị đo được và thời gian ghi nhận
2 Người dùng xem thông tin về hoạt động của các thiết bị
2.1 Người dùng nhấn vào các nút phân loại thông báo để đọc thông báo theo từng loại.
3.1 Hệ thống hiển thị giao diện bảng gồm các bản ghi hoạt động của thiết bị đó.
Exception Flows None Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 19/67
2 Mô hình hóa hệ thống (System modelling)
Biểu đồ hoạt động (Activity diagram)
Chức năng: Đèn tự động
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 20/67
Chức năng: Bật và tắt đèn
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 21/67
Chức năng: Đóng và mở cửa
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 22/67
Chức năng: Điều khiển quạt
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 23/67
Chức năng: Quạt tự động
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 24/67
Chức năng: Xem nhiệt độ và độ ẩm
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 25/67
Chức năng: Bật chế độ phát hiện người
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 26/67
Chức năng: Phát hiện người
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 27/67
Chức năng: Phát hiện vượt ngưỡng
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 28/67
Chức năng: Điều khiển bằng giọng nói
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 29/67
Biểu đồ tuần tự (Sequence diagram)
Chức năng: Đèn tự động
Sequence diagram phía trên trình bày quá trình thao tác giữa cảm biến và thiết bị đèn, cảm biến sẽ thông báo tới đèn tùy vào các ngưỡng đã được thiết lập trước đó , tùy vào mỗi ngưỡng thì đèn sẽ bật tắt theo các thông tin được gửi từ các cảm biến,sau đó hệ thống sẽ cập nhật lại tráng thái mới và lưu xuống database
Chức năng: Bật và tắt đèn
Sequence diagram phía trên trình bày quá trình người dùng thao tác với hệ thống để bật, tắt đèn thông qua phần mềm Ban đầu người dùng sẽ đăng nhập và ấn vào mục "Bảng điều khiển" trên giao diện chính của chương trình, sau đó người dùng sẽ được hệ thống điều hướng tới phần Bảng điều khiển Tại đây người dùng có thể chọn phòng mà mình muốn thao tác với đèn ở phòng đó Sau khi ấn chọn phòng xong màn hình sẽ hiện ra danh sách tất cả các thiết bị, người dùng có thể ấn vào toggle của thiết bị đèn mình muốn thao tác để bật tắt tùy thích và ngược lại.
Chức năng: Đóng và mở cửa
Người dùng đăng nhập vào giao diện chính, chọn mục "Bảng điều khiển" để điều hướng đến phần Bảng điều khiển Tại đây, người dùng chọn phòng muốn thao tác cửa rồi ấn toggle thiết bị cửa để đóng mở.
Chức năng: Điều khiển quạt
Sequence diagram phía trên trình bày quá trình người dùng thao tác với hệ thống để điều khiển thông qua phần mềm Ban đầu người dùng sẽ đăng nhập và ấn vào mục "Bảng điều khiển" trên giao diện chính của chương trình, sau đó người dùng sẽ được hệ thống điều hướng tới phần Bảng điều khiển Tại đây người dùng có thể chọn phòng mà mình muốn thao tác với cửa ở phòng đó Sau khi ấn chọn phòng xong Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 30/67 Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 31/67 Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 32/67 Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 33/67 màn hình sẽ hiện ra danh sách tất cả các thiết bị, người dùng có thể ấn vào toggle của thiết bị quạt mình muốn thao tác để bật tắt hoặc điều chỉnh tốc độ quay của quạt.
Chức năng: Quạt tự động
Sequence diagram phía trên trình bày quá trình thao tác giữa cảm biến và thiết bị quạt, cảm biến sẽ thông báo tới đèn tùy vào các ngưỡng đã được thiết lập trước đó , tùy vào mỗi ngưỡng thì đèn sẽ bật tắt theo các thông tin được gửi từ các cảm biến, sau đó hệ thống sẽ cập nhật lại tráng thái mới và lưu xuống database.
Chức năng: Xem nhiệt độ và độ ẩm
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 34/67 Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 35/67
Sequence diagram phía trên trình bày quá trình người dùng thao tác với hệ thống để xem nhiệt độ hoặc độ ẩm của căn phòng trong nhà Đầu tiên người dùng đăng nhập thành công vào hệ thống, phần mềm không bị bảo trì Sau đó người dùng nhấn vào mục “Bảng điều khiển” trên sidebar và hệ thống hiển thị ra danh sách các phòng mà người dùng muốn xem nhiệt độ và độ ẩm Người dùng ấn vào phòng cụ thể muốn xem nhiệt độ và độ ẩm Hệ thống hiển thị ra danh sách các thiết bị có kết nối với phần mềm trong phòng được chọn Người dùng ấn vào biểu tượng nhiệt độ/độ ẩm biểu hiện cho nhiệt độ/độ ẩm của phòng đó Hệ thống hiển thị thông tin về nhiệt độ và độ ẩm hiện tại trong phòng. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 36/67
Chức năng: Bật/tắt chế độ phát hiện người
Biểu đồ trình tự ở trên mô tả hành trình người dùng tương tác với hệ thống để bật/tắt tính năng phát hiện người qua phần mềm Người dùng đăng nhập, trên giao diện chính, chọn "Bảng điều khiển" Hệ thống chuyển hướng đến "Bảng điều khiển", người dùng chọn phòng muốn nhận thông báo khi phát hiện người Sau khi chọn phòng, màn hình hiển thị danh sách các thiết bị có chức năng phát hiện người, người dùng bật/tắt bằng cách nhấp vào nút chuyển đổi chế độ phát hiện người.
Chức năng: Phát hiện người
Sequence diagram phía trên trình bày quá trình thao tác giữa cảm biến và hệ thống, cảm biến sẽ gửi phản hồi đến hệ thống nếu phát hiện người, sau đó hệ thống sẽ gửi thông báo tới thiết bị và lưu thời gian phát hiện vào database.
Chức năng: Phát hiện vượt ngưỡng
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 38/67 Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 39/67
Chức năng: Điều khiển bằng giọng nói
Sequence diagram phía trên trình bày quá trình người dùng ra lệnh cho hệ thống thông qua giọng nói Đầu tiên, người dùng nhấn vào biểu tượng micro, hệ thống hiển thị modal sẵn sàng lắng nghe lệnh của người dùng.
Sau khi nhận được lệnh, hệ thống sẽ gửi yêu cầu điều khiển thiết bị đến server Adafruit đến feed tương ứng.
Cuối cùng, hệ thống phản hồi người dùng điều khiển thiết bị qua giọng nói thành công. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 40/67
Casestudy cho các thiết bị và State chart diagram
Quạt tự động theo cảm biến nhiệt độ
Problem Khi nhiệt độ không khí vượt ngưỡng
1 Nhiệt độ không khí cao hơn 35 độ C
2 Nhiệt độ không khí cao hơn 30 độ C
3 Nhiệt độ không khí cao hơn 25 độ C
4 Nhiệt độ không khí thấp hơn 25 độ C
Solution Khi nhiệt độ không khí vượt ngưỡng
1 Quạt tự động chạy với mức 3 (tương ứng tốc độ quay 100%)
2 Quạt tự động chạy với mức 2 (tương ứng tốc độ quay 70%)
3 Quạt tự động chạy với mức 1 (tương ứng tốc độ quay 30%)
4 Quạt tự động tắt (tương ứng tốc độ quay 0%)
Result Quạt được điều khiển tự động khi nhiệt độ không khí vượt ngưỡng
Conclude Quạt được thiết lập để người dùng có khả năng chuyển qua chế độ tự động thay vì chỉnh bằng tay Điều này giúp gia tăng trải nghiệm của người dùng khi sử dụng hệ thống đáp ứng được sự thay đổi nhiệt độ không khí
Hình 1: Điều khiển quạt mini theo nhiệt độ Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 41/67
Đèn tự động theo cảm biến ánh sáng
Case Đèn tự động theo cảm biến ánh sáng
Problem Khi người dùng chuyển qua chế độ đèn tự động,
1 Cường độ ánh sáng cao hơn 80%
2 Cường độ ánh sáng cao hơn 60%
3 Cường độ ánh sáng cao hơn 40%
4 Cường độ ánh sáng cao hơn 20%
5 Cường độ ánh sáng thấp hơn 20%
Result Đèn được điều khiển tự động khi có sự thay đổi về cường độ ánh sáng
Conclude Quạt được thiết lập để người dùng có khả năng chuyển qua chế độ tự động thay vì chỉnh bằng tay Điều này giúp gia tăng trải nghiệm của người dùng khi sử dụng hệ thống đáp ứng được sự thay đổi nhiệt độ không khí
Call-to-Action None Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 42/67
Hình 2: Điều khiển đèn LED theo độ sáng Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 43/67
Đèn tự động khi phát hiện chuyển động
Case Đèn tự động khi phát hiện chuyển động
1 Cảm biến chuyển động phát hiện có sự chuyển động trong phạm vi 6m và cảm biến ánh sáng ghi nhận cường độ ánh sáng dưới 20%
2 Cảm biến chuyển động phát hiện không có sự chuyển động trong phạm vi 6m và cảm biến ánh sáng ghi nhận cường độ ánh sáng dưới 20%
3 Cảm biến chuyển động phát hiện có sự chuyển động trong phạm vi 6m và cảm biến ánh sáng ghi nhận cường độ ánh sáng trên 20%
4 Cảm biến chuyển động phát hiện không có sự chuyển động trong phạm vi 6m và cảm biến ánh sáng ghi nhận cường độ ánh sáng trên 20%
Result Đèn được điều khiển tự động khi phát hiện chuyển động và cường độ ánh sáng yếu
Conclude Đèn được thiết lập để có khả năng bật tắt tự động thay vì chỉnh bằng tay khi phát hiện chuyển động và cường độ ánh sáng yếu. Điều này giúp gia tăng trải nghiệm của người dùng khi sử dụng hệ thống.
Call-to-Action None Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 44/67
Cửa tự động
Problem Khi người dùng chuyển qua chế độ cửa tự động Sau mỗi 2 giây,
1 Cảm biến khoảng cách phát hiện có người trong phạm vi 50cm
2 Cảm biến khoảng cách phát hiện không có người trong phạm vi 50cm
Solution Khi người dùng chuyển qua chế độ cửa tự động Sau mỗi 2 giây,
Result Cửa tự động mở khi có người trong phạm vi 50cm và tự động đóng khi không có người.
Conclude Cửa được điều khiển thông qua ứng dụng giúp cho việc kiểm tra và kiểm soát an ninh tốt hơn, giúp cho việc đóng mở khóa cửa thực hiện từ xa và dễ dàng.
Hình 3: Điều khiển cửa tự động theo khoảng cách Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 45/67
Mockup
a Header
Đăng nhập Đăng nhập Đăng ký Đăng nhập Đăng ký
Hình 4: Giao diện Header của trang web Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 46/67
• Width: 100% (tùy thuộc vào độ rộng màn hình của các thiết bị)
• Bộ icon được tải thành file svg từ Figma Community.
• Người dùng ấn vào biểu tượng Menu ở bên trái của Header để ẩn/hiện thanh Sidebar.
• Người dùng nhấn nút "Đăng nhập" để chuyển tới trang Đăng nhập.
• Người dùng nhấn nút "Đăng ký" để chuyển tới trang Đăng ký.
b Sidebar
Hình 5: Giao diện Sidebar của trang web Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 47/67
• Height: 100vh (100% chiều cao của khung nhìn)
• Width: 250px (đối với Tablet và Desktop), 100% (đối với Mobile)
• Bộ icon được tải thành file svg từ Figma Community.
• Người dùng nhấn nút "Trang chủ" để chuyển tới trang chủ.
• Người dùng nhấn nút "Bảng điều khiển" để chuyển tới trang "Bảng điều khiển".
• Người dùng nhấn nút "Cài đặt" để chuyển tới trang "Cài đặt".
• Người dùng nhấn nút "Thông báo" để chuyển tới trang "Thông báo".
• Người dùng nhấn nút "Báo cáo" để chuyển tới trang "Báo cáo".
• Lưu ý: Nếu người dùng chưa đăng nhập vào hệ thống, các trang "Bảng điều khiển", "Cài đặt",
"Thông báo", "Báo cáo" sẽ không được phép truy cập Thay vào đó, hệ thống sẽ dẫn tới trang Đăng nhập khi người dùng nhấn nút trên Sidebar để truy cập các trang trên.
c Footer
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 48/67
Company About us Blog We’re hiring!
Sign Up For Email & Get 50 Points!
Offer delivered within 4 days after signup.
Submit © 2023 Designer Brands All rights reserved Privacy Policy | Terms of Use | Home Secure
Company About us Blog We’re hiring!
Sign Up For Email & Get 50 Points!
Offer delivered within 4 days after signup.
Submit © 2023 Designer Brands All rights reserved Privacy Policy | Terms of Use | Home Secure
Sign Up For Email & Get 50 Points!
Offer delivered within 4 days after signup.
Submit © 2023 Designer Brands All rights reserved
Privacy Policy | Terms of Use | Home Secure
Hình 6: Giao diện Footer của trang web Tổng quan
• Height: 341px (đối với Desktop), 534px (đối với Tablet), 696px (đối với Mobile)
• Width: 100% (tùy thuộc vào độ rộng màn hình của các thiết bị) Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 49/67
• Bộ icon được tải thành file svg từ Figma Community.
• Người dùng ấn vào các liên kết dẫn đến các nền tảng mạng xã hội và các trang liên quan của nhóm dự án.
• Người dùng điền email và nhấn nút Submit để đăng ký nhận thông báo đến email.
Home page
Hình 7: Giao diện Trang chủ (Home page) của trang web Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 50/67
Giao diện trang chủ cung cấp các thông tin giới thiệu tổng quan về các chức năng của trang web. Giao diện Trang chủ bao gồm các phần chính sau:
• Slider: bao gồm ảnh, nội dung tổng quan về trang web và nút điều khiển cho phép chuyển qua lại giữa các nội dung.
• Mục tính năng: Cho phép người dùng biết được khái quát về các tính năng mà ứng dụng mang lại.
Log in / Sign up page
Hình 8: Giao diện trang Đăng nhập (Login page) của trang web
Giao diện đăng nhập cho phép người dùng nhập email và mật khẩu để đăng nhập vào hệ thống Nếu chưa có tài khoản, người dùng có thể chuyển sang tab Đăng ký để tiến hành tạo tài khoản mới để truy cập vào hệ thống.
Account management page
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 51/67
Dashboard page
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 52/67
Hình 9: Giao diện trang Bảng điều khiển (Dashbooard page) của trang web
Giao diện Bảng điều khiển là trung tâm quản lý của ngôi nhà thông minh, cho phép người dùng theo dõi các thông số môi trường (nhiệt độ, độ ẩm) và điều khiển các thiết bị (đèn, quạt, cửa) Nó gồm các phần chính như lệnh điều khiển thiết bị, quản lý cảm biến.
• Tab danh sách các phòng: Người dùng chọn phòng muốn quản lý, sau đó nhấn nút ở tên phòng đó.
• Mục cảm biến: Mỗi phòng gồm 3 cảm biến: ánh sáng, nhiệt độ, độ ẩm Người dùng có thể xem giá trị hiện tại mà cảm biến đo được cũng như xem các ngưỡng input của cảm biến Người dùng có thể ấn vào nút Settings tại cảm biến để có thể thiết lập các ngưỡng input theo ý mình.
• Mục thiết bị: Bao gồm danh sách các thiết bị trong phòng Mỗi thiết bị bao gồm biểu tượng, tên,nút điều khiển trạng thái và chế độ (tự động hoặc chỉnh tay), đối với quạt thì có thêm nút để điều khiển tốc độ quay.
Settings page
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 53/67
Hình 10: Giao diện trang Cài đặt (Settings page) của trang web
Giao diện Cài đặt cho phép người dùng tùy chỉnh các ngưỡng input của các thiết bị cảm biến Giao diện Cài đặt bao gồm các phần chính sau:
• Tab danh sách các phòng: Người dùng chọn phòng muốn quản lý, sau đó nhấn nút ở tên phòng đó.
• Mục cảm biến: Mỗi phòng gồm 3 cảm biến: ánh sáng, nhiệt độ, độ ẩm Người dùng có thể thiết lập các ngưỡng input của cảm biến theo ý mình Sau đó nhấn nút "Lưu thay đổi"
Notification page
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 54/67
Hình 11: Giao diện trang Thông báo (Notification page) của trang web
Giao diện thông báo cho phép người dùng xem được các thông báo về cảm biến vượt ngưỡng hoặc khi phát hiện có người Những thông báo mới có màu chữ và nền đậm hơn, và có thêm dấu chấm tròn màu xanh, giúp người dùng dễ dàng nhận biết Giao diện Thông báo bao gồm các phần chính sau:
• Tab lọc thông báo: Lọc thông báo theo từng loại: Tất cả, Cảm biến vượt ngưỡng và Phát hiện có người.
• Nút dánh dấu đã đọc tất cả: Cho phép người dùng đánh dấu tất cả thông báo là đã đọc.
• Mục thông báo: Bao gồm các thông báo đã đọc và chưa đọc Mỗi thông báo bao gồm nội dung thông báo và thời gian xảy ra các sự kiện.
• Người dùng nhấn vào tab lọc thông báo để xem thông báo theo từng loại.
• Người dùng nhấn nút "Đánh dấu đã đọc" để đọc toàn bộ thông báo.
• Người dùng nhấn dấu tick trên từng thông báo để xác nhận đã đọc thông báo đó.
Report page
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 55/67
Hình 12: Giao diện trang Báo cáo (Report page) của trang web
Giao diện Báo cáo cho phép người dùng xem được các thống kê về mức độ sử dụng điện của thiết bị, cũng như biểu đồ để theo dõi nhiệt độ, độ ẩm trong từng phòng của ngôi nhà Giao diện Báo cáo bao gồm các thành phần chính sau:
• Tab danh sách các phòng: Người dùng chọn phòng muốn quản lý, sau đó nhấn nút ở tên phòng đó.
• Mục thống kê hàng tháng: Cho phép người dùng xem các biểu đồ về mức độ sử dụng điện của thiết bị, cũng như nhiệt độ, độ ẩm.
• Mục thiết bị: Khi người dùng đang xem biểu đồ về mức độ sử dụng điện năng, người dùng có thể chọn từng thiết bị cụ thể để xem chi tiết cho thiết bị đó.
Screen Flow
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 56/67
Trang chủ chính trước khi đăng nhập
Click, đến trang đăng nhập
Nhập thông tin tài khoản Nhập mật khẩu Click, đến trang chủ chính
Trang chủ chính sau khi đăng nhập
Click, đến trang hiển thị các chức năng Click, đến trang cài đặt
Click, đến trang thông báo
Trang sử dụng các chức năng thông minh
Trang cài đặt Trang thông báo
Click, đến trang thống kê
Trang thông tin tài khoản
Toggle, hiện cửa sổ thông tin tài khoản Click, trở về lại trang chủ chính trước khi đăng nhập
Click, đến trang thông tin tài khoản
Click, chuyển qua chế độ chỉnh sửa
Chọn phòng muốn xem Click, hiện rõ thanh tab
Nhập thông tin tài khoản Nhập mật khẩu Confirm lại mật khẩu Nhập tên tài khoản
Click, đến trang đăng ký
Click, đến trang đăng nhập
Click, đến trang đăng ký
Database design
Entity-Relationship Diagram (ER diagram)
Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 57/67
Relation Schema
Hình 14: Relation Schema cho toàn hệ thống Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 58/67
Architectural diagram
Ohstem IOT Gateway Web UI
( nhiệt độ, độ ẩm, khoảng cách, ánh sáng)
Axios HTTP request HTTP response ( Json content)
Axios HTTP request HTTP response gửi dữ liệu ( thông qua Driver) Điều khiển bật / tắt, thay đổi trạng thái ( auto, manual) interact(Click/Voice) display
Request ( MongoDB Wire Protocol) response (MongoDB Wire Protocol) Điểu khiển thông qua cable
Hình 15: architectural diagram cho toàn hệ thống
• Sử dụng API để giao tiếp với Ohstem IoT Gateway Ví dụ, câu lệnh gọi API từ phía FE: axios.get(’/api/devices/status’) // Lấy trạng thái thiết bị axios.post(’/api/devices/control’, deviceId: 1, command: ’turnOn’) // Điều khiển thiết bị
• Giao tiếp với MongoDB database thông qua MongoDB Node.js driver, sử dụng giao thức MongoDB Wire Protocol.
• Lưu trữ dữ liệu hệ thống, sử dụng phiên bản MongoDB 6.0.
• Điều khiển các thiết bị (Đèn, Cửa, Quạt) dựa trên lệnh nhận được từ Ohstem IoT Gateway Ví dụ, câu lệnh điều khiển:
/feeds/12345?value=1 // Bật thiết bị với feed ID 12345 Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 59/67
Tìm hiểu công nghệ
Frontend
Trong dự án này, ReactJS và Tailwind CSS là hai công nghệ cốt lõi cho phát triển giao diện người dùng ReactJS là thư viện JavaScript được ưa chuộng để xây dựng giao diện người dùng, trong khi Tailwind CSS là CSS framework nhẹ và mạnh mẽ, hỗ trợ thiết kế giao diện một cách dễ dàng.
ReactJS là một thư viện JavaScript mã nguồn mở phát triển bởi Facebook, được sử dụng rộng rãi cho việc xây dựng các ứng dụng web động và hiệu quả Dưới đây là một số điểm quan trọng về ReactJS:
• Component-Based Architecture: ReactJS sử dụng kiến trúc dựa trên các component, cho phép phân tách giao diện thành các phần nhỏ độc lập Các component này có thể được tái sử dụng, giúp tăng tính modular và dễ bảo trì của mã nguồn.
• Virtual DOM: ReactJS sử dụng một biểu diễn trừu tượng của DOM gọi là Virtual DOM Khi có thay đổi trong dữ liệu, React so sánh Virtual DOM mới với Virtual DOM cũ để xác định các thay đổi cần áp dụng trên DOM thực sự Điều này giúp giảm thiểu số lần cập nhật trên DOM thực và tăng hiệu suất ứng dụng.
• JSX (JavaScript XML): ReactJS cho phép viết HTML trong JavaScript thông qua JSX, một cú pháp mở rộng giúp tạo ra các component một cách dễ dàng và rõ ràng hơn.
Tailwind CSS là một framework CSS được thiết kế để giúp tăng tốc độ phát triển và cung cấp cách tiếp cận linh hoạt trong thiết kế giao diện Dưới đây là một số điểm quan trọng của Tailwind CSS:
• Utility-First Approach: Tailwind CSS tập trung vào việc cung cấp một loạt các lớp CSS tiện ích, mỗi lớp đại diện cho một thuộc tính cụ thể như màu sắc, kích thước hoặc vị trí Điều này cho phép phát triển viên thiết kế giao diện một cách nhanh chóng bằng cách áp dụng các lớp tiện ích trực tiếp vào các phần tử HTML.
Tailwind CSS hỗ trợ tùy biến các lớp tiện ích CSS theo nhu cầu cụ thể của dự án Người dùng có thể tạo và chỉnh sửa các lớp này để phù hợp với thiết kế giao diện độc đáo của ứng dụng của họ.
• Optimized for Production: Tailwind CSS cung cấp các công cụ tối ưu hóa để giảm kích thước của CSS đầu ra, bao gồm loại bỏ các lớp không sử dụng và nén CSS để tăng tốc độ tải trang.
3 Tại sao nhóm chọn sử dụng ReactJS và Tailwind CSS?
• Phát triển nhanh chóng: ReactJS và TailwindCSS giúp rút ngắn thời gian phát triển giao diện. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 60/67
• Dễ dàng bảo trì: Kiến trúc component-based của ReactJS và tính nhất quán của TailwindCSS giúp dễ dàng bảo trì và cập nhật giao diện.
TailwindCSS cung cấp các class CSS hiện đại và dễ dàng tùy chỉnh, giúp tạo ra giao diện đẹp mắt và bắt kịp xu hướng thiết kế mới nhất Tone màu tươi sáng, bố cục rõ ràng và các yếu tố trực quan hấp dẫn đảm bảo trải nghiệm người dùng tuyệt vời Mỗi thành phần được thiết kế tỉ mỉ, từ nút bấm đến hộp thoại, đều có thể dễ dàng tùy chỉnh bằng cách thêm hoặc loại bỏ các class CSS cụ thể.
Backend
Trong phần này, ba công nghệ chính được sử dụng cho phát triển backend: Node.js, Express.js và Mon- goDB Node.js là một môi trường thực thi JavaScript trên máy chủ, Express.js là một framework web cho Node.js, và MongoDB là một hệ thống cơ sở dữ liệu NoSQL.
Node.js là một môi trường thực thi JavaScript được xây dựng trên JavaScript Engine của Chrome (V8 Engine) Nó cho phép chạy JavaScript ở phía server và xây dựng các ứng dụng web hiệu suất cao Dưới đây là một số điểm quan trọng về Node.js:
• Non-blocking I/O: Node.js sử dụng mô hình xử lý không đồng bộ (non-blocking) để xử lý các yêu cầu I/O, giúp tăng hiệu suất của ứng dụng bằng cách cho phép xử lý đồng thời nhiều yêu cầu mà không bị chặn. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 61/67
• JavaScript Everywhere: Node.js cho phép sử dụng JavaScript cả phía server và phía client, giúp đơn giản hóa việc phát triển và duy trì ứng dụng bằng cách chia sẻ mã nguồn giữa cả hai môi trường.
NPM (Node Package Manager) là một công cụ quản lý gói cho JavaScript, cho phép cài đặt và quản lý các thư viện và công cụ thiết yếu cho dự án NPM giúp tiết kiệm thời gian và công sức phát triển bằng cách cung cấp một kho lưu trữ các gói dễ truy cập và dễ cài đặt.
Express.js là một framework web cho Node.js, cung cấp các tính năng cần thiết để phát triển các ứng dụng web và API Dưới đây là một số điểm quan trọng về Express.js:
• Routing: Express.js cung cấp một hệ thống định tuyến linh hoạt, cho phép xác định các tuyến đường và xử lý các yêu cầu HTTP tương ứng.
• Middleware: Middleware cho phép xử lý các yêu cầu HTTP trước khi chúng đến các xử lý cuối cùng Điều này cho phép thực hiện các chức năng như xác thực, ghi nhật ký và xử lý lỗi dễ dàng hơn.
• Integration with Other Libraries: Express.js dễ dàng tích hợp với các thư viện và middleware bổ sung, giúp mở rộng chức năng của ứng dụng một cách linh hoạt.
MongoDB là một hệ thống cơ sở dữ liệu NoSQL phổ biến, được thiết kế để lưu trữ dữ liệu dưới dạng tài liệu JSON Nó phù hợp với các ứng dụng cần linh hoạt trong cấu trúc dữ liệu và khả năng mở rộng cao Dưới đây là một số điểm quan trọng về MongoDB:
• Document-Oriented: MongoDB lưu trữ dữ liệu trong các tài liệu JSON có cấu trúc linh hoạt, cho phép lưu trữ các loại dữ liệu phức tạp mà không cần phải tuân thủ một schema cố định. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 62/67
• Scalability: MongoDB dễ dàng mở rộng để xử lý tải lớn bằng cách sử dụng các cụm và phân phối dữ liệu trên nhiều máy chủ.
• Query Language: MongoDB cung cấp một ngôn ngữ truy vấn mạnh mẽ và linh hoạt, cho phép truy vấn dữ liệu theo nhiều tiêu chí khác nhau.
4 Tại sao nhóm chọn sử dụng Node.js, Express.js và MongoDB?
• Phát triển nhanh chóng: NodeJS, ExpressJS và MongoDB giúp rút ngắn thời gian phát triển backend.
• Khả năng mở rộng: Cả ba công nghệ đều có khả năng mở rộng tốt, đáp ứng nhu cầu tăng trưởng của dự án.
• Hiệu suất cao: NodeJS và MongoDB được tối ưu hóa cho hiệu suất cao.
• Linh hoạt: Dễ dàng thay đổi và mở rộng chức năng của ứng dụng.
IoT
Trong phần này, hai công nghệ quan trọng được sử dụng cho dự án IoT: Adafruit và Ohstem Adafruit là một công ty chuyên cung cấp các sản phẩm và dịch vụ liên quan đến IoT và phát triển phần cứng, trong khi Ohstem là một nền tảng phần mềm cho việc quản lý thiết bị IoT.
Adafruit là một công ty tiên phong trong việc cung cấp các công cụ và tài nguyên cho việc phát triển IoT Dưới đây là một số điểm quan trọng về Adafruit:
Adafruit là nhà cung cấp các thành phần phần cứng cho dự án IoT, trong đó bao gồm các bo mạch Arduino, Raspberry Pi, cảm biến, màn hình và nhiều hơn nữa.
• Hỗ Trợ Phần Mềm: Adafruit cung cấp các thư viện và ví dụ mã nguồn mở để giúp phát triển ứng dụng IoT dễ dàng hơn Các thư viện này thường được thiết kế để tương thích với các board phát triển phần cứng phổ biến.
• Cộng Đồng và Hỗ Trợ: Adafruit có một cộng đồng sôi động và hỗ trợ mạnh mẽ, với diễn đàn, blog và các kênh truyền thông xã hội để chia sẻ kiến thức và kinh nghiệm trong việc phát triển IoT.
Ohstem là nền tảng phần mềm hỗ trợ quản lý và giám sát thiết bị IoT Công ty cung cấp các bộ dụng cụ học tập về điện tử, lập trình, robot và IoT, kèm hướng dẫn chi tiết và bài học trực tuyến Một số điểm nổi bật của Ohstem bao gồm:
• Quản Lý Thiết Bị: Ohstem cung cấp giao diện quản lý đơn giản để đăng ký, theo dõi và quản lý các thiết bị IoT, bao gồm cả việc xem trạng thái và cập nhật phần mềm từ xa.
Giám sát và phân tích là một tính năng cốt lõi của nền tảng IoT, cho phép giám sát dữ liệu trực tiếp từ thiết bị IoT và phân tích dữ liệu theo những cách tùy chỉnh Bằng cách này, người dùng có thể theo dõi và nắm bắt các thông tin chi tiết quan trọng từ dữ liệu IoT của họ, giúp ra quyết định sáng suốt và cải thiện hiệu quả vận hành.
• Bảo Mật và Tính Bảo Mật: Ohstem cung cấp các tính năng bảo mật mạnh mẽ để bảo vệ dữ liệu và các thiết bị IoT khỏi các mối đe dọa mạng.
3 Tại sao Adafruit và Ohstem phù hợp với dự án?
Cả Adafruit và Ohstem đều dễ dàng tiếp cận cho người mới bắt đầu và các dự án giáo dục Adafruit cung cấp các sản phẩm dễ sử dụng và tài liệu thân thiện, trong khi Ohstem tập trung vào tính khả dụng và hỗ trợ trong cộng đồng Điều này làm cho cả hai nền tảng này trở thành lựa chọn lý tưởng cho những cá nhân và trường học muốn bắt đầu với công nghệ vi điện tử và điện tử.
• Hỗ trợ toàn diện: Cả hai nền tảng đều cung cấp hỗ trợ kỹ thuật và cộng đồng người dùng lớn.
• Tính linh hoạt: Adafruit cung cấp nhiều lựa chọn linh kiện và kit phát triển, cho phép tùy chỉnh dự án theo nhu cầu. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 63/67
Tính năng đặc trưng CNPM: Design Pattern
Design Pattern: Adapter
• Adapter: là một Structural Design Pattern cho phép các objects với các interface không tương thích với nhau tương tác với nhau Adapter sẽ đóng vai trò như là một lớp trung gian một bên giao tiếp với object thứ nhất, bên còn lại giao tiếp với object thứ hai Một ví dụ dễ hiểu đó chính là việc ta mua thêm 1 thiết bị chuyển đổi ổ cắm từ 2 chân thành 3 chân, thiết bị chuyển đổi đó chính là adapter cho phép phích 3 chân có thể sự dụng được với ổ 2 chân mà không cần phải thay đổi bất kì đặc điểm gì của phích cắm và ổ cắm.
Hình 16: Ảnh minh họa cho Design Pattern: Adapter
• Đối với project của nhóm ở BE, lớp service (user-service, notification-service, ) đóng vai trò là adapter Lớp route ở BE là nơi nhận request từ bên FE với tất cả các dữ liệu cần thiết để thực hiện request như đổi mật khẩu, tạo tài khoản, thiết lập ngưỡng, lớp function bao gồm các hàm giao tiếp với Database MongoDB, các hàm này yêu cầu việc nhận vào một input cụ thể và input phải valid, thế nên lớp service sẽ là nơi nhận request từ lớp route, xử lí valid dữ liệu, gọi các function cụ thể ở lớp function và trả kết quả về lớp route, đảm bảo không xảy ra lỗi ở lớp Function. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 64/67
Design Pattern: Facade
• Facade: là một Structural Design Pattern với mục đích làm đơn giản hóa interface của thư viện, framework hoặc các class phức tạp Một ví dụ thực tế của facade ta có thể nói tới đó chính là việc ta đặt hàng qua điện thoại, quá trình đặt hàng của ta cực kì đơn giản chỉ cần gọi cho người đại diện của cửa hàng là ta muốn đặt gì, giao ở đâu, trả tiền bằng gì, giao hàng bởi đơn vị nào Chỉ cần như thế là ta đã đặt hàng xong sau 1 cuộc gọi và 1 cuộc nói chuyện, nhưng phía sau đó nó là một chuỗi các quá trình gồm việc kiểm tra sản phầm còn hàng hay không, cập nhật hình thức thanh toán, đóng hàng như nào, đơn vị nào cung cấp, tính thuế bao nhiêu, tất cả nhưng việc này đều được người đại diện thực hiện hết cho chúng ta mà chúng ta không cần quan tâm quá trình này thực hiện như thế nào. Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 65/67
Hình 18: Ảnh minh họa cho Design Pattern: Facade
• Đối với project của nhóm thì việc ta thao tác với Database là một việc rất phức tạp vì MongoDB cung cấp cho ta rất nhiều hàm như findOne, findById, findAndReplace, những hàm này cực kì lạ lẫm đối với phía FE, vì thế lớp Function sinh ra đã biến những hàm trên thành những hàm dễ hiểu hơn như changepassword, createUsers, các hàm này bao gồm một hoặc nhiều hàm được cung cấp từ mongoDB kết hợp với nhau để thực hiện đúng mong muốn từ phía người dùng Vậy nên lớp function đóng vai trò như là Facade lớp bao gồm các hàm của MongoDB cung cấp.
Hình 19: Áp dụng Design Pattern: Facade vào dự án Đồ án tổng hợp hướng CNPM - Niên khóa 2023-2024 Trang 66/67