Tại Việt Nam, hiện tại các máy bán thức uống đóng chai đã dần phô biến, tuynhiên nhu cầu mua hàng tạp hóa, các mặt hàng phục vụ hàng ngày cũng cao mà chưa có hệ thống giao dịch phục vụ c
Trang 1ĐẠI HOC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
NGUYEN ĐÌNH NHẬT MINH - 20521607
NGUYEN HOANG TAN - 20520752
KHOA LUAN TOT NGHIEP
THIET KE VA DIEU KHIEN THIET BI QUAN LY VA
BAN HANG TU DONG
DESIGN AND CONTROL OF AUTOMATED TELLER
MACHINE FOR MANAGEMENT AND SELLING OF GOODS
CU NHAN KY THUAT MAY TINH
GIANG VIEN HUONG DAN
NGUYEN HOAI NHAN
TP HO CHi MINH, 2024
Trang 2LỜI CẢM ƠNChúng em xin bày tỏ lòng biết ơn sâu sắc đến toàn thé quý thầy cô Trường Dai học
Công nghệ Thông tin - ĐHQG TP.HCM, đặc biệt là các giảng viên khoa Kỹ thuật
Máy tính Những kiến thức chuyên môn và kinh nghiệm quý báu mà quý thầy cô đãtruyền đạt trong suốt quá trình học tập đã góp phần quan trọng giúp chúng em hoànthành đồ án này
Chúng em xin gửi lời tri ân đặc biệt đến TS Nguyễn Hoài Nhân - người đã tận tâmhướng dẫn và đóng góp nhiều ý kiến quý giá trong quá trình thực hiện đồ án Sự hỗtrợ của thay là động lực to lớn giúp nhóm em nỗ lực hoàn thiện sản phẩm
Với thời gian và kinh nghiệm còn hạn chế, chúng em nhận thức rằng đồ án vẫn cònnhững thiếu sót nhất định Chúng em rất mong nhận được sự thông cảm và góp ý củaquý thầy cô dé có thé tiếp tục hoàn thiện hơn nữa trong tương lai
Chúng em xin chân thành cam ơn!
Trang 3MỤC LỤC
Chương 1 GIỚI THIEU DE TÀI 2 2£ E£+E£+EE£EE£EEE+EE£EEEZEEEEEerkerrerree 2
1.1 Téng quan về đề tài -:- +S++St+EE‡EEEEE1221211211211211211211 121.1 tre 2
1.1.1 _ Các nghiên cứu quốc tẾ - +: 25+ ++EE+E++EE2EE+EEEEEEEEEErrrrrrred 2
1.1.2 Cac nghiên cứu trong NƯỚC - c6 6 1xx vn ngư6
1.1.3 Ý tưởng của đề tài 5c 2s 2222211221121 211211 1e 7
1.2 Mục tiêu và phạm vi đề tài ¿5s s+Sx+E2EE E211 21.1 xe 8
1.2.1 Muc tiêu của đề tai sec cccccccccsesssessesseessessesssessessesssessessesssessesseeseeseesses 81.2.2 Phạm vi đề tain ccccccccccccscsssessssssssssessuesssessesssesssesssecssecsusesuesseesseesseeees 8Chương2 CƠ SỞ LÝ THUYET VÀ LỰA CHON CÔNG NGHỆ 9
2.1 ESP32 Board Ăc CS 2021221 HH HH ggrrrrưe 9
2.2 Một số cơ cấu phần cứng quan trong . -¿2 s©s++++£x+zx+zsrsez 10
2.2.1 Nguồn tổ ong 24V-]A - + E2 EEE111121111E1 1c, 10
2.2.2 Động Cơ Bước Size 42mm Nema 17 - + +-s+++ss++s+++ lãi
2.2.3 Mạch điều khiến động cơ bước (Driver TB6600 4.0A 9~42VDC): 13
2.2.4 Động Cơ RC Servo MGO996 «tk nưêt 14 2.2.5 — TTỤC VI{G G3111 011 1n vn kg vn 15
2.2.6 Một số linh kiện khác -¿-++++2+++++vtrxrerxrrsrxrerrrrrrrree 16
2.3 Giao thức MQTTT cành TH HH TH TH HH ri 18 2.4 HangÍire LH HH HH HH TH TH TH HH HH 20
2.5 _ Công nghệ và môi trường phát triển Website -: ¿-¿©cs+¿ 21
2.5.1 Kiến trúc phan mềm: Mô hình 3 lớp (three-layers) - 212.5.2 Back-end: ASP.NET Core - Entity Framework kết hợp với Microsoft
S60) ca ma 22
Trang 42.5.3 Front-end: Razor Page va Ajax ecceecccsscsscecsneceseeeeseeecesseeeeaeeeseeees 24 2.5.4 Giao diện thời gian thực với SignalR - csssscseeseesrsee 25
2.6 Môi trường phát triển máy chủ: Microsoft AZure -: :-csz 5+2 26
2.6.1 Microsoft Azure App S€TVICC - cv HH ng cư, 26
2.6.3 Lý do lựa chon Microsoft ÀZUT€ - - G5 c1 13s vrsrererre 28
Chương 3 PHAN TÍCH YÊU CAU VÀ ĐẶC TẢ HỆ THÓNG 29
3.1 Phân tích yêu cầu -:- +2 ©E+Ek+EE#EESEEEEEEEEEEEEE1221211211 1.1.2 cxe 29
3.1.1 Tổng quan về kết quả của đề tài -2-©2¿©5<+cx2x+zxerxrrserxeree 293.1.2 Những chức năng Can cÓ +52 E+EE+EvEeEerrrrrerreree 293.1.3 Phạm vi kết quả -¿ - +: + ©E+S+SEESEEEEESEEEEEEEEEEEEEEEEErrkrrrrrrree 293.2 Dac tả các use-case cho hệ thống "— — 30Chương 4 THIET KE HE THÓNG -2 2 £+£+EE+EE£+EE+EErEzzreerxee 33
4.1 _ Kiến trúc tổng quan hệ thống - 2 + ++++££+E++E++E+EzEezrerreee 334.2 Kiến trúc tông quan giao diện Web App ¿-¿©c+c©c+cczscrxeerseees 344.3 Thiết kế cơ sở dữ liỆu :-©2+-©2+222+22EEE2EE22112711221211 21.21 364.4 Lưu đồ giải thuật điều khiển phần cứng (Cơ cấu phân phối sản pham) 424.5 Kiến trúc kệ hàng và cơ cau phân phối sản phẩm -: 44
4.5.1 Kién trúc kệ hàng -:- SE EEEEEE12E12E121121121121121 1 c0,444.5.2 Kiến trúc cơ cau phân phối sản phẩm: . 2- ¿¿2+z+5s+2 45Chương 5 TRIÊN KHAI HIỆN THUC HỆ THÓNG 2-5252 41
5.1 _ Triển khai hiện thực Front-end -s- - s+s+xeEk+E+EEE+EeEzE+Eerkzkerrxsrcrx 47
5.2 _ Triển khai hiện thực Back-end -¿¿ + +++z++£x+zx+xxerxerxesrxerxee 52
5.3 Triển khai tinh năng cập nhật thông tin thời gian thực -. - 57
Trang 55.3.1 Triển khai ở phía SeTVT 2- 2 + 5E+SE+EE+EE£EEEEEEEEEErrrrrrrrrei 575.3.2 Triển khai ở phía Client : -¿©+©++2+++£x++rxe+rxesrxrzrxerrxee 58
5.4 Triển khai lập lich tác vụ nền với Hangfire 2-2 sz©s++2+>s+2 59
5.5 Triển khai tích hợp cong thanh toán Momo 2-2 2 + ++se2 +2 61
5.6 _ Triển khai sử dụng Firebase để lưu trữ hình ảnh -.:-. : 63
5.6.1 _ Tải lên hình ảnh - 2: ©5¿©5++2k2E£EE£EECEEEEEEEEEEEkerkrrrrerkrree 64
5.6.2 Xóa hình ảnh - + ©+c+2ESEE 2 2212212112121 2121 re 65
5.8 Xây dựng cơ cấu phân phối sản phẩm -2- 2 2 2 ++£++£++Ez+£zzsz+z 66
5.8.1 BO điều khiển và xử lý đơn hàng 2-2 5 s+ccccczrcrrces 66
5.8.2 Khung A = Truce X LH HH HH ngư 67 5.8.3 Khung B — Trục Y và Khung C - Truc ZZ - -«+++s«++++++ 69
5.8.4 Tay gi sxvea Í ⁄ 705.9 Cơ chế phản hồi từ máy bán hàng đến quản trị viên . . : 71Chương 6 _ ĐÁNH GIÁ KET QUA VÀ KET LUẬN -: -¿©-5¿©55+¿ 75
6.1 Kết quả đạt được -::22c22+22x222E22212211221.221211 211cc 75
6.1.1 Web ADppliCafIOH Ăn TH TH ngàn Hàn ng 75
6.1.2 Cơ cau phân phối sản phẩm -: 2¿2¿©+22++2E++£+++zx+zrxesrxe 786.2 Han Che 816.3 Hướng cải thiện và phát triển -: -¿+¿©+©2+++++zx++rxezrxrzrxrrrxee 82
Trang 6Hình 2.2: Nguén tỔ ong - 2-2: 22 5£+E++EE2EE22EEEEEEE2E122112711271127112711221 221cc 10
Hinh 2.3: 910i1-ã/80ì (2n .e 11 Hình 2.4: Nguyên lý hoạt động của động cơ DUOC . - + +++sxs++sssseresess 12
Hình 2.5: Cấu tạo bên ngoài động cơ DưỚc -¿- 2 £+£+£E+E£+E£Exerxezrserxee 12
Hình 2.6: Cấu tạo bên trong động cơ bước 2: + ©+2+s++x++x++zx++zxtzrxzzxez 13
Hình 2.7: Driver động cơ bước TTB66U 5c 2 E121 1331 E912 1111 1E krrkrsee 14 Hình 2.8 Động cơ RC Servo - - 2G 3 1121321111111 9 111 111 11111 1H ng rệt 15 Hình 2.9: Cách hoạt động của trục VI(IT€ - c1 + 3E ESrereeeeseeereesre 16 Hình 2.10: Minh họa cho MQ TTT” cG E2 222211111162211 1111115111118 1 ccrrey 18
Hình 2.11: Mô hình hoạt động của MT T” << + + E++vEseeeseeeseeereeers 19
Hình 2.12 Minh họa mô hình hoạt động của Hangfire - «+ ««++s «+2 20
Hình 2.13: Ung dụng web truyền thống với ứng dung AJAX - 24Hình 2.14: Minh họa về việc ứng dụng SignalR trong xây dựng website 25
Hình 2.15: Dashboard của App Service trên Microsoft AZUFe «-<< «+2 27
Hình 2.16 Dashboard của SQL databases trên Microsoft ÀZure 27
Hình 3.1: Sơ đồ Use-case cho người mua hàng 2-2 2 2+52+£++£z+zzxe+xzez 30Hình 3.2: Sơ đồ Use-case cho người quản trị -: 2 s¿s++cx++zx2zxvzrxzrsez 32Hình 4.1: Kiến trúc tong quan hệ thống - 2-22 2£ +£+£+£++£E£+E++Exerxzzxxrrxez 33
Hình 4.2.Kién trúc tổng quan của Web App theo Mô hình ba lớp - 34
Hình 4.3: Biểu đồ CSDL của hệ thống - 2-2 522S222E22EE2EEttrxerrxrrrrees 36Hình 4.4: Bảng mô tả chỉ tiết của USCIS 2¿-2: ©2255 S£2£S+2EEEvExerxrerxerrree 37
Trang 7Hình 4.5: Bảng mô tả chỉ tiết của produCts - 2-2: +¿25+22++2x+2z+zzxezxezrxersez 37 Hình 4.6: Bảng mô tả chỉ tiết của categories 2-2 25225++c2E+Ezrrrerrerreee 38
Hình 4.7 Lưu đồ giải thuật phần cứng - 2-22 2 +£+£+£E+£x£+Ezrxerxezrxerxee 42
Hình 4.8: Kiến trúc kệ hàng và cơ cau phân phối sản phâm - 2-2: 44
Hình 4.9 Kiến trúc kệ hàng -2- 2-2 + SE+SE+EE£EE+EEEEEEEEEEE2EE2EE2E121121222 21 xe, 44 Hình 4.10 Cơ cau phân phối sản phẩm - 2-2 2 2 2 +2 ++E++E++E++Ezxzzxeez 45
Hình 4.11 Kích thước các khung -. - + xxx vn ngư 46
Hình 4.12 Mô tả cách sắp xếp các khung 2- 2 ©22+£x+2£++zxerxrzreerxeee 46
Hình 5.1 Minh họa giao diện sử dụng AJAX để lấy dữ liệu thông qua API 48
Hình 5.2 Cau trúc thư mục của mã nguồn Front-end cho người mua hàng 48
Hình 5.3: Giao diện danh mục sản phẩm M Ố.ỐỒ 49 Hình 5.4: Giao diện các sản phâm -¿ ¿- 5:22: ©5+£©++EE+2EE++EE++Exezrxesrxerrxee 49 Hình 5.5: Giao diện gid hàng - óc 112199112 11 9 1 vn ng nh rưy 50 Hình 5.6 Giao diện Dashboard - + << SE 22221113113 £228EEEE+EEEEEkkeerereeeeree 50 Hình 5.7 Giao diện quản lý danh mục sản phẩm 2-2-2 2 2222222 +£‡ 51 Hình 5.8 Giao diện quản lý đơn hang 5- 5c 32+ + +*EE+vveererereerrrerrerree 51 Hình 5.9 Giao diện thêm mới một máy bán hang - + 5+ ++£+sx++e++sx 52 Hình 5.10: Cau trúc thư mục của mã nguồn Back-end cho Web API 52
Hình 5.11: Sơ đồ gói của Web APT .ccecccccccccccesscssessessessessessessessessesessssssseseeseesees 53 Hình 5.12: Định nghĩa cho lớp SignalRServer - 25 5+ *Sx*sseersrrreereree 57 Hình 5.13: Cau hình Middleware cho SignalR -2- 2 s2 £+sz+£x+zxzzzz+rxez 58 Hình 5.14: Cau hình endpoint cho SignalR cc.cccccsesssesssesssessseessesssessessessseceseessecsses 58 Hình 5.15: Thư viện SignalR client c cc ceeeesceecesececeesececeeececeeeeeeeeeeeaeeseeeaeeeees 59 Hình 5.16: Minh họa cho việc kết nối SignalR ở phía client - -: 59
Hình 5.17 Minh họa cho việc tạo các tác vụ nỀn - - + +zx+k+EeEx+xererxsxers 60 Hình 5.18 Minh họa cho hàm thực hiện thêm đơn hàng vào hàng đợi 61
Hình 5.19 Các tham số can thiết cho việc tích hợp công thanh toán Momo 61
Hình 5.20 Minh họa cho việc tạo yêu cầu với công thanh toán Momo (1) 62
Hình 5.21 Minh họa cho việc tạo yêu cầu với công thanh toán Momo(2) 62
Trang 8Hình 5.22 Thêm đơn hàng vào hang đợi khi nhận được tín hiệu IPN từ Momo 63 Hình 5.23 Minh họa cho Phương thức tải lên hình ảnh lưu trữ với Firebase 64
Hình 5.24 Hình ảnh thực tế kệ 7 65Hình 5.25 Sơ đồ kết nối bộ điều khiển -2+¿-+c+xerrrrkrrrrtrtirrrrriirerriee 67Hình 5.26 Mô tả chỉ tiết khung A -2¿©22522E222E‡EEEE2EEEEErEerkrrkrrrrervee 68
Hình 5.27 Hình ảnh thực tế Khung A — Trục X 2-2 2©e+c++s+szxezxeez 69
20.8592.0106 ợN‡3,3Ỹ”“Ểồễ”'”.-.Ầ3£"'Ý 70Hình 5.29 Hình ảnh thực tẾ tay gap cccccccccscsecsesssessecsesssessesssessessesssessecssesessesseeeses 71Hình 5.30 Tay gap tích hợp cảm biến hồng ngoại . -2- 522 s++s++sscse2 71
Hình 5.31 Minh họa danh sách Problems trên giao diện Web App 72
Hình 5.32 Minh họa một email được gửi đến quản trị viên 2-2 +: 73
Hình 6.1 Minh họa cho công thanh toán MoMo với một don hang 75
Hình 6.2 Minh họa gói tin MQTT được gửi đi sau khi thanh toán thành công 76
Hình 6.3 Kết qua đăng nhập của 100 máy bán hang bằng jMeter 77Hình 6.4 Kết quả tong hợp của api lay danh mục sản phâm của 100 máy bằng jMeter
ey AE Ƒ đe fQ \ BH < 78
Hình 6.5 Kết quả tong hợp check out của 100 máy bán hàng bằng jMeter 78Hình 6.6 Hình ảnh cơ cấu phân phối sản phẩm thực tế( I) - 2-2-2 25s 80Hình 6.7 Hình anh cơ cấu phân phối sản phẩm thực tế(2) 2-2-2 s52: 80
Trang 9DANH MỤC BANG
Bảng 2-3: Bang các linh kiện cần thiết khác - 2-2 22 s2 + ++£++££zEzzzzzzez l6Bang 4-1: Bảng mô tả chỉ tiẾt của roles -2- 2-52 £S£2S£+EE+EE2E2EE+EzErrerrerreee 36Bảng 4-2: Bảng mô tả chi tiết của machines 2: 2 52+2s++cx+2£xzzxrzrxerrxee 39Bảng 4-3: Bảng mô tả chi tiết của Orders ccscccssesseessessesssessesssessecsuessecsesssessessecsseeses 39Bang 4-4: Bang mô tả chỉ tiết của order-detai]s 2-2 2 2 z+£++EzEzzzzzzeee 40
Bang 4-5: Bảng mô tả chỉ tiết của transactiOns -¿- 2-2 2+s++s++£+EzEzzzrzreee 40
Bang 4-6: Bảng mô tả chỉ tiết của problems 2-2 2 225£ +2££2EzEzzzzzzreee 41Bảng 5-1: Bang thống kê về các API đã xây dung o.ccccccccsccssessessssstessesssecsseessecsees 54Bảng 6-1 Bảng thống kê giời gian phản hồi của Web App - 76
Trang 10DANH MỤC TU VIET TAT
RFID: Radio Frequency Identification
MOQTT: Message Queuing Telemetry Transport
QoS: Quality of service
SQL: Structured Query Language
API: Application Programming Interface
CSDL: Co sở dữ liệu
Trang 11TÓM TẮT KHÓA LUẬN
Trong kỷ nguyên số hiện nay, trên thế giới máy bán hàng tự động đang ngàycàng phát trién mạnh mẽ và trở nên phô biến vi tính tiện dụng cho khách hang vàcũng giúp giảm bớt chi phí thuê nhân viên, giảm chi phí mặt bang cho các doanhnghiệp Tại Việt Nam, hiện tại các máy bán thức uống đóng chai đã dần phô biến, tuynhiên nhu cầu mua hàng tạp hóa, các mặt hàng phục vụ hàng ngày cũng cao mà chưa
có hệ thống giao dịch phục vụ cho lĩnh vực siêu thị và vấn đề cấp thiết cần có các
thiết bị giao dịch tự động dùng trong việc buôn bán các mặt hàng tiện dụng hàng ngàynày Có thê xem thiết bị này là một máy bán hàng hoạt động dưới dạng kho hàng tại
các siêu thi mimi, cửa hàng tiện lợi Đề giải quyết vấn đề này, đề tài khóa luận này
sẽ nghiên cứu chế tạo một máy bán hàng siêu thị mini tự động Cụ thể, đề tài sẽ trình
bày mục tiêu về nhu cầu của người mua hàng tại siêu thị, từ đó đặt ra các mục tiêu về
các tính năng của máy, đặc tính kỹ thuật cần thiết, tính toán thông sé, thiết kế cấu trúc
máy, lựa chọn phương thức giao dịch (Vi dụ: Phương thức thanh toán QR code; thanh
toán tiền mặt bang doc tién, thanh toan vi dién tt, quet thẻ ATM, quet thẻ may POS)
của máy bán hang tu động phục vu bán hang cho siêu thi mini có kho hàng dưới 30
sản phẩm
Thiết bị bán hàng tự động này gồm có kệ chứa sản phẩm, một cơ cấu phânphối sản phẩm sẽ lay hàng hóa từ kệ hang rồi bỏ vào giỏ hàng dé đưa đến cho kháchhàng; các phần tử cảm biến sẽ nhận diện được các vị trí và trạng thái của hệ thống dé
từ đó máy tinh nhúng điều khiển hệ thống vận hành theo chương trình thiết kế sẵn;thông tin sẽ được các phần tử kết nối mạng truyền đến máy chủ; toàn bộ hệ thống sẽđược lập trình theo chương trình thiết kế Thiết bị sẽ tương tác với khách hàng nhờ
các phần tử hiển thị như màn hình cảm ứng Thiết bị sau khi được thiết kế, chế tạo,
lắp ráp, lập trình được chạy thử dé kiểm tra tính ồn định, đánh giá độ tin cậy Kết quacho thấy máy có thé vận hành tốt, đáp ứng được mục tiêu đặt ra
Trang 12Chương 1 GIỚI THIỆU DE TÀI
1.1 Tổng quan về đề tài
Trong bối cảnh hiện nay, thị trường ngày càng cạnh tranh song song đó là sự thúc đây
mạnh mẽ của công nghệ, việc thiết kế và điều khiến thiết bi quản lý và bán hàng tựđộng trở thành một phần gần như không thể thiếu của tập đoàn, doanh nghiệp Đề tàinày đặt ra mục tiêu nghiên cứu, tìm hiểu và phát triển các giải pháp hiệu quả dé tựđộng hóa quá trình quản lý và bán hàng, từ đó nâng cao năng suất, tôi ưu hóa chỉ phí
và cải thiện trải nghiệm của khách hàng.
Trong phạm vi của đề tài, sẽ tiến hành tìm hiểu, nghiên cứu về các kỹ thuật, phươngpháp và công nghệ dé thiết kế các thiết bị quản lý va bán hàng tự động, từ việc pháttriển phần cứng đến việc xây dựng phần mềm mua hàng, điều khiến và quản lý
Nghiên cứu cũng sẽ tập trung chủ yếu vào việc phân tích yêu cầu của thị trường và
khách hàng để tạo ra các giải pháp phù hợp và hiệu quả
Kết quả của đề tài dự kiến sẽ mang lại những đóng góp quan trọng và tích cực cho
lĩnh vực quản lý và bán hàng, giúp các doanh nghiệp tăng cường cạnh tranh, cung
cấp dịch vụ tốt hơn và thuận tiện hơn cho khách hàng trong một môi trường kinh
doanh đang trở nên ngày càng mở rộng và đa dạng.
1.1.1 Các nghiên cứu quốc tế
Trên thế giới, hiện có một số công trình thiết kế, xây dựng và điều khiển máy bánhàng tự động đã được thực hiện, trong đó tác giả bài báo [1] đề xuất một thiết kế máybán chocolate tự động tích hợp công nghệ IoT Kiểu thiết kế này sử dụng board mạchArduino UNO, module nhận tiền xu, đầu đọc thẻ dùng công nghệ RFID, thẻ RFID,động cơ servo, màn hình hiển thị LCD, cảm biến hồng ngoại Ngoài ra, kiểu thiết kếnày có thé bán nhiều loại sản phẩm và chấp nhận da dạng các phương thức thanhtoán Bài báo [2] đề xuất một hệ thống bán hàng không dây dựa trên công nghệ RFID
Thiết bị này sử dụng board Arduino UNO làm bộ điều khién chính cùng với thé RFID
và bộ đọc thẻ Công trình [3] đưa ra lập luận việc xây dựng máy bán hàng tự động sử
Trang 13dụng vi điều khiển 8051 Bài báo chỉ ra mục tiêu quan trọng nhất là nhận diện tiền xu
và đọc giá trị tiền xu này Công bố [4] tiếp cận các loại sản phẩm của hệ thống nhasản phâm Máy chấp nhận nhiều loại coin và các sản phẩm, ngoài ra máy cũng sửdụng phương thức thanh toán không dùng tiền mặt, thanh toán trực tuyến sử dụng
module GSM đề nhận thanh toán trực tuyến.
Công ty Taisho Pharmaceutical về dược phẩm của Nhật [5] đã tiên phong triển khai
thử nghiệm bán thuốc thông qua máy bán hàng tự động tại ga JR Shinjuku, một trongnhững ga tàu đông đúc nhất ở thủ đô Tokyo Động thái này nhằm mục đích mang lại
sự tiện lợi tối đa cho hành khách và cư dân thành phó Máy bán hàng tự động của
Taisho Pharmaceutical Co được thiết kế để cung cấp khoảng 30 loại thuốc thôngdụng mà không cần toa bác sĩ Giúp người dùng tiếp cận một cách dễ dàng các loại
thuốc đành cho các bệnh cơ bản như cảm, đau đầu, và các sản phẩm thực phẩm chứcnăng sức khỏe khác ngay tại ga tàu Sự hiện diện của máy bán thuốc tự động tại mộttrong những diém giao thông chính của Tokyo không chỉ giúp tiết kiệm thời gian mà
còn đáp ứng nhanh chóng nhu cầu y tế cơ bản của người dân và hành khách di chuyên
Trang 14máy bán hàng khắp nước Nhật bản, trong đó hơn 2 triệu máy bán đồ uống đóng lon
hoặc đóng chai nhựa (Hình 1.1).
Hình 1.2: Máy bán đồ uống đóng chai/lon
Vending.com là đơn vi nghiên cứu và cung ứng các loại máy bán hàng tự động tại
mỹ [6].
Kho hàng và siêu thị tự động trên thế giới:
Vào tháng 3 năm 2012, Amazon đã thâu tóm toàn bộ công ty kho hàng tự động Kiva,
với chi phí giao dịch khoảng 775 triệu USD [7].
Công nghệ sử dung: Amazon Robotics, trước đây là Kiva Systems, sử dung mang
lưới robot tự động dé quản lý kho hàng của Amazon
Hoạt động: Các robot di chuyên đưới các kệ hàng chứa hàng Thay vì nhân viên sẽ di
chuyển đến các kệ hàng để lấy hàng, các robot này di chuyển các kệ hàng đến các
trạm làm việc của nhân viên Nhân viên chi cần lấy hàng từ kệ và đóng gói chúng dé
vận chuyên.
Trang 15Hình 1.3 Kho hàng tự động với Robot Kiva của Amazon.
Thêm vào đó, vao ngày 30 tháng 10 năm 2018, Cainiao - một doanh nghiệp chuyên
về dịch vụ logistics - đã thông bao về việc đưa vào hoạt động kho hàng tự động với
mục đích thỏa mãn xu hướng mua hàng gia tăng trong dịp Lễ Độc Thân, một sự kiện
thương mại diễn ra hàng năm vào ngày 11 tháng 11 Kho hang này được trang bị 700
thiết bị vận chuyên tự hành Những robot này có chức năng tự động tiếp nhận hànghóa và vận chuyền đến các khu tương ứng trong kho để các đơn vị vận chuyên có thê
lấy hàng Theo Cainiao, việc ứng dụng công nghệ robot đã giúp tiết kiệm phần lớn
thời gian chuẩn bị hàng hóa cho quá trình giao nhận [8]
Trang 16Mặt khác, trong năm 2020, khi các chuỗi bán lẻ đang nỗ lực đáp ứng với sự phát triểnrất nhanh của thương mại trên nền tảng điện tử, tập đoàn Amazon - một ông lớn trong
lĩnh vực này - đã khai trương một mô hình siêu thị mới mang tên Amazon Go [9].
Quy mô của siêu thị Amazon Go này vượt trội gấp 4-5 lần so với một cửa hàng tiệnlợi thông thường Điểm nổi bat là sự vắng mặt hoàn toàn của quầy tính tiền và nhân
viên thu ngân.
Theo nguồn tin thế giới, siêu thị Amazon Go dau tiên có tổng diện tích xấp xỉ 966mét vuông, bao gồm cả khu vực kho hàng rộng lớn ở phía sau
Một đặc điểm nổi bật, hiện đại được áp dụng tại Amazon Go là hệ thống thanh toán
tự động không cần nhân viên thu ngân Để sử dụng dịch vụ tại Amazon Go, khách
hàng cần tải và cài đặt ứng dụng Amazon Go trên thiết bị di động
1.1.2 Các nghiên cứu trong nước
Nhóm nghiên cứu gồm Nguyễn Anh Luật, Nguyễn Minh Khoa và Võ Minh Chí đãphát triển một hệ thống bán bánh mi tự động (minh họa trong Hình 1.6) có kha năngchứa tối đa 120 ô bánh [10] Quy trình hoạt động của máy như sau: khách hàng lựachọn loại bánh, số lượng, phần nhân và thực hiện thanh toán Sau đó, bánh mì đượcvận chuyên từ khoang bảo quản lạnh vào lò để làm nóng Tiếp theo, sản phâm hoàn
Trang 17thiện được đóng gói trong túi giấy cùng với các gói gia vị đi kèm như nước tương,tương ớt và chuyền đến tay người mua.
Hình 1.6 Máy bán bánh mì tự động
1.1.3 Ý tưởng của đề tài
Thay rằng, hầu như trên thế giới vẫn chưa có một hệ thống tích hợp cả siêu thị tự
động và kho hàng tự động.
Với kho hàng tự động của Amazon và Cainiao, nó đúng hoàn toàn với tên gọi kho
hàng và được thiết kế với mục đích là quản lý và vận chuyên kho hàng sao cho nhanhgon nhất mà không có chức năng giao dịch thương mai (mua bán)
Còn với siêu thị tự động Amazon Go, người mua có thê thanh toán bang quét mã hoặc
chuyên khoản mà không cần đứng đợi xếp hang dé thu ngân kiểm tra từng món đồ
rồi thanh toán, nhờ đó thời gian mua sắm có thê giảm bớt Mặc dù vậy, khách hàngkhi đến mua sắm vẫn phải đi đến các quầy hàng, kệ hang dé lựa chọn hàng hóa rồi
dat vào giỏ hang một cách thủ công, có thé gây ra sự không thuận tiện cho người
khuyết tật hoặc người già (việc di chuyển không được dễ dàng) hoặc tiêu tốn thờigian di chuyên trong siêu thị
Vì vậy, nhận thấy được các điểm tốt và mặt hạn chế trên, nhóm em quyết định xâydựng một hệ thống quản lý mua bán tại các siêu thị mini, nơi mà vừa có chức năngquản lý, phân phối hàng của kho hàng tự động và có chức năng thanh toán tự động
thông qua mã QR.
Trang 18Khi đó người mua hàng chỉ cần tìm kiếm hàng hóa mình cần rồi tiến hành thanh toánquét mã QR Khi đó, chức năng kho hàng tự động sẽ được thực thi, tiến hành lấy các
hàng hóa tương ứng với đơn đặt của người mua hàng và trả giỏ hàng lại cho người
đó sau khi đơn hàng đã được.
1.2 Mục tiêu và phạm vi đề tài
1.2.1 Mục tiêu của đề tài
Mục tiêu chính đề tài là chế tạo và lập trình cho máy bán hàng tại các siêu thi mini,đồng thời cung cấp phần mềm quản lý cho người quản trị các máy bán hàng Đề đạtđược mục tiêu này, đề tài sẽ đề xuất các mục tiêu cần đạt được như sau: phân tích đặc
tính kỹ thuật cần thiết, tính toán thông sé, thiết kế cau trúc máy, lựa chọn phương
thức giao dịch (VD: hình thức thanh toán dùng QR code; thanh toán tiền mặt bằngđọc tiền, thanh toán ví điện tử, quẹt thẻ ATM, quẹt thẻ máy POS), giao diện cũng như
cách thức tương tác giữa người dùng và máy bán hàng tự động.
1.2.2 Phạm vi đề tài
Một số nhiệm vụ chính bao gồm:
e Tìm hiểu về máy bán hàng và các thành phan cần thiết, tìm hiểu về các công
nghệ điều khiến hệ thong bán hàng
e Xây dựng phần mềm máy bán hàng (Web Application)
e Tích hợp hình thức thanh toán không dùng tiền mặt MoMo Qr Code
e Thiết kế phần mềm quản lý, theo dõi cho người quản trị viên hệ thống (Web
Application).
e Tính toán, xây dựng phan cứng hệ thống bán hàng
e Tìm hiểu phương pháp giao tiếp giữa máy và Web app
© Chạy thử hệ thống, kiểm tra và điều chỉnh chương trình điều khiến máy bán
hàng.
e Đánh giá độ tin cậy của hệ thống bán hang tự động
Trang 19Chuong 2 CƠ SỞ LÝ THUYET VA LUA CHỌN CÔNG NGHỆ
2.1 ESP32 Board
ESP32 WROOM-32 Devkit VI là vi điều khiển công suất thấp và tiết kiệm chi phí,
tích hợp Bluetooth và Wi-Fi kép, mang lại tính linh hoạt, sức mạnh và độ tin cậy cao.
Là sự kế thừa của NodeMCU ESP8266, ESP32 cải thiện hiệu suất và tinh năng, phù
hợp cho IoT, robot và tự động hóa Sản xuất bởi Espressif Systems, ESP32 tiêu thụ ítđiện năng, lý tưởng cho ứng dụng pin, với khả năng ngủ và thức dậy khi cần thiết,kéo dài tuổi thọ pin
Cấu hình ESP32:
CPU sử dụng vi xử lý Xtensa Dual-Core LX6 với kiến trúc 32 bit, có thé chạy ở tốc
độ từ 160 MHz đến 240 MHz Nó hỗ trợ đọc chip flash với mức xung nhịp từ 40 MHzđến 80 MHz RAM gồm 520 KB SRAM, trong đó có 8KB RAM RTC tốc độ cao.Thiết bị hỗ trợ hai giao tiếp không dây gồm Wi-Fi 802.11 va Bluetooth v4.2 BR/EDR
và BLE Các giao tiếp khác bao gồm 8-bit DAC (2 cổng), 12-bit ADC (16 cổng), 2C(2 công), UART (3 công), SPI (3 công), I2S (2 công), giao tiếp thẻ SD/SDIO/MMC,
Ethernet MAC với DMA và hỗ trợ IEEE 1588, CAN bus 2.0, IR (TX/RX), và PWM
trên tất cả các chân Về bao mật, nó hỗ trợ các tiêu chuẩn bảo mat IEEE 802.11, baogồm WFA, WPA/WPA2, WAPI, cùng với secure boot, mã hóa flash, OTP 1024-bit
và tăng tốc phần cứng cho các thuật toán mã hóa như AES, SHA-2, RSA, ECC và
RNG Thiết bị hoạt động trong khoảng nhiệt độ từ -40°C đến +85°C và điện áp từ
2.2V đến 3.6V, với tong số công GPIO là 34
Trang 20Hình 2.1: Board ESP32
2.2 Một số cơ cấu phần cứng quan trọng
2.2.1 Nguồn tô ong 24V-10A
Bộ nguồn 24V-10A có vỏ kim loại đục lỗ giúp tản nhiệt hiệu quả, nâng cao tuổi thọ.Với công suất 250W, nó cung cấp điện năng ôn định và mạnh mẽ, hỗ trợ đầu vào từ110VAC đến 220VAC điều chỉnh bằng công tắc gạt Đầu ra gồm 3 cặp, kích thước110x220x49mm, dễ lắp đặt trong không gian hẹp Thiết kế thông minh và thông số
kỹ thuật ấn tượng làm cho nó phù hợp với các hệ thống điện yêu cầu độ tin cậy và
hiệu suât cao.
10
Trang 212.2.2 Động Cơ Bước Size 42mm Nema 17
Động cơ bước Size 42mm Nema 17 Stepper Motor 4234 có chất lượng tốt và dé tim
phụ kiện tương thích như dây dai, Phù hop cho thực hành, làm mô hình don giản,
va máy in 3D.
Thông số kỹ thuật:
Đây là một động cơ bước loại 2 Phase, có góc bước là 1.8° và chuẩn kết nối XH2.54
6P Đường kính trục của động co là 5mm và kích thước tổng thé của nó là42x42x34mm Đây là một lựa chọn tối ưu cho các ứng dụng đòi hỏi độ chính xác và
độ tin cậy cao như trong máy 1n 3D và các mô hình điêu khiên.
Nguyên lý hoạt động [12]:
Khi cung cấp điện cho cuộn dây stato, cuộn dây này sẽ hoạt động như một nam
châm điện Luc từ trường được tao ra sẽ tac động lên roto, gây ra một mô-men xoắnkhiến roto quay một góc nhất định Quá trình này diễn ra theo từng bước cụ thé và
11
Trang 22tuân tự, tạo ra sự chuyên động chính xác cua roto.
+Vcc
ElectricalMulti- Toothed riaMagnetic Rotor
12
Trang 23Mạch TB6600 với IC TB6600HQ/HG, được thiết kế dé điều khiển động cơ bước 2pha hoặc 4 dây như 42/57/86 với dòng tải tối đa 4A và điện áp 42VDC Ứng dụngphô biến trong máy CNC, máy laser, và thiết bị tự động hóa, TB6600 có độ ồn định
và chính xác cao, là một lựa chọn phù hợp cho các hệ thống sử dụng động cơ bước
Thông số kỹ thuật:
TB6600 có nguồn đầu vào từ 9V đến 42V và dòng cấp cao nhất 4A Ngõ vào của
mạch được cách ly quang, tăng tốc độ và độ an toàn Mạch tích hợp bảo vệ quá
dòng và quá áp Với cân nặng 200g và kích thước 96 x 71 x 37mm, mạch dễ dàng
lắp đặt
Cài đặt và ghép nối đơn giản:
e Nguồn điện kết nối vào DC+ và DC- (9V đến 40VDC)
e Các cặp cuộn dây động cơ bước nối vào A+/A- và B+/B-
e Tín hiệu điều khiến tốc độ qua PUL+ và PUL-, tín hiệu dao chiều qua DIR+
và DIR-.
e©_ Cặp ENA+ và ENA- dé ngắt momen giữ của động cơ khi cần thiết
13
Trang 24Mạch cho phép đấu tín hiệu đương (+) hoặc âm (-) chung tùy theo yêu cầu hệthống điều khiến.
Hình 2.7: Driver động cơ bước TB6600
Nguyên lý hoạt động [13]:
Mạch TB6600 là một bộ điều khiển dành cho động cơ bước với độ tin cậy cao Cách
hoạt động cơ bản của TB6600 gồm:
Nhận tín hiệu điều khiển: Nhận tín hiệu từ bộ vi điều khiển như Arduinohoặc PLC dé quyết định hướng quay, vận tốc và các bước của động cơ bước
Chuyển đổi tín hiệu: Xử lý và chuyên đổi tín hiệu điều khiển thành tín hiệu
điện phù hợp cho động cơ bước.
Phân phối dòng điện: Điều chỉnh dòng điện cho các cuộn dây của động cơ,
đảm bảo động cơ nhận đủ dòng điện dé tạo lực từ trường cần thiết
Bao vệ và điều chỉnh dòng điện: tích hợp vài chức năng bảo vệ như quá dòng
và quá nhiệt, và có thê điều chỉnh dòng điện đầu ra theo yêu cầu ứng dụng
Điều chỉnh microstep: Cho phép điều chỉnh vị trí rotor với độ tin cậy cao
hơn, giúp động cơ di chuyển mượt mà và giảm độ rung
2.2.4 Động Cơ RC Servo MG996R
Động cơ RC Servo MG996R có tốc độ, lực kéo và độ chính xác cao hơn Với điện
áp 6V, MG996R có lực kéo lên đến 11kg, thích hợp cho các ứng dụng như máy bay
14
Trang 25cánh quạt và máy bay cánh có định So với MG946R, MG996R có tốc độ nhanh hon
mặc dù kích thước nhỏ hơn một chút.
Thông số kỹ thuật:
Servo MG996R là một sản phẩm servo mạnh mẽ và độ chính xác cao, được tạo ra dé
áp dụng trong các hệ thống đòi hỏi tiêu chuẩn cao về lực kéo và độ chính xác trong
các ứng dụng máy bay mô hình Với trọng lượng 55g và kích thước nhỏ gọn, nó cung
cấp lực kéo lên đến 9.4kg/cm ở điện áp 4.8V và 11kg/cm ở điện áp 6V Tốc độ quay
của servo là 0.17 giây/60 độ ở 4.8V và 0.14 giây/60 độ ở 6V Điện áp hoạt động từ
4.8V đến 7.2V, và nhiệt độ từ 0 °C đến 55 °C Với dong điện không tải 0.15A và bánh
răng kim loại, MG996R thích hợp cho các loại máy bay mô hình sử dung methanol
từ 50 đến 90 và động cơ xăng từ 26cc đến 50cc
2.2.5 Trục vitme
Truc vít me là một loại cơ cầu biến chuyền động quay thành chuyền động tuyến tính,
hoặc ngược lại, thông qua việc sử dụng một trục vít và một vòng tròn hoặc thanh
trượt Nguyên lý hoạt động của trục vít me dựa vào sự quan hệ giữa việc quay của
trục vít và di chuyền tuyến tính của vật liệu được nối với nó thông qua vòng tròn hoặc
thanh trượt.
Cơ cấu cơ bản của một trục vít me bao gồm [14]:
15
Trang 26e Trục vit: Là trục có rãnh xoắn (rãnh vit) chạy dọc theo chiều đài của nó Khi
trục vít quay, vòng tròn hoặc thanh trượt sẽ di chuyên tuyến tính theo chiềudai của trục vít, phụ thuộc vào hướng quay của nó và cau trúc cơ cau của hệthống
e Vòng tròn hoặc thanh trượt: Được gan với vật liệu cần di chuyền, chăng hạn
như bàn làm việc trong máy CNC hoặc một tam trong máy in 3D Vòng trònhoặc thanh trượt chuyên động tuyến tính khi trục vít quay, dẫn đến di chuyển
của vật liệu theo hướng xác định.
Quá trình này được điều khiển bởi cơ cấu của trục vít và cách mà nó tương tác vớivòng tròn hoặc thanh trượt, cung cấp độ tin cậy và sự 6n định trong các ứng dụng yêu
câu di chuyên tuyên tính chính xác và ôn định.
Balls recirculate above
Ball Nut outside diameter
Ball Return Tube
Integral Lead Shift
Hình 2.9: Cách hoạt động của trục Vitme
2.2.6 Một số linh kiện khác
Bảng 2-1: Bảng các linh kiện cần thiết khác
Hình ảnh linh kiện Tên linh kiện
Nhôm định hình
16
Trang 27Ke góc 90 độ
Gối đỡ thanh trượt
Con trượt vuông
Puly GT2
Trục trơn.
17
Trang 28Truc Vitme
Các loại ốc M3, M5
2.3 Giao thức MQTT
Message Queuing Telemetry Transport - MQTT là một giao thức truyền thông điệp
nhẹ và đơn giản, được thiết kế cho các ứng dụng mạng IoT (Internet of Things) Giao
thức này được tối ưu hóa để gửi và nhận thông điệp giữa các thiết bị và ứng dụng
trong các môi trường mạng có băng thông hạn chế và độ tin cậy thấp [15]
`
—=
MQTT
Hinh 2.10: Minh hoa cho MQTT
MQTT sử dung kiến trúc publish/subscribe (công bố/đăng ky), nơi các thiết bị đóng
vai trò là nhà cung cấp thông điệp (publisher) gửi thông điệp tới một hoặc nhiều chủ
dé (topics), và các ứng dụng hoặc thiết bị khác đóng vai trò là người đăng ký(subscriber) dé nhận thông điệp từ các chủ đề tương ứng Giao thức này cho phép các
18
Trang 29thiết bị giao tiếp một cách hiệu quả mà không cần kết nối liên tục, chỉ truyền thôngđiệp khi cần thiết.
MQTT hoạt động dựa trên mô hình client/server, trong đó mỗi thiết bị cuối là một
khách hàng (client) và kết nối tới một máy chủ (server), được gọi là broker, thôngqua giao thức truyền tải gói tin TCP (Transmission Control Protocol) Trong đó,
Broker có nhiệm vụ quản lý và điều phối tất cả các thông điệp từ phía thiết bị gửi tới
đúng phía thiết bị nhận MỌTTT là một giao thức định hướng bản tin, trong đó mỗi
bản tin là một chuỗi thông điệp riêng lẻ mà broker không thê nhìn thấy nội dung
Hình 2.11: Mô hình hoạt động của MQTT
Đặc điểm nồi bật của MQTT:
e Hiệu suất cao: Đạt hiệu suất cao trên các thiết bị có tài nguyên hạn chế
e_ Mô hình truyền thông Pub/Sub: Mô hình truyền thông điệp theo kiểu công
bố/đăng ký hiện thực việc truyền gói tin phân tán một chiều, tách biệt
e Truyền thông điệp tức thời: Việc gửi thông điệp đi được diễn ra ngay lập tức,
không bị ảnh hưởng bởi nội dung được truyền
e Ba mức độ tin cậy: QoS 0, QoS 1, QoS 2.
19
Trang 30e Với khả năng tiêu tốn băng thông thấp hiệu quả trong các môi trường có độ
trễ cao, MQTT nổi bật như một giao thức lý tưởng cho các ứng dụng M2M
(Machine to Machine).
2.4 Hangfire
Hangfire là một framework mã nguồn mở được sử dung dé xây dựng, quan ly và thựcthi các tác vụ nền của hệ thống Hangfire dễ dàng cài đặt và cấu hình, Hangfire sửdụng bộ nhớ liên tục và có giao diện quản ly dé hỗ trợ người dùng kiểm tra công việc
của hệ thông Hangfire hỗ trợ lưu trữ liên tục dé lưu lại trạng thái các tác vụ Tính
năng này giúp đảm bảo công việc của hệ thống hoàn thành việc thực thi ngay cả khicác tác vụ có xảy ra lỗi trong lúc xử lý Nếu các tác vụ không thành công, Hangfire
sẽ cô găng chạy lại các tác vụ đó.
Hình 2.12 Minh hoa mô hình hoạt động cua Hangfire
Kiến trúc của Hangfire có 03 thành phần chính trong, mỗi thành phần sẽ có những
trách nhiệm khác nhau:
e Hangfire client: đây là những hệ thống sử dụng Hangfire dé tạo tác vụ, dam
bảo lưu trữ các tác vụ vào bộ lưu trữ liên tục của hệ thông.
20
Trang 31e Hangfire storage: đây là nơi lưu trữ lại thông tin của các tác vụ của hệ thống
đã được tạo Hangfire hỗ trợ cả cơ sở dữ liệu quan hệ và cơ sở dữ liệu phi quan
hệ.
e Hangfire server: máy chủ có nhiệm vụ chọn các tác vụ từ Hangfire storage để
thực thi các tác vụ đó Máy chủ này cũng chịu trách nhiệm giữ cho Hangfire
storage sạch sẽ khỏi moi dữ liệu mà hệ thống không sử dụng nữa
Luồng xử lý công việc giữa các thành phan trong kiến trúc của Hangfire khá đơn giản
và dễ hiểu Sau khi đã tạo các tác vụ nền trong hệ thống tích hợp vào Hangfire thì
Hangfire client sẽ thực hiện tạo các tác vụ nền và lưu trữ vào Hangfire storage Tiếp
đó, Máy chủ sẽ kiểm tra và chọn các tác vụ và tạo luồng dé thực thi các tác vụ đã
được chọn và thực thi các tác vụ đó.
2.5 Công nghệ và môi trường phát triển Website
2.5.1 Kiến trúc phần mềm: Mô hình 3 lớp (three-layers)
Mô hình 3 lớp là một phương pháp tổ chức các thành phan trong hệ thống nhằm đảmbảo tính hiệu quả và có cấu trúc tốt Trong mô hình này, các thành phần có chức năng
tương tự được nhóm lại với nhau và mỗi nhóm sẽ chịu trách nhiệm cho các tác vụ cụ
thé Điều này giúp ngăn ngừa sự chồng chéo và xung đột dữ liệu, đồng thời tạo nên
sự thuận tiện cho việc quan lý mã nguồn và khắc phục lỗi.
Mô hình 3 lớp thường được áp dụng đặc biệt hiệu quả khi xây dựng các hệ thống quy
mô lớn, mang lại lợi ích rõ rệt trong việc quản lý mã nguồn và xử lý dữ liệu lỗi mộtcách dễ dàng và hiệu quả Bằng cách phân chia nhiệm vụ rõ ràng giữa các lớp, môhình này giúp tăng hiệu quả trong quá trình phát triển và bảo trì hệ thống
Các thành phần chính của mô hình 3 lớp bao gồm:
1 Presentation Layer (GUI): Lớp này đóng vai trò là điểm tiếp xúc chính giữa
hệ thống và người dùng cuối Nó bao gồm các component giao diện nhưWindows Forms, Web Forms, và thực thi các chức năng liên quan đến tươngtác người dùng Nhiệm vụ chính của lớp này bao gồm việc thu thập input từ
21
Trang 32người dùng, render dữ liệu, và thực hiện validation sơ bộ trước khi chuyên cácrequest tới Business Logic Layer dé xử lý tiếp.
2 Business Logic Layer (BLL): Lớp nay có hai nhiệm vụ chính:
- Thực hiện các thao tác truy xuất đữ liệu, dựa trên yêu cầu từ Presentation
Layer.
- Kiểm tra và xử lý trước khi chuyên xuống lớp kế tiếp Tại đây, BLL thực
hiện việc validate tính hợp lệ của input, áp dụng các ràng buộc nghiệp vụ,
đảm bảo tính toàn vẹn dữ liệu, và thực thi các phép tính toán cần thiết Saukhi hoàn tất các quy trình, kết quả sẽ được trả về Presentation Layer hoặc
chuyền đữ liệu đã được xử lý xuống tang dưới dé lưu trữ, đảm bảo tuân thủđúng các yêu cầu nghiệp vụ của ứng dụng
3 Data Access Layer (DAL): Lớp này đảm nhận vai trò kết nối và tương tác trực
tiếp với hệ thống quản lý CSDL và thực thi các hoạt động liên quan đến việcquản lý và truy xuất đữ liệu Các chức năng chính bao gồm thêm, cập nhật,chỉnh sửa, xóa và tìm kiếm thông tin Bên cạnh đó, lớp này còn có trách nhiệmthiết lập và duy trì kết nối với các dịch vụ của bên thứ ba khi cần thiết
2.5.2 Back-end: ASP.NET Core - Entity Framework kết hợp với
Microsoft SQL server
ASP.NET Core là mã nguồn mở đa nền tảng được phát triển bởi Microsoft dùng dé
xây dựng các ứng dụng web MVC, web API dịch vụ và ứng dụng Internet of Things
được dựa trên nền tảng NET Core [16]
Các đặc điểm nổi bật của NET Core:
e Khả năng chạy đa nền tảng: NET Core hoạt động trên Windows, macOS và
Linux, đảm bảo đầu ra nhất quán trên mọi hệ điều hành
e Tính nhất quán giữa các kiến trúc: NET Core hỗ trợ x64, x86 và ARM, giúp
mã chạy mượt mà trên nhiều kiến trúc tập lệnh
e_ Triển khai linh hoạt: Ứng dụng NET Core có thể được cài đặt riêng lẻ hoặc
toàn hệ thống và hỗ trợ triển khai bằng Docker Containers
22
Trang 33e Kiến trúc mô-đun: NET Core sử dụng các gói NuGet dé cung cấp tính năng
linh hoạt, giúp tối ưu hóa bộ nhớ và hiệu suất.
Entity Framework Core là phiên bản nhẹ, mở rộng và đa nền tảng của Entity
Framework Nó cho phép ứng dụng tương tác với co sở dữ liệu quan hệ thông qua
mô hình đối tượng EF Core hỗ trợ nhiều loại CSDL như SQL Server, MySQL,
PostgreSQL và Oracle.
SQL là ngôn ngữ truy van cấu trúc dùng dé tương tác với CSDL, phô biến trong nhiều
hệ quản trị SQL Server là hệ thống quản lý CSDL quy mô lớn, có khả năng xử lý dữliệu không 16 Nó cung cấp các công cụ toàn diện, từ giao diện đồ họa đến ngôn ngữ
SQL, giúp quản lý và thao tác dữ liệu hiệu quả.
Khi kết hợp ASP.NET Core, Entity Framework và SQL Server, chúng ta có thể tạo
ra một hệ thống web mạnh mẽ và hiệu quả với mỗi thành phần đảm nhận một vai trò
cụ thé trong kiến trúc tông thé:
e ASP.NET Core là framework phát trién ứng dụng web, chịu trách nhiệm xử lý
yêu cầu HTTP, quản lý phiên làm việc, điều hướng URL và xử lý giao diệnngười dùng Nó cung cấp công cụ và thư viện đề xây dựng giao diện web động
và thực hiện logic nghiệp vụ qua các controllers và views.
e Entity Framework hoạt động như tầng trung gian giữa ứng dụng và CSDL, ánh
xạ các đối tượng trong ứng dụng sang bản ghi trong CSDL và ngược lại Điềunày giúp truy xuất, thêm mới, cập nhật và xóa dữ liệu dễ dàng qua các thao táctrên đối tượng mà không cần viết các câu lệnh SQL phức tạp, đảm bảo tínhnhất quán và toàn ven dữ liệu
e SQL Server là hệ quản trị CSDL, chịu trách nhiệm lưu trữ và quản lý dữ liệu
của ứng dụng Nó cung cấp các công cụ và dịch vụ để lưu trữ dữ liệu an toàn,
hỗ trợ các giao dịch và thực hiện truy vấn phức tạp hiệu quả, đảm bao khả
năng mở rộng và độ tin cậy cao.
Sự kết hợp giữa ASP.NET Core, Entity Framework và SQL Server tạo nên một môhình phát triển web toàn diện, trong đó mỗi thành phần thực hiện một vai trò cụ thể:
23
Trang 34ASP.NET Core xây dựng và quản lý giao diện cùng với logic nghiệp vụ, Entity
Framework xử lý giao tiếp với CSDL thông qua mô hình đối tượng, và SQL Serverđảm bảo lưu trữ và quản lý dữ liệu an toàn và hiệu quả Nhờ vậy, chúng ta có thể xâydựng các ứng dụng web hiệu năng cao, dé bảo trì và có khả năng mở rộng tốt
2.5.3 Front-end: Razor Page và Ajax
Razor Pages là một framework được tích hợp trong ASP.NET Core, cung cấp một
mô hình lập trình đơn giản và hiệu quả đề xây dựng các ứng dụng web Razor Pages
cho phép tích hợp HTML và C# (cú pháp Razor) trong cùng một tệp có đuôi cshtml,
giúp tạo ra HTML theo logic của chương trình một cách dễ dàng.
Asynchronous JavaScript and XML, thường được viết tắt là AJAX, là một phương
pháp phát triển web tiên tiến cho phép việc trao đôi dữ liệu giữa client và server diễn
ra một cách bat đồng bộ Kỹ thuật này cho phép cập nhật từng phần hoặc nhiều phancủa trang web mà không cần reload toàn bộ trang Ưu điểm của AJAX là nâng caotrải nghiệm của người sử dụng trên Web nhờ vào việc tối ưu hóa thời gian phản hồi
và giảm thiểu tải cho trang web
Trang 35AJAX tạo ra một lớp trung gian, gọi là AJAX Engine, hoạt động như một cầu nốigiữa client và server Thay vì phải reload toàn bộ trang web khi có sự thay đổi dữliệu, AJAX cho phép cập nhật chọn loc chỉ những phan thông tin cần thiết mà khôngtác động đến các thành phần khác của trang Kết quả là, khi người dùng tương tác vớimột trang web được tích hợp AJAX, họ có thể nhận được cập nhật nội dung mà khôngcần reload toàn bộ trang, tạo ra trải nghiệm mượt mà và liền mạch hơn.
2.5.4 Giao diện thời gian thực với SignalR
SignalR là một thư viện được phát triển cho nền tảng ASP.NET Core, nhằm đơn giản
hóa quá trình xây dựng các ứng dụng web thời gian thực Đặc tính thời gian thực này
cho phép server chủ động gửi dir liệu đến client đã thiết lập kết nối, mà không canclient phải gửi yêu cầu cập nhật đến server trước [17]
Phạm vi ứng dụng của SignalR bao trùm mọi chức năng web đòi hỏi tính thời gian
thực Ứng dụng phô biến nhất là các hệ thống chat trực tuyến trên website Ngoài ra,SignalR cũng được áp dụng một cách phổ biến trong việc phát triển các ứng dụngbảng điều khiển (dashboards), giám sát (monitoring),
Trang 36Trong mô hình web truyền thống, client gửi yêu cầu (request) đến server và server sẽtrả về kết quả tương ứng cho client Tuy nhiên, với SignalR, server có thê chủ độngđây dữ liệu trực tiếp đến client theo thời gian thực Kiến trúc của SignalR cho phépviệc trao đôi dit liệu diễn ra liên tục mà không cần client phải gửi yêu cầu liên tục,
tạo nên một trải nghiệm người dùng mượt mà và tương tác hơn.
Kiến trúc của SignalR:
e SignalR dựa trên kiến trúc client-server và mô hình hub-and-spoke Máy chủ
SignalR quản lý kết nối, định tuyến tin nhắn giữa các client và xử lý các sự
kiện kết nối/ngắt kết nối Các client, như trình duyệt web hoặc ứng dụng di
động, kết nối với máy chủ SignalR dé gửi/nhận tin nhắn
e Hubs là kênh giao tiếp chính, cung cấp một API cấp cao cho các client Hubs
có thể được xem như các điểm cuối của Remote Procedure Call (RPC) màclient có thể gọi, và chúng cũng có thé phát tin nhắn tới nhiều client
e ASP.NET Identity và các nhà cung cấp xác thực khác được hỗ trợ, cho phép
xác thực ở cấp độ kết nối hoặc phương thức riêng lẻ
e SignalR cung cấp hai chế độ lưu trữ chính: tự lưu trữ va Azure SignalR
Service Chế độ tự lưu trữ cho phép kiểm soát hoàn toàn môi trường lưu trữnhưng yêu cầu quản lý và cấu hình Azure SignalR Service, được Microsoftquản lý hoàn toàn, trừu tượng hóa các van đề về khả năng mở rộng và tính sansàng, giúp nhà phát trién tập trung vào logic ứng dụng
2.6 Môi trường phát triển máy chủ: Microsoft Azure
2.6.1 Microsoft Azure App Service
Azure App Service là một dich vu dé lưu trữ các ứng dụng web, RESTful
APIs Các ứng dụng chạy một cách dễ dàng trên cả môi trường dựa trên Windows và
Linux.
26
Trang 37Home > App Services
| Filter for any field.
Name + ÑÑ Activity log
® atm-server 8p Access control (IAM)
@ Tags
® aim
© atm-wobopp-admin @ Diagnose and solve problems
@ Microsoft Defender for Cloud
Page |1 | oft > Automation
Hình 2.15: Dashboard của App Service trên Microsoft Azure.
Southeast Asia
Subscription (move)
Azure for Students
Subscription ID 339d6d00-361a-4ebb-8f8/-8d018084bd24
Health Check Not Configured
Capabilities Notifications Recommendations
atm-server
Code
2.6.2 Microsoft Azure SQL Database
2 Reset publish profile +++
JSON View
Azure SQL Database là dich vụ CSDL dựa trên đám mây cung cấp tất cả các tính
năng của Microsoft SQL Server với kha năng mở rộng và tính linh hoạt Azure SQL
Database dựa trên phiên bản ồn định mới nhất của công cụ CSDL Microsoft SQL
339d6d00-361a-4ebb-8f8f-8d018084bd24
Tags (edit) Add tag:
Getting started Monitoring — Properlie
Database data storage
Set server firewall
Notifications (0) Integrations Tutorials
Review the below metrics and monitor your applications and infrastructure.
y || N
Hinh 2.16 Dashboard cua SQL databases trén Microsoft Azure.
27
Trang 382.6.3 Lý do lựa chọn Microsoft Azure.
Microsoft Azure là một lựa chọn phổ biến khi phát triển backend cho ứng dụng webbằng ASP.NET Core, Entity Framework và SQL Server với một số lý do sau:
Tính linh hoạt và mở rộng: Azure cung cấp khả năng mở rộng dé dang dé điều chỉnhtài nguyên theo nhu cầu của ứng dụng, từ một ứng dụng nhỏ đến một hệ thống có
hàng triệu người dùng.
Tính sẵn có và dễ dàng triển khai: Azure App Service cho phép triển khai ứng dụngchỉ trong vài bước đơn giản, giảm bớt thời gian và công sức cần thiết cho quá trìnhtriển khai
Tính 6n định và bảo mật: Azure đảm bảo tính 6n định và bảo mật cho dich vu củabạn thông qua các tiêu chuẩn bảo mật hàng đầu thế giới và các cơ chế bảo mật tích
họp.
Tích hợp sâu: Azure cung cấp tích hợp mạnh mẽ với các công nghệ Microsoft nhưNET Framework và NET Core, giúp bạn tối ưu hóa hiệu suất và hiệu quả khi pháttriển ứng dung web
28
Trang 39Chương 3 PHAN TÍCH YÊU CAU VA DAC TẢ HE THONG
3.1 Phan tich yéu cau
3.1.1 Tổng quan về kết quả của đề tài
Kết quả của đề tài là hệ thống này cung cấp một phần mềm Web App nhằm cung cấpnền tảng tương tác và mua sắm sản phẩm cho người mua hàng Hệ thống được tíchhợp thanh toán với ví điện tử MoMo thông qua QR code, trong đó số tiền thanh toán
sẽ được tự động tính toán và hiền thị tương ứng với tổng giá trị hoa đơn sau khi quét
mã QR Bên cạnh đó, hệ thống còn xây dựng một mô hình kho hàng thu nhỏ, baogồm cơ cấu phân phối sản phẩm và kệ hàng sản phẩm Cơ cấu này sẽ tự động lấy cácsản phẩm và số lượng tương ứng với đơn hàng mà người mua đã thanh toán thành
công Đồng thời, phan mềm Web App cũng cung cấp cho người quản trị viên khảnăng dễ dàng cập nhật và giám sát các dữ liệu của hệ thống, đảm bảo quản lý hiệu
quả và minh bạch các hoạt động mua bán và tôn kho.
3.1.2 Những chức năng cân có
Một sô chức năng cân có:
e Tương tác, mua hàng bang phan mềm Web App thông qua màn hình máy tính
bảng.
e Thanh toán không dùng tiền mặt (MOMO)
e _ Hiện thực được chức năng của phan cứng cơ câu phân phối sản phẩm
3.1.3 Phạm vi kết quả
Đề tài này chạy trên một mô hình có số lượng sản pham nhỏ (khoảng 25 sản phẩm,các sản phẩm này sẽ là hàng hóa được đóng gói sẵn như: snack, lon nước, đồ đónghộp, mì gói, ) và sẽ mở rộng sỐ lượng khi áp dụng thực tẾ, phần mềm Website đượcthiết kế để hoạt động được trên màn hình cảm ứng, phương thức thanh toán khôngdùng tiền mặt mà thanh toán thông qua QR code trên nền tảng MoMo UAT(MoMoTest Developers) Tính bảo trì về sau yêu cầu đảm bảo rằng thiết bị hoạt động én định
29
Trang 40và có khả năng cập nhật đê sử dụng các công nghệ mới nhât và giải quyêt các vân đê
kỹ thuật phát sinh.
3.2 Đặc tả các use-case cho hệ thống
Trước khi triển khai, nhóm đã tiến hành một quá trình tìm hiểu kỹ lưỡng về các trainghiệm người dùng, quy trình thực tế của một phiên mua hàng của một người Nhóm
đã thiệt kê hai sơ đô Use-case cho người mua hang và người quản tri viên
AUTO TELLER MACHINE
xxx Xem chỉ tiết danh mục sản
@ Use case Parent
© Use Case child
TM -<<extend>>_
a Bon hang
Hình 3.1: Sơ đồ Use-case cho người mua hàngCác tính năng chính trong use-case của đối tượng người dùng:
e Xem danh mục sản phâm: Người mua hàng có thê xem có tat cả bao nhiêu
danh mục sản phâm (categories) tương ứng của các sản phâm có trong máy bán hàng Ngoài ra người mua hàng có thê xem các sản phâm trong một danh mục sản phâm cụ thê.
30