TÓM TẮT Nhóm chúng tôi đã phát triển một giải pháp số hóa các tủ đồ dựa trên hệ thống SaaS Software as a Service cho phép quản lý, vận hành và giám sát các tủ gửi đồ thông minh từ xa.. D
TỔNG QUAN VỀ ĐỀ TÀI
Lý do chọn đề tài
Trong kỷ nguyên số hóa và công nghệ thông tin, việc tích hợp công nghệ vào các không gian công cộng đã trở thành một xu hướng quan trọng, góp phần nâng cao chất lượng cuộc sống hàng ngày Dự án “Thiết kế và chế tạo tủ gửi đồ thông minh kết hợp hệ thống quản lý và đặt chỗ” của nhóm chúng tôi là bước tiến quan trọng trong việc cải thiện trải nghiệm của người dùng tại các địa điểm công cộng như thư viện, trường học, chung cư và công sở Sản phẩm này không chỉ giải quyết vấn đề lưu trữ đồ cá nhân tạm thời mà còn mang lại sự tiện lợi và an toàn cho người dùng.
Tính cấp thiết của đề tài
Xuất phát từ một bài báo của VNExpress về vấn đề “Dân chung cư loay hay giải quyết nạn mất đồ ở sảnh” [1] , nhóm chúng tôi nhận thấy rằng việc phát triển thương mại điện tử cùng với các dịch vụ chuyển phát đang gây ra các khó khăn cho người nhận hàng tại các chung cư Thông thường, cư dân phải người người vận chuyển gửi đơn hàng cho bảo vệ tạm giữ, hoặc để ở bất kỳ chỗ nào có thể, dẫn đến tình trạng mất mát tài sản Một số chung cư có trang bị tủ giữ đồ, nhưng bản thân người giao hàng không có chìa khóa để mở tủ Với nhóm chúng tôi đây là một trường hợp điển hình cho đề tài này cần phải giải quyết.
Ý nghĩa thực tiễn của đề tài
Việc nghiên cứu, phát triển và áp dụng hệ thống tủ giữ đồ kết nối IoT và hệ thống đặt chỗ tích hợp mang lại nhiều ý nghĩa thực tiễn:
• Cải thiện trải nghiệm người dùng trong việc sử dụng dịch vụ: Giúp người sử dụng dễ dàng và an tâm lưu trữ đồ cá nhân tạm thời tại các nơi công cộng
• Giảm tình trạng mất mát tài sản: Ngăn chặn tình trạng mất mát tài sản cá nhân do sai sót hoặc trộm cắp
• Tối ưu hóa quản lý không gian: Hệ thống đặt chỗ tích hợp giúp quản lý tốt hơn việc sử dụng không gian lưu trữ, tránh tình trạng quá tải hoặc lãng phí
• Thúc đẩy sự phát triển của IoT: Đề tài này thúc đẩy việc ứng dụng IoT trong cuộc sống hàng ngày, thúc đẩy sự số hóa và sự phát triển của công nghệ.
Mục tiêu của đề tài
Mục tiêu của đề tài bao gồm:
• Thiết kế và phát triển tủ giữ đồ kết nối IoT: Tạo ra hệ thống tủ có khả năng kết nối với Internet, cho phép người dùng dễ dàng kiểm soát việc lưu trữ và truy cập đồ cá nhân
• Xây dựng hệ thống đặt chỗ tích hợp: Phát triển hệ thống đặt chỗ thông quan ứng dụng di động hoặc giao diện website, giúp người dùng đặt chỗ và quản lý tình trạng sử dụng tủ
• Tích hợp hệ thống thanh toán với VNPay và ZaloPay: Kết hợp với hệ thống thanh toán nhằm mở ra những hướng phát triển trong việc sử dụng sản phẩm từ đề tài này.
Quy mô đề tài
Đề tài nhằm phát triển một giải pháp lưu thông minh, hiện đại, phục vụ nhu cầu gửi đồ ngày càng cao trong xã hội hiện đại Tủ gửi đồ của nhóm chúng tôi sẽ được thiết kế để tích hợp các công nghệ như quản lý truy cập, hệ thống thanh toán, hệ thống đặt chỗ trực tuyến và khả năng tương tác thông qua các ứng dụng di động cùng với giao diện tương tác trên tủ gửi đồ Đề tài này nhóm chúng tôi không chỉ giới hạn ở việc chế tạo sản phẩm mà còn bao gồm việc nghiên cứu và phát triển phần mềm quản lý, cũng như xây dựng một hệ thống trên nền tảng điện toán đám mây Mục tiêu là tạo ra một hế thống tủ gửi đồ thông minh có thể được triển khai tại các địa điểm như trường học, chung cư, bệnh viện.
Phương pháp nghiên cứu
Các phương pháp nghiên cứu sẽ bao gồm:
• Phương pháp phân tích: Thu thập dữ liệu từ các nguồn tài liệu như internet, khảo sát thực tế, Để thiết kế triển khai sản phẩm phù hợp với môi trường cũng như cải thiện nâng cao trải nghiệm của người dung đối với sản phẩm
• Triển khai thử nghiệm: Áp dụng hệ thống vào môi trường thực tế để kiểm tra tính năng, hiệu suất và sự bảo mật
• Đánh giá và phân tích kết quả: Đánh giá hiệu suất của hệ thống thông qua việc thu thập dữ liệu và phân tích các kết quả thu được.
Giới hạn đề tài
Một số giới hạn của đề tài bao gồm:
• Giới hạn về thời gian:
- Thời gian nghiên cứu của chúng tôi có hạn, do đó không thể bao phủ toàn bộ khía cạnh của vấn đề
- Hệ thống trực tuyến chưa thể đặt tủ theo kích thước mong muốn nên hiện tại hệ thống tủ sẽ quy về một khích thước cố định
• Giới hạn về phạm vi:
- Chúng tôi tập trung vào việc phát triển hệ thống tủ kết nối IoT và hệ thống đặt chỗ tích hợp, mà không đi sâu vào các khía cạnh khác như phân tích sâu về thị trường hoặc phân tích chi phí
- Theo khảo sát thực tế thì các tủ đồ của chung cư, siêu thị thường được đặt trong môi trường trong nhà, mái hiên tránh nắng gió trực tiếp Nên chúng tôi quyết định giới hạn đề tài trong môi trường trong nhà Nhằm phù hợp với thực tế và giảm giá tiền thành phẩm.
CƠ SỞ LÝ THUYẾT
Internet vạn vật (IoT)
Internet và các ứng dụng của nó đã trở thành một phần không thể thiếu trong lối sống của con người ngày nay Nó đã trở thành một công cụ thiết yếu trong mọi khía cạnh đời sống Do nhu cầu và sự cần thiết khổng lồ, các nhà nghiên cứu đã vượt qua những khó khăn về việc kết nối các máy tính với nhau Những nghiên cứu này đã dẫn đến sự ra đời của một thiết bị tuyệt vời, Internet vạn vật (IoT) Giao tiếp trên internet đã phát triển từ tương tác người - người sang tương tác thiết bị - thiết bị ngày nay Các khái niệm IoT đã được đề xuất từ nhiều năm trước nhưng vẫn còn ở giai đoạn ban đầu của việc triển khai thương mại Trong đề tài này chúng tôi giới thiệu đến một khái niệm được công ty IBM phát biểu như sau: Internet of Things (IoT) đề cập đến mạng lưới các thiết bị vật lý, phương tiện, thiết bị và các vật thể vật lý khác được nhúng cảm biến, phần mềm và kết nối mạng, cho phép chúng thu thập và chia sẻ dữ liệu [2]
Ngày nay, chúng ta đang thấy sự phát triển lớn mạnh của AI, chúng ta dần thấy rằng máy tính đang dần thống trị thới giới bằng cách vượt trội về khả năng tính toán so với con người Từ việc sản xuất một chiếc bút đến một con tàu vũ trụ, máy tính và các thiết bị điện tử đều đóng vai trò trọng Việc điều khiển các thiết bị điện và điện tử - chúng ta có thể thấy đây chính là “Vật – Thing trong Internet of Thing” từ xa là một khái niệm quen thuộc từ đầu những năm 1990 nhưng vẫn chưa được triển khai rộng rãi trong xã hội cũng của chúng ta Môi trường IoT sẽ cho phép người dùng quản lý và tối ưu hóa của các thiết bị điện và điện tử bằng internet
Một trong những thách thức lớn nhất trong IoT là làm cho hai thế giới vật lý và thông tin trở nên gần nhau hơn Cảm biến làm cho quá trình này diễn ra nhanh hơn, cảm biến thu thập dữ liệu thô từ thiết bị vật lý từ các tình huống thực tế và chuyển đổi chúng thành định dạng có thể hiểu được của máy tính để nó có thể dễ dàng trao đổi với các “vật” Việc chọn phương pháp hay phương tiện phù hợp đê thực hiện quá trình này là một khía cạnh thách thức trong môi trường IoT Vì hầu hết các quá trình được thực hiện thông qua internet, chúng ta cần phải có một nền tảng kết nối internet hoạt động cao để giải quyết được các vấn đề đề giao tiếp
2.1.1 Lịch sử hình thành và phát triển IoT
Từ năm 1989, khi internet ra đời, việc kết nối các thiệt bị trên internet bắt đầu phổ biến Máy pha cà phê Trojan Room có thể là ứng dụng đầu tiên của loại này [3]
Hình 2.1: Máy pha cà phê Trojan Room - Thiết bị đầu tiên kết nối Internet
Năm 1990 John Romkey đã tạo ra thiết bị Internet đầu tiên, một cái bánh mì nướng có thể bật và tắt qua Internet Paul Saffo đã đưa ra một sự miêu tả ngắn gọn về cảm biến và hướng đi của chúng trong tương lai vào năm 1997 Năm 1999 thuật ngữ Internet of Things được đặt ra bởi Kevin Ashton, giám đốc điều hành của Trung tâm AutoID, MIT Họ cũng phát minh ra một hệ thống nhận dạng mặt hàng toàn cầu dựa trên RFID vào cùng năm Là một bước nhảy vọt lớn trong việc thương mại hóa IoT, vào năm 2000 tập đoàn điện tử LG thông báo kế hoạch tiết lộ một tủ lạnh thông minh có thể tự xác định liệu các món ăn được lưu trữ trong đó có được bổ sung hay không Năm 2003 RFID được triển khai ở mức độ khổng lồ trong quân đội Mỹ trong chương trình Savi của họ Cùng năm, tập đoàn bán lẻ Walmart triển khai RFID ở tất cả các cửa hàng của họ trên toàn thế giới với quy mô lớn Năm 2005 các ấn phẩm chính thống như The Guardian, Scientific American và Boston Globe đăng nhiều bài viết về IoT và hướng đi của nó trong tương lai Năm 2008 một nhóm các công ty thành lập Liên minh IPSO để thúc đẩy việc sử dụng Giao thức Internet (IP) trong các mạng của “thiết bị thông minh” và để kích hoạt Internet of Things
Cuối cùng, việc ra mắt IPv6 vào năm 2011 đã kích thích sự phát triển và quan tâm lớn trong lĩnh vực này Sau đó, các ông lớn IT như Cisco, IBM, Ericson đã tiến hành rất nhiều sáng kiến giáo dục và thương mại với IoT
2.1.2 Giao thức truyền thông trong IoT
Một số phương pháp kết nối không dây được công nhận và phổ biến trên toàn cầu cùng với những ưu và nhược điểm của chúng đối với tình huống IoT
RFID là một kỹ thuật sử dụng sóng vô tuyến để truyền dữ liệu Quá trình này được thực hiện bằng cách sử dụng các thẻ RFID được đặt ở các vị trí cần thiết Có hai loại thẻ RFID: thẻ chủ động là những thẻ có nguồn năng lượng bên trong và thẻ bị động là những thẻ không có nguồn năng lượng bên trong Những thẻ này giao tiếp với các đầu đọc RFID [4]
Tiêu chuẩn IEEE 802.11 được biết đến rộng rãi với tên gọi “Wi-Fi” là một phương tiện không dây được chấp nhận toàn cầu, dùng để gửi/nhận dữ liệu, tín hiệu, lệnh và nhiều thứ khác Nó hoạt động trong dải tần số 2.4GHz – 60GHz [5] Nó hỗ trợ tốc độ truyền dữ liệu từ 1Mb/s đến 54Mb/s [5] , nhưng tốc độ lên đến 6.75Gb/s [5] cũng đã được đạt được Wifi hiện là một tiện ích mặc định có sẵn trong mọi điện thoại thông minh, PDA, máy tính bảng, máy tính xách tay hiện đại Tiêu chuẩn WLAN này chỉ yêu cầu một bộ thu phát (thường là một bộ định tuyến) tạo ra một phạm vi hoạt động xung quanh nó Tùy thuộc vào khả năng của bộ thu phát, phạm vi và tốc độ của Wifi sẽ khác nhau Dựa trên ứng dụng mạng, nhiều tiêu chuẩn IEEE 802.11 (tổng hợp lại được gọi là các tiêu chuẩn Wifi) đã được đề xuất
Việc lắp đặt và bảo trì thiết bị Wifi đơn giản và tiết kiệm chi phí đã thúc đẩy việc sử dụng chúng trong nhiều năm qua Ngày nay, chúng ta thường thấy mạng Wifi ở các nơi công cộng, trường học, trường đại học, bệnh viện Phạm vi rộng lớn của Wifi sẽ là một lợi thế cho IoT, vì nó cần mạng của mình phổ biến khắp mọi nơi Việc triển khai một kịch bản như vậy bằng cơ sở hạ tầng có dây truyền thống là rất khó khăn Thiết bị Wifi có thể được triển khai ở bất kỳ khu vực xa xôi nào, bất kể địa hình và ràng buộc môi trường IoT yêu cầu truy cập vào mọi thiết bị, có nghĩa là số lượng thiết bị tăng lên từng ngày Đây là một ràng buộc liên quan đến phương tiện có dây hoặc RFID, vì cần phải lắp đặt thiết bị mới để thêm nhiều thiết bị hơn Tuy nhiên, với Wifi việc thêm nhiều thiết bị hơn là rất đơn giản, không cần phải lắp đặt bất kỳ thiết bị mới nào
Barcode – mã vạch là một ký hiệu được gắn vào mỗi đối tượng mà chỉ có thể được đọc bởi máy quét mã vạch Mã vạch được sử dụng từ đầu những năm 1970 và hiện nay được áp dụng ở khắp mọi nơi trong việc nhận dạng đối tượng ở hầu hết các công ty Nó trở nên nổi tiếng trên toàn thế giới sau khi hệ thống thanh toán tự động được triển khai ở nhiều nơi trên thế thới, ở Việt Nam chúng ta có thể dễ dàng thanh toán một ly cà phê sáng bằng mã vạch Mã vạch có thể được thực hiện đơn giản Không có khó khăn kỹ thuật nào trong việc triển khai hoặc sử dụng mã vạch Một phiên bản cập nhật của mã vạch dưới dạng ma trận 2D là mã QR
Hình 2.2: Cách loại mã vạch được sử dụng hiện nay
ZigBee là một tiêu chuẩn cho các thiết bị vô tuyến nhỏ, tiết kiệm năng lượng dựa trên tiêu chuẩn IEEE 802.15.4 - 2003 WPAN Nó cũng có thể được coi là một phiên bản tiết kiệm năng lượng của Wifi Nó hoạt động trong các dải tần số không cấp phép bao gồm 2.4GHz, 900MHz và 868MHz [5] Tiêu chuẩn này được chấp nhận và ủng hộ triển khai vào năm 2004 Sự tiết kiệm năng lượng của nó cho phép một thiết bị ZigBee gửi dữ liệu qua một khoảng cách dài vượt qua các thiết bị trung gian tạo thành một mạng lưới dạng lưới Nó có kết nối mạng an toàn với thời gian sử dụng pin rất dài Vào năm 2002 nhiều công ty nhỏ cùng thành lập liên minh ZigBee, một tổ chức phi lợi nhuận gồm các thành viên từ các lĩnh vực học thuật, chính phủ và công nghiệp
Bluetooth là một công nghệ phổ biến trong số người dùng điện thoại di động Đây là một công nghệ không dây mở cho PAN hoạt động ở băng tần ISM 2.4GHz [6] Những phát triển gần đây nhất trong công nghệ Bluetooth là sự phát triển của
“Bluetooth tiết kiệm năng lượng (BLE)” Có thể nói rằng IoT là một thực tế ngày nay nhờ vào Bluetooth Số lượng thiết bị điện tử mang lên người như: đồng hồ thông minh, điện thoại, tai nghe Kể từ khi ra đời vào năm 1998, Bluetooth đã chứng kiến những tiến bộ vượt bậc về công nghệ Điện thoại di động sử dụng công nghệ Bluetooth được theo sau bởi chuột Bluetooth, bàn phím, máy in,…
2.1.3 Ứng dụng của IoT trong các lĩnh vực khác nhau
Với sự phát triển nhanh chóng của internet, chúng tôi nhìn nhận IoT được ứng dụng trong những lĩnh vực sau: môi trường thông minh, ứng dụng trong công nghiệp, ứng dụng trong việc giám sát và cảnh báo và gần đây phát triển nhất là ứng dụng trong Logistic và vận chuyển
Tủ giữ đồ thông minh
Ngày nay, an ninh trở thành một vấn đề rất quan trọng Chúng ta luôn quan tâm đến việc bảo vệ tài sản của mình Trong đề tài này mục đích của chúng tôi là đưa ra một giải pháp SaaS cho việc xây dựng hệ thống tủ đồ thông minh Tủ gửi đồ thông minh này sẽ được sắp xếp tại các văn phòng, chung cư, trường học và các nơi công cộng khác để đảm bảo an ninh
2.2.1 Giới thiệu về tủ giữ đồ thông minh
Tủ giữ đồ thông minh là một loại tủ được tích hợp các công nghệ như: cảm biến, khóa điện tử, màn hình cảm ứng, kết nối internet và phần mềm quản lý Người dùng có thể sử dụng tủ giữ đồ thông minh bằng cách quét mã QR hoặc nhập mã số trên màn hình cảm ứng để mở khóa và đóng khóa tủ Hệ thống sẽ ghi nhận thời gian sử dụng và tính phí theo giờ hoặc theo ngày Người dùng có thể thanh toán bằng tiền mặt, thẻ, ví điện tử hoặc qua ứng dụng di động Tủ giữ đồ thông minh cũng có thể gửi thông báo cho người dùng khi có ai đó cố gắng mở tủ hoặc khi tủ bị hỏng
2.2.2 Ưu nhược và nhược điểm của tủ giữ đồ thông minh
Tủ giữ đồ thông minh là một giải pháp hiện đại và tiện ích cho việc lưu trữ và quản lý đồ cá nhân So với tủ giữ đồ truyền thống, tủ giữ đồ thông minh có nhiều ưu điểm nổi bật, như:
Tiết kiệm không gian: Tủ giữ đồ thông minh sử dụng công nghệ nhận diện khuôn mặt, vân tay hoặc mã QR để mở khóa, không cần chìa khóa hay thẻ Do đó, tủ giữ đồ thông minh có thể thiết kế nhỏ gọn hơn và tận dụng tối đa không gian
Tiện lợi: Tủ giữ đồ thông minh cho phép người dùng lấy và để đồ một cách nhanh chóng và dễ dàng, chỉ cần quét khuôn mặt, vân tay hoặc mã QR Người dùng cũng có thể kiểm tra trạng thái của tủ giữ đồ qua ứng dụng điện thoại hoặc website
An toàn: Tủ giữ đồ thông minh có hệ thống bảo mật cao, chỉ cho phép người dùng đã đăng ký truy cập vào tủ Tủ giữ đồ thông minh cũng có camera giám sát và cảnh báo khi có sự cố xảy ra
Hiện đại: Tủ giữ đồ thông minh mang lại cho người dùng một trải nghiệm mới lạ và thời thượng, phù hợp với xu hướng công nghệ 4.0
Tuy nhiên, tủ giữ đồ thông minh cũng không phải là hoàn hảo, mà còn có một số nhược điểm cần khắc phục, như:
Chi phí cao: Tủ giữ đồ thông minh yêu cầu một khoản đầu tư ban đầu lớn để mua sắm thiết bị và phần mềm Ngoài ra, tủ giữ đồ thông minh cũng tốn nhiều chi phí vận hành và bảo trì
Phụ thuộc vào điện và internet: Tủ giữ đồ thông minh hoạt động dựa trên nguồn điện và kết nối internet Nếu có sự cố về điện hoặc internet, tủ giữ đồ thông minh có thể không hoạt động được hoặc bị gián đoạn
Có thể bị hack hoặc lỗi phần mềm: Tủ giữ đồ thông minh sử dụng các công nghệ nhận diện khuôn mặt, vân tay hoặc mã QR để xác thực người dùng Tuy nhiên, các công nghệ này có thể bị hack hoặc lỗi phần mềm, dẫn đến việc mất an toàn cho người dùng và tài sản
Cần bảo trì thường xuyên: Tủ giữ đồ thông minh là một hệ thống phức tạp, gồm nhiều thiết bị và phần mềm liên kết với nhau Do đó, tủ giữ đồ thông minh cần được kiểm tra và bảo trì thường xuyên để đảm bảo hoạt động ổn định và hiệu quả
2.2.3 Các công nghệ được sử dụng trong tủ giữ đồ thông minh
Tủ gửi đồ thông minh là một hệ thống cho phép người dùng gửi và nhận đồ một cách tiện lợi và an toàn Để thực hiện được điều này, tủ gửi đồ thông minh sử dụng nhiều công nghệ hiện đại và tiên tiến, trong đề tài này chúng tôi liệt kê ra những công nghệ mà chúng tôi đã sử dụng trong sản phẩm của mình
SaaS (Software as a Service): Đây là một mô hình cung cấp phần mềm qua
Internet, cho phép người dùng truy cập và sử dụng phần mềm mà không cần cài đặt hay bảo trì Tủ gửi đồ thông minh sử dụng SaaS để cung cấp các ứng dụng quản lý, thanh toán, đặt chỗ và theo dõi cho người dùng và nhà cung cấp dịch vụ
AWS (Amazon Web Services): Đây là một nền tảng điện toán đám mây, cung cấp các dịch vụ như máy chủ, lưu trữ, bảo mật, phân tích và trí tuệ nhân tạo Tủ gửi đồ thông minh sử dụng AWS để lưu trữ và xử lý dữ liệu, cũng như tận dụng các dịch vụ khác của AWS để nâng cao hiệu năng và tính năng của hệ thống
Laravel Framework: Đây là một khung phát triển ứng dụng web bằng ngôn ngữ PHP, hỗ trợ các tính năng như xác thực, bảo mật, kiểm tra, định tuyến và caching
Tủ gửi đồ thông minh sử dụng Laravel Framework để xây dựng các ứng dụng web cho hệ thống, với giao diện thân thiện và chức năng đa dạng
React Native: Đây là một khung phát triển ứng dụng di động bằng ngôn ngữ
JavaScript, cho phép tạo ra các ứng dụng chạy trên nhiều nền tảng như iOS và Android Tủ gửi đồ thông minh sử dụng React Native để xây dựng các ứng dụng di động cho người dùng, với giao diện đẹp mắt và trải nghiệm mượt mà
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG TỦ GỬI ĐỒ
Sơ đồ khối hệ thống phần cứng
Hệ thống phần cứng của để tài được chúng tôi thiết kế gồm các thành phần chính như sau: nguồn điện, hệ thống điện – bộ điều khiển trung tâm, màn hình cảm ứng, tủ và các ổ khóa điện từ cho mỗi ngăn tủ Sơ đồ khối của hệ thống được minh hoạt như hình dưới đây
Hình 3.1: Sơ đồ khối các thành phần của hệ thống phần cứng
Trong chương này sẽ này sẽ đề cập đến thiết kế và thi công khối tủ và các ổ khóa điện từ.
Yêu cầu thiết kế hệ thống cơ khí
Khi thiết kế tủ, việc xác định rõ ràng nhu cầu sử dụng và điều kiện thực tế là vô cùng quan trọng Điều này giúp đảm bảo rằng thiết kế sẽ phù hợp và đáp ứng được nhu cầu cụ thể mà không gây lãng phí hoặc thiếu sót
3.2.1 Chọn dung tích ngăn tủ Đề tài hướng đến việc gửi đồ ở chung cư, trường học Việc chọn dung tích sẽ phụ thuộc vào môi trường hoạt động của tủ
Sinh viên học sinh thường có nhu cầu gửi đồ dùng cá nhân như balo, túi sách và áo khoác Trong đó balo là vật dụng lớn nhất
Còn ở chung cư sẽ là các bưu kiện, hàng hóa đã đặt hàng online hoặc gửi đồ dùng cá nhân Trong đặt hàng online thì mặt hàng mỹ phẩm, thời trang và phụ kiện công nghệ chiếm phần lớn đơn đặt hàng online theo thống kê hình bên dưới
Hình 3.2: Thống kê các mặt được mua trên sàn thương mại đại tử shopee –
Trong giới hạn đề tài của chúng tôi cũng đề cập hệ thống tủ chỉ có một kích thước duy nhất Để có thể tiết kiệm chi phí sản phẩm và đáp ứng được phần lớn trường hợp sử dụng tủ thì chúng tôi chọn kích thước dung tích tủ có thể chứa được balo laptop 15.6 inch Các mẫu laptop 15.6 inch thường có chiều dài từ khoảng 347mm, chiều rộng của màn hình khoảng 195mm, chênh lệch khoảng 10-20mm [7] tùy thiết kế Để đựng vừa laptop thì balo thường sẽ lớn hơn từ 50-80mm Chúng tôi quyết định chọn kích thước ngăn tủ khoảng 400mm x 200mm x 300mm
3.2.2 Chọn vật liệu cho tủ
Các vật liệu phổ biến trong việc thiết kế và gia công tủ bao gồm thép, nhôm và gỗ ép MDF Việc lựa chọn vật liệu phù hợp cho từng dự án cần dựa trên các yếu tố như độ bền, môi trường hoạt động, thẩm mỹ và giá thành
Trong phần phân tích chọn dung tích tủ 3.2.1, chúng tôi đã xem xét kích thước của balo để quyết định dung tích ngăn tủ sao cho phù hợp với nhu cầu sử dụng của đa số người dùng Dựa theo khuyến cáo của các tổ chức y tế quốc tế, trẻ em và thanh niên không nên mang vác quá 15% trọng lượng cơ thể của mình [8] Với trọng lượng trung bình của thanh niên Việt Nam là 54kg [9] , chúng tôi đã tính toán để đảm bảo hệ số an toàn là 5%, tương đương với 2.7 kg Do đó, khối lượng dự kiến tác động lên ngăn tủ là 10.8 kg
So sánh khả năng chịu tải giữa các vật liệu, thép có khả năng chịu tải cao nhất trong khi gỗ MDF có khả năng chịu tải thấp nhất Gỗ MDF có thể chịu được từ 146.57 kg đến 171.01 kg/m2 với độ dày 19mm [10]
Dựa vào giá cả thị trường hiện tại, gỗ MDF có giá rẻ nhất khi so sánh với cùng kích thước và độ dày; ví dụ, một tấm gỗ MDF có độ dày 5mm và kích thước 1220mm x 2440mm có giá là 110,000 VND/tấm Trong khi đó, thép được tính giá theo khối lượng và 1m thép có độ dày 5mm và trọng lượng là 353.25 kg có giá là 8,560,228 VND [11]
Môi trường hoạt động được xác định là trong nhà hoặc nơi có mái che để tránh mưa gió, theo giới hạn của đề tài đã nêu Vậy trong đề tài không cần xét đến các vấn đề môi trường
Xét về các yếu tố như môi trường hoạt động, giá thành và khả năng chịu tải, nhóm quyết định chọn gỗ ép MDF làm vật liệu chính để gia công hệ thống tủ do có giá thành rẻ, thẩm mỹ cao, khả năng gia công linh hoạt và độ chịu tải phù hợp
3.2.3 Tính toán lực mở cánh tủ cho khoá điện từ
Sau khi người dùng hoàn thành bước xác thực để mở ngăn tủ Để người dùng không mất công đi tìm ngăn tủ của bản thân, chúng tôi quyết định sẽ thiết kế ngăn tủ có thể bật ra giúp người dùng nhận biết ngăn tủ được mở
Thông số đầu vào Fk là lực tác động của khóa cửa vào mặt cửa Khóa cửa được để vuông góc với mặt cửa nên góc giữa cánh tay đòn (d) là 90 o Vì thời gian tác động giữa chốt và mặt tủ khá nhanh nên nhóm lấy giả định là 1giây
Sử dụng tính năng Mass properties của phần mềm Solidwork để lấy khối lượng cánh tủ và trọng tâm của cánh tủ Từ đó có được 𝑚 ≈ 1 (𝑘𝑔)
Hình 3.3: Lấy khối lượng của cánh tủ bằng chức năng của phần mềm Solidworks
Hình 3.4: Phân tích đặt lực trên cánh cửa
Tính toán mô men quán tính khối lượng của cánh cửa (I) Hình dạng của cánh cửa là hình hộp chữ nhật được xem là tấm bản đồng chất Chiếu theo trục Z ta có mô men quán tính khôi lượng:
• m: khối lượng của cánh cửa
• l: chiều dài vuông góc với trục quay
Vì cánh cửa không quay quanh tâm nên ta tiến hành dời trục về điểm trên bản lề Áp dụng định lý trục song song (Stein – Huyghens)
• d: khoảng cách giữa 2 trục quay
• m: khối lượng của cánh cửa
Ta có khoảng cách từ bản lề đến tâm cánh cửa d = 0.165 (m)
Mối quan hệ giữa mômen lực và mômen quán tính
• I: Momen quán tính của cánh cửa
Công thức tính góc đã đi được:
• 𝑣 0 : vận tốc góc ban đầu
Xét lực cần mở tủ nên 𝑣 0 = 0 và thời gian tác dụng lực theo giả định t = 1
Công thức mô men lực với góc tác dụng lực 90 o
12× 𝑙 2 + 𝑚 × 0.165 2 ) × 2 × 𝜃 Để đảm bảo cánh cửa không bật ra quá mạnh gây bị thương người dùng Chúng tôi chọn 10 0 ≤ 𝜃 ≤ 20 0 đổi sang đơn vị rad 𝜋
9 Ta có giá trị đầu vào khối lượng của cánh tủ 1 (kg), vị trí từ chốt cửa đến bản lề 34.6 (cm) = 0.346 (m) và chiều cao cánh cửa 0.282 (m)
Thay giá trị m = 1 (kg), l = 0.282 (m) và d = 0.246 (m)
Lực cần để tác động mở tủ theo góc 10 0 ≤ 𝜃 ≤ 20 0 nhỏ nên khóa điện từ 12V có thể thực hiện mở cửa tủ
Thiết kế và thi công phần cơ khí
Phần cơ khí của của đề tài chúng tôi bao gồm các bộ phận chính như khung khổ, cửa tủ, khóa điện tử Chúng tôi đã thiết kế các bộ phần này sao cho đảm bảo tính an toàn, tiết kiệm không gian và dễ dàng lắp đặt Phần cơ khí không quá phức tạp vì chúng tôi muốn tập trung vào phần điện tử và phần mềm làm nổi bật tính thông minh của sản phẩm
Hình 3.5: Sơ đồ khối cơ khí của tủ gửi đồ
3.3.1 Thiết kế phần cơ khí
Chúng tôi sử dụng Solidworks, một phần mềm thiết kế 3D chuyên nghiệp, để tạo ra mô hình và bản vẽ của tủ gửi đồ Yêu cầu thiết kế của chúng tôi là thiết kế một tủ gửi đồ tinh giản, gọn gàng và hiệu quả Chúng tôi tận dụng không gian bên trong tủ để có thể chưa được nhiều loại đồ vật khác nhau Chúng tôi cũng xác định vị trí lắp các ổ khóa điện từ, chốt khóa và giá màn hình Dưới đây là mô hình sản phẩm được chúng tôi thiết kế từ phần mềm SolidWorks
Hình 3.6: Mô hình sản phẩm thiết kế bằng Solidworks
Bảng 3.1: Thông số thiết kế của tủ gửi đồ
Kích thước tổng thể 800 x 243 x 900mm
Kích thước ngăn chứa 380 x 230 x 286mm
Hình 3.7: Kích thước cơ bản của tủ gửi đồ Ổ khóa điện từ là một thiết bị an ninh tiện lợi được lắp đặt sát cạnh tủ để khóa chặt ngăn tủ khi không sử dụng Vị trí của ổ khóa điện từ được chọn sao cho nằm ở trung tâm theo chiều cao của ngăn tủ, phù hợp với vị trí của tay nắm tủ Điều này giúp tận dụng không gian bên trong tủ một cách hiệu quả, đồng thời cũng giúp người dùng có thể đóng tủ một cách nhẹ nhàng và nhanh chóng
Hình 3.8: Thiết kế cánh tủ và vị trí đặt chốt khóa điện từ
3.3.2 Thi công phần cơ khí
Sau khi hoàn thành bản thiết kế, nhóm chúng tôi thực hiện đặt hàng gia công sản phẩm Trong phần 3.2.2, chúng tôi đã lựa chọn sử dụng gỗ ép làm vật liệu chính cho sản phẩm Gỗ ép là một loại vật liệu có nhiều ưu điểm như: chi phí thấp, khả năng gia công và chế tạo linh hoạt, độ thẩm mỹ cao và thân thiện với môi trường Các chi tiết và thiết bị điện của tủ được chúng tôi lắp ghép theo bản thiết kế chính xác và dễ dàng
Hình 3.9: Sản phẩm thực tế được gia công
TÍNH TOÁN THIẾT KẾ HỆ THỐNG ĐIỆN
Tính toán – Thiết kế hệ thống điện
4.1.1 Sơ đồ khối hệ thống điện
Hình 4.1: Sơ đồ khối hệ thống điện
Phần điện của hệ thống được thiết kế với 5 khối, bao gồm:
• Khối nguồn bao gồm 2 nguồn điện được sử dụng: o Nguồn tổ ong 12V 5A dùng để cung cấp nguồn cho cách mạch giảm áp xuống 5V và 3.3V để cung cấp cho mạch STM32F103C8T6 và các IC trong mạch Ngoài ra, nguồn này còn cấp cho các ổ khoá điện từ o Nguồn 5V 3A cung cấp nguồn điện độc lập cho Raspberry Pi 4
• Khối tiếp nhận tín hiệu là khối sẽ trực tiếp trương tác với người dùng bằng màn hình cảm ứng Màn hình sẽ hiển thị giao diện người dùng, sau đó tiếp nhận tương tác của người dùng và gửi dữ liệu đến khối xử lý dữ liệu
• Khối xử lý dữ liệu là khối sẽ tiếp nhận dữ liệu từ màn hình cảm ứng, sau đó xử lý dữ liệu và tiến hành gửi, nhận dữ liệu đến khối điều khiển thông qua UART
• Khối điều khiển là khối mạch điện chứa mạch STM32F103C8T6 được xem như vi điều khiển chính Sau khi tiếp nhận dữ liệu từ khối xử lý dữ liệu thông qua UART, khối này sẽ tiến hành điều khiển khối cơ cấu chấp hành theo dữ liệu nhận được
• Khối cơ cấu chấp hành bao gồm 6 ổ khoá điện từ, chúng không chỉ nhận tín hiệu điều khiển từ khối điều khiển mà còn truyền trạng thái của mình trở lại cho khối điều khiển
Nhiệm vụ khối nguồn: Khối nguồn đảm nhận nhiệm vụ cung cấp năng lượng cho toàn bộ hệ thống Trong đó, nguồn tổ ong 12V - 5A được sử dụng như nguồn chính cho toàn bộ hệ thống bên cạnh nguồn 5V - 3A được sử dụng để cấp nguồn riêng cho Raspberry Pi 4
Tính toán lựa chọn nguồn điện:
Cơ cấu chấp hành của hệ thống là ổ khoá điện từ hoạt động với mức điện áp đầu vào là 12 VDC nên lựa chọn nguồn có điện áp 12 VDC làm nguồn chính
Tính toán công suất nguồn:
• Ổ khóa điện từ 12V, công suất hoạt động 24W Mặc dù hệ thống hiện tại kết nối với 5 ổ khoá điện từ cùng lúc, nhưng trong quá trình hoạt động, chúng tôi đã thiết kế mạch và chương trình sao cho chỉ một ổ khoá điện từ được mở tại một thời điểm Do đó công suất của ổ khoá điện từ chỉ được tính toán một cách độc lập
• Mạch STM32F103C8T6, bỏ qua do công suất hoạt động nhỏ
• Mạch giảm áp DC - DC 5V - 3A, bỏ qua do công suất tỏa nhiệt quá nhỏ
• Mạch hạ áp DC - DC 3.3V - 3A, bỏ qua do công suất tỏa nhiệt quá nhỏ
• Các linh kiện khác như điện trở, diode, mosfet, bỏ qua do công suất tỏa nhiệt quá nhỏ
Tổng công suất sử dụng: 24W
Với điện áp và công suất sử dụng như trên, chúng tôi quyết đinh chọn nguồn tổ ong 12V 5A với công suất định mức là 60W Việc sử dụng nguồn có công suất lớn hơn công suất cần thiết mang đến sự ổn định khi sử dụng, dự phòng dự trữ và thuận tiện cho việc mở rộng trong tương lai
Nguồn 5V 3A: Đây là bộ chuyển đổi nguồn AC-DC chính hãng của Raspberry
Pi Nguồn chính hãng này được thiết kế và sản xuất theo các tiêu chuẩn an toàn cao, đảm bảo bảo vệ Raspberry Pi khỏi nguy cơ hỏng hóc và ngắn mạch Đồng thời, việc này cũng giúp đảm bảo hiệu suất ổn định cho Raspberry Pi
Hình 4.2: Nguồn 5V 3A Raspberry Pi chính hãng
Bảng 4.1: Thông số kỹ thuật nguồn 5V 3A Raspberry Pi
Thông số kỹ thuật Giá trị Điện áp đầu vào 100-240VAC, 50/60Hz Điện áp đầu ra 5 VDC
Dòng điện đầu ra tối đa 3A
Cổng kết nối USB Type-C
Bảo vệ Bảo vệ ngắn mạch, quá tải, nhiệt độ quá mức
Nguồn tổ ong: Đây là tên gọi của bộ chuyển đổi nguồn AD - DC có vỏ ngoài được đục thành những lỗ nhỏ giống tổ ong để giúp nguồn tản nhiệt tốt hơn trong quá trình hoạt động Nguồn tổ ong khá phổ biến trong các ứng dụng về điện vì giá thành vừa phải, gọn nhẹ, ổn định và hiệu năng cao Nguồn tổ ong đa dạng về điện áp và công suất đầu ra Trong hệ thống này sủ dụng nguồn tổ ong 12V 5A để cung cấp đủ điện áp, dòng điện cho các ổ khóa điện và có thể dễ dàng hạ áp cung cấp cho các mạch điện cần điện áp nhỏ hơn
Bảng 4.2: Thông số kỹ thuật - Nguồn tổ ong 12V 5A
Thông số kỹ thuật Giá trị Điện áp đầu vào 100-240VAC, 50/60Hz Điệp áp đầu ra 12VDC
Bảo vệ Bảo vệ ngắn mạch, bảo vệ quá áp
4.1.3 Khối tiếp nhận tính hiệu:
Nhiệm vụ khối tiếp nhận tín hiệu: Đây là phần quan trọng trong hệ thống, mang lại trải nghiệm tương tác và hiển thị đa dạng cho người dùng Màn hình cảm ứng hiển thị giao diện đưa ra các lựa chọn chức năng của hệ thống để người dùng tương tác, và phản hồi tín hiệu cho khối xữ lý dữ liệu, khối điều khiển để đáp ứng lựa chọn của người dùng
Màn hình cảm ứng: Chúng tôi lựa chọn màn hình cảm ứng kích thước 7 inch và độ phân giải 1024x600, màn hình cảm ứng này cho phép hiển thị các giao diện người dùng và dữ liệu một cách rõ ràng và chi tiết Với khả năng cảm ứng đa điểm, người dùng có thể tương tác trực tiếp với các ứng dụng và hệ thống một cách tự nhiên và thuận tiện Với kết nối HDMI tiêu chuẩn, tương thích và có thể cắm trực tiếp vào các bo mạch Orange Pi, Raspberry Pi (thế hệ 3 / thế hệ 2 / thế hệ 1), Banana Pi có cổng HDMI Màn hình hỗ trợ các hệ điều hành phổ biến như Raspberry Pi OS, Ubuntu, Kali, Windows
Hình 4.4: Màn hình cảm ứng 7 inch
Bảng 4.3: Thông số kỹ thuật màn hình cảm ứng 7 inch
Thông số kỹ thuật Giá trị
Kích thước 7.0 inch Độ phân giải 1024 x 600 Độ sáng tối đa 300 cd/m²
Cảm ứng Cảm ứng điện dung Điều chỉnh đèn nền Điều chỉnh PWM bằng phần mềm Điệp áp hoạt động 5VDC
4.1.4 Khối xử lý dữ liệu
Nhiệm vụ khối xử lý dữ liệu: Khối này đảm nhiệm rất nhiều nhiệm vụ trong hệ thống như: chạy chương trình giao diện người dùng hiển thị lên màn hình cảm ứng, xử lý các tín hiệu được trả về từ màn hình, giao tiếp với khối điều khiển và Server hệ thống Do đó, chúng tôi lựa chọn máy tính nhúng Raspberry Pi 4 4GB RAM làm khối này cho hệ thống
Máy tính nhúng Raspberry Pi 4: Là một trong những máy tính nhúng tiên tiến và được sử dụng phổ nhất hiện nay Với vi xử lý ARM Cortex-A72 quad-core 64-bit tốc độ 1.5GHz và bộ nhớ RAM từ 2GB đến 8GB, nó cung cấp hiệu suất xử lý mạnh mẽ cho nhiều ứng dụng, đa dạng trong mọi lĩnh vực Raspberry Pi 4 hỗ trợ kết nối đa dạng, bao gồm cổng Gigabit Ethernet, Wi-Fi 802.11ac, Bluetooth 5.0, và các cổng USB 3.0 và USB 2.0 Điều này giúp nó dễ dàng kết nối với mạng và các thiết bị ngoại vi khác Với các tính năng mạnh mẽ và khả năng linh hoạt, Raspberry Pi 4 phù hợp để triển khai giao diện người dùng trong dự án này
Máy tính nhúng Raspberry Pi 4 trong hệ thống này sử dụng thẻ nhớ với dung lượng 32GB và cài đặt hệ điều hành Raspberry Pi OS (64 bit)
Hình 4.5: Máy tính nhúng Raspberry Pi 4
Bảng 4.4: Thông số kỹ thuật - Raspberry Pi 4
Thông số kỹ thuật Giá trị
Bộ xử lý Broadcom BCM2711, bốn nhân Cortex-A72 (ARM v8)
Bộ nhớ RAM 1GB, 2GB, 4GB, 8GB LPDDR4
Kết nối Wi-Fi 2.4 GHz và 5.0 GHz IEEE 802.11b/g/n/ac,
Bluetooth 5.0, BLE, Gigabit Ethernet, 2 cổng USB 3.0, 2 cổng USB 2.0
Cổng Đa Phương Tiện Hỗ trợ 2 cổng ra màn hình chuẩn Micro HDMI với độ phân giải lên tới 4K Đa phương tiện H.265 (giải mã 4Kp60); H.264 (giải mã 1080p60, mã hóa
Thiết kế mạch điện tử
Như trên trên đã đề cập, hệ thống điện được bao gồm nhiều khối khác nhau với những chức năng khác nhau được kết nối với nhau thành một hệ thống hoàn chỉnh Do đó, việc thiết kế mạch giúp các khối hệ thống kết nối với nhau một cách dễ dàng hơn, đảm bảo hơn trong quá trình hoạt động
Sau khi xem xét, chúng tôi lựa chọn phương án phần mạch điện của tủ được chia làm hai phần: mạch chính và mạch phụ Một mạch chính có thể kết nối với sáu mạch phụ và mỗi mạch phụ có thể kết nối với mười sáu ổ khoá điện từ
Hình 4.6: Sơ đồ kết nối mạch điện
Mạch chính được kết nối tối đa mười sáu mạch phụ giúp cho một tủ có thể lên đến 96 ngăn chứa Việc chia thành nhiều mạch phụ thay vì một mạch lớn mang lại nhiều ưu điểm:
• Mạch điện nhỏ gọn, không phức tạp
• Bố trí mạch cho từng cụm ngăn tủ, dễ dàng thi công, lắp đặt, tránh việc đi dây từ mạch tổng đến các ngăn tủ quá xa trong trường hợp tủ có số lượng ngăn chứa lớn
• Nếu có xảy ra lỗi với mạch điện, dễ dàng kiểm tra và sửa chữa theo từng cụm ngăn tủ
• Trong trường hợp xảy ra hư hỏng mạch điện, chỉ cần thay thế cách mạch phụ bị hỏng, không cần thay thế toàn bộ
• Việc mở rộng thêm số lượng ngăn tủ của một tủ cũng trở nên dễ dàng bằng cách thêm số lượng kết nối cho mạch chính và số lượng mạch phụ
4.2.2 Tính toán và thiết kế Mạch chính
1) Chức năng của mạch chính
• Giao tiếp với Raspberry, nhận tín hiệu từ màn hình cảm ứng thông qua UART
• Giảm điện áp 12V từ nguồn chính xuống hai mức điện áp là 3.3V và 5V dùng để cấp cho vi điều khiển và các IC trong mạch phụ
• Gửi tín hiệu điều khiển đến các mạch phụ để điều khiển mở các ngăn tủ, nhận tín hiệu hồi tiếp từ các mạch phụ để kiểm soát trạng thái đóng hay mở của ngăn tủ
2) Tính toán và lựa chọn linh kiện mạch chính
Lựa chọn mạch hạ áp điện áp 5V và dòng điện 1A trở lên để đảm bảo mạch STM32F103C8T6 hoạt động ổn định khi xuất tín hiệu tại các chân ngõ ra điều khiển các ổ khoá điện từ thông qua mạch phụ Do đó, mạch hạ áp DC-DC 5V-3A được lựa chọn để đảm nhiệm chức năng này
Lựa chọn mạch hạ áp để cung cấp cho IC dịch trong mạch phụ Các đầu ra của các IC dịch này được kết nối với MOSFET, và điện áp kích của MOSFET AOD472 dao động từ 1.2V đến 2.5V Điện áp của các chân đầu ra của IC dịch phụ thuộc vào điện áp được cấp cho các IC dịch đó Do đó, việc lựa chọn mạch há áp 3.3V 3A là phù hợp với các yêu cầu trên
Hình 4.7: Điện áp ngưỡng điều khiển (VGS) của MOSFET
Sử dụng các Domino KF301 5.05mm làm các chân kết nối của mạch giúp cho việc kết nối dễ dàng và chắc chắn hơn
Ngoài ra còn sử dụng thêm các tụ điện để lọc nhiễu nguồn và bù điện áp giúp mạch hoạt động ổn định hơn
3) Thiết kế và thi công
Thiết kế: Sử dụng phần mềm Altium để thiết kế sơ đồ nguyên lí mạch, kết nối các linh kiện với nhau một cách chính xác và hợp lí Sau khi có được sơ đồ nguyên lí, tiến hành bố trí linh kiện và đi dây kết nối linh kiện để tạo thành một PCB hoàn chỉnh
Hình 4.8: Sơ đồ nguyên lý mạch chính
Hình 4.9: PCB Layout mạch chính
Mạch chính chứa kit vi điều khiển STM32F103C8T6 có nhiệm vụ tiếp nhận dữ liệu từ Raspberry thông qua UART Sau khi tiếp nhận dữ liệu, mạch chính tiến hành xử lý, so sánh dữ liệu và thực hiện gửi tín hiệu điều khiển qua các mạch phụ được kết nối Cách mạch phụ được kết nối với mạch chính theo thứ tự tương ứng với số thứ tự ngăn tủ trong mỗi cụm ngăn tủ mà mạch phụ kết nối đến Các domino trên mạch chính được kết nối nối tiếp với nhau theo thứ tự, dữ liệu được gửi từ STM32F103C8T6 sẽ được dịch chuyển nối tiếp từ mạch phụ thứ nhất đến mạch phụ đích khi các mạch phụ kết nối vào domino Tương tự với việc đọc trạng thái đóng mở của ngăn tủ hồi tiếp về thì cũng theo nguyên lý trên
Hình 4.10: Sơ đồ nguyên lí kết nối mạch chính và mạch phụ
Hình 4.11: Mạch chính sau khi thiết kế
Bảng 4.7: Danh sách linh kiện được sử dụng trong mạch chính
Tên linh kiện Số lượng (cái)
Mạch giảm áp DC-DC Mini 560 5V 3A 1
Domino 4 chân 14 Đầu nối XH2.54 cái 2 chân 1
Thi công: Mạch được thiết kế 2 lớp nhưng do các đường dây kết nối ở mặt trên không quá nhiều nên đã lựa chọn phương pháp thi công ủi tay truyền thống để tiết kiệm chi phí Mạch sau khi hoàn thành được hàn các linh kiện đã lựa chọn trước đó vào để trở thành một mạch hoàn chỉnh
Hình 4.12: Mạch chính sau khi thi công hoàn thiện
4.2.3 Tính toán và thiết kế mạch phụ
1) Chức năng của mạch phụ
Do các ổ khoá điện từ hoạt động với nguồn điện tối thiểu 12V 2A, trong khi điệp áp đầu ra của các IC dịch chỉ 3.3V với dòng điện rất nhỏ nên cần mạch này xem như mạch đệm để kích các ổ khoá điện từ hoạt động với điện áp điều khiển chỉ 3.3V từ các IC dịch Ngoài ra, mạch phụ còn có chức năng mở rộng ngõ ra, vào của vi điều khiển trên mạch chính thông qua các IC dịch
2) Tính toán và lựa chọn linh kiện mạch phụ
Có nhiều phương phác để mở rộng ngõ vào, ra cho vi điều khiển như sử dụng module mở rộng ngõ ra giao tiếp SPI, I2C, các IC dịch Sau khi xem xét, quyết định lựa chọn IC 74HC595 để ứng dụng trong việc mở rộng ngõ ra và IC 74HC165 cho việc mở rộng ngõ vào vì đây là những IC dịch rất phổ biến trên thị trường, kích thước nhỏ gọn, dễ sử dụng, các thông số kỹ thuật phù hợp với ứng dụng của mạch
Hình 4.13: Sơ đồ chân của IC 74HC595 và 74HC165
Lựa chọn linh kiện để đệm kích ổ khoá điện từ phải là các linh kiện có khả năng chịu điện áp, dòng điện của tải cao và điệp áp hoặc dòng điện điều khiển nhỏ
Có nhiều loại Transistor có thể được sử dụng cho mục đích trên như BJT, IGBT, JFET, MOSFET Xét về MOSFET, đây là một Transistor hiệu ứng trường điều khiển dòng điện qua tải bằng điện áp, có khả năng chịu được tải có điện áp và dòng điện lớn, thích hợp để sử dụng để đệm kích ổ khoá điện từ
Sau khi xem xét, lựa chọn MOSFET AOD472 có các thông số quan trọng sau:
• Điện áp tối đa giữa cực D và S (VDS) là 25V lớn hơn điện áp của ổ khoá điện từ (12V)
• Điện áp ngưỡng điều khiển qua chân G (VGS) là từ 1.2V – 2.5V phù hợp với điện áp ngõ ra của các IC dịch (3.3V)
• Dòng điện tối đa giữa 2 cực D và S khi MOSFET mở (ID(ON)) là 150A lớn hơn nhiều so với dòng điện qua ổ khoá điện từ (2A)
Hình 4.15: Bảng thông số của MOSFET AOD472 trong Datasheet
Thiết kế phần mềm nhúng
4.3.1 Phần mềm QT - Giao diện người dùng Để tăng khả năng tương tác của người dùng với tủ giữ đồ, chúng tôi đã phát triển phần mềm nhúng dựa trên QT Framework và ngôn ngữ lập trình Python và sự hỗ trợ của phần mềm QT Designer Phần mềm này được phát triễn để chạy trên Raspberry và hiển thi giao diện lên màn hình cảm ứng Phần mềm có 3 giao diện chính: giao diện màn hình chính, giao diện nhập mã và giao diện quét mã QR
Các chức năng chính của phần mềm bao gồm:
• Cho phép người dùng mở tủ bằng 2 hình thức: nhập mã mở trực tiếp và quét mã QR mở trên điện thoại di động
• Định kì kiểm tra trạng thái ngăn tủ, gửi tín hiệu lên máy chủ hệ thống để thông báo cho người dùng biết trong trường hợp quên đóng ngăn tủ sau khi sử dụng
• Định kì gửi tín hiệu đến máy chủ hệ thống để thông báo trạng thái tủ vẫn đang hoạt động
• Định kì lưu lại thông tin của tất cả các ngăn tủ đang được sử dụng ví dụ như mã kích hoạt của ngăn tủ để phòng trường hợp máy chủ hệ thống bị lỗi, người dùng có thể mở ngăn tủ của mình bằng mã kích hoạt đã được lưu
• Hiển thị các banner quảng cáo
• Chức năng dành cho người quản lý (Admin) có thể chọn mở bất kì ngăn tủ nào trong trường hợp cần thiết, khẩn cấp mà không cần thông qua chủ nhân đang sử dụng ngăn tủ đó
Hình 4.21: Lưu đồ hoạt động phần mềm QT trên thiết bị phần cứng
1) Giao diện màn hình chính
Giao diện màn chính hiển thị các hình quảng cáo được cài đặt sẵn, đồng thời cung cấp cho người dùng 2 lựa chọn tương ứng với 2 nút nhấn để người dùng có thể lựa chọn phương thức mở tủ mong muốn
Hình 4.22: Phần mềm QT trên thiết bị phần cứng – Giao diện màn hình chính
Hình 4.23: Lưu đồ giao diện màn hình chính - Phần mềm QT
1) Giao diện nhập mã kích hoạt
Sau khi lựa chọn giao diện nhập mã ở màn hình chính, giao diện nhập mã sẽ được hiển thị Giao diện nhập mã bao gồm 1 ô nhập mã và 1 bàn phím số để người dùng có thể dễ dàng thao tác
Hình 4.24: Phần mềm QT trên thiết bị phần cứng – Giao diện nhập mã kích hoạt
Hình 4.26: Code kiểm tra mật khẩu và tiến hành mở tủ
2) Giao diện kích hoạt bằng mã QR
Nếu ấn nút Scan ở giao diện màn hình chính, giao diện quét mã QR sẽ được hiển thị Giao diện này hiển thị mã QR để người dùng quét bằng điện thoại di động và hiển thị hướng dẫn thao tác quét mã và mở ngăn tủ
Hình 4.27: Phần mềm QT trên phần cứng – Giao diện kích hoạt bằng mã QR
Hình 4.28: Lưu đồ giao diện kích hoạt bằng mã QR
3) Giao diện dành cho người quản lý (Admin): Để vào giao diện này, trước tiên người quản lý cần vào giao diện nhập mã Trong giao diện nhập mã, người quản lý tiến hàng ấn nút “*” 5 lần, sau đó nhập tiếp mật khẩu gồm 6 số Mật khẩu này sẽ được cung cấp kèm từng tủ cho bên quản lý, hoặc bên thuê, mua tủ Sau khi nhập đúng mật khẩu và ấn nút “Submit”, một thông báo đã vào giao diện Admin kèm theo một số hướng dẫn nhanh sẽ được hiện lên Người quản lý ấn nút “Got It!” để hiển thị giao diện quản lý
Hình 4.29: Thông báo khi vào giao diện dành cho người quản lý
Giao diện quản trị sẽ có 2 sự lựa chọn: mở tất cả ngăn tủ và nhập vị trí của ngăn tủ để mở
Hình 4.30: Phần mềm QT trên phần cứng – Giao diện dành cho người quản lý
Hình 4.31: Code kích hoạt trạng thái người quản lý
4) Giao tiếp giữa phần mềm QT và chương trình STM32F103C8T6
Hình 4.32: Kết nối giữa Raspberry Pi 4 và mạch STM32F103C8T6 qua UART
Sử dụng UART trên Raspberry Pi 4 bằng Python:
Cổng Serial trên Raspberry Pi 4 không được bật mặc định Do đó, trước khi sử dụng, cần bật cổng Serial để có thể giao tiếp UART thông qua 2 chân TX (GPIO14) và RX (GPIO15)
Hình 4.33: Bật Serial Port bằng raspi-config từ Terminal
Sử dụng thư viện pyserial để thực hiện việc giao tiếp thông qua UART bằng Python trên Raspberry Pi 4
Các phương thức quan trọng trong đối tượng Serial của thư viện pyserial:
Serial(port,baudrate00,bytesize=8,parity='N',stopbits=1, timeout=None): Phương thức khởi tạo cho đối tượng Serial ser.open(): Mở kết nối serial Cần gọi phương thức này trước khi gửi hoặc nhận dữ liệu từ thiết bị ser.close(): Đóng kết nối serial Sau khi sử dụng xong, bạn cần gọi phương thức này để giải phóng tài nguyên và đóng kết nối ser.read(size=None): Đọc size byte dữ liệu từ cổng serial và trả về dữ liệu dưới dạng chuỗi bytes Nếu không có tham số size, nó sẽ đọc tất cả dữ liệu hiện có trong bộ đệm ser.readline(): Đọc một dòng dữ liệu từ cổng serial và trả về dữ liệu dưới dạng chuỗi bytes cho đến khi gặp ký tự kết thúc dòng (\n hoặc \r\n) ser.write(data): Ghi dữ liệu từ chuỗi bytes data vào cổng serial ser.flush(): Xoá bộ đệm của cổng serial, đảm bảo rằng tất cả dữ liệu đã được ghi hoặc đọc
Khi người dùng nhập mã hoặc quét mã QR để mở tủ, Server hệ thống sẽ gửi vị trí ngăn tủ về cho phần mềm Sau đó phần mềm sẽ gửi vị trí này đến cho STM32F103C8T6 qua UART để thực hiện chương trình điều khiển các ổ khoá điện từ để mở tủ
4.3.2 Chương trình điều khiển trên STM32F103C8T6
Cấu hình các chân của STM32F103F103C8T6 để giao tiếp với 2 loại IC 74HC595 và 74HC165 như sau:
Hình 4.34: Cấu hình các chân STM32F103C8T6 bằng STM32 CubeMX
Chân p595_data (Output) kết nối vào chân kết nối với chân SER (14) của IC 74HC595 là chân đầu vào dữ liệu nối tiếp
Chân p595_clk (Output) kết nối với chân SRCLK (11) của IC 74HC595 có nhiệm vụ cấp xung clock để IC tiến hành dịch bit từ chân data vào thanh ghi lưu trữ
Chân p595_latch (Output) kết nối với chân RCLK (12) của IC 74HC595 có nhiệm vụ cho phép dữ liệu từ thanh ghi lưu trữ có trên các chân ngõ ra song song của
Chân p595_enable (Output) kết nối vào chân kết nối với chân OE (13) của của IC 74HC595 cho phép xuất dữ liệu ở các chân ngõ ra khi chân này được kéo xuống mức 0
Hình 4.35: Sơ đồ chân 74HC595
Chân p165_data (Input) kết nối vào chân kết nối với chân Q7 (9) của IC 74HC165 là chân đầu ra dữ liệu nối tiếp
Chân p165_clk (Output) kết nối với chân CLK (2) của IC 74HC165 có nhiệm vụ cấp xung clock để IC tiến hành dịch bit
Chân p165_latch (Output) kết nối với chân SH/LD (1) của IC 74HC165 có nhiệm vụ cho phép nạp dữ liệu từ các chân đầu vào song song vào thanh ghi lưu trữ trong IC khi chân này được kéo từ mức 0 lên mức 1
PHÂN TÍCH NGHIỆP VỤ VÀ GIẢI PHÁP PHẦN MỀM QUẢN LÝ VÀ ĐẶT CHỖ 52 5.1 Mô hình hoạt động của hệ thống
Mô hình Multi – Tenant
Multi – Tenant là một kiến trúc hoặc mô hình trong công nghệ thông tin mà một ứng dụng hoặc dịch vụ có thể phục vụ nhiều khách hàng được gọi là Tenant khác nhau trên cùng một hạ tầng, hạ tầng ở đây là SaaS Mỗi khách hàng có thể là một doanh nghiệp, tổ chức hoặc cá nhân sử dụng dịch vụ hoặc ứng dụng đó
Trong mô hình Multi – Tenant, các khách hàng chia sẻ cùng một tài nguyên máy chủ, cơ sở dữ liệu, mã nguồn, và hạ tầng mạng Tuy nhiên, dữ liệu và các tài nguyên này được phân tách một cách an toàn và riêng biệt giữa các khách hàng, đảm bảo tính riêng tư và bảo mật cho từng người sử dụng
Các ứng dụng hoặc dịch vụ Multi – Tenant thường cung cấp các cơ chế để quản lý và phân tách dữ liệu của từng khách hàng, đồng thời cung cấp một giao diện quản trị linh hoạt để quản lý và theo dõi hoạt động của các khách hàng
Hình 5.2: Sự khác nhau giữa Single-Tenant và Multi-Tenant
Kiến trúc Multi – Tenant mang đến những lợi ích sau:
• Tiết kiệm chi phí: Do nhiều khách hàng chia sẻ cùng một tài nguyên, việc triển khai và vận hành trở nên hiệu quả hơn và giảm thiểu chi phí
• Quản lý dễ dàng: Các hệ thống Multi – Tenant thường có các công cụ quản lý tiện ích giúp quản trị viên dễ dàng theo dõi và quản lý tất cả các khách hàng từ một vị trí
• Tính mở rộng linh hoạt: Multi – Tenant cho phép dễ dàng mở rộng hạ tầng và tài nguyên để đáp ứng nhu cầu của các khách hàng mới mà không cần phải triển khai một hạ tầng mới
Việc thiết kế phần mềm theo dạng Multi – Tenant có nhược điểm là yêu cầu chúng tôi phải thận trọng trong việc phân quyền cho mỗi Tenant và các triển khai phát triển phần mềm phức tạp hơn so với mô hình Single – Tenant như truyền thống.
Mô hình Multi – Tenant trong hệ thống của UTELocker
Trong mô hình Multi – Tenant của chúng tôi như sơ đồ dưới, khách hàng hay clients đóng vai trò là một Tenant và chúng tôi với vai trò nhà cung cấp sản phẩm đóng vai trò là “Super Admin” - người quản lý cao nhất
Hình 5.3: Mô hình Multi - Tenant của hệ thống quản lý
• Super Admin: Là tài khoản có cấp bậc cao nhất Nhiệm vụ quản lý tất cả
Client, phát hàng Locker và License cho Locker
• Clients: Là nhóm quản trị viên (tenants) thuộc một tổ chức, cá nhân Trong mỗi Client bao gồm các hệ thống tủ, người quản trị và người dùng riêng biệt
• License: Là giấy phép sử dụng tủ Mỗi License đều có mã riêng biệt và duy nhất trong toàn bộ hệ thống License được phát hành bởi Super Admin khi Locker được sản xuất và đi kèm cùng với Locker
• Admin: Là các tài khoản thuộc một Client cụ thể có nhiệm vụ quản lý hệ thống tủ, đơn đặt tủ, người dùng và các sự cố
• Locker (Tủ): Mỗi tủ là một License thuộc một Client Tủ được thiết lập quản lý bởi người quản trị của Client Mỗi tủ có thể thiết lập giá mặc định của tủ, giá từng ngăn tủ, tên tủ, vị trí của tủ, trạng thái của tủ và ngăn tủ, thời gian tối đa đặt tủ và số lượng đặt tủ mỗi lần của mỗi người dùng, thời gian được kéo dài thêm trong mỗi phiên đặt tủ
• User (Người dùng): Là tài khoản của khách hàng sử dụng tủ Mỗi người dùng thuộc một Client cố định Khách hàng có quyền đặt tủ, nạp tiền, theo dõi và quản lý tủ mình trong thời gian đặt, quản lý ví điện tử và lịch sử đơn hàng, lịch sử giao dịch, báo cáo sự cố đến admin Khách hàng có thể sử dụng web hoặc ứng dụng điện thoại.
Sơ đồ phân quyền truy cập của hệ thống
Với mô hình Multi – Tenant của hệ thống nhóm chúng tôi, với mỗi người dùng hệ thống sẽ có một số quyền nhất định như sơ đồ phân cấp dưới đây
Hình 5.4: Sơ đồ tổ chức phân quyền của hệ thống
Bảng 5.1: Phân quyền người dùng trong hệ thống
Tạo Client Được phép Không Không
Tạo Locker Được phép Không Không
Tạo User Được phép Chỉ tạo được User cùng Client
Tạo Location Được phép Được phép Không
Tạo Payment Method Được phép Được phép Không
Không Được phép Được phép
Tạo Booking Không Được phép Được phép
Tạo Transaction Không Được phép Được phép
Quản lý tủ lỗi Được phép Được phép Không
Tạo HelpCall Không Được phép Được phép
Tạo Template HelpCall Không Được phép Không
Quản lý các tenant của hệ thống
Tenant – đơn vị khai thác sản phẩm UTELocker, việc quản lý 1 tenant sẽ có nhiều phức tạp về mặt quyền hạn và những cấu hình có thể thay đổi nhiều về các thức hoạt động của sản phẩm
5.2.1 Quản lý tenant với vai trò là Super Admin
Với vai trò là một Super Admin – người có quyền cao nhất của hệ thống tôi có toàn quyền quản lý các Clients
1) Tạo Client cho một đơn vị khai thác sản phẩm UTELocker
Là một Super Admin, tôi có thể nhìn thấy được được danh sách Clients như hình dưới đây Trên giao diện danh sách các Clients có trên hệ thống, nhấn vào nút
“Add Client” hệ thống sẽ hiện ra biểu mẫu để tôi có thể tạo một Client
Hình 5.5: Tạo Client với vai trò là Super Admin Để tạo được một client, chúng tôi cần một vài thông tin của đơn vị khai thác như biểu mẫu bên dưới Biểu mẫu yêu cầu các thông tin bắt buộc như “Client name”,
“Email”, “Mobile Phone”, “Password”, “Gender” - Với những thông tin này hệ thống sẽ tạo ra một tài khoản người dùng admin đầu tiên cho client Biểu mẫu còn một phần về “Company Details” – đây là những thông tin về cơ sở kinh doanh của đơn vị khai thác Sau khi hoàn tất biểu mẫu, hệ thống sẽ chuyển hướng về trang danh sách
Hình 5.6: Biểu mẫu tạo một client
Hình 5.7: Mã nguồn khi gửi biểu mẫu tạo client 2) Xem, xóa và chỉnh sửa Client Đăng nhập với vai trò Super Admin của hệ thống Ở mục Client, tôi có thể xem toàn bộ Clients đang có trong hệ thống kèm thông tin nhanh về các đơn vị đang sử dụng dịch vụ của UTELocker Tôi có thể thao tác trên Client dựa trên các hành động hệ thống cung cấp như hình bên dưới Super Admin chỉ có quyền xem thông tin chi tiết của từng client và chỉnh sửa nó Nhưng ở phần thông số cài đặt của client như
Email, Điều khoản của Client thì Super Admin không có quyền xem cũng như chỉnh sửa
Hình 5.8: Danh sách Clients và các quyền Super Admin đối với Client
5.2.2 Quản lý với vai trò là quản trị viên của Client
Admin là tài khoản quản lý Client nó trực thuộc Mỗi Admin chỉ trực thuộc một Client Admin quản lý việc thiết lập cài đặt cho Client
1) Thiết lập ban đầu cho Client Đăng nhập với tư cách quản trị viên trực thuộc Client Vào phần Settings mục Site Group Ở đây 2 phần cần chú ý là Status và Allow Guest Register
Status: Client có 2 trạng thái là Public và Private Trong đó Public cho phép người dùng khi đăng ký tài khoản thì tài khoản vừa được đăng ký sẽ ở trạng thái cho phép sử dụng Còn Private giúp tăng tính bảo mật của Client lên Sau khi người dùng đăng ký thì sẽ bị nhảy sang trang yêu cầu đợi Admin xác nhận tài khoản Nếu chưa được xác nhận thì tài khoản đó ko thể truy cập và sử dụng
Allow Guest Register: cho phép người dùng có thể đăng ký tài khoản từ trang
“https://utelocker.dataviz.io.vn/register” mà không phải thông qua trang quản trị mục User để tạo tài khoản Ở đây có 2 giá trị Disable Allow Signup và Allow Signup
Hình 5.9: Cài đặt Site Group cho Client
Kế tiếp đến mục Policy, thiết lập điều khoản, cam kết giữa người dùng và doanh nghiệp trong việc sử dụng tủ Các điều khoản này được hiện thị khi người dùng tới bước xác nhận đơn đặt tủ
Refund Soon Cancel Booking là phần trăm hoàn tiền nếu người dùng hoàn tiền trước thời hạn bắt đầu sử dụng tủ Giá trị ở đây nhỏ nhất là 0 và lớn nhất là 100
Hình 5.10: Cài đặt điều khoản cho Client Để sử dụng UTELocker, Đơn vị cần thiết lập Site Group và cấu hình Email cho từng tenant Đơn vị phải điền đủ các thông tin như “Domain”, “Email Port”,
“Email Host”, “Email Mailer”, “Email Username” và “Email Password” để kết nối với email
Hình 5.11: Cài đặt Email cho Client
Quản lý hệ thống tủ
5.3.1 License – Giấy phép điện tử sử dụng tủ
License là một thỏa thuận điện tử giữa hệ thống UTELocker và “Client”, cho phép “Client” sử dụng tủ License có một mã duy nhất và không trùng với License nào khác Super Admin là người quản lý License, có thể tạo, sửa, xóa và cấp License cho “Client” License chỉ dành cho một tủ cụ thể và chỉ có một “Client” sử dụng tại một thời điểm Hệ thống tủ cần nhập mã code và mã khoá của License để kết nối với máy chủ
License giúp bảo vệ quyền lợi của cả hai bên khi sử dụng tủ License cho phép hệ thống UTELocker theo dõi số lượng và thời gian sử dụng của các tủ, và đảm bảo rằng “Client” không bị mất quyền truy cập vào tủ do lỗi kỹ thuật hoặc can thiệp của bên thứ ba
Mỗi tủ (Locker) là một đơn vị độc lập và không trùng lặp trong hệ thống
1) Bản thiết kế của tủ
Bản thiết kế là bố cục ngăn tủ của một Locker Bản thiết kế tủ được quản lý bởi Super Admin, người có quyền điều chỉnh bố cục các ngăn tủ, có thể xem đây là một vai trò của nhà máy, thiết kế bố cục giống với bố cục của tủ thực tế Mỗi tủ gồm
3 phần: Slot, Empty và CPU:
Slot: là ngăn tủ có thể sử dụng để đặt đồ
Empty: là phần không thể sử dụng do bị khuyết hoặc hỏng
CPU: là nơi để màn hình hiển thị cho người dùng, mạch điều khiển trung tâm
Mỗi tủ phải có CPU để hoạt động
2) Chỉnh sửa cài đặt thông số của Locker
Việc thiết lập cài đặt cho Locker chỉ được thực hiện bởi quản trị viên trực thuộc Client sở hữu giấy phép sử dụng Locker đó Tiến hành đăng nhập với tư cách quản trị viên trực thuộc Client Truy cập vào mục Locker và chọn vào Locker cần được thiết lập cài đặt Kế tiếp vào tab Bulk Create Store Sản phẩm UTELocker quy định chỉnh sửa thông số của Locker sẽ được đặt ở CPU Truy cập vào phần cài đặt của CPU như hình dưới
Hệ thống chúng tôi cung cấp một số thông số thiết lập sau:
• Thời gian tối đa đặt một ngăn tủ
• Ký hiệu cho tên ngăn tủ
• Số lượng tối đa ngăn tủ của một người dùng có thể đặt
• Thời gian được mở rộng nếu người dùng quá hạn sử dụng tủ
• Giá mặc định cho toàn bộ tủ (Giá được nếu ngăn tủ không thiết lập)
Hình 5.13: Thông số cấu hình tủ
3) Ngăn tủ (Slot) Để chỉnh sửa ngăn tủ, bạn cần có quyền quản trị viên của Client Sau khi vào mục Locker, bạn chọn Locker muốn cài đặt và chuyển sang tab Bulk Create Slots Tại đây, bạn chọn ngăn tủ và cài đặt tương ứng của nó
Hình 5.14: Cài đặt ngăn tủ Để xây dựng được thệ thống chỉnh sửa bố cục này, chúng tôi đã lập trình bằng JavaScript cho hệ thống trên với cấu trúc hàm và biến như hình dưới
Hình 5.15: Cấu trúc lập trình của chức năng thiết kế bố cục tủ
Hệ thống của chúng tôi cho phép chỉnh sửa: Trạng thái của tủ, giá đặt tủ trong một giờ
Hình 5.16: Thông số cấu hình ngăn tủ
Mỗi hệ thống tủ ngoài thông tin về tên, vị trí trạng thái thì hệ thống cũng cung cấp thống kê số lần đặt tủ, doanh thu và số lần bảo trì của tủ Bản thống kê sẽ được tổn hợp theo từng tháng và trong 6 tháng gần nhất Các thông số trên quản trị viên trực thuộc Client đó và Supper Admin đều có thể xem và quản lý
Hình 5.17: Thông tin và bảng thống kê hoạt động tủ
5) Trạng thái của hệ thống tủ
Trong một hệ thống tủ thông minh, có nhiều tủ khác nhau có thể được sử dụng cho các mục đích khác nhau Tuy nhiên, không phải tất cả các tủ đều hoạt động tốt mọi lúc Để quản lý hiệu quả các tủ, chúng ta cần biết trạng thái của chúng Hệ thống tủ có 5 trạng thái chính như sau:
Available: Đây là trạng thái mặc định của một tủ khi nó được khởi tạo và chưa được sử dụng bởi bất kỳ ai Tủ ở trạng thái này có thể được đặt trước hoặc gán cho người dùng
In Use: Đây là trạng thái của một tủ khi nó đã được thiết lập ban đầu và có thể sử dụng bởi người dùng Tùy thuộc vào loại tủ, người dùng có thể mở khóa, đóng khóa, lấy đồ hoặc trả đồ
Under Maintance: Đây là trạng thái của một tủ khi nó ở chế độ sửa chữa do bị hỏng hoặc cần bảo trì Tủ ở trạng thái này không thể sử dụng bởi người dùng và chỉ có nhân viên kỹ thuật mới có quyền truy cập
Broken: Đây là trạng thái của một tủ khi nó bị hỏng nặng và không thể sửa chữa Tủ ở trạng thái này cần được thay thế hoặc loại bỏ khỏi hệ thống
Pending Broken: Đây là trạng thái của một tủ khi nó phát hiện sự cố nhưng chưa được xác nhận bởi quản trị viên Tủ ở trạng thái này vẫn có thể sử dụng bởi người dùng nhưng có nguy cơ cao bị hỏng
5.3.3 Quy trình tạo tủ cho client
1) Tạo khu vực muốn đặt tủ Đầu tiên cần thiết lập địa chỉ khu vực muốn đặt tủ Tiến hành đăng nhập với tư cách Admin trực thuộc Client Truy cập vào mục Location tiến hành tạo Location Type Ở đây việc tạo Location Type để nhóm các địa chỉ thuộc khu vực nào Sau khi đã tạo Location Type xong đến mục Locations để thiệt lập địa chỉ Địa chỉ được thiết lập kèm theo toạ độ trên bản đồ như hình dưới Có thể nhập thủ công toạ độ hoặc chọn trục tiếp trong khung đỏ hình bên dưới
Hình 5.18: Thiết lập vị trí
2) Đăng ký tủ cho client
Hình 5.19: Quy trình tạo Client Đăng nhập tài khoản Super Admin: Như đã đề cập trên quyền hạn tạo bản thiết kế cho Locker chỉ ở Super Admin Tiến hành đang nhập với tư cách Super Admin Vào mục Locker và chọn Add Locker Điền biểu mẫu thông tin của Locker Khi tạo tủ cũng đồng thời kèm theo 1 License
Quản lý đơn đặt tủ (Booking)
5.4.1 Quyền hạn của các vai trò trong quản lý đơn đăt tủ
1) Hệ thống Để chuyển trạng thái của đơn đặt tủ, hệ thống cần có một quy trình bán tự động Việc chuyển đổi từ Pending sang Approved hoặc từ Approved sang Expired không thể thực hiện bằng tay vì sẽ không kịp thời và không hiệu quả Do đó nhóm quyết định áp dụng công nghệ Cronjob để xử lý vấn đề trên
Cronjob, là một tính năng trong hệ thống Unix, cho phép hệ thống thiết lập các tác vụ tự động theo một khoảng thời gian xác định, chẳng hạn như hàng ngày, hàng tuần, hàng tháng hoặc theo một quy tắc nào đó Cronjob giúp hệ thống quản lý các tác vụ nền một cách tiện lợi và tiết kiệm tài nguyên
Trong đề tài này, Cronjob được áp dụng để thực hiện chuyển đổi trạng thái của tất cả các đơn hàng của người dùng Hệ thống sẽ tự động cập nhật trạng thái của đơn hàng như sau:
• Đơn hàng trong thời gian đặt tủ sẽ được chuyển sang trạng thái Approved
• Đơn hàng quá hạn sẽ được chuyển sang trạng thái Expired
• Người dùng xác nhận kết thúc sẽ được chuyển sang trạng thái Cancelled
Hệ thống sẽ cập nhật trạng thái của đơn hàng sau mỗi một phút
Khi có sự cố với tủ, hệ thống sẽ tự động khóa tất cả các đơn hàng liên quan và thông báo cho người dùng và hoàn trả tiền
2) Quản trị viên của đối tác khai thác
Quản trị viên của một client được phép quản lý toàn bộ đơn đặt của người dùng trong client của chính mình Quản trị viên chỉ được phép xem và chuyển trạng thái từ chối
3) Người sử dụng sản phẩm
Người dùng được phép kiểm soát và xem toàn bộ đơn đặt tủ của bản thân Người dùng có những quyền đối với đơn của mình: Xem thông tin chi tiết đơn hàng, thay đổi mã OTP, kết thúc quá trình đặt, nhận thông báo liên quan đến tình trạng hay những hành động liên quan đến ngăn tủ, yêu cầu khắc phục - hỗ trợ khi sự cố diễn ra
5.4.2 Quy trình tạo đơn hàng
Hình 5.23: Quy trình đặt chỗ Đăng nhập tài khoản Admin/User: Tiến hành đăng nhập vào ứng dụng bằng tài khoản người dùng Sau khi đăng nhập, người dùng chọn mục đặt Locker trên menu chính để chuyển sang trang “Tìm kiếm tủ”
Tìm kiếm ngăn tủ phù hợp: Chúng tôi cần thông tin ngày giờ bắt đầu cũng như kết thúc để tiền hành tìm ngăn tủ trống phù hợp yêu cầu người dùng Ngoài ra có thể tìm kiếm thêm về số lượng ngăn tủ cũng vị trí ngăn tủ
Hình 5.24: Thông tin tìm kiếm ngăn tủ trống
Sau khi nhấn nút tìm kiếm hệ thống chúng tôi sẽ trả kết quả ra các Locker phù hợp kèm theo đó là thông tin vị trí cũng như số lượng ngăn tủ trống
Hình 5.25: Kết quả trả về tìm kiếm ngăn tủ trống
Chọn ngăn tủ: Sau khi chọn ngăn tủ phù hợp hệ thống sẽ đưa người dùng đến trang chọn ngăn tủ Ở trang này sẽ hiện thị bố cục ngăn tủ cũng như tình trạng hiện tại của các ngăn tủ như hình dưới Người dùng cần chọn ít nhất một ngăn tủ và không được vượt quá số lượng tủ cho phép Sau khi người dùng chọn xong nhấn nút kế tiếp để qua trang xác nhân
Hình 5.26: Bố cục và trạng thái ngăn tủ
Hình 5.27: Biểu mẫu xác nhận đơn hàng
Chấp nhận điều khoản: Người dùng cần xác nhận điều khoản phía Client đề ra để tiếp tục thanh toán và hoàn thành việc đặt chỗ
Hình 5.28: Điều khoản cho việc đặt tủ
Thanh toán: Người dùng cần nạp đủ tiền vào hệ thống UTELocker để có thể hoàn tất đơn hàng Sau khi hoàn tất việc thành toán sẽ nhận được thông báo từ hệ thống về việc đặt chỗ thành công cũng như bị trừ tiền
Hình 5.29: Thông báo thanh toán số tiền đặt tủ khi đặt tủ thành công
5.4.3 Các trạng thái đặt tủ Để đặt tủ trên hệ thống đặt hàng, chúng ta cần tạo một đơn đặt tủ Đơn đặt tủ là một yêu cầu để sử dụng một ngăn tủ trong một khoảng thời gian nhất định Đơn đặt tủ có thể có một trong sáu trạng thái sau:
Pending: trạng thái này có nghĩa là đơn đặt tủ đã được khởi tạo nhưng chưa được xử lý Đơn đặt tủ sẽ ở trạng thái này cho đến khi đến giờ bắt đầu
Approved: trạng thái này có nghĩa là đơn đặt tủ đã được chấp nhận và có thể sử dụng ngăn tủ Đơn đặt tủ sẽ ở trạng thái này trong suốt khoảng thời gian đã chọn
Reject: trạng thái này có nghĩa là đơn đặt tủ đã bị từ chối vì một lý do nào đó
Người dùng sẽ nhận được thông báo về lý do từ chối và có thể tạo một đơn đặt tủ mới nếu muốn
Cancelled: trạng thái này có nghĩa là người dùng đã hủy đơn đặt tủ của mình
Người dùng có thể hủy đơn đặt tủ bất cứ lúc nào trước khi giờ bắt đầu
Expried: trạng thái này có nghĩa là đơn đặt tủ của người dùng đã quá hạn và không còn hiệu lực Điều này có thể xảy ra khi người dùng quên trả ngăn tủ hoặc không gia hạn kịp thời Người dùng sẽ bị phí quá hạn nếu để đơn đặt tủ quá hạn
Locked: trạng thái này có nghĩa là ngăn tủ của người dùng đã bị khoá và người dùng không thể mở được
5.4.4 Luồng trạng thái đơn đặt tủ
Hình 5.30: Luồng hoạt động trạng thái của quá trình đặt chỗ
• Là trạng thái đầu tiên sau khi tủ được đặt thành công
• Ở trạng thái này người dùng không thể xem chi tiết tủ
• Có thể thêm thời gian đặt nếu khoảng thời gian mở rộng thoả điều kiện tủ trống
• Nếu tủ có vấn đề thì sẽ bị quản trị viên chuyển trạng thái sang “Reject” hoặc hệ thống tự động chuyển trạng thái nếu phát sinh lỗi
• Nếu người dùng “Cancel – hủy bỏ đơn hàng” thì ở đây người dùng sẽ được hoàn tiền một số tiền theo cài đặt của quản trị viên
• Hệ thống sẽ tự động chuyển từ trạng thái “Pending” sang trạng thái
“Approved” khi đến thời gian đã đặt
• Ở trạng thái này người dùng có thể mở tủ, xem mật khẩu mở tủ
• Ở trạng thái này người dùng “Cancel” sẽ không được hoàn tiền chỉ được xem đã hoàn thành việc sử dụng tủ
• Nếu trước thời hạn bao nhiêu phút (do quản trị viên quy định) sẽ gửi thông báo nhắc nhở người dùng
• Ở trạng thái này người dùng có thể mở rộng thêm thời gian đặt như đã nói trên
• Hệ thống sẽ từ động chuyển trạng thái từ “Approved” sang “Expired” nếu quá thời hạn
• Ở đây do quản trị viên quy định có trạng thái này hay không vào thời gian được mở rộng Nếu không có thì sẽ sang thẳng trạng thái “Locked”
• Khi gần hết thời gian người dùng cũng được thông báo
• Ở trạng thái này người dùng có thể mở rộng thêm thời gian đặt như đã nói trên
4) Trạng thái “Locked”: Tuỳ theo quy định điều khoản đơn vị thoả thuận với khách hàng để đưa ra hướng giải quyết
5) Trạng thái “Reject”: Do quản trị viên chủ động từ chối đơn hoặc tự động hệ thống nếu phát hiện ra lỗi Ở trạng thái này người dùng sẽ được hoàn tiền 100%
5.4.5 Lưu đồ trong hoạt động đặt tủ
1) Lưu đồ hoạt động tìm kiếm ngăn tủ
Hình 5.31: Lưu đồ hoạt động tìm kiếm ngăn tủ
Quy trình xử lý sự cố
5.5.1 Sự cố hệ thống vật lý
Hệ thống được kích hoạt chế độ sự cố một cách tự động hoặc thủ công bởi người quản lý Khi tủ được chuyển sang chế độ bảo trì thì người dùng không thể đặt tủ và phần tìm kiếm hệ thống tủ trong phần đặt cũng sẽ không hiển thị
Chế độ tự động chỉ được ứng dụng cho hệ thống tủ không được áp dụng cho ngăn tủ
Hình 5.35: Lưu đồ ghi nhật lý vào hoạt động UTELocker
Hình 5.36: Lưu đồ kiểm tra tủ có thực hiện ghi nhật ký trong 15 phút
Mỗi ngăn tủ mỗi 10 phút sẽ gửi tín hiện lên hệ thống và sẽ được lưu dữ liệu logs vào cơ sở dữ liệu Hệ thống mỗi 10 phút cũng sẽ tiến hành kiểm tra xem dữ liệu logs vào của mỗi tủ có đầy đủ không Nếu tủ không ghi dữ liệu quá 15 phút hệ thống sẽ ghi nhận là tủ có vấn đề bắt đầu tiến hành chuyển tủ sang chế độ Pending Broken và gửi thông báo đến Admin trong Client đó Admin cần vào xác nhận đó là sự cố vật lý hay hệ thống báo nhầm
Hình 5.37: Thông báo tủ có sự cố đến quản trị viên
Hình 5.38: Danh sách tủ xảy ra sự cố cần xác nhận
Bên cạnh đó tủ sẽ tiến hành khoá lại và gửi thông báo đến người dùng tủ bị sự cố và không cho khách hàng đặt tủ Trong vòng 30 phút quản trị viên không xác nhận sự cố hệ thống sẽ tiến hành huỷ tất cả đơn hàng và hoàn tiền cho người dùng Những khách hàng đang đặt tủ sẽ được quản lý hệ thống tủ đó đối chiếu với lịch sử đặt tủ để trả đồ cho khách hàng
Chế độ thủ công thì quản trị viên có thể chuyển đổi trạng thái cho từng ngăn tủ hoặc hệ thống tủ Khi chuyển sang chế độ bảo trì thì các bước cũng sẽ được thực hiện như trên là khách hàng bị huỷ toàn bộ đơn trên hệ thống tủ đó hoặc ngăn tủ bảo trì và hoàn tiền lại
5.5.2 Sự cố máy chủ hệ thống
Mỗi hệ thống tủ đều được ghi lại thông tin đặt hàng của từng khách mỗi 5 phút Khi gặp sự cố sập máy chủ thì hệ thống tủ sẽ căn cứ vào mật khẩu người dùng nhập vào và thông tin được lưu trước đó để tiến hành mở ngăn tủ.
Thiết kế cơ sở hạ tầng trên nền tảng điện toán đám mây
Để đảm bảo hệ thống đáp ứng được các yêu cầu của người sử dụng, hệ thống cần đảm bảo các yếu tố sau:
• Tính ổn định: Hệ thống cần hoạt động liên tục và không bị gián đoạn
• Khả năng đáp ứng khi có lượng truy cập cao: Hệ thống cần có khả năng xử lý lượng truy cập lớn mà không bị ảnh hưởng đến hiệu suất
• An ninh mạng: Hệ thống cần được bảo vệ khỏi các tấn công mạng và đảm bảo an toàn cho dữ liệu
Với tầm quan trọng của ba yếu tố trên, nhóm lựa chọn sử dụng Amazon Web Service Cloud (AWS) làm nhà cung cấp các dịch vụ hạ tầng cho sản phẩm của chúng tôi AWS là nền tảng điện toán đám mây hàng đầu trên thế giới, được tin dùng bởi hàng triệu doanh nghiệp và tổ chức trên thế giới Nền tảng này cung cấp đầy đủ các giải pháp toàn diện, đáp ứng đầy đủ các yêu cầu về tính ổn định, khả năng mở rộng và an ninh mạng
5.6.1 Giải pháp kiến trúc hạ tầng dựa trên nền tảng AWS cho hệ thống
Sơ đồ (Hình 5.39) là giải pháp về xây dựng kiến trúc hạ tầng của hệ thống dự trên các dịch vụ của AWS, với giải pháp này chúng tôi xây dựng đảm bảo các yếu tố đã đặt ra ở trên cùng với một yếu tố về vấn đề tối ưu chi phí
Trong giải pháp này chúng tôi đã sử dụng những dịch vụ sau:
• Route 53: Route 53 là dịch vụ quản lý tên miền và DNS của AWS Trong hệ thống Route 53 được sử dụng để quản lý và định tuyến các truy cập đến các tài nguyên trong hệ thống, như địa chỉ IP của load balancer hoặc các máy chủ EC2
• Virtual Private Network (VPC): VPC được dung để tạo môi trường ảo, cô lập các dịch vụ đảm bảo an toàn trên AWS Đây là một dịch vụ quan trọng trong hệ thống dung để triển khai hạ tầng mạng ảo cho toàn bộ hệ thống, giúp cô lập và bảo vệ các tài nguyên bên trong, đồng thời quản lý các quy tắc truy cập vào tài nguyên
• Elastic Compute Cloud (EC2): EC2 là dịch vụ cung cấp máy ảo có khả năng mở rộng linh hoạt - trong sơ đồ chúng tôi có đề cập đến “Auto Scaling group” thì đây là một tính năng có bên trong EC2, sẽ được trình bày rõ hơn ở phần sau Trong hệ thống chúng tôi sử dụng EC2 cho việc triển khai các máy chủ ảo chạy ứng dụng và phần mềm
• Application Load Balancer (ALB): ALB được sử dụng để phân phối truy cập đến các máy ảo EC2 một cách hiệu quả, hệ thống dng để cân bằng tải giữa các EC2, tăng khả năng mở rộng và đẩm bảo tính ổn định của hệ thống
• Relational Database Service (RDS): RDS là một dịch vụ quản lý cơ sở dữ liệu quan hệ một cách dễ dàng và tự động Trong hệ thống chúng tôi xây dựng một RDS với MySQL, với RDS còn cung cấp chức năng về sao lưu, khôi phục và mở rộng dữ liệu Đảm bảo tính an toàn về dữ liệu cho người dùng
• Github: Dịch vụ lưu trữ mã nguồn và quản lý phiên bản trực tuyến, đây có lẻ là một trong những ít dịch vụ nhóm chúng tôi lựa chọn không phải thuộc về AWS, AWS có một dịch vụ tương tự là Code Commit nhưng vì lý do chúng tôi muốn mã nguồn tiếp cận đến người khác dễ hơn và tiết kiệm chi phí hơn vì thế chúng tôi lựa chọn Github cho sự thay thế này
• Code Pipeline: Tự động hóa quy trình triển khai phần mềm, dịch vụ được sử dụng để tự động triển các bước triển khai, kiểm thử và xuất bảng phần mềm, nhầm giảm thời gian và rủi ro trong quá trình phát triển Chúng tôi sẽ trình bày chi tiết hơn về dịch vụ cũng như quy trình phát triển phần mềm ở phần sau
• Code Deploy: Là một dịch vụ giúp triển khai ứng dụng trên nhiều môi trường, triển khai lên các máy chủ EC2 một các tự động và có kiểm soát, giảm nguy cơ lỗi và sập hệ thống
Với sơ đồ cùng với các dịch vụ AWS mà chúng tôi lựa chọn có thể xem là một kiến trúc có khả năng mở rộng và độ tin cậy cao trên nền tảng điện toán đám mây của Amazon Quy trình hoạt động của hạ tầng này bắt đầu khi người dùng cuối truy cập vào ứng dụng Website của chúng tôi đến khi dữ liệu dữ liệu được lữu trữ và xử lý lý trên cơ sở dữ liệu
Hình 5.39: Sơ đồ cơ sở hạ tầng điện toán đám mây của hệ thống Đầu tiên là khi người dùng cuối nhập trên miền của ứng dụng website của chúng tôi vào trình duyệt Tên miền này được quản lý bởi dịch vụ Route 53 của AWS, một hệ thống tên miền phân tán (DNS) có khả năng chịu lỗi cao Route 53 sẽ biến đổi tên miền thành địa chỉ IP của Internet Gateway - một dịch vụ cho phép kết nối giữa mạng ảo riêng (VPC) trên AWS và internet Internet Gateway sẽ chuyển tiếp yêu cầu của người dùng đến ALB - Dịch vụ về cân bằng tải ứng dụng có khả năng phân phối lưu lượng truy cập đến nhiều máy chủ EC2 một cách hiệu quả và linh hoạt
Hình 5.40: Quá trình biến đổi tên miền thành IP của Route 53
ALB sẽ lựa chọn một máy chủ EC2 phù hợp để xử lý yêu cầu của người dùng dựa trên các tiêu chí như sức khỏe của máy chủ đó có đang hoạt động ổn định không, hiệu suất và các quy tắc do chúng tôi định nghĩa EC2 cho phép chúng tôi thuê các máy chủ ảo trên AWS với rất nhiều tùy chọn về kích thước, hệ điều hành và bảo mật EC2 sẽ chạy ứng dụng website của chúng tôi và trả về kết quả cho người dùng thông qua ALB, Internet Gateway và Route 53
Hình 5.41: Tổng quan về cách hoạt động của dịch vụ ELB
Trong quá trình này, chúng ta có thể sử dụng thêm vào đó là dịch vụ Auto Scaling của AWS để tự động điều chỉnh số lượng máy chủ EC2 theo nhu cầu của ứng dụng Auto Scaling sẽ theo dõi các chỉ số như CPU, bộ nhớ và lưu lượng mạng của các máy chủ EC2 để đưa ra quyết định tăng hoặc giảm số lượng máy chủ EC2 theo các cấu hình mà chúng tôi đặt ra Điều này đã giúp chúng tôi trong việc tiết kiệm chi phí, duy trì được hiệu năng và đảm bảo khả năng mở rộng của ứng dụng khi có lượng lớn truy cập cùng một lúc
Hình 5.42: Tổng quan về cách hoạt động của Auto Scaling
Thiết kế kiến trúc phần mềm của hệ thống
Phần trước, chúng tôi đã trình bày về việc thiết kế kiến trúc hạ tầng điện toán đám mây của hệ thống Về mặt hạ tầng chúng tôi đánh giá rằng bản thiết kế trên đã đáp ứng được những yêu cầu của chúng tôi để có thể vận hành hệ thống, nhưng dù hạ tầng có tốt đến đâu thì phần mềm vẫn là cốt lõi để đánh giá sản phẩm đó có đáp ứng được mô hình kinh doanh của doanh nghiệp hay không Trong phần này nhóm chúng tôi sẽ trình bày quá trình nhóm thiết kế các phần mềm trong hệ thống
5.7.1 Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu là một phần quan trọng trong hệ thống phần mềm, vì nó lưu trữ và quản lý dữ liệu của hệ thống Cơ sở dữ liệu cũng ảnh hưởng đến hiệu năng, bảo mật, khả năng mở rộng và tính nhất quán của hệ thống Do đó việc thiết kế cơ sở dữ liệu là một công việc cần được thực hiện một cách kỹ lưỡng
Trong hệ thống của chúng tôi, chúng tôi sử dụng cơ sở dữ liệu quan hệ, vì nó phù hợp với bản chất của dữ liệu, là các bảng có mối quan hệ với nhau Cơ sở dữ liệu quan hệ cũng có nhiều ưu điểm như: dễ truy vấn, dễ bảo trì, dễ đảm bảo tính toàn vẹn và nhất quán của dữ liệu Trong số các hệ quản trị cơ sở dữ liệu quan hệ, chúng tôi lựa chọn sử dụng MariaDB làm cơ sở dữ liệu cho hệ thống chúng tôi, vì MySQL có những yếu tố sau:
• MariaDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, miễn phí và phổ biến được sử dụng rộng rãi trong nhiều ứng dụng web và di động
• MariaDB có một cộng đồng lớn và hoạt động tích cực trong việc cung cấp nhiều tài liệu, hướng dẫn và hỗ trợ kỹ thuật
Hình 5.63: Logo hệ quản trị cơ sở dữ liệu MariaDB
Sau khi chọn MariaDB làm cơ sở dữ liệu, chúng tôi tiến hành thiết kế các bảng và các mối quan hệ giữa chúng Quá trình thiết kế bảng và mối quan hệ được diễn ra xuyên suốt trong quá trình phát triển phần mềm, khi chúng tôi triển khai tính năng nào sẽ thiết kế và cập nhật lại cơ sở dữ liệu Các bảng và các mối quan hệ được thiết kế dựa trên các yêu cầu về nghiệp vụ của mô hình hoạt động của phần mềm Sơ đồ dưới đây là sơ đồ quan hệ của cơ sở dữ liệu của hệ thống đầy đủ nhất của hệ tại thời điểm đồ án này được viết
Hình 5.64: Quan hệ giữa các bảng trong cơ sở dữ liệu của hệ thống Ý nghĩa của từng bảng và các mối quan hệ được chúng tôi thiết kế như sau:
1) Clients (Khách hàng): a) Bảng clients chứa thông tin về các khách hàng của hệ thống b) Mỗi khách hàng có một số thông tin như tên, ứng dụng, email, điện thoại, địa chỉ, trang web và các cài đặt liên quan đến múi giờ, định dạng ngày và ngôn ngữ
2) Locations (Địa điểm): a) Bảng locations lưu trữ thông tin về các địa điểm thuộc mỗi khách hàng b) Mỗi địa điểm được đặc trưng bởi mã, mô tả, vĩ độ và kinh độ, và liên kết với khách hàng thông qua khóa ngoại client_id
3) Bảng location_type định nghĩa các loại địa điểm có thể, cùng với mô tả và mã, và liên kết với khách hàng thông qua client_id
4) Lockers (Tủ khoá): a) Bảng lockers chứa thông tin về các tủ khoá ở mỗi địa điểm b) Mỗi tủ có mã, mô tả, trạng thái và được liên kết với địa điểm thông qua khóa ngoại location_id
5) Locker Slots (Ngăn tủ): a) Bảng locker_slots mô tả các ngăn tủ trong từng tủ khoá b) Mỗi khe tủ được đánh dấu bởi loại, hàng và cột, và liên kết với tủ khoá thông qua locker_id
6) Users (Người dùng): a) Bảng users chứa thông tin về người dùng của hệ thống b) Mỗi người dùng có tên, email, loại người dùng, mật khẩu, hình đại diện, số điện thoại, giới tính và các cài đặt ngôn ngữ
7) Licenses (Giấy phép): a) Bảng licenses quản lý thông tin về các giấy phép cho tủ khoá của từng khách hàng b) Mỗi giấy phép được liên kết với một khách hàng và một tủ khoá, bắt đầu từ ngày nào đến ngày nào
8) Bookings (Đặt chỗ): a) Bảng bookings ghi lại các đặt chỗ của người dùng cho các khe tủ b) Mỗi đặt chỗ có thời gian bắt đầu và kết thúc, trạng thái và liên kết với người dùng, khe tủ và giao dịch tương ứng
9) Transactions (Giao dịch): a) Bảng transactions ghi lại các giao dịch tài chính của người dùng b) Mỗi giao dịch liên quan đến một người dùng, một phương thức thanh toán, số tiền và trạng thái
10) Payment Methods (Phương thức thanh toán): Bảng payment_methods mô tả các phương thức thanh toán được sử dụng trong hệ thống
11) Wallets (Ví): Bảng wallets ghi lại số dư của ví của người dùng
12) Notifications (Thông báo): a) Bảng notifications chứa thông tin về các thông báo được gửi đến người dùng b) Mỗi thông báo có nội dung, liên kết với một người dùng và một bảng khác trong cơ sở dữ liệu
Kết nối giữa phần cứng và hệ thống trực tuyến
5.8.1 Sơ đồ khối kết nối hệ thống
Hình 5.81: Sơ đồ kết nối giữa phần cứng và hệ thống trực tuyến
5.8.2 Giao tiếp giữa website, ứng dụng và máy chủ hệ thống
Website và ứng dụng giao tiếp với máu chủ là giao tiếp 2 chiều Tuỳ vào cách triển khai hệ thống thì việc giao tiếp giữa các phần được ứng dụng công nghệ khác nhau
1) Giao tiếp giữa website Admin và máy chủ hệ thống
Giao tiếp giữa website quản lý và máy chủ hệ thống sử dụng mô hình SSR (Server-side rendering) - khi người dùng gửi yêu cầu đến máy chủ, máy chủ sẽ xử lý và trả về kết quả dưới dạng HTML cho người dùng Nhờ sử dụng SSR, ngăn chặn sự can thiệp của bên thứ ba Để tăng cường bảo mật, máy chủ còn có thể thiết lập session – phiên hoạt động của người dùng, tức là tạo ra một mã nhận dạng duy nhất cho mỗi người dùng khi họ truy cập ứng dụng Session có thời hạn xác định và sẽ bị xoá khi người dùng thoát khỏi ứng dụng Nhờ vậy, máy chủ có thể kiểm soát được trạng thái của người dùng và ngăn chặn việc giả mạo hoặc đánh cắp thông tin
2) Giao tiếp giữa ứng dụng Người dùng và máy chủ hệ thống Để giúp người dùng có trải nghiệm tốt trong quá trình sử dụng dịch vụ thì nhóm chúng tôi chọn mô hình Single Page Application để thiết kế cho website người dùng
Mô hình này yêu cầu tải tất cả các tài nguyên, bao gồm HTML, CSS và JavaScript, được tải về một lần duy nhất khi người dùng truy cập trang web Sau đó, các thay đổi và cập nhật trang diễn ra thông qua việc tải lại nội dung bằng JavaScript, mà không cần tải lại trang hoàn toàn Để có thể giao tiếp giữa website và máy chủ trong mô hình trên chúng tôi chọn phương thức giao tiếp thông qua API
Giao tiếp giữa ứng dụng và máy chủ thông qua API là một cách hiệu quả để trao đổi dữ liệu giữa các thành phần khác nhau của một ứng dụng Restful API là một kiểu thiết kế giao diện lập trình ứng dụng (API) dựa trên các nguyên tắc của kiến trúc REST (Representational State Transfer) Một API Restful có thể cung cấp các phương thức HTTP như GET, POST, PUT, DELETE để thực hiện các thao tác CRUD (tạo, xem, sửa, xóa) trên các tài nguyên của ứng dụng
Cấu trúc của một API Restful bao gồm các thành phần sau:
• Endpoint: là địa chỉ URL của API, ví dụ: https://example.com/api/users
• Method: là phương thức HTTP được sử dụng để gửi yêu cầu đến API, ví dụ: GET, POST, PUT, DELETE
• Header: là phần chứa các thông tin bổ sung về yêu cầu hoặc phản hồi, ví dụ: Content-Type, Authorization
• Body: là phần chứa dữ liệu được gửi hoặc nhận về từ API, ví dụ: JSON, XML
• Status code: là mã số biểu thị kết quả của yêu cầu hoặc phản hồi, ví dụ:
200 (OK), 404 (Not Found), 500 (Internal Server Error)
Phương thức bảo mật là Bearer Token là một cách để xác thực người dùng khi gửi yêu cầu đến API Bear Token là một chuỗi mã hóa được tạo ra bởi máy chủ khi người dùng đăng nhập thành công Người dùng phải gửi Bear Token trong header của mỗi yêu cầu đến API với tên Authorization và giá trị Bearer Máy chủ sẽ kiểm tra Bearer Token và trả về kết quả tương ứng nếu hợp lệ hoặc không hợp lệ
5.8.3 Giao tiếp giữa server hệ thống và hệ thống tủ
QT có hỗ trợ việc giao tiếp thông qua API nên nhóm quyết định chọn phương thức API làm công cụ giao tiếp giữa hệ thống tủ và máy chủ hệ thống
Như trình bày ở phần 5.3.2 thì API xác thực thông qua Bearer Token nhưng ở hệ thống tủ không thể Login tự động cũng như cập nhập thay đổi mật khẩu từ xa
Chúng tôi sử dụng cơ chế mã hoá mã giấy phép sử dụng (License) Cấu trúc mã hoá sẽ bao gồm:
CODE|Secret key|thời gian gọi API
• CODE và Secret key sẽ đính kèm trong Lecense khi sinh ra và nó cũng là duy nhất trong toàn bộ hệ thống
• Việc đính kèm thêm thời gian để mã hoá luôn thay đổi tránh cố đỉnh bị kẻ gian lợi dụng Để tăng tính bảo mật khi mã hoá chúng tôi chọn SHA512 là một thuật toán băm mật mã được phát triển bởi Hội đồng Tiêu chuẩn Quốc gia Hoa Kỳ (NIST) và được công bố vào năm 2001 SHA 512 thuộc nhóm SHA-2, bao gồm các thuật toán băm có độ dài đầu ra khác nhau, từ 224 bit đến 512 bit SHA512 sử dụng một hàm băm được thiết kế để chống lại các cuộc tấn công như tìm kiếm ngược, xung đột và tiền đề SHA512 có thể được sử dụng để tạo chữ ký số, xác minh tính toàn vẹn của dữ liệu, mã hóa mật khẩu và các ứng dụng mật mã khác
Hình 5.83: Thiết lập Header cho xác thực hệ thống Locker
• X-License-Hash: mã hoá đã được tạo ra từ cấu trúc được cung cấp
• X-License-Id: mã id của license
• X-License-Time: thời gian tạo API.
TÍCH HỢP HỆ THỐNG THANH TOÁN
Tổng quan về hệ thống thanh toán của dự án
Hệ thống thanh toán là một phần quan trọng của bất kỳ ứng dụng nào liên quan đến tiền bạc Nó cho phép người dùng thực hiện các giao dịch một cách an toàn, nhanh chóng và tiện lợi Từ mô hình hoạt động của dự án này, nhóm chúng tôi cũng tích hợp với hai nhà cung cấp dịch vụ thanh toán phổ biến tại Việt Nam là VNPay và ZaloPay
VNPay là một công ty cung cấp các giải pháp thanh toán điện tử bao gồm VNPay-QR, VNPay-eWallet và VNPay-Bank VNPay hỗ trợ thanh toán qua mã
QR, ví điện tử, thẻ ngân hàng và thẻ tín dụng quốc tế VNPay có hơn 40 tiệu người dùng và hơn 50 ngân hàng đối tác
Hình 6.1: Phần mềm trong hệ sinh thái của VNPay
ZaloPay là một ứng dụng ví điện tử do VNG phát triển ZaloPay cho phép người dùng thanh toán qua mã QR, thẻ ngân hàng, thẻ cào, tài khoản Zalo và tài khoản ngân hàng liên kết ZaloPay có hơn 20 triệu người dùng và hơn 40 ngân hàng đối tác
Lợi tích hợp với hai nhà cung cấp trên đã mang đến cho sản phẩm của nhóm chúng tôi sự đa dạng trong các phương thức thanh toán Chúng tôi tích hợp với các nhà cung cấp thông qua cổng thanh toán của chính nhà cung cấp, vì thế chúng tôi không cần phải quan tâm về tính bảo mật thanh toán giữa người dùng với nhà cung cấp, vì thế việc tích hợp của chúng tôi sẽ trở nên dễ dàng hơn
Hình 6.3: Cách phương thức thanh toán của VNPay
Nhằm mục đích tương tác giữa người dùng với ứng dụng của chúng tôi trở nên tốt hơn, thay vì chúng tôi cho phép họ thanh toán trực tiếp trên đơn hàng thông qua các phương thức thanh toán, chúng tôi xây dựng nên một Ví điện tử trung gian chúng tôi gọi là UTEPay
UTEPay là một tính năng của hệ thống, cho phép người dùng có thể nạp tiền vào UTEPay bằng một số phương thức kể trên Bên cạnh đó UTEPay có hai loại số dư nhầm vào nhiều mục đích cho mô hình hoạt động của hệ thống là: Số dư, điểm thưởng
• Số dư: là số tiền được nạp vào hệ thống từ các phương thức thanh toán kể trên, đây chính là số tiền thật mà người dùng gửi vào Người dùng có thể yêu cầu rút số dư này trở về tài khoản ngân hàng thông qua việc gửi yêu cầu lên hệ thống quản trị viên
• Điểm thưởng: Điểm thưởng là số tiền mà người dùng nhận được thông qua sự chia sẻ điểm từ quản trị viên của “client” đó Điểm thưởng này không thể rút ra khỏi hệ thống
Hình 6.4: Sơ đồ khối nạp tiền vào ví UTEPay
Về tính năng giao dịch thì hai loại tiền này của UTEPay giao dịch trong hệ thống là như nhau, duy nhất chỉ khác nhau về hình thức nạp và khả năng rút tiền như chúng tôi đã trình bày ở trên
Hình 6.5: Hình thức sử dụng các loại tiền của ví UTEPay
Với UTEPay sẽ giúp chúng tôi dễ kiểm soát hơn các giao dịch được diễn ra trong hệ thống, cùng với việc có thể ví điểm thưởng sẽ giúp cho các khách hàng của chúng tôi có hướng đi riêng cho mô hình kinh doanh của họ đối với sản phẩm của chúng tôi
6.1.2 Phương thức thanh toán và cấu hình
Hệ thống thanh toán của UTELocker là một hệ thống được chúng tôi thiết kế linh hoạt, như chúng tôi đã trình bày mô hình Multi-Tenant, ở đây Tenant là một khách hàng của chúng tôi và việc quản lí thanh toán và dữ liệu được độc lập hoàn toàn và không thể can thiệp từ bất kỳ một người dùng nào khác ngoài là quản trị viên của Tenant đó Và mỗi Tenant có thể tự lựa chọn cho mình các phương thức thanh toán và không giới hạn phương thức
Hình 6.6: Các loại phương thức thanh toán hệ thống đang hỗ trợ
Thiết lập phương thức thanh toán cho một khách hàng: Với vai trò là một khách hàng, tôi đăng nhập tài khoản quản trị viên được cấp từ UTELocker, tôi đăng nhập vào trang quản trị hệ thống và thực hiện tạo ra một Payment Method như hình dưới
Hình 6.7: Tạo phương thức thanh toán mới trong UTELocker
Hình 6.8: Mã nguồn cho quá trình tạo một phương thức thanh toán
Trong ví dụ này tôi sẽ thực hiện việc với Payment Method Type là ZaloPay, sau khi tạo tôi sẽ được một Payment Method hình dưới, ở đây chúng chúng ta có thể thấy xuất hiện một biểu mẫu được gọi là ”Payment Method Configs”, ứng với mỗi loại phương thức thanh toán thì cấu hình chỗ này sẽ có phần khác nhau, vì mỗi nhà cung cấp giải pháp thanh toán sẽ có những yêu cầu cấu hình khác nhau, và những cấu hình này sẽ được lấy từ chính nhà cung cấp giải pháp thanh toán
Hình 6.9: Cấu hình các mã bí mật của phương thức thanh toán Để hỗ trợ cho việc có thể ứng dụng nhiều loại phương thức thanh toán khác nhau, chúng tôi đã lập trình một để có thể linh động việc này như hình dưới đây
Hình 6.10: Mã nguồn cho quá trình lưu trữ các loại cấu hình thanh toán
Hình 6.11: Cấu trúc thư mục và các lớp của cấu hình phương thức thanh toán
Sau khi hoàn tất việc cấu hình Payment Method Config và chúng ta phải thay đổi trạng thái hoạt động của phương thức thành Yes, sau khi phương thức được kích hoạt chúng ta sẽ hình thấy phương thức thanh toán xuất hiện trong danh sách thanh toán của UTEPay
Hình 6.12: Danh sách các phương thức thanh toán đã được cấu hình
Giải pháp tích hợp với các cổng thanh toán
Có nhiều giải pháp để chúng tôi có thể tích hợp dịch vụ thanh toán bên thứ ba vào sản phẩm của chúng tôi, bên cạnh sự lo ngại về vấn đề bảo mật và vấn đề về tiền bạc khá là nhạy cảm Và giải pháp tích hợp với cổng thanh toán của chính nhà cung cấp giải pháp và vấn đề tiền nong sẽ do chính khách hàng chúng tôi quản lý trên hệ thống của bên thứ ba, chúng tôi có cam kết rằng không can thiệp và cũng không thể can thiệp qua trình thanh toán này
6.2.1 Mô hình tích hợp cổng thanh toán
Về cơ bản, mô hình tích hợp của các cổng thanh toán là gần như là như nhau và nó cũng là một tiêu chuẩn trong xây dựng cổng thanh toán
Hình 6.15: Sơ đồ khối tổng quan quy trình tích hợp Payment Gateway
Sơ đồ trên là mô hình tích hợp cổng thanh toán của hệ thống chúng tôi, với mô hình này chúng tôi có thể tích hợp với hầu hết các cổng thanh toán tại Việt Nam và những cổng thanh toán phổ biến khác của thế giới như Paypal, Union, Mô hình trên là tổng quan về cách chúng tôi tích hợp cũng như cách mà các cổng thanh toán đang hoạt động, nhưng đi vào triển khai tích hợp sẽ có nhiều bước hơn thế, với mỗi nhà cung cấp giải pháp thanh toán sẽ có một vài quy trình khác nhau, nhưng về tổng quan sẽ có quy trình xử lý như sơ đồ chúng tôi vẽ dưới đây
Hình 6.16: Sơ đồ luồng xử lý tích hợp với Payment Gateway của UTEPay
Sơ đồ luồng xử lý ở trên mô tả cách thức người dùng nạp tiền vào ví UTEPay thông qua UTELocker Portal Các bước chính của quy trình là:
• Người dùng nhập số tiền muốn nạp vào ví UTEPay trên UTELocker Portal
• UTELocker Portal gửi yêu cầu nạp tiền đến UTELocker API
• UTELocker API gọi đến Payment Server, một máy chủ xử lý thanh toán, để tạo một order (đơn hàng) dựa trên các thông tin giao dịch như số tiền, phương thức thanh toán, và mã giao dịch
• Payment Server trả về đường dẫn thông tin thanh toán (order_url) cho UTELocker API Đường dẫn này chứa các thông tin cần thiết để người dùng hoàn tất thanh toán trên Payment Gateway, một cổng thanh toán trực tuyến
• UTELocker API tạo một CronJob, một tác vụ chạy tự động theo lịch trình, để kiểm tra giao dịch mỗi 15 phút CronJob sẽ gọi đến Payment Server để lấy trạng thái đơn hàng và cập nhật trạng thái giao dịch trên UTELocker API
• UTELocker API gửi đường dẫn thông tin thanh toán (order_url) cho UTELocker Portal
• UTELocker Portal chuyển tiếp người dùng đến Payment Gateway theo đường dẫn thông tin thanh toán (order_url)
• Payment Gateway hiển thị phương thức thanh toán hoặc mã QR dựa trên thiết lập order Người dùng chọn phương thức thanh toán và thực hiện thanh toán
• Payment Gateway gửi thông tin giao dịch đến Payment Server để xác nhận thanh toán
• Nếu thanh toán thành công, Payment Server gửi callback (phản hồi) đến UTELocker API Callback chứa các thông tin giao dịch như mã giao dịch, số tiền, và trạng thái thanh toán
• UTELocker API cập nhật số dư ví UTEPay của người dùng dựa trên số tiền đã thanh toán
• UTELocker API cập nhật trạng thái giao dịch thành công
• UTELocker API gửi kết quả thanh toán đến UTELocker Portal
• UTELocker Portal hiển thị kết quả thanh toán cho người dùng
Ngoài ra, nếu Payment Server không nhận được callback từ Payment Gateway, CronJob sẽ chạy mỗi 15 phút để kiểm tra giao dịch UTELocker API sẽ gọi đến Payment Server để lấy trạng thái đơn hàng và cập nhật trạng thái giao dịch trên UTELocker API Quy trình này sẽ lặp lại cho đến khi giao dịch được xác nhận hoặc hủy bỏ
6.2.2 Tích hợp cổng thanh toán ZaloPay
ZaloPay người dùng có thể chọn các hình thức thanh toán bằng Ví ZaloPay hoặc thông qua ZaloPay trên ứng dụng Zalo có trên tất cả các hệ điều hành di động
Mô hình chúng tôi tích hợp với ZaloPay là mô hình Website – Cổng với mô hình này người sử có thể sử dụng đa dạng các hình thức thanh toán được ZaloPay hỗ trợ như: ZaloPay, Apple Pay, ATM, Visa, JCB, Master Card và hơn 40 ứng dụng ngân hàng để thanh toán theo như thông tin được ZaloPay công bố
Hình 6.17: Mô hình tích hợp của ZaloPay
• Merchant web: Trong trường hợp này Merchant chính là UTEPay
• ZaloPay Gateway: Đây là cổng thanh toán của ZaloPay và hoàn toàn do
Hình 6.18: Sơ đồ luồng xử lý tích hợp của ZaloPay
Sơ đồ luồng xử lý trên được cung cấp bởi tài liệu chính thức của ZaloPay, với luồng trên, chúng ta sẽ có 4 bước cho quá trình tích hợp với hệ thống của UTEPay
1) Gửi yêu cầu tạo đơn hàng
Sau khi người dùng bấm “Nạp tiền” UTEPay sẽ gửi yêu cầu tạo đơn hàng thanh toán sang UTELocker API và UTELocker API sẽ gọi API tạo đơn hàng của ZaloPay Server Sơ đồ dưới đây là luồng xử lý của API tạo đơn hàng của Zalo ZaloPay cũng cấp cho chúng ta 2 Endpoint cho môi trường giả lập và môi trường thật, tùy vào nhu cầu sử dụng của chúng ta
Hình 6.19: Sơ đồ luồng xử lý của API tạo đơn hàng
Bảng 6.1: Danh sách API tạo đơn hàng của ZaloPay
Môi trường Phương thức API Endpoint
Sandbox POST https://sb-openapi.zalopay.vn/v2/create Production POST https://openapi.zalopay.vn/v2/create Để tạo được đơn hàng đến ZaloPay chúng ta cần những thông tin sau đây:
Bảng 6.2: Các tham số cần đính kèm khi tạo đơn hàng với ZaloPay
Tham số Ý nghĩa Ví dụ
App_id Định danh cho ứng dụng đã được cấp khi đăng ký với ZaloPay
App_user Thông tin định danh của người dùng ngtrdai
App_trans_id Mã giao dịch của đơn hàng Mã giao dịch phải bắt đầu theo format yymmdd của ngày hiện
240307_007242 tại và nên theo format yymmdd_Mã đơn hàng thanh toán
Lưu ý: yymmdd phải đúng TimeZone Vietnam (GMT+7) (Vì các giao dịch đối soát theo ngày giờ Việt Nam)
App_time Thời gian tạo đơn hàng (unix timestamp in milisecond) Thời gian tính đến milisecond, lấy theo current time và không quá
15 phút so với thời điểm thanh toán
Amount Giá trị của đơn hàng VND 50000
Bank_code Mã ngân hàng zalopayapp
Mac Thông tin chứng thực của đơn hàng Embed_data Dữ liệu riêng của đơn hàng, dữ liệu này sẽ được callback lại cho AppServer khi thanh toán thành công Để tạo được thông tin chứng thực (mac), hệ thống của chúng tôi sẽ tự động dựa trên các thông tin thanh toán và mã hóa loại theo chuẩn của ZaloPay để tạo hành mã mac mac = HMAC(hmac_algorihtm, key1, hmac_input)
• hmac_algorithm: Là phương thức bảo mật do ứng dụng đăng ký với
ZaloPay, mặc định là HmacSHA256
• Key1: Là Mac Key do ZaloPay cung cấp cho ứng dụng lúc đăng ký ứng dụng
• hmac_input: app_id + “|” + app_trans_id + “|” + app_user + “|” + amount + “|” + app_time + “|”+ embed_data + “|” + item
Hình 6.20: Mã nguồn tạo đơn hàng - Tích hợp ZaloPay
Sau khi thực hiện gọi API, UTELocker API sẽ nhận được tham số trả về như sau:
Bảng 6.3: Tham số nhận về sau khi gọi API tạo đơn hàng đến ZaloPay
2: Thất bại Return_message Mô trả trạng thái
Sub_return_code Mã trạng thái chi tiết
Sub_return_message Mô tả chi tiết mã trạng thái
Order_url Dùng để chuyển tiếp sang trang cổng ZaloPay
Zp_trans_token Thông tin token đơn hàng
Order_token Thông tin token đơn hàng
2) Chuyển hướng đến trang ZaloPay Gateway
Khi UTELocker API gọi API tạo đơn hàng ở bước trên sẽ nhận được kết quá có chứa giá trị order_url và trả về cho UTEPay sử dụng order_url này và chuyển hướng người dùng đến cổng thanh toán ZaloPay
3) Xử lý Callback từ ZaloPay Server
KẾT QUẢ VÀ VẬN HÀNH THỬ NGHIỆM
Kết quả và sản phẩm thực tế
Sau khi hoàn thành giai đoạn thiết kế và chế tạo, chúng tôi tiến hành một giai đoạn kiểm tra và thực nghiệm kỹ lưỡng Mục tiêu của giai đoạn này là đảm bảo rằng sản phẩm sẽ hoạt động một cách hiệu quả và đáp ứng đầy đủ các yêu cầu của người dùng
Qua quá trình kiểm tra và thực nghiệm, chúng tôi đã tổng hợp và đưa ra kết quả về sản phẩm như sau:
• Sản phẩm được thiết kế và sử dụng chất liệu có tính thẩm mỹ, thân thiện người dùng, trong môi trường là chung cư, trường học không quá khắc nghiệt nên vẫn đảm bảo được mức độ an toàn cơ bản
• Các thành phần trong sản phẩm được lựa chọn theo yêu cầu của sản phẩm, tối ưu về chi phí và khả năng sử dụng
• Sản phẩm có các tính năng như mở ngăn tủ, bằng chức năng của người quản lý, rất có ích trong các trường hợp khẩn cấp hoặc máy chủ hệ thống có trục trặc
• Cung cấp nhiều sự lựa chọn về thao tác sử dụng, cho phép người dùng lựa chọn thao tác phù hợp và nhanh chóng nhất
• Giao diện người dùng trên sản phẩm trực quan, thân thiện với người dùng
Hình 7.1: Tủ từ thiết kế đến sản phẩm thực tế
Vận hành thử nghiệm
7.2.1 Mở tủ bằng mật khẩu và ứng dụng
Kiểm thử hệ thống phần cứng Nhóm tiến hành vận hành thử nghiệm 20 lần mở các ngăn tủ khác nhau bằng mật khẩu và 20 lần bằng ứng dụng
Ngăn tủ Mật khẩu Ứng dụng
Bảng 7.1: Vận hành thử nghệm mở khoá hệ thống tủ bằng mật khẩu và ứng dụng
Tỷ lệ thành công 100% trong quá trình vận hành mở tủ bằng mật khẩu và ứng dụng
7.2.2 Kiểm tra tốc độ phản hồi giữa tủ và máy chủ
Hệ thống tủ vận hành cần có kết nối với wifi Để đảm bảo hệ thống có thể vận hành ổn định trong các hoàn cảnh khác nhau Nhóm tiên hành vận hành thủ nghiệm kiểm tra tốc độ mạng từ 2G, 3G và 4G Với mỗi tốc độ mạng nhóm tiến hành thử nghiệm 20 lần
Bảng 7.2: Vận hành thử nghiệm mở khoá hệ thống tủ ở các tốc độ mạng khác nhau
Tốc độ trung bình thấp nhất là mạng 2G với tốc độ 734.5 (ms) vẫn đảm bảo được vận hành tủ ổn định
Bảo trì và bảo dưỡng
Hệ thống tủ gửi đồ thông minh là một sản phẩm phần cứng và phần mềm kết hợp sử dụng mô hình SaaS để cung cấp dịch vụ cho khách hàng Để đảm bảo hệ thống hoạt động ổn định, an toàn và hiệu quả, việc bảo trì và bảo dưỡng sản phẩm là rất quan trọng Chúng tôi đưa ra một và phương pháp bảo trì và bảo dưỡng phần cứng và phần mềm cho hệ thống của chúng tôi như sau:
7.3.1 Bảo trì và bảo dưỡng phần cứng
Phần cứng của hệ thống chúng tôi bao gồm các thiết bị như tủ gửi đồ, màn hình cảm ứng, khóa điện từ, bộ nguồn và các linh kiện khác Các bước bảo trì và bảo dưỡng phần cứng gồm:
• Kiểm tra định kỳ các thiết bị phần cứng để phát hiện và khắc phục các lỗi, hư hỏng hoặc hao mòn Các thiết bị phải được kiểm tra ít nhất một lần mỗi tháng hoặc theo lịch trình được chúng tôi đề xuất với các đơn vị khai thác sản phẩm
• Vệ sinh và lau chùi các thiết bị phần cứng để loại bỏ bụi bẩn, vết bẩn, dấu vân tay hoặc các chất gây hại khác Các thiết bị phải được vệ sinh sạch sẽ sau mỗi lần sử dụng hoặc ít nhất một lần mỗi tuần
• Thay thế hoặc nâng cấp các thiết bị phần cứng khi cần thiết để cải thiện chất lượng, hiệu suất hoặc tính năng của hệ thống
• Bảo vệ và an toàn các thiết bị phần cứng để ngăn chặn các tác động bên ngoài như nhiệt độ, độ ẩm, ánh sáng, nước, va đập, rung động, trộm cắp hoặc phá hoại
7.3.2 Bảo trì và bảo dưỡng phần mềm
Phần mềm của hệ thống bao gồm các ứng dụng như phần mềm quản lý tủ gửi đồ, phần mềm di động, phần mềm giao diện người dùng tại các hệ thống tủ của chúng tôi Các bước bảo trì và bảo dưỡng phần mềm gồm
• Kiểm tra và sửa lỗi phần mềm để phát hiện và khắc phục các lỗi, vấn đề hoặc sai sót trong phần mềm Các lỗi phải được kiểm tra và sửa lỗi ngay khi được phát hiện hoặc theo 2 tuần một lần
• Cập nhật và nâng cấp phần mềm để cải tiến chức năng, hiệu suất hoặc bảo mật của phần mềm
• Sao lưu và khôi phục dữ liệu để bảo vệ dữ liệu quan trọng của hệ thống và các đơn vị khai thác sản phẩm theo định kỳ hoặc khi có sự cố xảy ra
• Tối ưu hóa và tinh chỉnh phần mềm để tăng cường hiệu quả, tiết kiệm tài nguyên và giảm chi phí vận hành của hệ thống
Chúng tôi đã đưa ra những cách để bảo trì và bảo dưỡng sản phẩm phần cứng và phần mềm cho hệ thống Việc bảo trì và bảo dưỡng sản phẩm là công việc liên tục và quan trọng để duy trì và phát triển hệ thống Để thực hiện việc này hiệu quả, cần có sự hợp tác giữa chúng tôi với các đơn vị khai thác sản phẩm của chúng tôi.