Bối cảnh và vấn đề nghiên cứu
Sự phát triển kinh tế và gia tăng dân số tại các đô thị lớn của Việt Nam như Thành phố Hồ Chí Minh và Hà Nội đặt ra áp lực lớn đối với hạ tầng giao thông, dẫn đến tình trạng ùn tắc và ô nhiễm môi trường. Việc xây dựng và phát triển các hệ thống giao thông công cộng hiện đại, đặc biệt là hệ thống đường sắt đô thị (Metro) như tuyến Metro số 1 Bến Thành – Suối Tiên, là giải pháp trọng điểm đang được triển khai. Tuy nhiên, các phương thức quản lý bán vé và kiểm soát cước phí thủ công truyền thống bộc lộ nhiều nhược điểm như xử lý chậm, tốn kém nhân lực và tiềm ẩn nguy cơ thất thoát doanh thu. Với lưu lượng hành khách lên đến hàng nghìn lượt mỗi ngày, việc ứng dụng công nghệ tự động hóa trong quản lý và thanh toán cước phí trở thành yêu cầu cấp thiết.
Công nghệ nhận dạng qua tần số vô tuyến (RFID) đã được ứng dụng rộng rãi trên thế giới trong các hệ thống thu phí giao thông công cộng tại London, Nhật Bản, Bồ Đào Nha, cũng như các trạm thu phí không dừng đường bộ. Đề tài "Hệ thống tính cước phí đường sắt Metro sử dụng thẻ RFID" được thực hiện nhằm nghiên cứu và xây dựng mô hình thu phí tự động, phục vụ nhu cầu hiện đại hóa ngành giao thông vận tải đường sắt đô thị.
Nhiệm vụ và mục tiêu nghiên cứu của đề tài bao gồm 5 nội dung chính:
- Tìm hiểu các phương thức quản lý và thanh toán cước phí đường sắt đô thị đang áp dụng tại các nước trên thế giới.
- Thiết kế và thi công mô hình phần cứng của hệ thống tính cước phí.
- Thiết kế giao diện phần mềm và xây dựng cơ sở dữ liệu để quản lý thông tin hành khách cũng như phương thức thanh toán tiền vé.
- Xây dựng hệ thống vận hành thuận tiện, có tính tương tác cao và có khả năng đáp ứng lưu lượng hành khách lớn.
- Định hướng khả năng ứng dụng mô hình vào điều kiện thực tế tại Việt Nam.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống quản lý và tính cước phí đường sắt đô thị tự động ứng dụng công nghệ RFID.
- Phạm vi nghiên cứu: Mô hình phần cứng mô phỏng quy mô tuyến gồm 02 nhà ga, mỗi nhà ga bố trí 01 cổng lên và 01 cổng xuống (tổng cộng 4 đầu đọc RFID). Cơ sở dữ liệu và phần mềm quản lý được triển khai, kiểm thử cục bộ trên một máy tính cá nhân.
Cơ sở lý thuyết và phương pháp
Đề tài kết hợp cơ sở lý thuyết về hệ thống đường sắt đô thị, công nghệ nhận dạng không dây RFID, kỹ thuật vi điều khiển nhúng, công nghệ phần mềm ứng dụng và hệ quản trị cơ sở dữ liệu quan hệ:
- Công nghệ RFID: Sử dụng sóng vô tuyến trong dải tần số 13.56 MHz để truyền nhận dữ liệu không tiếp xúc giữa thẻ (Tag) và đầu đọc (Reader). Hệ thống ứng dụng thẻ bị động (passive tag), hoạt động nhờ năng lượng cảm ứng từ trường điện từ do ăng-ten của đầu đọc phát ra.
- Nền tảng phần cứng: Vi điều khiển trung tâm ATmega2560 trên bo mạch Arduino Mega 2560, module đọc/ghi thẻ RFID-RC522, màn hình hiển thị LCD 16x2 kèm module chuyển đổi giao tiếp I2C.
- Nền tảng phần mềm và cơ sở dữ liệu: Môi trường lập trình vi điều khiển Arduino IDE (ngôn ngữ C/C++), môi trường phát triển ứng dụng Microsoft Visual Studio với ngôn ngữ lập trình C# (.NET Framework) và hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2008.
Phương pháp nghiên cứu thực tế được triển khai bao gồm:
- Phương pháp phân tích và tổng hợp tài liệu: Nghiên cứu các tài liệu kỹ thuật, datasheet của vi điều khiển ATmega2560, module MFRC522 và các mô hình thu phí metro quốc tế.
- Phương pháp thiết kế kỹ thuật: Tính toán mạch cấp nguồn DC, thiết kế sơ đồ nguyên lý ghép nối vi điều khiển với các module RFID qua chuẩn SPI, module I2C và mạch kích cảnh báo còi/đèn qua transistor.
- Phương pháp lập trình hệ thống: Xây dựng lưu đồ giải thuật và viết chương trình nhúng cho Arduino; thiết kế giao diện đồ họa người dùng (GUI) WinForms bằng C#; thiết lập cấu trúc bảng dữ liệu và lập trình các câu truy vấn SQL (SELECT, INSERT, UPDATE, DELETE); thiết lập truyền thông nối tiếp UART/COM giữa máy tính và vi điều khiển.
- Phương pháp thực nghiệm mô hình: Thi công lắp ráp phần cứng vật lý, nạp chương trình điều khiển, chạy thử nghiệm các kịch bản quẹt thẻ, kiểm tra số dư, cập nhật trừ cước và xuất báo cáo ra định dạng Excel.
Nguồn dữ liệu của đề tài bao gồm thông số kỹ thuật chuẩn từ nhà sản xuất linh kiện và tập dữ liệu mô phỏng hành khách được khởi tạo trong cơ sở dữ liệu rfid_metro.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình phân tầng gồm phần cứng thu thập/điều khiển tại trạm và phần mềm quản trị trung tâm trên máy tính.
| STT | Tên khối chức năng | Linh kiện sử dụng | Số lượng | Thông số và vai trò kỹ thuật |
|---|---|---|---|---|
| 1 | Khối nguồn | Nguồn Adapter DC | 1 | 9V DC – 2A, cấp nguồn cho Arduino và các khối ngoại vi |
| 2 | Khối vi điều khiển | Arduino Mega 2560 | 1 | Vi điều khiển ATmega2560 (16 MHz, Flash 256 KB, SRAM 8 KB, EEPROM 4 KB, 54 Digital I/O, 16 Analog In) |
| 3 | Khối đọc dữ liệu | Module RFID RC522 | 4 | Tần số 13.56 MHz, điện áp 3.3V, dòng 13-26mA, khoảng cách đọc 0-60 mm, giao tiếp SPI (tối đa 10 Mbps) |
| 4 | Khối hiển thị | LCD 16x2 + Module I2C | 1 | Hiển thị 2 dòng x 16 ký tự, địa chỉ I2C 0x27, kết nối qua bus I2C (SDA, SCL) |
| 5 | Khối cảnh báo | Transistor C1815, Loa 5V, Đèn LED | 1 bộ | 1 Transistor NPN C1815 làm khóa điện tử, 1 Loa báo 5V, 2 LED (xanh: hợp lệ, đỏ: không hợp lệ), điện trở hạn dòng 220Ω |
Kết nối phần cứng giữa các module RFID RC522 và bo mạch Arduino Mega 2560 được thực hiện qua bus SPI chung đối với các chân SCK, MISO, MOSI, trong khi chân chọn chip (SDA/SS) của 4 module được phân tách riêng biệt để định danh từng cổng của 2 nhà ga:
| Chân RC522 | Chân Arduino Mega 2560 | Ghi chú cấu hình |
|---|---|---|
| VCC | 3.3V | Cấp nguồn 3.3V từ board Arduino |
| GND | GND | Nối mass hệ thống |
| RST | Chân số 5 | Chân Reset dùng chung cho 4 module |
| SDA (SS) Trạm 1 - Lên Ga 1 | Chân số 30 (SS_PIN1) | Chọn thiết bị đọc cổng vào Ga 1 |
| SDA (SS) Trạm 2 - Xuống Ga 1 | Chân số 33 (SS_PIN2) | Chọn thiết bị đọc cổng ra Ga 1 |
| SDA (SS) Trạm 3 - Lên Ga 2 | Chân số 31 (SS_PIN3) | Chọn thiết bị đọc cổng vào Ga 2 |
| SDA (SS) Trạm 4 - Xuống Ga 2 | Chân số 32 (SS_PIN4) | Chọn thiết bị đọc cổng ra Ga 2 |
| MOSI | Chân số 51 | Master Out Slave In (dùng chung) |
| MISO | Chân số 50 | Master In Slave Out (dùng chung) |
| SCK | Chân số 52 | Chân tạo xung nhịp SPI Clock (dùng chung) |
Kết nối module hiển thị I2C với Arduino Mega 2560: chân SCL nối chân Digital 21, chân SDA nối chân Digital 20, cấp nguồn VCC 5V và GND.
Quy trình giao tiếp giữa máy tính và vi điều khiển: Arduino kết nối với máy tính qua cổng USB quy đổi thành cổng nối tiếp ảo (COM port). Khi thẻ RFID quét qua đầu đọc, Arduino nhận UID của thẻ và gửi chuỗi dữ liệu lên bộ đệm cổng COM. Phần mềm C# lắng nghe sự kiện nhận dữ liệu, xử lý chuỗi ký tự, thực hiện truy vấn SQL tương ứng và truyền chuỗi phản hồi trở lại Arduino để kích hoạt loa, bật LED xanh/đỏ và xuất thông báo ra màn hình LCD.
Đoạn mã khởi tạo cấu hình phần cứng trong chương trình Arduino:
#include <SPI.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define SS_PIN1 30
#define SS_PIN2 33
#define SS_PIN3 31
#define SS_PIN4 32
#define RST_PIN 5
MFRC522 tram1(SS_PIN1, RST_PIN);
MFRC522 tram2(SS_PIN2, RST_PIN);
MFRC522 tram3(SS_PIN3, RST_PIN);
MFRC522 tram4(SS_PIN4, RST_PIN);
Đoạn mã cấu hình kết nối cơ sở dữ liệu và cổng truyền thông trên giao diện quản lý bằng C#:
namespace rfid_metro
{
public partial class frmdata_hanhkhach : Form
{
string strCon = @"server = MAIHEO-PC; database = rfid_metro; integrated security = true;";
private SerialPort RFID;
// Cấu hình cổng COM5 và thời gian đọc dữ liệu
}
}
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 thiết lập cơ sở khoa học và thực tiễn của đề tài. Tác giả phân tích nhu cầu phát triển vận tải hành khách khối lượng lớn tại Việt Nam, sự hình thành các tuyến đường sắt đô thị và yêu cầu cấp thiết về hệ thống quản lý vé tự động. Chương này xác định rõ mục tiêu chế tạo mô hình phần cứng thu phí bằng thẻ RFID, xây dựng phần mềm quản trị C# và cơ sở dữ liệu SQL Server, đồng thời xác định phạm vi giới hạn kỹ thuật của đồ án tại quy mô mô phỏng 02 nhà ga.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày chi tiết các lý thuyết nền tảng:
- Lịch sử hình thành và đặc trưng vận hành của hệ thống đường sắt đô thị Metro từ năm 1863 tại London, phân tích các yêu cầu kỹ thuật đối với hệ thống tính cước tự động (tính chính xác, cập nhật liên tục, lưu trữ khối lượng dữ liệu lớn, tương tác trực quan).
- Nguyên lý hoạt động của công nghệ RFID, cấu trúc thẻ tag (chip bán dẫn lưu trữ 96 bit đến 512 bit dữ liệu, ăng-ten), nguyên lý giao tiếp trường điện từ và phân tích ưu - nhược điểm của công nghệ RFID.
- Đặc tính kỹ thuật của các linh kiện phần cứng sử dụng: Module đọc thẻ RFID RC522 (tần số 13.56 MHz, chuẩn SPI), màn hình LCD 16x2, vi điều khiển ATmega2560 trên bo mạch Arduino Mega 2560 (bộ nhớ 256 KB Flash, 8 KB SRAM, 4 KB EEPROM, 54 chân I/O số), cùng các linh kiện phụ trợ gồm transistor C1815, loa báo 5V và đèn LED.
Chương 3: Tính toán và thiết kế
Chương 3 đi sâu vào thiết kế kỹ thuật toàn diện cho hệ thống:
- Xây dựng sơ đồ khối chức năng tổng thể gồm: Khối đọc dữ liệu, Khối vi xử lý, Khối ngoại vi (hiển thị, thông báo) và Khối máy tính quản lý.
- Tính toán và thiết kế chi tiết từng mạch thành phần: Mạch nguồn 9V-2A; Mạch giao tiếp SPI giữa 4 module RC522 với Arduino Mega 2560; Mạch hiển thị I2C kết nối LCD 16x2; Mạch điều khiển cảnh báo sử dụng transistor C1815 làm khóa đóng ngắt loa báo 5V và điện trở hạn dòng 220Ω cho LED báo trạng thái.
- Tổng hợp sơ đồ nguyên lý toàn mạch hoàn chỉnh mô tả sự phối hợp giữa phần cứng nhúng và máy tính trung tâm.
Chương 4: Thi công hệ thống
Chương 4 mô tả quy trình hiện thực hóa mô hình phần cứng và lập trình hệ thống:
- Bảng danh mục linh kiện, quy trình kiểm tra cổng kết nối COM/USB trên máy tính, quy trình kiểm tra mạch đọc thẻ RFID, mạch hiển thị LCD và mạch cảnh báo.
- Đóng gói phần cứng và bố trí mô hình mô phỏng 2 nhà ga.
- Lập trình hệ thống: Trình bày lưu đồ giải thuật cho chương trình nhúng trên Arduino Mega 2560 và lưu đồ giải thuật phần mềm quản lý trên C#.
- Hướng dẫn chi tiết môi trường phát triển Arduino IDE, Visual Studio (C#) và Microsoft SQL Server 2008.
- Xây dựng cơ sở dữ liệu
rfid_metro, thiết kế các bảng dữ liệu và thực hiện các câu lệnh truy vấn dữ liệu SQL (SELECT, INSERT, UPDATE, DELETE). - Xây dựng quy trình thao tác và hướng dẫn sử dụng phần mềm quản lý hệ thống.
Chương 5: Kết quả và nhận xét
Chương 5 công bố các kết quả thực nghiệm đạt được:
- Đánh giá hoạt động của khối đọc dữ liệu và khối vi điều khiển: Tín hiệu đọc thẻ ổn định, phân biệt chính xác địa chỉ các trạm thông qua các chân chọn chip riêng biệt.
- Kết quả phần mềm quản lý: Vận hành ổn định các giao diện chức năng bao gồm: Giao diện Đăng nhập hệ thống, Giao diện Quản lý hệ thống, Giao diện Quản lý hành khách (hỗ trợ thêm mới, chỉnh sửa thông tin, xóa tài khoản), Giao diện Quản lý hành trình và Giao diện Thông tin hành trình.
- Kết quả thực nghiệm quẹt thẻ thực tế: Ghi nhận chính xác trường hợp thẻ chưa đăng ký bị từ chối; trường hợp hành khách "Nguyễn Văn B" quẹt thẻ tại cổng lên ga 2 và cổng xuống ga 1 được hệ thống xác nhận hợp lệ, tự động tính cước và trừ tiền trong tài khoản, đồng thời trích xuất dữ liệu thành công ra bảng tính Excel.
Chương 6: Kết luận và hướng phát triển
Chương 6 tổng kết toàn bộ quá trình thực hiện đồ án, khẳng định hệ thống đã đáp ứng đầy đủ các yêu cầu đề ra về mặt phần cứng lẫn phần mềm. Tác giả đồng thời chỉ ra các điểm còn tồn tại của mô hình mô phỏng và đề xuất các giải pháp kỹ thuật nhằm nâng cấp, mở rộng hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả thực nghiệm chính của đề tài bao gồm:
- Thi công hoàn chỉnh mô hình phần cứng tích hợp 4 đầu đọc RFID RC522, bo mạch Arduino Mega 2560, màn hình LCD 16x2 qua giao tiếp I2C và khối thông báo âm thanh/ánh sáng (loa 5V, transistor C1815, 2 LED trạng thái).
- Xây dựng thành công ứng dụng quản lý trên máy tính bằng ngôn ngữ C# với đầy đủ các phân hệ chức năng: quản lý thông tin hành khách (thêm, sửa, xóa), giám sát hành trình lên/xuống tại các ga, tự động kiểm tra số dư và trừ tiền cước theo chặng di chuyển.
- Thiết lập cơ sở dữ liệu
rfid_metrotrên Microsoft SQL Server 2008, đồng bộ dữ liệu tức thời với ứng dụng C# và cho phép kết xuất báo cáo hành trình ra tệp bảng tính Excel. - Kiểm thử thành công các tình huống vận hành thực tế: nhận diện chính xác thẻ chưa đăng ký trong hệ thống, thực hiện đúng chu trình kiểm soát đối với hành khách quét thẻ tại cổng lên ga 2 và cổng xuống ga 1.
Giải pháp và đóng góp của đề tài:
- Đề xuất giải pháp kỹ thuật tự động hóa toàn diện quy trình thu cước đường sắt đô thị, giảm thiểu sự phụ thuộc vào nhân sự bán vé và kiểm soát vé thủ công.
- Hiện thực hóa mô hình giao tiếp đa module RFID trên cùng một bus SPI kết hợp với vi điều khiển nhúng và phần mềm quản trị CSDL quan hệ trên máy tính, tạo tiền đề tham khảo cho các giải pháp quản lý giao thông công cộng tự động tại Việt Nam.
Hạn chế và hướng nghiên cứu tiếp
Các hạn chế được văn bản đề cập:
- Mô hình phần cứng chỉ dừng lại ở quy mô mô phỏng 02 nhà ga, mỗi nhà ga chỉ có 01 cổng lên và 01 cổng xuống.
- Khối hiển thị và thông báo tại chỗ bị giới hạn với 01 màn hình LCD 16x2, 01 loa báo và 02 đèn LED trạng thái.
- Cơ sở dữ liệu và phần mềm quản trị mới chỉ hoạt động cục bộ trên 01 máy tính duy nhất, chưa triển khai kết nối mạng diện rộng giữa nhiều máy tính tại các trạm khác nhau.
Hướng nghiên cứu và phát triển tiếp theo:
- Mở rộng quy mô phần cứng để mô phỏng toàn bộ các nhà ga và nhiều cổng kiểm soát trên toàn tuyến metro.
- Xây dựng hạ tầng mạng kết nối phân tán, cho phép nhiều máy tính tại các nhà ga kết nối đồng bộ về máy chủ cơ sở dữ liệu trung tâm.
- Nâng cao tính năng bảo mật dữ liệu trên thẻ RFID và tích hợp các phương thức liên kết nạp tiền qua hệ thống tài khoản ngân hàng.
Giá trị tham khảo
Đồ án là tài liệu kỹ thuật có giá trị tham khảo thiết thực cho:
- Sinh viên và giảng viên các ngành Công nghệ Kỹ thuật Điện tử - Truyền thông, Kỹ thuật Điện - Điện tử, Tự động hóa và Công nghệ Thông tin đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về hệ thống nhúng và IoT.
- Người nghiên cứu các hệ thống thu phí tự động (AFC), hệ thống kiểm soát ra vào (Access Control) hoặc các ứng dụng giao tiếp thẻ thông minh RFID trong giao thông đô thị.
- Các phần đáng tham khảo trực tiếp bao gồm: Sơ đồ thiết kế mạch ghép nối song song nhiều module MFRC522 qua chuẩn SPI với vi điều khiển AVR; phương thức xử lý dữ liệu truyền thông nối tiếp qua cổng COM giữa C# và Arduino; quy trình thiết kế giao diện WinForms liên kết hệ quản trị CSDL SQL Server 2008 và module xuất dữ liệu ra Microsoft Excel.
Câu hỏi thường gặp
1. Hệ thống sử dụng vi điều khiển và module đọc thẻ loại nào, thông số kỹ thuật ra sao? Hệ thống sử dụng bo mạch Arduino Mega 2560 tích hợp vi điều khiển ATmega2560 (xung nhịp 16 MHz, bộ nhớ Flash 256 KB, SRAM 8 KB, EEPROM 4 KB, 54 chân I/O số, 16 ngõ vào tương tự) và 4 module đọc thẻ RFID RC522 (tần số hoạt động 13.56 MHz, điện áp 3.3V, khoảng cách đọc 0-60 mm, chuẩn giao tiếp SPI).
2. Làm thế nào để vi điều khiển Arduino Mega 2560 điều khiển độc lập 4 module RFID RC522 khi dùng chung chuẩn SPI? Bốn module RC522 dùng chung các đường tín hiệu SCK (chân 52), MISO (chân 50), MOSI (chân 51) và chân Reset RST (chân 5). Để điều khiển và nhận dạng độc lập từng module tại các cổng lên/xuống của 2 nhà ga, các chân chọn chip SDA (SS) được nối riêng biệt vào các chân số 30 (Trạm 1 - Lên Ga 1), chân số 33 (Trạm 2 - Xuống Ga 1), chân số 31 (Trạm 3 - Lên Ga 2) và chân số 32 (Trạm 4 - Xuống Ga 2).
3. Phần mềm quản lý trên máy tính được xây dựng bằng công cụ gì và thực hiện những chức năng nào?
Phần mềm quản lý được lập trình bằng ngôn ngữ C# trên nền tảng .NET Framework và hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2008 (tên database: rfid_metro). Phần mềm đảm nhận các chức năng: đăng nhập hệ thống, quản lý thông tin hành khách (thêm, sửa, xóa thông tin), kiểm tra dữ liệu thẻ gửi từ Arduino qua cổng COM, tính toán và trừ tiền vé, cập nhật dữ liệu hành trình và kết xuất báo cáo ra file Excel.
4. Khối thông báo và hiển thị trạng thái cho hành khách hoạt động như thế nào? Khối hiển thị sử dụng màn hình LCD 16x2 kết hợp module I2C (địa chỉ 0x27, nối chân SDA 20 và SCL 21) để hiển thị thông tin hành khách và số dư. Khối thông báo sử dụng transistor NPN C1815 kích hoạt loa báo 5V khi phát hiện quẹt thẻ, cùng 2 đèn LED: LED xanh sáng khi thẻ hợp lệ và đủ điều kiện thực hiện hành trình, LED đỏ sáng khi thẻ không hợp lệ hoặc số dư không đủ.
5. Quy trình tính cước phí của hành khách diễn ra theo các bước nào? Hành khách quét thẻ tại cổng lên của ga đi, hệ thống kiểm tra thông tin và số dư trong CSDL; nếu hợp lệ, cổng mở và hệ thống ghi nhận trạm bắt đầu hành trình. Khi đến ga đích, hành khách quét thẻ tại cổng xuống, phần mềm C# tự động tính cước theo chặng đường đã đi, thực hiện lệnh UPDATE trừ tiền vào tài khoản trong SQL Server, cập nhật lịch sử hành trình và gửi tín hiệu báo hoàn tất về Arduino để hiển thị số dư còn lại lên màn hình LCD.
Kết luận
Đồ án tốt nghiệp "Hệ thống tính cước phí đường sắt Metro sử dụng thẻ RFID" của tác giả Lê Ngọc Minh đã nghiên cứu và chế tạo thành công mô hình thu phí tự động ứng dụng công nghệ RFID cho đường sắt đô thị. Hệ thống kết hợp đồng bộ giữa phần cứng vi điều khiển Arduino Mega 2560, 4 module RC522 mô phỏng 2 nhà ga và phần mềm quản trị C# kết nối cơ sở dữ liệu SQL Server 2008. Kết quả thử nghiệm thực tế chứng minh mô hình đáp ứng chính xác các quy trình nhận dạng thẻ, kiểm soát cổng, tính toán trừ tiền tự động và trích xuất dữ liệu báo cáo, tạo cơ sở kỹ thuật thực tiễn cho việc nghiên cứu và ứng dụng công nghệ thu phí không dừng trong giao thông công cộng.