Tải bản đầy đủ (.pdf) (41 trang)

ĐỀ TÀI CÔNG TRÌNH NGHIÊM CỨU: MÁY THU TIỀN TỰ ĐỘNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.76 MB, 41 trang )

ĐỒN THANH NIÊN CỘNG SẢN HỒ CHÍ MINH
BAN CHẤP HÀNH TP. HỒ CHÍ MINH
----------------------

CƠNG TRÌNH DỰ THI
GIẢI THƯỞNG SINH VIÊN NGHIÊN CỨU KHOA HỌC EURÉKA
LẦN THỨ 23 NĂM 2021

TÊN CÔNG TRÌNH: MÁY THU TIỀN TỰ ĐỘNG
LĨNH VỰC NGHIÊN CỨU: KỸ THUẬT ĐIỆN TỬ
CHUN NGÀNH: ĐIỆN TỬ VIỄN THƠNG

Mã số cơng trình: …………………………….
(Phần này do BTC Giải thưởng ghi)


i

MỤC LỤC
TÓM TẮT ................................................................................................................... 1
1. ĐẶT VẤN ĐỀ ......................................................................................................2
2. TỔNG QUAN CƠNG TRÌNH .............................................................................. 2
3. MỤC TIÊU - PHƯƠNG PHÁP ............................................................................. 3
4. KẾT QUẢ - THẢO LUẬN ................................................................................... 4
4.1.

Giới thiệu phần cứng ...................................................................................... 4

4.1.1.

Máy tính nhúng Raspberry Pi 3 ................................................................ 5



4.1.2.

Màn hình cảm ứng ................................................................................... 6

4.1.3.

Nguồn xung ............................................................................................. 7

4.1.4.

Khóa điện.................................................................................................7

4.1.5.

Mạch giảm áp .......................................................................................... 8

4.1.6.

Cảm biến tiệm cận ................................................................................... 8

4.1.7.

NV 200 .................................................................................................. 10

4.1.8.

Vỏ máy .................................................................................................. 12

4.1.9.


Báo cáo linh kiện ................................................................................... 13

4.1.10. Nguyên lý hoạt động .............................................................................. 13
4.2.

Phần mềm ..................................................................................................... 14

4.2.1.

Phần mềm là gì ...................................................................................... 14

4.2.2.

Ngơn Ngữ lập trình ................................................................................ 15

4.2.3.

Web App ................................................................................................ 17

4.2.4.

Các thư viện và Framework ................................................................... 18

4.2.5.

Nguyên lý hoạt động của phần mềm....................................................... 19

4.2.6.


Hình ảnh giao diện phần mềm của máy thu tiền ..................................... 24

4.3.

Hệ thống server ............................................................................................ 25

4.3.1.

WEB API ............................................................................................... 25

4.3.2.

Những đặt điểm nổi bật .......................................................................... 26

4.3.3.

Web API hoạt động như thế nào............................................................. 26

5. KẾT LUẬN - ĐỀ NGHỊ ..................................................................................... 28
6. TÀI LIỆU THAM KHẢO ................................................................................... 29
PHỤ LỤC .................................................................................................................. 30


ii

DANH MỤC HÌNH ẢNH
Hình 1 Raspberry pi 3 ................................................................................................................. 5
Hình 2 Sơ Đồ Chân Của Raspberry pi 3 ................................................................................. 5
Hình 3 Mặt sau của màn hình cảm ứng ................................................................................... 6
Hình 4 Mặt sau của màn hình cảm ứng ................................................................................... 6

Hình 5 Nguồn Xung 12V - 3A .................................................................................................. 7
Hình 6 Khóa điện ......................................................................................................................... 7
Hình 7 Mạch Giảm áp ................................................................................................................. 8
Hình 8 Module cảm biến hồng ngoại ....................................................................................... 9
Hình 9 NV-200 Smart Payout ................................................................................................. 10
Hình 10 Sơ đồ các chân kết nối của máy NV-200 .............................................................. 11
Hình 11 Vỏ máy ......................................................................................................................... 12
Hình 12 Sơ đồ nguyên lý phần cứng...................................................................................... 14
Hình 13 Sơ đồ tương tác của người dùng với phần mềm .................................................. 15
Hình 14 Sơ Các ngơn ngữ lập trình phổ biến ....................................................................... 16
Hình 15 Quy trình thiết kế và phát triển FrontEnd ............................................................. 17
Hình 16 Hình ảnh minh họa cơ sở dữ liệu ........................................................................... 18
Hình 17 Các hàm được sử dụng trong nộp và rút tiền của máy thu tiền......................... 21
Hình 18 Kịch bản của máy thu tiền ........................................................................................ 22
Hình 19 Quy trình phụ của kịch bản (xử lý thơng tin hóa đơn)........................................ 23
Hình 20 Quy trình phụ của kịch bản (Xử lý số tiền đưa vào máy) .................................. 23
Hình 21 Trang lựa chọn dịch vụ thanh tốn ........................................................................ 24
Hình 22 Trang chờ khách hàng đưa tiền vào máy............................................................... 24
Hình 23 Trang thơng báo số tiền cho khách hàng ............................................................... 25
Hình 24 Trang thông báo giao dịch thành công................................................................... 25


iii

DANH MỤC BẢNG BIỂU
Bảng 1. Chi tiết cấu tạo và thành phần của vỏ máy ................................................... 12
Bảng 2. Báo cáo giá trị và link mua từng linh kiện .................................................... 33
Bảng 3. Request body của API lấy thông tin nợ ........................................................ 33
Bảng 4. Response body của API lấy thông tin nợ ...................................................... 34
Bảng 5. Request body của API truy vấn tiền điện HCM............................................ 34

Bảng 6. Response body của API truy vấn tiền điện HCM ......................................... 35
Bảng 7. Request body của API cập nhật thanh toán .................................................. 36
Bảng 8. Response body của API cập nhật thanh toán ................................................ 36


iv

DANH MỤC CÁC TỪ VIẾT TẮT
ATM

Automatic Teller Machine

IoT

Internet of things

IDC

Intangible Drilling Costs

LCD

Liquid-Crystal Display

HDMI

abbreviation for High-Definition Multimedia Interface

USB


Universal Serial Bus

PiPS

Pay in Pay out System

MDB

Database Files

SD

South Dakota

GPIO

General Purpose Input/Output

PI3

Raspberry pi 3

API

Application Programming Interface

ID

Identification


VCC

Power

GND

Ground

CO,COM

Normally Open, common foot Role


1

TĨM TẮT
Hiện nay, trên thế giới các hình thức, dịch vụ thanh toán tiền tự động đã trở nên
rất phổ biến và được chú trọng như: Máy bán nước tự động, Máy ATM rút tiền tự động…
Mà không cần đến nhân viên hỗ trợ .Những cỗ máy như này góp phần giúp chúng ta
tiến gần hơn với Công Nghệ 4.0. Và cũng chính vì điều này tại Việt Nam cũng đang áp
dụng những hình thức tự động trên để đơn giản hóa cơng việc .
Ngồi ra trong xã hội ngày nay có quá nhiều khoản mà người dùng cần phải chi
trả và thanh toán hằng tháng cho những dịch vụ sử dụng hằng hàng ngày, trung bình
theo hằng tháng mỗi hộ gia đình ở Việt Nam phải chi trả và thanh tốn cho 4 loại tiền
chính là tiền điện, tiền nước, tiền mạng, tiền card điện thoại và còn nhiều dịch vụ bên
ngồi khác dẫn đến những khó khăn sau. Tại các Cửa Hàng, Cơng Ty…Trong việc giải
quyết bài tốn thiếu nguồn lao động hay việc công nhân viên phải làm quá nhiều công
việc cùng một lúc dẫn đến những rủi ro đặt biệt ở những nơi đông dân cư và phát triển
như ở các thành phố lớn: Tp Hồ Chí Minh, Hà Nội…Về người dùng việc phải chờ lâu
tới lượt để được nhân viên thanh toán, phải thanh toán tại những nơi có vị trí cố định

hoặc phải di chuyển một quản đường xa thì mới tới nơi cần thanh tốn.
Đối diện những khó khăn trên cũng như giúp người dùng có được một sự thỏa
mái khi sử dụng các dịch vụ trên. Nhóm đã lên ý tưởng cơng trình máy thu tiền tự động
khơng cần nhân viên kết hợp với nhiều loại hình thức thanh tốn cho người dùng giúp
người dùng có thể thanh tốn một cách nhanh gọn ở mọi nơi .


2

1. ĐẶT VẤN ĐỀ
Ngày nay, những tiến bộ không ngừng của khoa học kỹ thuật, nhất là các ứng
dụng của điện tử - tin học và cuộc sống đã làm thay đổi sâu sắc cả về mặt lý thuyết và
thực tế trong lĩnh vực tự động hóa. Ngồi sự ra đời của các tiến bộ biến đổi điện tử công
suất với kích thước nhỏ gọn và tác động nhanh, nhạy, dễ dàng ghép nối với các vi mạch
điều khiển với các máy tính. Các phần mềm chương trình điều khiển ln được nâng
cao và ngày càng hồn thiện hơn nhằm đáp ứng tốt với các nhu cầu của thiết bị sản xuất
và đời sống. Trong nền kinh tế phát triển theo hướng cơng nghiệp hóa, sản xuất tự động
hóa đóng vai trị mũi nhọn khơng thể thiếu được. Việc tự động hóa cơng việc giúp giảm
sức lực của con người khắc phục được bài toán thiếu nguồn lao động, quá tải công việc,
nâng cao hiệu suất trong công việc.Giao dịch và thanh tốn là những cơng việc diễn ra
hằng ngày, ở mọi lúc mọi nơi và ở tại Việt Nam việc giao dịch và thanh tốn này ln
diễn ra theo một hình thức truyền thống để thực hiện các cơng việc trên một cách tự
động hóa vẫn là ln là một cái gì đó cịn mới mẻ ở Việt Nam.Cùng với sự phát triển
của khoa học và công nghệ ngày nay cũng đã được áp dụng vào lĩnh vực này và đây
cũng là xu thế của thế giới vì thế nhóm đã chọn và thực hiện đề tài này góp phần phục
vụ nhu cầu đời sống cho mỗi cá nhân và tổ chức đơn giản hóa cơng việc giúp người dân
đặt biệt là người dân ở những vùng nông thôn được tiếp cận tới công nghệ của thế giới.
2. TỔNG QUAN CƠNG TRÌNH
Cơng trình Máy thu tiền tự động có thể cho người dùng thanh toán tiền dịch vụ
hằng ngày tiền điện, tiền nước,tiền card điện thoại một cách tự động mà không cần đến

sự hỗ trợ của nhân viên.Chỉ với 3 bước: Đăng nhập, chọn loại dịch vụ cần thanh toán,
nộp đúng số tiền cần thanh toán vào máy. Khi ta thực hiện xong 3 bước này máy sẽ
hoàn tất thành cơng việc thu tiền của ta vì thế máy khá là dễ sử dụng cho nhiều lứa
tuổi.Cơng trình được lắp ráp đơn giản, chi phí tầm trung, được thiết kế gọn, nhẹ có thể
đặt và sử dụng ở nhiều nơi vô cùng thuận tiện mang lại hiệu quả cao cho thương mại và
kinh tế đáp ứng được nhu cầu của người dùng.Thêm vào đó Cơng trình có thể tiếp nhận
và nhận dạng mọi mặt tiền ở Việt Nam từ tờ 500 đồng đến tờ 500 ngàn đồng, đồng thời
máy có thể thối lại tiền cho người dùng. Về phía Cơng Ty máy có chi phí vận hàng thấp
đảm bảo tính bảo mật có thể mang lại an tồn cho người dùng.


3

Trong công nghệ thu tiền tự động, nhiều nghiên cứu trước đây và đã đưa ra thị
trường những cỗ máy cơng trình tự động mang lại hiệu quả cũng đáp ứng được nhu cầu
người dùng cũng như hiện đại hóa của cơng nghệ 4.0 cịn ở Việt Nam các hình thức tự
động chính mà ta thường thấy ở ngồi thị trường đó là: Máy bán nước tự động, máy mua
hàng tự động, máy rút tiền tự động(ATM). Ở những cỗ máy này chỉ thực hiện tự động
ở thị trường buôn bán, ngân hàng vì thế cơng trình máy thu tiền tự động thu tiền tiền
dịch vụ hằng ngày của người dùng giúp cho thị trường có thêm loại hình thanh tốn mới
góp phần đa dạng hóa hình thức tự động.
3. MỤC TIÊU - PHƯƠNG PHÁP
 MỤC TIÊU
Gồm các mục tiêu chính sau:
 Chế tạo một hệ thống gồm các máy thanh tốn tiền mặt tự động
 Tự hóa q trình thanh toán bằng tiền VND
 Ứng dụng vào thực tế tại các cửa hàng thế giới di động
 Đánh giá kết quả thử nghiệm và hiệu chỉnh
Hướng tới một giải pháp được đưa ra bởi nghiên cứu này sẽ ứng dụng được thực
tiễn trong nhiều lĩnh vực thanh toán khác nhau và ở đâu có thanh tốn tiền ở đó có thể

sử dụng cơng trình này này. Tuy nhiên việc tích hợp thêm nhiều loại dịch vụ, đa dạng
hình thức thanh toán, thực hiện thanh toán với máy chỉ với bước đơn giản vẫn còn là
một thách thức lớn. Trong bài nghiên cứu này, việc quan trọng là phải tìm và đưa ra
được các thách thức đó, để người dùng có được một sự thỏa mái, tiện ích.
 PHƯƠNG PHÁP
Nhóm đã thực hiện một số phương pháp nghiên cứu chính để hình thành
nên cơng trình máy thu tiền tự động như sau:
 Tìm hiểu q trình thanh tốn thực tế
Nghiên cứu các máy thanh tốn tự động ngồi thực tế đã được sử dụng rộng rãi
ngoài thị trường. Biết được một số ưu điểm, nhược điểm và một số hạn chế mà máy tự
động ngoài thị trường mang lại. Từ đó là tiêu đề cho việc hình thành nên một hệ thống
Cơng trình máy thu tiền hồn chỉnh đáp ứng được nhu cầu cho người dùng.


4

 Tìm hiểu nguyên lý nhận dạng tiền VND
Một bài tốn mà nhóm cần phải nghiên cứu tiếp theo và cũng là một trong những
phần quan trọng không kém của cơng trình máy thu tiền tự động đó là “Làm sao để máy
dạng được tiền và thối lại tiền” vì thế nhóm đã lựa chọn máy NV-200 để thực hiện cho
việc nghiên cứu và đưa ra giải pháp trên. Việc nghiên cứu máy NV-200 giúp ta biết và
cách sử dụng được máy cho việc nhận dạng tiện, thối tiền, kết nối, điều khiển máy một
cách dễ dàng.
 Thiết kế phần cứng
Kết nối các linh kiện lại với nhau tạo nên một sơ đồ nguyên lý phần cứng
 Viết phương trình phần mềm
Viết phương trình phần mềm để điều khiển các linh kiện hoạt động theo một trình
tự nhất định, có logic. Tạo nên một đường dây liên kết các thiết bị lại với nhau hoạt
động một cách trơn chu thêm vào đó giúp người dùng có thể sử dụng thanh tốn và thực
hiện thao tác trên cơng trình máy thu tiền tự động.

 Thiết kế vỏ máy
Hình thành nên bộ khung chắc chắn đảm bảo được tính an tồn, bảo mật, đơn
giảm và khơng q rườm rà.Thêm vào đó làm sao để máy có thể di chuyển dễ dàng và
đặt được ở nhiều nơi khác nhau. Việc thiết kế vỏ máy sao cho có thể chứa hết tất cả các
linh kiện được đặt bên trong vỏ lại với nhau để máy có thể hoạt động được
 Chạy thử nghiệm
Việc chạy thử nghiệm đánh giá cơng trình máy thu tiền hoạt động như thế nào có
đáp ứng nhu cầu người người dùng khơng,có bị lỗi hay khơng, có hoạt động theo đúng
trình tự được đưa ra hay khơng, có đảm bảo được tính an tồn hay khơng... Xong việc
chạy thử nghiệm giúp ta đưa ra sự hạn chế của cơng trình máy thu tiền tự động từ đó
chỉnh sửa lại, hồn thiện máy.
4. KẾT QUẢ - THẢO LUẬN
4.1. Giới thiệu phần cứng
Phần cứng là những thiết bị bên trong và bên ngồi cơng trình máy thu tiền mà
chúng ta có thể cầm được, nhìn thấy được. Phần cứng chính là các bộ phận tạo thành
cơng trình
-

Phần bên ngồi: Vỏ máy, màn hình.


5

-

Phần bên trong: Raspberry pi 3, module 2 rơle, Cảm biến tiệm cận hồng ngoại,
khóa điện, nguồn xung, mạch giảm áp, NV 200.
4.1.1. Máy tính nhúng Raspberry Pi 3

Hình 1: Raspberry pi 3


Hình 2: Sơ Đồ Chân Của Raspberry pi 3
● Khái miện
Với Raspberry Pi, bạn chỉ cần cài hệ điều hành, gắn chuột, bàn phím và màn hình
là có thể sử dụng như một máy vi tính. Raspberry Pi khơng hồn tồn có thể thay thế
được máy tính để bàn hoặc laptop nhưng nó là một thiết bị đa năng có thể được sử dụng
cho những hệ thống điện tử, thiết lập hệ thống tính tốn, những dự án DIY… với chi phí
rẻ. Mặc dù chậm hơn so với các dịng laptop, máy tính hiện đại nhưng Raspberry Pi vẫn
được xem là máy tính Linux hồn chỉnh và có thể cung cấp tất cả các khả năng mà người
dùng mong đợi, với mức tiêu thụ năng lượng thấp. Hệ điều hành về cơ bản Raspberry
Pi có khá nhiều OS linux chạy điểm danh một số Distributions Linux (nhúng) chạy trên
Raspberry Pi như Raspbian, Pidora, openSUSE, OpenWRT, OpenELEC,….
● Thông số kỹ thuật:
(Xem phần 1 tại I trong mục phụ lục)


6

● Chức năng
-

Xử lý tín hiệu và điều khiển tính hiệu

4.1.2. Màn hình cảm ứng

Hình 3: Mặt sau của màm hình cảm ứng

Hình 4: Mặt trước của màm hình cảm ứng
● Khái niệm
Màn hình cảm ứng là một thiết bị đầu vào và thường được xếp lớp trên đỉnh của

màn hình hiển thị điện tử của hệ thống xử lý thơng tin. Người dùng có thể cung cấp đầu
vào hoặc điều khiển hệ thống xử lý thông tin thông qua các cử chỉ đơn giản hoặc đa
chạm bằng cách chạm vào màn hình bằng bút stylus đặc biệt hoặc một hoặc nhiều ngón
tay.
● Thơng số kỹ thuật
(Xem phần 2 tại I trong mục phụ lục)
● Chức năng
-

Giúp người dùng thao tác trên màn hình


7

-

Hiển thị thơng tin lên màn hình.
4.1.3. Nguồn xung

Hình 5: Nguồn Xung 12V - 3A
● Khái niệm
Nguồn xung là bộ nguồn có tác dụng biến đổi từ nguồn điện xoay chiều sang
nguồn điện một chiều bằng chế độ dao động xung tạo bằng mạch điện tử kết hợp với
một biến áp xung.
● Thông số kỹ thuật
(Xem phần 3 tại I trong mục phụ lục)
● Chức năng
-

Chuyển đổi dòng điện xoay chiều thành 1 chiều, điều chỉnh dòng và áp ra để

cung cấp điện cho mạch tồn hệ thống.
4.1.4. Khóa điện

Hình 6: Khóa điện


8

● Khái niệm
Khóa chốt điện từ là thiết bị khóa điện. Khi có dịng điện chạy qua, khóa sẽ tự
động đóng hoặc mở ra tùy theo cơ chế lắp đặt.
● Thông số kỹ thuật
(Xem phần 4 tại I trong mục phụ lục)
● Chức năng
-

Khóa và mở thiết bị phần cứng

-

Bảo vệ các thiết bị phần cứng
4.1.5. Mạch giảm áp

Hình 7: Mạch Giảm áp
● Khái niệm
Mạch giảm áp có khả năng giảm áp từ 36V xuống 1.25V mà vẫn đạt hiệu suất
cao lên đến 96%. Thích hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị
như camera, motor, robot,...
● Thông số kỹ thuật
(Xem phần 5 tại I trong mục phụ lục)

● Chức năng
-

Giảm dòng và áp, cung cấp nguồn

-

Bảo vệ ngắn mạch, quá dòng, quá nhiệt cho thiết bị
4.1.6. Cảm biến tiệm cận


9

Hình 8: Mudule cảm biến tiện cận hồng ngoại
● Khái niệm
Cảm biến hồng ngoại hay còn được gọi là IR Sensor, chúng là một thiết bị điện tử
có khả năng đo và phát hiện bức xạ hồng ngoại trong môi trường xung quanh. Cảm biến
hồng ngoại (IR Sensor) phát ra các tia vơ hình đối với mắt người, vì bước sóng của nó
dài hơn ánh sáng khả kiến (mặc dù nó vẫn nằm trên cùng một phổ điện từ). Bất cứ thứ
gì phát ra nhiệt (mọi thứ có nhiệt độ trên năm độ Kelvin) đều phát ra bức xạ hồng ngoại.
● Thông số kỹ thuật
(Xem phần 6 tại I trong mục phụ lục)
● Chức năng
-

Kết hợp với khóa điện để đóng mở thiết bị

-

Quản lý số lần đóng mở thiết bị



10

4.1.7. NV 200

Hình 9: NV-200 Payout
● Khái niệm
Đơn vị Thanh tốn THƠNG MINH được tạo thành từ ba thành phần cơ bản:
Trình xác thực NV200, hộp đựng tiền và một mơ-đun thanh tốn.
Đơn vị SMART Payout là một thiết bị có thể xác thực, lưu trữ và sau này phân
phối ngân hàng 80 tiền giấy có mệnh giá hỗn hợp .
● Thông số kỹ thuật
(Xem phần 7 tại I trong mục phụ lục)
● Các tính năng chính
-

Thanh tốn tiền giấy nhiều mệnh giá.

-

Chấp nhận, xác nhận và lưu trữ nhiều mệnh giá tiền giấy với số lượng ít hơn 10
giây.

-

Thanh toán nhiều mệnh giá tiền giấy trong khoảng 10 giây.

-


Chức năng thanh tốn được tự động hóa.

-

Rút tiền mặt ít thường xuyên hơn & lấp đầy lại phao.

-

Sử dụng giao thức được mã hóa an tồn để truyền dữ liệu.


11

● Chỉ báo trạng thái
Đơn vị Thanh tốn THƠNG MINH có hai chỉ báo Đi-ốt phát sáng (LED) được sử
dụng để hiển thị trạng thái của thiết bị (một Đỏ, một Xanh) bạn có thể tìm thấy những
trạng thái này ở mặt sau của bên dưới đầu nối USB. Nếu đơn vị Thanh tốn SMART
đang hoạt động bình thường, chỉ đèn LED Xanh lục mới được sáng: khi hoạt động bình
thường đèn LED này sẽ nhấp nháy một lần mỗi giây.
● kết nối với thiết bị
-

Đơn vị SMART Payout có hai đầu nối được sử dụng để cho phép giao tiếp và
lập trình. Đầu nối đầu tiên là chân 16 socket được sử dụng để giao diện Thanh
tốn THƠNG MINH đơn vị đến máy chủ.

-

Đầu nối USB là ổ cắm USB loại 'B' tiêu chuẩn và có thể được sử dụng để giao
tiếp với máy chủ.


Hình 10: Sơ đồ các chân kết nối của máy NV-200
● Phần mềm, giao thức và lập trình
-

Phần mền miễn phí và có thể tải xuống từ trang web www.innovativetechnology.com/support/securedownload sau khi ta đăng ký tài khoản.

-

PiPS (Pay in Pay out System) là một gói phần mềm được phát triển bởi Innovative
Technology Ltd để cho phép khách hàng thực hiện lập trình, thiết lập và vận hành
nhiệm vụ trên toàn bộ các thiết bị Thanh tốn thơng minh và phần mềm này có
thể chạy trên window 98 trở lên.

-

SSP: Giao thức giao tiếp được đề xuất cho đơn vị SMART Payout là e SSP, vì
điều này cung cấp mức độ bảo mật truyền dữ liệu cao nhất. Giao thức giao diện
ccTalk (CC2)cũng có sẵn

-

CcTalk: CC2 xây dựng dựa trên tiêu chuẩn ccTalk hiện có và sử dụng tiêu chuẩn
Xây dựng và mã hóa gói ccTalk, nhưng để sử dụng các tính năng thanh tốn có
luồng thông tin khác nhau


12

-


MDB: Là giao diện được buýt nối tiếp thường được sử dụng trong bán hàng tự
động kiểm soát bằng điện. Đây là hệ thống 9600 Baud Master – Slave trong đó
trình xác thự NV 200 là máy con cho bộ điều khiển của máy chủ.

-

Để lập trình, cần sử dụng hệ thống Lập trình thiết bị DA3 (DPS), điều này có thể
được tải xuống từ trang web của nhà phát triển, sau khi phần mềm được cài đặt,
hãy nhập tập dữ liệu vào DPS trước khi tải lên bộ nhớ trong DA3. DA3 kết nối
với PC thông qua cổng USB.

-

NV200 cũng có thể được lập trình lại thơng qua khe cắm SD ở mắt trước của
thiết bị để lập trình thẻ để cập nhật đơn vị Thẻ NV Phải sử dụng các tiện ích. Thẻ
NV Tiện ích cho phép người dùng tạo thẻ cập nhật cho dòng sản phẩm NV200.
4.1.8. Vỏ máy

Hình 11: Vỏ máy
STT

Tên chi tiết

Vật liệu

Số Lượng

1


Cửa chính

CT-45-2ly

1

2

Cụm điều khiển

CT-45-2ly

1

3

Cụm cover điều khiển

CT-45-2ly

1

4

Cụm NV-200

CT-45-2ly

1


5

Cover – Cố định

CT-45-2ly

1

6

Cụm cố định máy

CT-45-2ly

1

7

Chân đế máy

CT-45-2ly

1

Bảng 1: Chi tiết cấu tạo và thành phần của vỏ máy


13

4.1.9. Báo cáo linh kiện

(Xem phần II trong mục phụ lục)
4.1.10.Nguyên lý hoạt động
Máy thu tiền tự động sẽ sử dụng trực tiếp và lấy nguồn điện xoay chiều vào là 220V mà
ta sử dụng hằng ngày, nguồn điện vào sẽ được nguồn xung tiếp nhận và chuyển thành
nguồn điện một chiều là 12V. Nguồn 12V này sẽ được chia ra nối và cấp nguồn cho từng
thiết bị như quạt,, Khóa từ, đầu đọc tiền (NV-200 Smart Payout). Raspberry PI 3 và
module role sẽ được cấp nguồn điện thấp hơn là 5V để đảm bảo độ an toàn và hoạt động
một cách hiệu quả cho Raspberry Pi 3, để cấp được nguồn 5V đó thì ta đưa dịng 12V
vào mạch giảm áp chỉnh dòng xuống 5V.
Raspberry Pi 3 là một máy tính nhúng chức năng là liên kết các linh kiện của máy thu
tiền như module role, khóa từ, cảm biến tiệm cận hồng ngoại, màn hình, đầu đọc tiền lại
với nhau tạo sau đó tiếp nhận, xử lý và điều khiển từng tín hiệu số .Đây cũng là thành
phần quan trọng ,cốt lõi là đầu não để tạo nên máy thu tiền. Là một vi xử lý Raspberry
PI 3 sẽ tiếp nhận kết nối và xử lý các tín hiệu của các thiết bị cùng một lúc, đầu tiên là
với module role. Ngồi việc kiểm sốt ,bảo vệ dịng điện việc rơle có thể chuyển đổi trạng
thái đóng, tắt ta sử dụng kết hợp nối với nguồn vào của khóa điện bằng cổng COM và
NO, khi ta gửi tín hiệu ở mức thấp hay mức cao từ GPIO 22 pi3 đến INT1 rơle thì rơ le
sẽ đóng và mở tại hai cổng NO và COM khiến cho chốt khóa điện cũng đóng và mở đồng
thời đóng và mở ra phần cứng của thiết bị.Cảm biến tiệm cận hồng ngoại ta kết nối với
GIPO,VCC,GND từ các chân của PI 3 sau đó cảm biến phát ra tia hồng ngoại để xác định
được vật cản và vật cản đây chính là cửa để đóng mở thiết bị phần cứng được khóa bởi
khóa từ việc mà ta mở cửa thì cảm khơng xác định được tiệm cận cịn đóng cửa thì cảm
biến sẽ xác định được tiệm cận. Sau đó cảm biến sẽ gửi tính hiệu về PI 3 giúp ta biết được
số làm đóng và mở thiết bị.
Màn hình cảm ứng nối với PI3 qua cổng HDMI và USB nhằm hiển thị thông tin
mà máy đưa ra và giúp người dùng có thể thực hiện thao tác chọn lệnh giao tiếp với
máy. Còn đầu đọc tiền ( NV-200 Smart Payout) được kết nối với PI3 qua cổng USB và
chức năng chính của máy này là đọc tiền sau đó tiếp nhận thối lại tiền cho người dùng.



14

Hình 12: Sơ đồ nguyên lý phần cứng
4.2. Phần mềm
4.2.1. Phần mềm là gì
Phần mềm (Software) có thể hiểu là một tập hợp các tập tin có mối liên hệ chặt
chẽ với nhau, đảm bảo thực hiện một số nhiệm vụ, chức năng nào đó trên các thiết bị
điện tử. Các tập tin này có thể bao gồm: các file mã nguồn viết bằng một hoặc nhiều
ngơn ngữ lập trình, các file dữ liệu (thư viện), các file hướng dẫn.
Phần mềm là một khái niệm trừu tượng, nó khác với phần cứng ở chỗ “phần mềm
không thể sờ hay chạm vào” và nó cần phải có phần cứng máy tính mới có thể thực thi
được.


15

Hình 13: Sơ đồ tương tác của người dùng với phần mềm
Phần mềm được chia thành 2 loại chính đó là phần mềm hệ thống (system software) và
phần mềm ứng dụng (application software), ngồi ra cịn một số loại phần mềm khác
như malware (phần mềm độc hại) hay firmware (phần mềm điều khiển cấp thấp),...
Cách thức hoạt động của phần mềm máy tính là khi lập trình viên tạo ra một phần
mềm bằng một ngơn ngữ lập trình, hay hiểu đơn giản là viết ra một chương trình hướng
dẫn cho máy tính làm việc, sau đó thực thi nó trên một thiết bị phần cứng nào đó thì
phần mềm đó sẽ được lưu trữ vào trong bộ nhớ và được biên dịch bằng một phần mềm
gọi là trình biên dịch để chuyển từ ngơn ngữ lập trình hay ngơn ngữ mà con người có
thể hiểu được sang ngơn ngữ máy mà máy tính có thể hiểu được và thực thi để phục vụ
cho nhu cầu của con người. Mà để làm được điều đó thì trước hết ta phải hiểu ngơn ngữ
lập trình là gì?
4.2.2. Ngơn Ngữ lặp trình
Ngơn ngữ lập trình là một tập con của ngơn ngữ máy tính, được thiết kế và chuẩn

hóa để truyền các chỉ thị, các phép tính hay các thuật tốn cho các máy tính có bộ xử lý
(CPU) để tạo ra các phần mềm máy tính.
Ngơn ngữ lập trình được chia thành các loại sau:
● Ngôn ngữ máy (Machine Language): Là ngôn ngữ mà nền tảng của bộ xử lý.
Tất cả các chương trình được viết bằng ngơn ngữ khác cuối cùng đều được
chuyển thành ngơn ngữ máy trước khi nó được thực thi.
● Hợp ngữ (Assembly Language): Là ngôn ngữ lập trình bậc thấp. Có chức năng
giúp người dùng giao tiếp với phần cứng ví dụ như trình điều khiển thiết bị, các
hệ thống nhúng cấp thấp và các ứng dụng thời gian thực.


16

● Ngơn ngữ lập trình bậc cao(High-level programing language): Là ngơn ngữ lập
trình có hình thức gần với ngơn ngữ tự nhiên, có tính độc lập cao, ít phụ thuộc
vào loại thiết bị cũng như các trình biên dịch và cũng là loại ngơn ngữ lập trình
phổ biến nhất hiện nay. Ví dụ như: C, C++, Java, JavaScript, C#, Python,…

Hình 14: Các loại ngơn ngữ lập trình
Hiện nay, có rất nhiều ngơn ngữ lập trình được biết đến nhưng đa phần mọi ngơn
ngữ lập trình đều có những đặc điểm chung, khác nhau chủ yếu nằm ở cú pháp, từ vựng
và ý nghĩa của ngôn ngữ và một số kĩ thuật như:
● Kiểu dữ liệu vd: Integer, Char, String, Boolean...
● Cấu trúc dữ liệu vd: Array, Linked List, Stack, Queue,...
● Câu lệnh và dòng điều khiển vd: If, Else, While, For, Break,...
● Các tên và các tham số.
● Các cơ chế đặc trưng của từng ngôn ngữ.
Mỗi ngôn ngữ lập trình đều có điểm mạnh và điểm yếu riêng, nên việc lựa chọn
ngơn ngữ lập trình phù hợp với nhu cầu và công việc là rất quan trọng.
Ngôn ngữ lập trình được sử dụng:

➢ Python: Python là ngơn ngữ lập trình bậc cao cho các mục đích lập trình đa năng.
Với những ưu điểm mạnh như dễ đọc, dễ hiểu và dễ nhớ với hình thức sáng sủa,
cấu trúc rõ ràng, cho phép người dùng viết mã lệnh với số lần gõ phím tối thiểu.
Với lượng thư viện và framework khổng lồ hỗ trợ rất lớn trong việc lập trình,
kèm với đó là một cộng đồng vơ cùng lớn giúp hỗ trợ cũng như giải đáp thắc
mắc. Cho nên Python là ngôn ngữ rất thuận tiện cho người mới học lập trình cũng


17

như cho những người đã có kinh nghiệm. Và đây cũng là ngơn ngữ được sử dụng
trong việc lập trình backend cho máy thanh toán.
➢ JavaScript: Tương tự Python, JavaScript cũng là một ngơn ngữ lập trình bậc cao,
là một trong những ngơn ngữ lập trình phổ biến nhất hiện nay, được sử dụng rộng
rãi trong việc lập trình giao diện web động. Với tốc độ ngày càng phát triển, ngôn
ngữ JavaScript ngày càng phổ biến và được sử dụng trong rất nhiều công việc
như phát triển ứng dụng di động hay phần mềm desktop. Tương tự Python,
JavaScript cũng có một lượng lớn các framework và thư viện được hỗ trợ. Cho
nên JavaScript là ngôn ngữ được lựa chọn trong việc lập trình frontend cho máy
thanh tốn hay cụ thể là framework Svelte của JavaScript.
➢ Và một số ngôn ngữ khác như HTML và CSS dùng để thực hiện tạo ra webpage,
giao diện cho web-app.
4.2.3. Web App
Web app là một chương trình máy tính sử dụng trình duyệt web và công nghệ
web để thực hiện các thao tác thông qua Internet. Ứng dụng web yêu cầu một web server
để quản lý các yêu cầu từ khách hàng, một application server để thực hiện các yêu cầu
từ khách hàng và chức năng lưu trữ dữ liệu (các data, các file), xử lý các dữ liệu đều
thông qua Internet.
❖ Một web-app bao gồm:
➢ Front-end hay giao diện của web-app, được lập trình bằng các ngôn ngữ như

(HTML, CSS, Javascript,…) – để hiển thị thơng tin lên màn hình và cũng như
cho phép người dùng nhập thơng tin, tương tác, … Nói chung tất cả mọi thứ bạn
nhìn thấy trên đều là front-end.

Hình 15: Cấu trúc hình thành Front-end
➢ Back-end được lập trình bằng các ngôn ngữ như (Python, PHP, Java, …) – trái
ngược với front-end, back-end là phần mà người dùng không nhìn thấy được,


18

có chức năng kiểm sốt web-app hoạt động một cách tốt nhất thông qua các việc
như điều hướng trang web, giao tiếp với database, giao tiếp với server, lấy, lưu
trữ thông tin, xử lý thông tin, dữ liệu, tối ưu hóa tốc độ, … và rất nhiều thứ khác.

Hình 16: Các phần hình thành nên Back-end
4.2.4. Các thư viện và Framework
❖ Flask: Là một micro web framework được viết bằng Python. Hỗ trợ đầy đủ các chức
năng một cách súc tích nhất cho một ứng dụng web. Ngồi ra, Flask cịn hỗ trợ các
thành phần tiện ích khác như tích hợp cơ sở dữ liệu (database), xác thực biểu mẫu,
xử lý upload, các công nghệ xác thực, template, email, RESTful,…
➢ Đặc điểm:
-

Tốc độ xử lý cao, phù hợp cho các web app có quy mơ nhỏ.

-

Cấu trúc gọn gàng, rõ ràng, linh hoạt, tối giản


-

Sở hữu nguồn tài liệu rất phong phú.

❖ Electron: Là một framework đa nền tảng mã nguồn mở, sử dụng các công nghệ
web để xây dựng nên các desktop app bằng HTML, CSS, JavaScript.
❖ FastAPI: Là một web framework vơ cùng nhanh chóng và hiện đại, cho phép
người dùng xây dựng nên các API một cách nhanh chóng dựa trên Python cơ bản.
➢ Đặc điểm:
-

Hiệu năng cao, code nhanh hơn, giảm bug

-

Dễ dàng, thân thiện cho người mới học

-

Có nguồn tài liệu lớn và thú vị với Swapper

❖ AsyncIO: Là một thư viện built-in của Python cung cấp cho người dùng khả năng
thay đổi thủ tục chạy code cho phép Python thực hiện code không đồng bộ giúp tăng
tốc độ xử lý khi thực hiện các tác vụ lớn (mất thời gian) hay còn gọi là đa luồng
(multi-thread).


19

❖ UUID: Là một thư viện built-in của Python cung cấp khả năng tạo ra các mã ID

hoàn toàn ngẫu nhiên và hồn tồn xác định (khơng trùng lặp). Trong hệ thống,
module này được sử dụng để tạo ID người dùng (User ID).
❖ RPI-GPIO: Là một thư viện có sẵn trên Raspberry Pi 3 cho phép người dùng thực
hiện truyền dữ liệu thông qua các chân GPIO của Raspberry Pi kết nối với các thiết
bị ngoại vi.
❖ Svelte: Là một framework của Javascript cho phép người dùng xây dựng nên giao
diện cho web-app tương tự như React hay Angular,… nhưng nhẹ nhàng hơn rất
nhiều do svelte hỗ trợ chuyển đổi trực tiếp code svelte thành code html css, js thuần
giúp tăng tốc độ rất nhiều, ngồi ra Svelte cịn hỗ trợ rất nhiều tính năng giúp tăng
tốc cho web-app.
➢ Đặc điểm:
-

Tốc độ xử lý nhanh, chương trình nhẹ nhàng.

-

Phù hợp với các dự án nhỏ.

-

Code ít hơn.

-

Khơng sử dụng Virtual DOM.

-

Cơ chế quản lý state vơ cùng đơn giản.


Ngồi ra, Svelte còn sở hữu rất nhiều cú pháp thú vị giúp hỗ trợ trong việc lập trình
giao diện thêm phần dễ dàng hơn.
4.2.5. Nguyên lý hoạt động của phần mềm
 Phần mềm của máy thanh toán tự động gồm các phần chính sau:
 FrontEnd (Giao Diện): Giao diện của máy được xây dựng dựa trên công nghệ
web thông qua các ngôn ngữ như HTML, CSS, JavaScript và một số framework,
các công cụ, cụ thể là Svelte và Electron.
 BackEnd (Xử lý logic): Được xây dựng dựa trên ngôn ngữ backend, chủ yếu là
Python có chức năng điều hướng trang web, xử lý dữ liệu, giao tiếp với API,
được hỗ trợ vô cùng mạnh mẽ với số lượng lớn các thư viện và framework.
 Firmware (điều khiển phần cứng): Đây là một phần của back-end, cũng được
viết bằng Python, chủ yếu được dùng để điều khiển các thiết bị phần cứng của
máy như đầu đọc tiền, cảm biến, rơ-le,...


20

 Server (giao tiếp với nhà cung cấp thông qua API):Đây là phần cốt lõi của máy,
có chức năng thực hiện các thao tác phía nhà cung cấp như thanh toán tiền điện,
nước cho khách hàng, giao tiếp với cơ sở dữ liệu.
 Nguyên lý chính:
 Giao tiếp giữa đầu đọc tiền NV200 và máy tính nhúng Raspberry Pi 3:
Khi người dùng thực hiện thanh toán, đút tiền vào máy đọc thì máy đọc
tiền sẽ nhận diện tờ tiền được đút vào và trả về một dãy bytes thông qua giao
thức SSP (Synchronous Serial Port) và được truyền đến Raspberry Pi 3 thơng
qua cổng Serial, qua đó, Raspberry Pi nhận được dữ liệu từ máy và thực hiện
xử lý dữ liệu từ các hàm được viết sẵn tại backend của máy và trả ngược về một
dãy bytes cho máy đọc tiền thông qua giao thức trên.
 Giao tiếp giữa backend và server thơng qua API:

Sau khi có thể truyền dữ liệu giữa đầu đọc tiền và Raspberry Pi thì sau đó,
dữ liệu tiếp tục được truyền đi thơng qua các API do nhà cung cấp cung cấp lên
server để thực hiện thanh toán online, lần này, ta sử dụng các giao thức HTTP
hoặc HTTPS ví dụ: GET, POST, DELETE, UPDATE,.... để truyền cũng như
lấy dữ liệu về, các giao thức này được nhà cung cấp phát triển và quy định sẵn
các yêu cầu từ phía người dùng cũng như phản hồi về cho người dùng dưới dạng
JSON sau đó được parse để lấy dữ liệu để lưu trữ hoặc hiển thị, để người dùng
đầu cuối có thể dễ dàng giao tiếp với server, thực hiện thanh toán cũng như tra
cứu dữ liệu vô cùng dễ dàng. (Xem thêm tại chương 3: Hệ thống server)
Tóm lại nhiệm vụ của người lập trình viên là tạo ra backend cho web app mà nó có
thể thực hiện các giao thức trên một cách trơn tru nhất cũng như hạn chế các lỗi xảy ra
nhất có thể, tạo nên một mối liên kết thống nhất, hoàn chỉnh giữa các thiết bị và server
với nhau.


×