You are on page 1of 39

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI


KHOA CƠ KHÍ

------

ĐỒ

ÁN MÔN HỌC

ĐO LƯỜNG VÀ ĐIỀU KHIỂN

ĐỀ TÀI : XÂY DỰNG HỆ THỐNG ĐIỂM DANH NHÂN SỰ SỬ


DỤNG CẢM BIẾN RFID.

Sinh viên thực hiện:

Giáo viên hướng dẫn: TS. Nguyễn Văn Trường

Hà Nội – Năm 2020


MỤC LỤC
MỤC LỤC...............................................................................................1
DANH MỤC ẢNH.................................................................................2
DANH MỤC BẢNG...............................................................................3
DANH MỤC TLTK....................................................................................3
LỜI MỞ ĐẦU.........................................................................................4
Chương 1: Tổng quan về hệ thống........................................................5
1.1: Giới thiệu chung........................................................................5
1.2: Các yêu cầu cơ bản....................................................................7
1.3: Phương pháp, phạm vi và giới hạn nghiên cứu.........................8
1.4: Ý nghĩa thực tiễn........................................................................9
Chương 2: Xây dựng mô hình hệ thống..............................................10
2.1: Thiết kế sơ đồ khối hệ thống....................................................10
2.2: Phân tích và lựa chọn cảm biến :.............................................11
2.3: Phân tích và lựa chọn bộ điều khiển........................................14
2.4: Thiết kế mạch đo và xử lý tín hiệu..........................................19
Chương 3: Chế tạo và thử nghiệm hệ thống.......................................20
3.1: Chế tạo các bộ phận cơ khí....................................................20
3.2: Chế tạo bộ phận điện – điện tử................................................21
3.3: Xây dựng chương trình điều khiển..........................................22
3.4: Thử nghiệm và đánh giá hệ thống...........................................26
Phụ lục...................................................................................................28

Trang 1
DANH MỤC ẢNH
Hình 1.1: Ứng dụng của sóng vô tuyến trong cuộc sống...........................6
Hình 1.2:Phòng thí nghiệm về công nghệ sóng vô tuyến..........................7
Hình 1.3: Thẻ RFID chủ động...................................................................8
Hình 1.4: Thẻ RFID thụ động....................................................................8
Hình 2.1: Arduino UNO R3.....................................................................11
Hình 2.2: Cảm biến RC522 & Thẻ RFID................................................12
Hình 2.3: Mã vạch của sản phẩm.............................................................12
Hình 2.4: Công nghệ quét dấu vân tay.....................................................13
Hình 2.5: Thẻ RFID.................................................................................13
Hình 2.6: Cảm biến RC522......................................................................14
Hình 2.7: Vi điều khiển PIC 18f877A.....................................................15
Hình 2.8: Cấu tạo của 1 bộ lập trình PLC................................................16
Hình 2.9: Aruduino..................................................................................16
Hình 2.10: LCD 1602...............................................................................18
Hình 2.11: LCD 1602...............................................................................18
Hình 2.12: I2C..........................................................................................19
Hình 2.13: DS 1307.................................................................................19
Hình 2.14: Phần mềm fritzing..................................................................20
Hình 2.15: Mạch đo và xử lí tín hiệu.......................................................20
Hình 3.1: Gia công cơ khí phần vỏ..........................................................21
Hình 3.2: Gia công cơ khí phần vỏ..........................................................21
Hình 3.3: Nối Arduino với I2C và DS1307.............................................22
Hình 3.4: Nối dây Arduino với RC522....................................................22
Hình 3.5: Sơ đồ thuật toán của hệ thống..................................................24
Hình 3.6: Giao diện Arduino IDE............................................................26
Hình 3.7: Giao diện Arduino IDE............................................................26
Hình 3.8: Kết quả thử nghiệm trên máy tính...........................................27
Hình 3.9: Thử nghiệm trên thực tế...........................................................28

Trang 2
DANH MỤC BẢNG
Bảng 1-1: Cấu trúc thiết bị..........................................................................7
Bảng 1-2: Đặc tính kỹ thuật........................................................................8
Bảng 1-3: Nội dung báo cáo.......................................................................8
Bảng 2-1:Thông số của Arduino Uno R3.................................................17

DANH MỤC TLTK


Lê Ngọc Duy, Bùi Thanh Lâm, Nhữ Quý Thơ . (2009). Cảm biến và hệ thống
đo. NXB KH&KT.
Vũ Trung Kiên, Phạm Văn Chiến, Nguyễn Văn Tùng. (2014). Giáo trình Vi
điều khiển PIC. Nhà xuất bản Khoa học – Kỹ thuật.

Trang 3
LỜI MỞ ĐẦU
Ngày nay, ngành công nghệ kỹ thuật ngày càng phát triển. Các máy móc
đều được tự động hóa đáp ứng nhu cầu con người và đem lại hiệu quả cao cho
các doanh nghiệp trong nhiều lĩnh vực như công nghiệp, dịch vụ, nông nghiệp,
… Bên cánh các trang thiết bị hiện đại, nhân lực cũng là thành phần quan trong
trong việc quyết định đến sự phát triển của doanh nghiệp.
Do nhu cầu về nhân lực ngày càng cao và phức tạp nên đòi hỏi khâu quản
lí cũng cần phải được cải tiến để đáp ứng được nhu cầu đó.
Ngày nay, có nhiều cách để quản lí nhân sự cụ thể như: điểm danh trực
tiếp ( cách điểm danh này đòi hỏi phải có người giám sát và cần danh sách kèm
theo để điểm danh, người giám sát thường sẽ gọi tên và đối chiếu với danh sách
được cung cấp để kiểm tra. Hình thức này tốn khá nhiều thời gian, công sức và
thiếu tính chuyên nghiệp ); điểm danh bằng hình thức làm bài kiểm tra giấy ( là
hình thức sử dụng bài kiểm tra để xác định số lượng và quản lí được những
người có mặt để kiểm tra. Cách này khá tốn thời gian nên chỉ thường thấy được
áp dụng trong các trường học); điểm danh bằng hệ thống sinh trắc học ( là hình
thức áp dụng công nghệ sinh trắc học như: vân tay, võng mạc, …. Nhưng không
thường thấy vì nó khá tốn kém cho thiết bị nên chỉ thấy trong các công ty lớn
hay các nơi cần bảo mật thông tin tuyệt đối); điểm danh bằng công nghệ RFID
( hình thức này nhanh gọn nên khá phổ biến hiện nay được nhiều nơi áp dụng
nhưng có nhược điểm là cần phải mang theo thẻ nếu không thì không thể điểm
danh được); …
Nhận thấy được nhu cầu đó nên nhóm quyết định chọn đề tài “ Xây dựng
hệ thống điểm danh nhân sự sử dụng cảm biến RFID ” áp dụng phương pháp
điểm danh bằng thẻ RFID được sử dụng cho nhiều trường hợp khác nhau.
Để bài báo cáo được hoàn thiện hơn, nhóm chúng em hi vọng nhận được
những góp ý từ phía các thầy cô. Qua đây, chúng em cũng xin được gửi lời
cảm ơn đến các thầy cô trong Khoa Cơ khí nói chung và thầy cô trong bộ
môn Cơ điện tử nói riêng đã nhiệt tình hướng dẫn đồ án môn cho chúng em

Trang 4
Chương 1: Tổng quan về hệ thống.
1.1: Giới thiệu chung.
1.1.1: Lịch sử phát triển sóng vô tuyến
Công nghệ sóng vô tuyến đã có trong thương mại, trong một số hình thức
từ những năm 1970. Bây giờ nó là một phần trong cuộc sống hằng ngày, có thể
thấy trong những chìa khóa xe hơi, thẻ lệ phí quốc lộ và các loại thẻ truy cập an
toàn, cũng như trong môi trường mà nơi đó việc đánh nhãn bằng mã sô kẻ vạch
trên hàng hóa (yêu cầu giao tiếp vật lý hoặc nhìn thây) là không thực tế hoặc
không hiệu quả lắm.
Kỹ thuật sóng vô tuyến đã bắt đầu trong suốt thời gian chiến tranh thế giới
thứ II và được gia tăng trong vài năm qua. Trong suốt thời kỳ chiên tranh,sóng
radio được sử dụng để xác định xem máy bay đang đến thuộc đồng minh hay thù
địch. Từ đó, việc khảo sát tỉ mỉ kỹ thuật radio được đem ra nghiên cứu và phát
triển trong các hoạt động thương mại cho đến thập niên 1960 và tiên triển rõ vào
những năm 1970 bởi các công ty, học viện,và chính phủ Mỹ. Thêm nữa là các
thẻ không yêu cầu nhìn thấy mới đọc như mã vạch, đọc nhanh và ở khoảng cách
xa.Công nghệ sóng vô tuyến đang ngày càng được hoàn thiện dựa trên nền tảng
nhũng Công nghệ mới ra đời.
Hiện nay đã có những phát triển mới trong công nghệ sóng vô tuyến, tuy
nhiên, việc thực hiện thực tê trong các ngành và các quá trình sản xuất đã đưa ra
nhiều đề xuất hâp dẫn hơn.

Hình 1.1: Ứng dụng của sóng vô tuyến trong cuộc sống.
1.1.2: Công nghệ RFID.
Công nghệ RFID (Radio Frequency Identification) là công nghệ nhận
dạng đối tượng bằng sóng vô tuyên, cho phép một thiết bị đọc thông tin chứa
trong chip ở khoảng cách xa, không cần tiếp xúc trực tiếp,không thực hiện bất kì
giao tiếp vật lý nào giữa hai vật không nhìn thấy.Công nghệ này cho ta phương
Trang 5
pháp truyền, nhận dữ liệu từ một điểm đến một điểm khác. Kỹ thuật RFID sử
dụng truyền thông không dây trong dải tần sóng vô tuyến để truyền dữ liệu từ
các tag (thẻ) đến các reader (bộ đọc).
Thẻ (tag) có thể được đính kèm hoặc gắn vào đối tượng được nhận dạng
chẳng hạn sản phẩm, hộp hoặc giá kê (pallet). Bộ đọc quét dữ liệu của thẻ (tag)
và gửi thông tin đến cơ sở dữ liệu có lưu dữ liệu của thẻ (tag).
Dạng thông dụng nhất được ứng dụng hiện nay là hệ thống RFID bị động
làm việc như sau:
-Bộ đọc (Reader) truyền một tín hiệu tần số vô tuyến điện từ qua
anten của nó đến một con chip.
-Bộ đọc (Reader) nhận thông tin trở lại từ chip và gửi nó đến máy
tính điều khiển đầu đọc và xử lý thông tin lây được từ chip.
-Các chip không tiếp xúc không tích điện, chúng hoạt động bằng
cách sử dụng năng lượng nhận từ tín hiệu được gửi bởi bộ đọc(reader).
Đây là một phương pháp đáng tin cậy để phát hiện và giám sát điện tử,
một dạng mới của phương pháp truyền thông tin vô tuyến. Cũng có thể hiểu
RFID như một loại mã vạch điện tử, trong đó dữ liệu được mã hóa dưới dạng
bít, được truyền đi và nhận biết thông qua sóng vô tuyến.
Thẻ RFIDcó hai loại: tích cực và thụ động :
Các bộ thu phát tích cực có một nguồn nuôi trong khi các bộ thu phát thụ
động thu năng lượng từ chính tín hiệu sóng vô tuyến mà nó nhận được từ các
máy dò hay máy đọc. Loại thẻ thụ động được ứng dụng rộng rãi hơn cả.

Hình 1.2:Phòng thí nghiệm về công nghệ sóng vô tuyến

Thẻ RFID thụ động hoạt động nhờ năng lượng sóng vô tuyến thu được

Trang 6
qua ăng-ten mà không cần nguồn nuôi. Điện thê AC cảm ứng này được chỉnh
luu để cung cấp nguồn cho thiết bị.
Thiết bị bắt đầu hoạt động khi điện thế DC đạt được một giá trị xác định.
Bằng việc cung cấp một tín hiệu RF mang năng lượng, một máy đọc có thể giao
tiếp từ xa với một thiết bị không có nguồn nuôi.

Hình 1.3: Thẻ RFID chủ động Hình 1.4: Thẻ RFID thụ động
1.2: Các yêu cầu cơ bản.

1.2.1: Mô tả nhiệm vụ công nghệ


- Hệ thống nhận diện đúng ID của thẻ đã được cấp.
- Hiển thị thời gian và ngày hiện tại trên màn hình LCD
- Hệ thống có nút vật lý để chọn chương trình làm việc.
- Lưu chi tiết thời gian đến và đi của người dùng trong EEPROM của vđk.
- Tính toán và lưu trữ tổng số giờ làm việc của mỗi người và cung cấp các
tùy chọn trong menu để truy xuất qua máy tính.
- Cung cấp tùy chọn để xóa dữ liệu mà quản trị viên chỉ có thể truy cập
bằng ID của mình trên máy tính.
1.2.2: Cấu trúc thiết bị
Thiết bị Loại sử dụng

Module quét thẻ Cảm biến RFID

Mạch chuyển đổi xử lí tín hiệu ADC ngoài hoặc trong chíp

Bộ điều khiển Vi điều khiển/ PLC/PC

Hiện thị LCD /LED/Monitor

Phím chức năng nhập dữ liệu Nút bấm / Màn hình chạm

Trang 7
Tín hiệu cảnh báo Trên LCD/ Đèn/Còi
Bảng 1-1: Cấu trúc thiết bị.
1.2.3: Đặc tính kỹ thuật
Thông số Giá trị

Tần số hoạt động 13.56 MHZ

Khoảng cách đo <60mm (phụ thuộc vào ăng–ten và hướng)

Giao tiếp SPI

Tốc độ truyền dữ liệu tối đa 10Mbit/s

mifare1 S50, mifare1 S70, mifare


Các loại card RFID hỗ trợ
UltraLight, mifare Pro, mifare Desfire
Bảng 1-2: Đặc tính kỹ thuật.

1.2.4: Nội dung báo cáo


- Bản vẽ

TT Tên bản vẽ Khổ giấy Số lượng


1 Bản vẽ sơ đồ hệ thống A3 1
2 Lưu đồ thuật toán điều khiển hệ A3 1
thống
Bảng 1-3: Nội dung báo cáo.

1.3: Phương pháp, phạm vi và giới hạn nghiên


cứu.
1.3.1: Phương pháp nghiên cứu
- Tham khảo tài liệu: Bằng cách thu thập các thông tin từ sách, báo, tạp
chí về công nghệ, từ các nguồn trên internet và tham khảo các đồ án
của các khóa trước đã từng làm.
- Thực nghiệm: Nhóm đưa ra các ý tưởng cùng với sự hướng dẫn của
giảng viên tiến hành thực nghiệm và chọn phương án tối ưu nhất.

Trang 8
1.3.2: Phạm vi nghiêm cứu
- Hoạt động được nghiên cứu: tập trung nghiên cứu về cách thức hoạt
động, các ưu nhược điểm, các ứng dụng thực tiễn của công nghệ
RFID.
- Thời gian nghiên cứu: nghiên cứu trong thời gian được giáo viên
hướng dẫn cho phép.
1.3.3: Giới hạn nghiên cứu
Trong đề tài “Xây dựng hệ thống điểm danh nhân sự sử dụng cảm biến
RFID” thì phần quan trong nhất là sử dụng cảm biến RFID nên giới hạn của
việc nghiên cứu dừng lại ở việc đọc được thẻ RFID, lưu thời gian đến và đi
trong bộ nhớ EEPROM và có thể truy xuất qua máy tính.

1.4: Ý nghĩa thực tiễn


Ngoài chức năng dùng để điểm danh nhân sự thì công nghệ RFID cũng
được ứng dụng rộng rãi trong các lĩnh vực khác của cuộc sống. Nó giúp cho
cuộc sống của chúng ta trở nên dễ dàng hơn, tiện ích hơn. Một số ứng dụng phổ
biến khác của công nghệ RFID mà chúng ta có thể dễ thấy trong cuộc sống
thường ngày:
 Công nghệ RFID giúp kiểm soát truy cập.
 Sử dụng công nghệ RFID cho thẻ xe.
 Giúp quản lí tài sản, quản lí kho.
 Tổ chức các hoạt động, sự kiên.
Ngoài các ứng dụng trong cuộc sống, công nghệ RFID còn có những công
dụng quan trọng khác nhưng vẫn chưa thực sự phổ biến tại Việt Nam:
 Thanh toán giao thông.
 Sử dụng trong y tế tại các bệnh viện.
 Quản lí giặt ủi. ( Có thể thấy trong các khách sạn)
 Quảng cáo.

Trang 9
Chương 2: Xây dựng mô hình hệ thống.
2.1: Thiết kế sơ đồ khối hệ thống.

Khối hiển thị


Khối nguồn

Khối xử lý Khối RFID


trung tâm

PC

Chức năng của từng khối:


Khối nguồn: Cấp nguồn cho toàn mạch.
Khối xử lý trung tâm:
Điều khiển mạch và kết nối với các linh kiện với nhau.Khối hiển thị:
Hiển thị tên đọc được từ thẻ.

Hình 2.5: Arduino UNO R3


Trang 10
Khối RFID: Đọc thẻ.

Hình 2.6: Cảm biến RC522 & Thẻ RFID

Khối PC: Quản lý hệ thống: báo cáo, tính toán,…

2.2: Phân tích và lựa chọn cảm biến :


2.2.1: Các loại hệ thống nhận dạng:
a) Hệ thống nhận dạng bằng mã vạch (Barcode system)
Mã vạch là một chuỗi mã nhị phân gồm có các vạch và các khoảng trống
được xếp song song. Chúng được sắp xếp theo mẫu định trước và tương ứng với
dữ liệu cơ sở.
Dãy các chữ số tạo nên mã vạch và các khoảng trống lớn nhỏ khác nhau .
Mã vạch được đọc bởi các thiết bị quang học dựa trên phản xạ của tia laze từ
các vạch đen và khoảng trắng. Các mã vạch là tương tự nhau nhưng chúng khác
nhau về cách sắp xếp và định nghĩa của người chế tạo.
Nội dung mã vạch là thông tin của sản phẩm được định nghĩa sẵn như: tên
nhà sản xuất, nơi sản xuất , tiêu chuẩn ,…

Hình 2.7: Mã vạch của sản phẩm.

Trang 11
b) Nhận dạng bằng công nghệ sinh trắc học.
Hệ thống nhận dạng trên thì thuật ngữ sinh trắc học là chỉ chung cho tất cả
các thủ tục để nhận dạng con người bằng cách so sánh các đặc điểm đặc trưng
nhất của mỗi người. Thông thường như: dấu vân tay, giọng nói , khuông mặt,
võng mạc,…

Hình 2.8: Công nghệ quét dấu vân tay.

c) Hệ thống RFID.( Radio Frequency Identification)


Là những tấm thẻ plastic có gắn các microchip. Chúng bắt được các tín
hiệu sóng radio và đáp ứng bằng cách phát ra mã số nhận diện tương ứng.
Là loại phương tiện để nhận dạng người hoặc vật qua việc truyền sóng vô
tuyến. Hệ thống thu dữ liệu nhận dạng không dây này chú trọng đến việc đọc và
ghi thông tin mà không cần tiếp xúc và là một loại công nghệ rất hiệu quả trong
môi trường sản xuất , cũng như các môi trường không thân thiện khác khi mã
vạch không phát huy tác dụng.

2.2.2: Cảm biến RFID


a) Các thành phần cơ bản của cảm biến RFID:
 Thẻ RFID: Là bộ phận cấu thành hệ thống RFID

Hình 2.9: Thẻ RFID

Trang 12
 Bộ đọc: Cùng với thẻ là bộ phận không thể thiếu trong hệ thống
RFID.

Hình 2.10: Cảm biến RC522.

b) Ưu / nhược điểm của cảm biến RFID


Ưu điểm:

 Có thể đọc thẻ mà không cần tiếp xúc.


 Có thể viết lại, sửa đổi thông tin mới lên thẻ.
 Có thể dùng được ở nhiều vị trí, môi trường.
 Chống làm giả.
 An toàn, chính xác , tạo độ tin cậy cao.
 Có thể kết hợp với các hệ thống nhận dạng khác.
Nhược điểm:

 Giá thành cao hơn mã vạch nên chưa được áp dụng rộng rãi trong tất cả các
lĩnh vực cần nhận dạng.
 Thẻ dễ bị nhiễu sóng trong môi trường nước hoặc kim loại.
c) Các ứng dụng của RFID.

 Trong kinh doanh , bán hàng


RFID có thể thay thế kĩ thuật mã vạch hiện nay bởi ngoài việc xác định
được nguồn gốc người quản lí còn có thể biết được chính xác mặt hàng trên
quầy hay trong kho. Việc sử dụng các thẻ RFID mỏng thay cho mã vạch tại các
siêu thị lớn giúp đảm bảo an toàn tránh việc thất thoát hàng hóa. Việc kiểm kho
cũng sẽ được giảm bớt.
 An ninh, kiểm soát.
Hệ thống RFID khắc phục được hạn chế của các phương pháp nhận dạng
tự động. Hệ thống có thể hoạt động hiệu quả trong các môi trường khắc nghiệt,
những nơi bụi bẩn, ẩm ướt thậm chí cả ở những nơi phạm vi quan sát bị hạn chế.

Trang 13
 Quản lí nhân sự
RFID thực sự hữu ích, nhân viên chỉ cần đưa thẻ đến gần máy đọc là có
thể được ghi nhận mà không cần nhét thẻ vào hay sử dụng vân tay. Những thẻ
này còn có thể thu hồi và tái sử dụng. Công tác chấm công tại các cơ quan xí
nghiệp trở nên đơn giản hơn bao giờ hết, những báo cáo về tình trạng nhân viên
có thể dễ dàng được trích xuất khi cần.
 Y tế, giáo dục.
Ở các bệnh viện vòng đeo tay RFID được mang cho các trẻ em mới sinh
và những người già mất trí. Việc quản lí hồ sơ bệnh án cũng có thể sử dụng công
nghệ này. Ngành giáo dục cũng dần áp dụng công nghệ RFID trong công tác
quản lí các thiết bị, tài sản, vật tư.

2.3: Phân tích và lựa chọn bộ điều khiển


Bộ điều khiển là một thiết bị giám sát và tác động vào các điều kiện làm
việc của một hệ động học cho trước. Các điều kiện làm việc đặc trưng cho các
biến đầu ra của hệ thống mà có thể được tác động bởi việc điều chỉnh các biến
đầu vào đã biết.
2.3.1: Các bộ điều khiển thường gặp:
 Vi điều khiển:  là một máy tính được tích hợp trên một chíp, nó thường
được sử dụng để điều khiển các thiết bị điện tử.Các loại vi điều khiển
thường gặp: Atmel AVR (8-bit), ATmega328, Intel 8051, Freescale

Hình 2.11: Vi điều khiển PIC 18f877A.


68HC11 (8-bit),….

 PLC (programmable logic controller): là thiết bị điều khiển lập trình được
(khả trình) cho phép thực hiện linh hoạt các thuật toán điều khiển logic
thông qua một ngôn ngữ lập trình. Người sử dụng có thể lập trình để thực
hiện một loạt trình tự các sự kiện. Các sự kiện này được kích hoạt bởi tác

Trang 14
nhân kích thích (ngõ vào) tác động vào PLC hoặc qua các hoạt động có trễ
như thời gian định thì hay các sự kiện được đếm. Ngôn ngữ lập trình của
PLC có thể là Ladder hay State Logic.
2.3.2: Lựa chọn bộ điều khiển
Arduino
Là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng
điện tử tương tác với nhau hoặc với môi trường được thuận lợi hơn.Arduino
giống như một máy tính nhỏ để người dùng có thể lập trình và thực hiện các dự
án điện tử mà không cần phải có các công cụ chuyên biệt để phục vụ việc nạp
code.
Các loại arduino thường gặp:
Arduino UNO, Arduino MEGA, Arduino Nano, Arduino Leonardo
Ưu - nhược điểm của arduino:
 Ưu điểm:
 Có thể sử dụng ngay
 Các chức năng đơn giản hóa
công việc
 Có cộng đồng lớn
 Nhược điểm
 Chi phí tốn kém Hình 2.13: Aruduino
 Dễ sử dụng (Vì phần cứng và phần
mềm của Arduino dễ sử dụng nên sẽ không biết những điều cơ bản
như giao tiếp, nối tiếp, ADC, I2C, vv).
Ứng dụng của arduino
 Các mạch chiếu sáng tự động.
 Nghành quảng cáo
 Ngành giáo dục
 Nhà thông minh.
 Robot cứu hỏa.
 Máy bay không người lái…
Lập trình cho arduino
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm
phát triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trình
Arduino được gọi là Arduino IDE (Intergrated Development Environment)

Arduino Uno R3
Trang 15
Arduino Uno R3 là một bảng mạch vi điều khiển nguồn mở dựa trên vi
điều khiển Microchip ATmega328 được phát triển bởi Arduino.cc. Bảng mạch
được trang bị các bộ chân đầu vào/ đầu ra Digital và Analog có thể giao tiếp với
các bảng mạch mở rộng khác nhau.

Vi điều khiển ATmega328 họ 8bit


Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ Khoảng 30mA

Điện áp vào khuyên dùng 7-12V DC

Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O 30 mA


Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng


bởi bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)
Bảng 2-4:Thông số của Arduino Uno R3

LCD 16x2
LCD 16x2 là một linh kiện được sử dụng rộng rãi trong trong các dự án
điện tử và lập trình,sử dụng để hiển thị trạng thái hoặc các thông số.
 LCD 16x2 có 16 chân trong đó 8 chân dữ liệu (D0 - D7) và 3 chân
điều khiển (RS, RW, EN).
 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16x2.

Trang 16
 Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh
hoặc chế độ dữ liệu.
 Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi.
 LCD 16x2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng

Hình 2.14: LCD 1602

Hình 2.15: LCD 1602


dụng.

I2C
I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit. Đây là đường Bus
giao tiếp giữa các IC với nhau. Thông thường, để sử dụng màn hình LCD sẽ
phải mất rất nhiều chân trên Arduino để điều khiển. Do vậy, để đơn giản hóa
công việc, người ta đã tạo ra một loại mạch điều khiển màn hình LCD sử dụng
giao tiếp I2C. Nói một cách đơn giản là chỉ tốn ... 2 dây để điều khiển màn hình,
thay vì 8 dây như cách thông thường.

Trang 17
Hình 2.16: I2C
Ưu điểm:

 Tiết kiệm chân cho vi điều khiển.


 Dễ dàng kết nối với LCD.

DS1307
 Là chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thời
gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sử
dụng, tình bằng giây, phút, giờ…

Hình 2.17: DS 1307

Trang 18
2.4: Thiết kế mạch đo và xử lý tín hiệu
2.4.1: Giới thiệu phần mềm thiết kế mạch

Hình 2.18: Phần mềm fritzing


Fritzing là một phần mềm thiết kế mạch điện tử tự động dùng cho các kỹ
sư, sinh viên, những người yêu thích điện tử. Fritzing giúp bạn thiết kế mạch
nguyên lý, xây dựng trên test board, chạy mạch PCB.
Fritzing hổ trợ rất mạnh trong các mạch sử dụng board Arduino.
2.4.2: Thiết kế mạc đo và xử lý tín hiệu

Hình 2.19: Mạch đo và xử lí tín hiệu.

Trang 19
Chương 3: Chế tạo và thử nghiệm hệ thống.
3.1: Chế tạo các bộ phận cơ khí.

Hình 3.20: Gia công cơ khí phần vỏ

Hình 3.21: Gia công cơ khí phần vỏ

Trang 20
3.2: Chế tạo bộ phận điện – điện tử.

Hình 3.22: Nối Arduino với I2C và DS1307

Hình 3.23: Nối dây Arduino với RC522

Trang 21
3.3: Xây dựng chương trình điều khiển.
3.3.1: Sơ đồ thuật toán.

Trang 22
Hình 3.24: Sơ đồ thuật toán của hệ thống.

Trang 23
3.3.2: Giải thích sơ đồ thuật toán
Bắt đầu chương trình LCD hiển thị thời gian thực.
Khi quẹt thẻ, cảm biến RC522 nhận dạng ID của thẻ và só sánh với ID có
sẵn trong bộ nhớ:
 Nếu ID được nhận dạng không có sẵn -> LCD báo “Không tồn tại sinh
viên”.
 Nếu ID được nhận dạng có sẵn trong bộ nhớ thì đèn sẽ nháy :
 Nếu ID là thẻ admin thì sẽ xóa toàn bộ bộ nhớ được lưu trong
EEPROM.
 Nếu ID là thẻ thành viên thì lưu số lần quẹt thẻ (x) vào bộ nhớ:
 Nếu số lần quẹt thẻ là lẻ (x%2!=0) thì sẽ lưu thời gian đến của
người dùng vào bộ nhớ EEPROM và hiển thị thông báo trên
LCD.
 Nếu số lần quét thẻ là chẵn (x%2==0) thì sẽ lưu thời gian đi
của người dùng và lấy thời gian đi, đến của người dùng đó
trong EEPROM và số lần điểm danh(x/2). Sau đó và hiển thị
trên LCD.
 Thời gian đi, đến và số lần điểm danh của mỗi thành viên được lưu
vào những vị trí khác nhau trong EEPROM.

Trang 24
3.3.3: Chương trình điều khiển.
Chương trình điều khiển được xây dựng trên phần mềm Arduino IDE
(Intergrated Development Environment) - là một trình soạn thảo có thể viết code
và nạp vào arduino.
Arduino ide được viết bằng ngôn ngữ lập trình Java là ứng dụng đa nền
tảng (cross-platform). Ngôn ngữ code cho các chương trình của arduino là bằng
C hoặc C++ . Bản thân arduino ide đã được tích hợp một thư viện phầm mềm
thường gọi là "wiring", từ các chương trìn "wiring" gốc sẽ giúp thực hiện thao
tác code dễ dàng hơn

Hình 3.25: Giao diện Arduino IDE

Hình 3.26: Giao diện Arduino IDE

Trang 25
3.4: Thử nghiệm và đánh giá hệ thống.
3.4.1: Thử nghiệm hệ thống.
Sau khi nhóm lên ý tưởng thực hiện đã tiến hành thử nghiệm và gặp một số
lỗi khi tiến hành:
-LCD 16x2 không hoạt động.
Nguyên nhân do khi hàn I2C vào Arduino bị chạm 2 chân của I2C với nhau
nên dẫn đến cháy khiến cho LCD không hoạt động. Sau khi tìm được nguyên
nhân nhóm đã thay I2C và hàn lại.
- Tính toán sai thời gian làm việc.
+Nguyên nhân: do thuật toán câu lệnh.
Khắc phục: Nhóm đã tính toán lại và điều chỉnh câu lệnh
- Khi lưu trữ vào bộ nhớ EEPROM chỉ lưu được thời gian không lưu được
ID của thẻ
+Nguyên nhân của lỗi do sai câu lệnh trong khi code.
- Hiển thị sai thời gian thực.
+Nguyên nhân do quá trình code hệ thống.
- Không đọc được nhiều thẻ cùng 1 lúc .
+Nguyên nhân: Do sai code.
+Khắc phục: sau nhiều lần chạy thử nhóm đã tim ra nguyên nhân và code
lại
Kết quả thực nghiệm hệ thống:

Hình 3.27: Kết quả thử nghiệm trên máy tính.

Trang 26
Hình 3.28: Thử nghiệm trên thực tế.
3.4.2: Đánh giá hệ thống.
Sau qua nhiều lần thử nghiệm và sửa đổi, nhóm đã hoàn thành được sản
phẩm theo các tiêu chí đã nêu ở mục 1.2.1
Dù đã hoàn thiện và đạt được các tiêu chí như trên nhóm nhận thấy hệ
thống vẫn có thể phát triển thêm nữa. Nhóm có một số hướng phát triển như sau:
 Thêm thẻ admin có thể thêm, xóa các thẻ có thể điểm danh.
 Thêm còi báo động khi có thẻ lạ được nhận dạng.
 Tải dữ liệu lên cloud để tránh trường hợp hệ thống xảy ra lỗi.

Trang 27
Phụ lục
Code cho Arduino IDE
#include <EEPROMex.h>
#include <SPI.h>
#include <RFID.h>
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
#define SS_PIN 10
#define RST_PIN 9

RFID rfid(SS_PIN, RST_PIN);


RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27,16,2);

char daysOfTheWeek[7][12] = {"Sun", "Mon", "Tue", "Wed", "Thu",


"Fri", "Sat"};
unsigned char reading_card[4]; // Mảng đọc mã card
unsigned char master[4] = { 21, 228, 43, 42}; // Mã Card phù hợp để diem
danh // 21 228 43 42
unsigned char slave[4] = { 218, 209, 17, 71}; // Mã Card admin de xoa
eeprom 218 209 17 71
unsigned char hai[4] = {169,48,40,163};//169 48 40 163
unsigned char luu[4]= {25, 101, 21, 163};
unsigned char i, j,k ,l;
int
nam=0,thang=8,ngay=16,gio=24,phut=32,giay=40,sogio=136,sophut=336,
sogiay= 556,solanan=1004,a,b,c,d,e,f,n=0,y,x;
void setup()
{

Trang 28
Serial.begin(9600);
SPI.begin();
lcd.init();
lcd. backlight();
Wire.begin();
rtc.begin();
rfid.init();
if (! rtc.begin())
{
lcd.print("Couldn't find RTC");
while (1);
}
if (! rtc.isrunning())
{
lcd.print("RTC is NOT running!");
}
}

void loop () {
// hien thi thoi gian tren cld
DateTime now = rtc.now();
lcd.setCursor(4, 1);
if(now.hour()<=9)
{
lcd.print("0");
lcd.print(now.hour());
}
else {
lcd.print(now.hour());
}
lcd.print(':');
Trang 29
if(now.minute()<=9)
{
lcd.print("0");
lcd.print(now.minute());
}
else {
lcd.print(now.minute());
}
lcd.print(':');
if(now.second()<=9)
{
lcd.print("0");
lcd.print(now.second());
}
else {
lcd.print(now.second());
}
lcd.print(" ");
lcd.setCursor(1, 0);
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(",");
if(now.day()<=9)
{
lcd.print("0");
lcd.print(now.day());
}
else {
lcd.print(now.day());
}
lcd.print('/');
if(now.month()<=9)
Trang 30
{
lcd.print("0");
lcd.print(now.month());
}
else {
lcd.print(now.month());
}
lcd.print('/');
if(now.year()<=9)
{
lcd.print("0");
lcd.print(now.year());
}
else {
lcd.print(now.year());
}
if (rfid.isCard()) {
if (rfid.readCardSerial()) // Nếu có thẻ
{
lcd.clear();
for (i = 0; i < 4; i++) {

reading_card[i] = rfid.serNum[i]; //Lưu mã thẻ đọc được vào mảng


reading_card
}
for (i = 0; i < 4; i++) {
//So sáng từng phần tử của mảng reading_card với mảng master
if (reading_card[i] != master[i]) //Nếu có 1 phần tử bất kỳ nào
không phù hợp...thỳ thoát vòng lặp, lúc này ta nhận được giá trị của i
{
break;

Trang 31
}
}
// Tương tự với thẻ Slave
for (j = 0; j < 4; j++) {
if (reading_card[j] != slave[j])
{
break;
}
}
for (k = 0; k < 4; k++) {
if (reading_card[k] != hai[k])
{
break;
}
}
for (l = 0; l < 4; l++) {
if (reading_card[l] != luu[l])
{
break;
}
}
if(i==4)
{
Serial.println("hello AN ");
nam=0;thang=8;ngay=16;gio=24;phut=32;giay=40;sogio=136;s
ophut=336; sogiay= 556;solanan=1004;
lcd.setCursor(4, 0);
lcd.print("hello AN ");
lcd.setCursor(3, 1);
lcd.print("da diem danh ");
}
Trang 32
if(k==4)
{
Serial.println("hello HAI ");
lcd.setCursor(4, 0);
lcd.print("hello HAI ");
lcd.setCursor(3, 1);
lcd.print("da diem danh ");

nam=40+8;
thang=40+8*2;
ngay=40+8*3;
gio=40+8*4;
phut=40+8*5;
giay=40+8*6;
sogio=136+60;
sophut=336+60;
sogiay=556+60;
solanan=1004+4;
}
if(l==4)
{
Serial.println("hello LUU ");
lcd.setCursor(3, 1);
lcd.print("da diem danh ");
lcd.setCursor(4, 0);
lcd.print("hello LUU ");
nam=128+8;
thang=128+8*2;
ngay=128+8*3;
gio=128+8*4;
phut=128+8*5;
Trang 33
giay=128+8*6;
sogio=136+60*2;
sophut=336+60*2;
sogiay=556+60*2;
solanan=1004+8;
}
if (i == 4 || k==4 || l==4) // Nếu các phần tử của màng reading_card phù
hợp hết với mảng master thì lúc này i chạy đến 4
{
//bat den
pinMode(6,OUTPUT);
digitalWrite(6, HIGH);
delay(500);
digitalWrite(6, LOW);
y=EEPROM.readDouble(solanan);
y=y+1;
EEPROM.writeDouble(solanan,y);
x=EEPROM.readDouble(solanan);
delay(100);
if(x%2!=0)
{
EEPROM.writeDouble(nam, now.year());
EEPROM.writeDouble(thang, now.month());
EEPROM.writeDouble(ngay, now.day());
EEPROM.writeDouble(gio, now.hour());
EEPROM.writeDouble(phut, now.minute());
EEPROM.writeDouble(giay, now.second());

Serial.println("thoi gian bat dau lam viec la");


Serial.print(EEPROM.readDouble(ngay),0);Serial.print("/");
Serial.print(EEPROM.readDouble(thang),0);Serial.print("/");
Trang 34
Serial.print(EEPROM.readDouble(nam),0);Serial.print(" gio");
Serial.print(EEPROM.readDouble(gio),0);Serial.print("h:");
Serial.print(EEPROM.readDouble(phut),0);Serial.print("ph:");
Serial.print(EEPROM.readDouble(giay),0);Serial.print("s");
Serial.println(" ");

}
if(x%2==0)
{
// tinh toan thoi gian lam viec
EEPROM.writeDouble(nam+4, now.year());
EEPROM.writeDouble(thang+4, now.month());
EEPROM.writeDouble(ngay+4, now.day());
EEPROM.writeDouble(gio+4, now.hour());
EEPROM.writeDouble(phut+4, now.minute());
EEPROM.writeDouble(giay+4, now.second());
c=EEPROM.readDouble(ngay+4) - EEPROM.readDouble(ngay);
d=EEPROM.readDouble(gio+4) - EEPROM.readDouble(gio);
e =EEPROM.readDouble(phut+4) - EEPROM.readDouble(phut);
//vd tg den: 17h30p, tg di: 18h45p
if(e<0)//vd tg den: 17h30p, tg di: 18h10p
{
f=(60-EEPROM.readDouble(phut))+ EEPROM.readDouble(phut+4) ;
d=d-1;
}
f=EEPROM.readDouble(giay+4) - EEPROM.readDouble(giay);
//vd tg den: 17h30p 40s, tg di : 17h45p50s

if(f<0) //vd tg den: 17h30p40s, tg di: 17h45ph30s


{
f=(60-EEPROM.readDouble(giay))+ EEPROM.readDouble(giay+4) ;
Trang 35
e=e-1;
}
// luu thoi gian lam viec
EEPROM.writeDouble(sogio,d);
EEPROM.writeDouble(sophut,e);
EEPROM.writeDouble(sogiay,f);
//doc thoi gian kam viec

Serial.println("thoi gian ket thuc lam viec ");


Serial.print(EEPROM.readDouble(ngay+4),0);Serial.print("/");
Serial.print(EEPROM.readDouble(thang+4),0);Serial.print("/");
Serial.print(EEPROM.readDouble(nam+4),0);Serial.print(" gio");
Serial.print(EEPROM.readDouble(gio+4),0);Serial.print("h:");
Serial.print(EEPROM.readDouble(phut+4),0);Serial.print("ph:");
Serial.print(EEPROM.readDouble(giay+4),0);Serial.println("s");
Serial.println("tong so thoi gian lam viec la");
lcd.setCursor(1, 0);
lcd.print("tongsothoigian");
lcd.setCursor(0, 1);
lcd.print(EEPROM.readDouble(sogio),0);lcd.print("h:");
lcd.print( EEPROM.readDouble(sophut),0);lcd.print("ph:");
lcd.print( EEPROM.readDouble(sogiay),0);lcd.print("s");
lcd.print("solan:");lcd.print(EEPROM.readDouble(solanan)/2,0);

Serial.print(EEPROM.readDouble(sogio),0);Serial.print("h:");
Serial.print( EEPROM.readDouble(sophut),0);Serial.print("ph:");
Serial.print( EEPROM.readDouble(sogiay),0);Serial.println("s");
Serial.print("so lan lam viec la:");
Serial.print(EEPROM.readDouble(solanan)/2,0);
delay(1000);
Serial.println(" ");
Trang 36
}
sogio=sogio+4;sophut=sophut+4;sogiay=sogiay+4;
delay(2000);
lcd.clear();
}

if (j == 4)
{
Serial.println("hello admin");
lcd.setCursor(1, 0);
lcd.print(" hello admin");
lcd.setCursor(0, 1);
lcd.print(" batdauxoabonho");
delay(500);
lcd.clear();
//bat den
pinMode(7,OUTPUT);
digitalWrite(7, HIGH);
delay(500);
digitalWrite(7, LOW);
// xóa các giá trị tại các ô nhớ EEPROM từ 0-1023 (có 1024 ô nhớ)
for (int i = 0; i < 1024; i++) {
EEPROM.write(i, 0);
delay(5);
}//Phải có delay tối thiểu 5 mili giây giữa mối lần write

lcd.setCursor(2, 0);
lcd.print("daxoabonho");
delay(500);
lcd.clear();
}
Trang 37
if(i!=4 && j!=4 && k!=4 && l!=4)
{
lcd.setCursor(4, 0);
lcd.print("sai the");
Serial.println("sai the ");
delay(2000);
lcd.clear();
}
rfid.halt();
}
}
}

Trang 38

You might also like