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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế và điều khiển thiết bị quản lý và bán hàng tự động

95 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 95
Dung lượng 29,62 MB

Nội dung

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 2

LỜ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 3

MỤ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 4

2.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 5

5.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 6

Hì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 7

Hì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 8

Hì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 9

DANH 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 10

DANH 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 11

TÓ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 12

Chươ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 13

dụ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 14

má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 15

Hì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 16

Mặ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 17

thiệ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 18

Khi đó 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 19

Chuong 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 20

Hì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 21

2.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 22

tuân tự, tạo ra sự chuyên động chính xác cua roto.

+Vcc

ElectricalMulti- Toothed riaMagnetic Rotor

12

Trang 23

Mạ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 24

Mạ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 25

cá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 26

e 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 27

Ke góc 90 độ

Gối đỡ thanh trượt

Con trượt vuông

Puly GT2

Trục trơn.

17

Trang 28

Truc 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 29

thiế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 30

e 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 31

e 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 32

ngườ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 33

e 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 34

ASP.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 35

AJAX 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 36

Trong 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 37

Home > 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 38

2.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 39

Chươ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 40

và 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

Ngày đăng: 06/12/2024, 15:33

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN