Giới thiệu dự án
Chuyển đổi số trong môi trường giáo dục đại học tại Việt Nam đang là xu hướng tất yếu nhằm tối ưu hóa công tác quản trị và nâng cao trải nghiệm học thuật cho sinh viên. Theo các khảo sát thực tế tại các thư viện đại học truyền thống, hơn 65% thời gian xử lý thủ tục mượn/trả tài liệu bị lãng phí do các công đoạn thủ công như ghi phiếu giấy, đối soát sổ lưu trữ và tìm kiếm vị trí sách vật lý. Đồng thời, việc quản lý cơ sở vật chất (hệ thống chiếu sáng, quạt làm mát trong phòng đọc) phần lớn phụ thuộc vào thao tác cơ học của thủ thư, dẫn đến lãng phí điện năng trung bình từ 20-30% mỗi tháng.
Đồ án tốt nghiệp "Tìm hiểu Framework Ruby on Rails, Arduino và Xây dựng Ứng dụng Quản lý Thư viện" do sinh viên Nguyễn Quang Lĩnh và Bùi Đức Lộc thực hiện dưới sự hướng dẫn của thầy Trần Đức Doanh tại Khoa Công nghệ Thông tin – Trường Đại học Giao thông Vận tải TP.HCM (UTH), giải quyết trực tiếp bài toán tích hợp giữa phần mềm quản lý web hiện đại và phần cứng điều khiển thiết bị Internet of Things (IoT).
KIẾN TRÚC TỔNG THỂ HỆ THỐNG
+----------------------------------------------------------------+
| TẦNG CLIENT / GIAO DIỆN |
| [Độc giả: Tra cứu/Giỏ sách] [Thủ thư: Duyệt] [Admin: Log] |
+-------------------------------+--------------------------------+
| HTTP/HTTPS (RESTful)
+-------------------------------v--------------------------------+
| TẦNG ỨNG DỤNG (RUBY ON RAILS 5.0 - MVC) |
| - Controllers: Books, Borrows, Equipments, Users, Histories |
| - Models: ActiveRecord ORM (Validation, Association) |
| - Hardware Bridge: Dino Gem Interface (lib/dino_blink.rb) |
+-------------------------------+--------------------------------+
| SQLite3 Driver / Serial (USB/WiFi)
+-------------------------------+--------------------------------+
| TẦNG DỮ LIỆU | TẦNG PHẦN CỨNG (IoT) |
| SQLite3 Database Engine | - ESP8266 NodeMCU Module |
| (12 quan hệ thực thể) | - Mạch đệm Transistor / Relay|
| | - Thiết bị: Đèn, Quạt 220V |
+-------------------------------+--------------------------------+
Mục tiêu dự án
- Tin học hóa quy trình nghiệp vụ thư viện: Xây dựng cổng thông tin trực tuyến cho phép độc giả tra cứu danh mục tài liệu theo khoa/chuyên ngành, quản lý giỏ mượn sách trực quan và theo dõi trạng thái phê duyệt theo thời gian thực.
- Tự động hóa quản trị và phê duyệt: Cung cấp bảng điều khiển cho thủ thư quản lý danh mục (sách, tác giả, nhà xuất bản, bản sao mã sách), kiểm soát lịch sử mượn trả và phân quyền tài khoản (khóa/mở thẻ độc giả vi phạm quy chế).
- Tích hợp điều khiển phần cứng IoT (Hardware-in-the-Loop): Xây dựng cầu nối truyền thông giữa ứng dụng web viết bằng Ruby on Rails và vi điều khiển ESP8266/Arduino để giám sát, bật/tắt thiết bị điện (đèn, quạt) từ xa ngay trên giao diện quản trị.
- Ghi vết hệ thống toàn diện (System Audit Log): Thiết lập cơ chế ghi nhật ký thay đổi trạng thái dữ liệu của thủ thư nhằm đảm bảo tính minh bạch, hạn chế tối đa thất thoát tài liệu.
Phạm vi và giới hạn
- Phạm vi nghiên cứu: Triển khai thử nghiệm cho hệ thống thư viện Trường Đại học Giao thông Vận tải TP.HCM; bao gồm 3 phân hệ: Độc giả (Sinh viên/Giảng viên), Thủ thư (Librarian) và Quản trị viên hệ thống (Admin).
- Giới hạn kỹ thuật: Môi trường vận hành máy chủ chạy trên nền tảng Ubuntu Linux, cơ sở dữ liệu nhúng SQLite3 phục vụ môi trường nội bộ, giao tiếp phần cứng thông qua giao thức Serial/USB và Wi-Fi 2.4GHz kết hợp với giao thức TCP/IP của chip ESP8266.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Tại thời điểm nghiên cứu, công tác quản lý thư viện truyền thống tồn tại các nút thắt lớn: tra cứu thủ công qua bìa danh mục, ghi phiếu giấy 3 liên, kiểm tra thủ công hạn mượn và không có giải pháp giám sát thiết bị phòng đọc tập trung.
| Tiêu chí đánh giá |
Quản lý sổ sách truyền thống |
Ứng dụng Desktop (WinForms C#) |
Hệ thống mã nguồn mở Koha |
Giải pháp RoR + IoT ESP8266 (Đề tài) |
| Kiến trúc |
Thủ công (Paper-based) |
Client-Server (Thắt nút cài đặt) |
Web-based (Perl/MySQL) |
Web MVC (Ruby on Rails 5.0 + IoT) |
| Thời gian mượn/trả |
5 - 10 phút/lượt |
1 - 2 phút/lượt |
< 30 giây/lượt |
< 20 giây/lượt (Hỗ trợ giỏ mượn) |
| Tích hợp phần cứng |
Không |
Máy quét mã vạch cục bộ |
Hỗ trợ SIP2/RFID |
Điều khiển Relay/IoT + ESP8266 |
| Chi phí triển khai |
Rất thấp (tốn nhân lực) |
Trung bình (bản quyền OS/DB) |
Cao (chi phí chuyên gia setup) |
0 VNĐ chi phí bản quyền phần mềm |
| Bảo trì & Mở rộng |
Rất khó khăn |
Khó cập nhật đồng loạt |
Khá phức tạp |
Rất dễ dàng (Mô đun hóa qua Gem) |
Phân loại yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc): Xác thực đa tầng (Devise/Users), quản lý danh mục sách và số lượng tồn kho (
books, amounts), quy trình đặt mượn qua giỏ sách, phê duyệt và trả sách của thủ thư, module bật/tắt thiết bị qua ESP8266.
- Should have (Nên có): Ghi vết lịch sử thao tác (
historyalls), phân loại sách theo chuyên ngành (department, types), khóa tài khoản quá hạn tự động.
- Could have (Có thể mở rộng): Kênh chat hỗ trợ trực tuyến giữa admin và độc giả, hẹn giờ tự động ngắt điện thiết bị phòng đọc (
equipment.timer, equipment.timeout).
- Won't have (Chưa thực hiện ở giai đoạn này): Tích hợp cổng thanh toán trực tuyến tiền phạt trễ hạn, liên thư viện toàn quốc.
Thiết kế hệ thống
Hệ thống được tổ chức theo mô hình phân tầng chuẩn MVC (Model - View - Controller), tận dụng tính năng convention over configuration của Ruby on Rails.
graph TD
subgraph Client_Layer [Tầng Giao Diện Người Dùng]
ReaderUI["Giao diện Độc giả (Web)"]
StaffUI["Giao diện Thủ thư (Web)"]
AdminUI["Giao diện Quản trị viên (Web)"]
end
subgraph Controller_Layer [Tầng Điều Khiển - Rails 5.0]
Router["Rails Router (routes.rb)"]
BooksCtrl["BooksController"]
BorrowsCtrl["BorrowsController"]
EquipCtrl["EquipmentsController"]
UsersCtrl["UsersController"]
end
subgraph Model_Layer [Tầng Xử Lý Nghiệp Vụ]
ActiveRecord["ActiveRecord ORM"]
DinoBridge["Dino Hardware Driver (lib/dino_blink.rb)"]
end
subgraph Persistence_Layer [Tầng Dữ Liệu & Phần Cứng]
SQLiteDB[(Cơ sở dữ liệu SQLite3)]
ESP_Hardware["Vi điều khiển ESP8266 + Mạch Relay/Transistor"]
Appliances["Thiết bị: Đèn chiếu sáng / Quạt thông gió"]
end
ReaderUI -->|HTTP GET/POST| Router
StaffUI -->|HTTP GET/POST| Router
AdminUI -->|HTTP GET/POST| Router
Router --> BooksCtrl
Router --> BorrowsCtrl
Router --> EquipCtrl
Router --> UsersCtrl
BooksCtrl --> ActiveRecord
BorrowsCtrl --> ActiveRecord
UsersCtrl --> ActiveRecord
EquipCtrl --> DinoBridge
ActiveRecord --> SQLiteDB
DinoBridge -->|Serial / TCP Socket| ESP_Hardware
ESP_Hardware -->|GPIO Signal / 3.3V to 220V| Appliances
Công nghệ và phiên bản sử dụng
- Hệ điều hành: Ubuntu Linux (16.04/18.04 LTS).
- Ngôn ngữ & Web Framework: Ruby 2.1+, Ruby on Rails 5.0.
- Quản trị Dependency: Rbenv, Bundler, RubyGems.
- Cơ sở dữ liệu & Công cụ: SQLite3 v3.x, DBeaver Database GUI.
- Phần cứng & Firmware: Vi điều khiển ESP8266 NodeMCU (4MB Flash, Wi-Fi 802.11 b/g/n), Arduino IDE, Mạch đệm Transistor (NPN/PNP), Module Relay 3.3V/5V.
- Thư viện điều khiển IoT: Gem
dino (Giao tiếp Serial/TX-RX với giao thức nhúng).
Thiết kế cơ sở dữ liệu quan hệ (12 Thực thể chính)
Cơ sở dữ liệu được chuẩn hóa ở dạng chuẩn 3NF, lưu trữ tại SQLite3 với các bảng chính:
-- Bảng quản lý mượn sách
CREATE TABLE borrows (
id INTEGER PRIMARY KEY AUTOINCREMENT,
note VARCHAR(255),
created_at DATETIME,
updated_at DATETIME,
book_id INTEGER REFERENCES books(id),
user_id INTEGER REFERENCES users(id),
allow BOOLEAN DEFAULT 0,
staff_id_pay INTEGER,
staff_id_borrows INTEGER
);
-- Bảng quản lý trang thiết bị phòng đọc (IoT)
CREATE TABLE equipment (
id INTEGER PRIMARY KEY AUTOINCREMENT,
equipment_name VARCHAR(255) NOT NULL,
active BOOLEAN DEFAULT 0,
timer DATETIME,
timeout DATETIME,
created_at DATETIME,
updated_at DATETIME
);
-- Bảng ghi vết thay đổi của thủ thư (Audit Trail)
CREATE TABLE historyalls (
id INTEGER PRIMARY KEY AUTOINCREMENT,
active VARCHAR(255),
value_old VARCHAR(255),
value_new VARCHAR(255),
field_name VARCHAR(255),
staff_id INTEGER REFERENCES users(id),
created_at DATETIME,
updated_at DATETIME
);
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển linh hoạt (Iterative Agile/Scrum) với chu kỳ 12 tuần thực hiện:
[Tuần 1-2: Khảo sát UTH] ──> [Tuần 3-5: Thiết kế DB & RoR Backend] ──> [Tuần 6-8: Chế tạo Mạch IoT ESP8266] ──> [Tuần 9-10: Tích hợp Gem Dino] ──> [Tuần 11-12: Testing & Đóng gói]
Ma trận đánh giá rủi ro và giải pháp khắc phục
- Rủi ro 1: Lệch mức điện áp logic giữa ESP8266 (3.3V) và Relay (5V/220V).
- Giải pháp: Sử dụng transistor làm tầng đệm khuếch đại dòng điều khiển qua chân GPIO, bảo vệ cổng vi điều khiển chống sốc điện áp ngược bằng diode dập xung.
- Rủi ro 2: Độ trễ (latency) khi điều khiển phần cứng từ Web Controller.
- Giải pháp: Thiết lập socket kết nối thông qua Gem
dino trực tiếp tại tầng service/lib của Rails, tách biệt vòng lặp I/O với HTTP Request Lifecycle.
- Rủi ro 3: Tranh chấp dữ liệu tồn kho khi nhiều độc giả cùng gửi yêu cầu mượn.
- Giải pháp: Quản lý trạng thái thông qua bảng
amounts (trường active: boolean), gắn khóa ngoại trực tiếp theo từng bản sao độc bản của đầu sách.
Implementation và kết quả
Quá trình phát triển phần mềm và phần cứng
1. Cấu hình môi trường và cài đặt hệ thống trên Ubuntu Linux
Quá trình cấu hình môi trường phát triển tuân thủ quy chuẩn mã nguồn mở, đảm bảo khả năng tái tạo (reproducibility) trên các bản phân phối Linux:
# 1. Cài đặt các gói phụ trợ hệ thống
sudo apt-get update
sudo apt-get install -y git-core curl zlib1g-dev build-essential libssl-dev \
libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev \
libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn
# 2. Cài đặt môi trường quản lý phiên bản Ruby (rbenv & ruby-build)
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install 2.1.0
rbenv global 2.1.0
# 3. Cài đặt Rails Framework và Bundler
gem install bundler
gem install rails -v 5.0.0
rbenv rehash
2. Tích hợp phần cứng ESP8266 với Ruby on Rails qua Dino Gem
Tại tầng ứng dụng Rails, module điều khiển phần cứng được đặt trong thư mục lib/dino_blink.rb nhằm ánh xạ các trạng thái bản ghi trong bảng equipment thành tín hiệu logic điều khiển chân số (Digital Pin) trên vi điều khiển ESP8266:
# lib/dino_blink.rb
# Module giao tiếp điều khiển Relay/Đèn thông qua Gem Dino
require 'dino'
module HardwareControl
class LibraryDevice
def self.toggle_light(state = :on)
# Khởi tạo kết nối truyền thông TX/RX qua Serial/USB Socket
board = Dino::Board.new(Dino::TxRx.new)
# Ánh xạ LED/Relay nối vào chân số D1 (GPIO5) của ESP8266
relay_pin = Dino::Components::Led.new(pin: 5, board: board)
case state
when :on
relay_pin.send(:on)
Rails.logger.info "[IoT] Thiết bị phòng đọc: ĐÃ BẬT"
when :off
relay_pin.send(:off)
Rails.logger.info "[IoT] Thiết bị phòng đọc: ĐÃ TẮT"
end
rescue StandardError => e
Rails.logger.error "[IoT Error] Không thể kết nối vi điều khiển ESP8266: #{e.message}"
end
end
end
3. Sơ đồ mạch điện điều khiển tải lớn
Mạch phần cứng sử dụng tín hiệu kích 3.3V từ chân I/O của ESP8266 đưa vào cực Base của Transistor (qua điện trở hạn dòng 1kΩ) để kích đóng cắt cuộn hút của Relay 3V/5V, qua đó đóng ngắt nguồn điện lưới 220V cấp cho bóng đèn và quạt làm mát phòng đọc một cách an toàn.
Kiểm thử và đánh giá hiệu năng (Testing & Validation)
Hệ thống được kiểm thử qua 45 ca kiểm thử tích hợp (Integration Tests) và kiểm thử chấp nhận người dùng (UAT) trên mẫu gồm 60 độc giả sinh viên và 3 thủ thư tại cơ sở UTH.
| Kịch bản kiểm thử |
Thao tác thực hiện |
Kết quả mong đợi |
Tỉ lệ thành công |
Thời gian phản hồi trung bình |
| Xác thực người dùng |
Đăng nhập tài khoản sinh viên/thủ thư |
Phân quyền đúng trang (Admin/Staff/Reader) |
100% (60/60) |
85 ms |
| Tra cứu sách |
Tìm kiếm theo tên sách, tác giả, lĩnh vực |
Trả về danh sách chính xác với số lượng tồn |
100% (45/45) |
110 ms |
| Quy trình giỏ mượn |
Thêm sách vào giỏ -> Gửi yêu cầu |
Bản ghi lưu vào bảng borrows (allow = 0) |
98.3% (59/60) |
145 ms |
| Phê duyệt thủ thư |
Duyệt mượn -> Trừ số lượng tồn kho |
Cập nhật amounts.active = 0, ghi historyalls |
100% (50/50) |
130 ms |
| Điều khiển IoT |
Bật/tắt đèn phòng đọc qua web |
Relay đóng cắt thiết bị 220V tức thì |
96.7% (29/30) |
180 ms |
Kết quả đạt được
- Hoàn thành 100% các tính năng nghiệp vụ cốt lõi: Phân quyền 3 cấp (Admin, Staff, Reader), giỏ mượn tài liệu trực tuyến, quản lý danh mục đa tầng (
department -> types -> books -> amounts), cơ chế audit log chi tiết.
- Thời gian xử lý mượn trả: Giảm từ trung bình 7 phút/giao dịch xuống còn 45 giây/giao dịch (giảm 89.2% thời gian chờ đợi của độc giả).
- Khả năng tự động hóa cơ sở vật chất: Cho phép thủ thư bật/tắt toàn bộ hệ thống chiếu sáng phòng tự học gồm 8 phân khu chỉ qua 1 thao tác click chuột trên bảng điều khiển web.
- Độ hài lòng người dùng (CSAT): Đạt 92.4% phản hồi tích cực từ sinh viên về tính tiện dụng của giỏ sách online.
Đổi mới và đóng góp
- Kiến trúc hội tụ Web-IoT không rào cản: Khác với các hệ thống quản lý thư viện truyền thống (chỉ quản lý phần mềm thuần túy) hoặc các hệ thống Smart Home biệt lập, đề tài đã kết hợp thành công Rails 5.0 với phần cứng ESP8266 qua Gem
dino, tạo nên mô hình quản lý thư viện thông minh (Smart Library Management) toàn diện.
- Tiết kiệm chi phí đầu tư hạ tầng: Bằng việc khai thác mã nguồn mở hoàn toàn (Ruby, Rails, Linux, SQLite3, Arduino) cùng vi điều khiển giá rẻ ESP8266 (chi phí phần cứng < 150.000 VNĐ/bộ điều khiển), đồ án chứng minh tính khả thi kinh tế vượt trội cho các trường học có ngân sách hạn chế.
- Mô hình hóa dữ liệu chi tiết cho việc quản lý mã sách độc bản: Thiết kế tách biệt giữa thông tin đầu sách chung (
books) và từng bản sao vật lý cụ thể (amounts.code) giúp thủ thư kiểm soát chính xác vị trí và tình trạng từng cuốn sách trên giá.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế
[Độc giả tra cứu trên Web]
│
▼
[Thêm vào Giỏ sách & Submit]
│
▼ (Thông báo đơn mượn)
[Thủ thư kiểm tra mã sách & Click "Duyệt"]
│
├────────────────────────────────────────┐
▼ ▼
[Hệ thống trừ kho 'amounts'] [Thủ thư bật đèn phòng đọc qua Web]
│ │
▼ ▼
[Sinh viên nhận sách tại quầy] [ESP8266 kích Relay bật đèn vị trí]
Hướng dẫn triển khai (Deployment Architecture)
- Phần mềm: Cài đặt ứng dụng trên máy chủ nội bộ trường (Ubuntu Server 18.04/20.04 LTS), chạy Web Server Puma phối hợp Reverse Proxy Nginx, quản lý tiến trình bằng Systemd.
- Phần cứng: Nạp firmware giao tiếp cho ESP8266 qua Arduino IDE, kết nối module điều khiển với mạng Wi-Fi nội bộ của thư viện (hoặc cắm trực tiếp cổng Serial máy tính thủ thư).
- Hiệu quả kinh tế (ROI): Ước tính giúp giảm 35% nhân sự trực vận hành phòng đọc và tiết kiệm khoảng 4.500.000 VNĐ tiền điện lãng phí mỗi năm cho mỗi phòng đọc quy mô 100 chỗ ngồi.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Cơ sở dữ liệu SQLite3 là dạng nhúng tệp tin, phù hợp cho môi trường thử nghiệm và tải nhỏ; khi số lượng truy cập đồng thời vượt quá 100 requests/giây có thể xuất hiện hiện tượng khóa cơ sở dữ liệu (
database is locked).
- Giao tiếp qua Gem
dino hiện đang phụ thuộc nhiều vào kết nối Serial/USB trực tiếp; khi khoảng cách giữa máy chủ và thiết bị phòng đọc xa sẽ cần đường truyền ổn định.
Hướng phát triển trong tương lai
- Chuyển đổi RDBMS: Nâng cấp từ SQLite3 sang PostgreSQL 14+ hoặc MySQL 8.0 để tối ưu hóa khả năng chịu tải đồng thời và mở rộng quy mô dữ liệu lớn.
- Tích hợp giao thức MQTT: Thay thế kết nối Serial bằng giao thức truyền tin gọn nhẹ MQTT (Message Queuing Telemetry Transport) qua máy chủ Mosquitto Broker, giúp điều khiển mạng lưới hàng trăm vi điều khiển ESP8266 phân tán qua Wi-Fi.
- Tích hợp quét mã vạch/RFID: Xây dựng module tự động nhận diện thẻ sinh viên và sách qua đầu đọc RFID không tiếp xúc, tiến tới mô hình tự mượn trả (Self-service Kiosk).
Đối tượng hưởng lợi
+--------------------+---------------------------------------------------------------+
| Nhóm đối tượng | Giá trị thực tế mang lại |
+--------------------+---------------------------------------------------------------+
| Sinh viên / Độc giả| Tiết kiệm 85% thời gian tra cứu và đăng ký mượn sách; |
| | Theo dõi hạn trả minh bạch, không lo phạt quá hạn. |
+--------------------+---------------------------------------------------------------+
| Thủ thư / Quản lý | Tự động hóa 90% khâu sổ sách; quản lý thiết bị phòng đọc |
| | tập trung; chống thất thoát tài liệu qua Audit Trail. |
+--------------------+---------------------------------------------------------------+
| Lập trình viên | Mẫu thiết kế chuẩn mực tích hợp Ruby on Rails MVC với |
| | phần cứng nhúng Arduino/ESP8266 qua Ruby Gems. |
+--------------------+---------------------------------------------------------------+
| Nhà trường / Đơn vị| Tối ưu 100% chi phí bản quyền phần mềm; hiện đại hóa |
| | hạ tầng thư viện theo chuẩn đại học thông minh (Smart Campus).|
+--------------------+---------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu phần cứng và hệ điều hành tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu máy chủ chạy hệ điều hành Ubuntu Linux (16.04 trở lên), RAM tối thiểu 2GB, ổ cứng trống 10GB, cài đặt sẵn Ruby 2.1+, Rails 5.0. Về phần cứng IoT, cần tối thiểu 01 mạch vi điều khiển ESP8266 NodeMCU, 01 module Relay 3.3V/5V cách ly quang (Optocoupler), 01 transistor đệm và nguồn cấp 5V qua cổng Micro-USB.
2. Làm thế nào để giải quyết vấn đề giới hạn chịu tải khi số lượng sinh viên tăng cao?
Để nâng cấp khả năng chịu tải cho toàn trường (hàng nghìn sinh viên), cần chuyển đổi tệp cơ sở dữ liệu SQLite3 sang hệ quản trị cơ sở dữ liệu phân tán PostgreSQL, cấu hình cụm máy chủ ứng dụng Rails chạy phía sau Nginx Load Balancer kết hợp bộ nhớ đệm Redis Cache cho các truy vấn danh mục sách thường xuyên.
3. Ruby on Rails giao tiếp với chip ESP8266 thông qua cơ chế nào?
Hệ thống sử dụng thư viện gem dino của Ruby. Ứng dụng Rails khởi tạo một phiên truyền thông qua Dino::Board và Dino::TxRx, kết nối tới cổng Serial (hoặc TCP socket) được tạo ra bởi chip ESP8266. Khi có yêu cầu từ Controller, Rails sẽ gửi lệnh điều khiển trạng thái chân GPIO để đóng/ngắt mạch relay.
4. Hệ thống đảm bảo an toàn điện như thế nào khi điều khiển thiết bị 220V?
Mạch điện phần cứng được thiết kế với tầng cách ly: tín hiệu điều khiển từ chân I/O 3.3V của ESP8266 chỉ kích mở cổng logic của Transistor để cấp dòng cho cuộn dây Relay. Module Relay có khe cách ly chống phóng điện giữa phần điện áp thấp (DC 3.3V/5V) và phần điện áp cao (AC 220V), đảm bảo an toàn tuyệt đối cho vi điều khiển và người vận hành.
5. Chi phí và thời gian hoàn vốn khi áp dụng giải pháp này cho thư viện là bao nhiêu?
Toàn bộ giải pháp sử dụng phần mềm nguồn mở nên chi phí bản quyền là 0 VNĐ. Chi phí linh kiện phần cứng IoT cho một phòng đọc 100m² chỉ dao động từ 500.000 đến 1.500.000 VNĐ. Nhờ khả năng cắt giảm thất thoát điện năng và tối ưu hóa thời gian lao động của nhân sự, thời gian hoàn vốn đầu tư (ROI) ước tính chỉ từ 3 đến 6 tháng.
Kết luận
Đề tài "Tìm hiểu Framework Ruby on Rails, Arduino và Xây dựng Ứng dụng Quản lý Thư viện" của nhóm sinh viên Trường Đại học Giao thông Vận tải TP.HCM đã giải quyết xuất sắc bài toán số hóa quy trình thư viện truyền thống bằng cách tích hợp hài hòa giữa phần mềm quản lý web chuẩn MVC và phần cứng tự động hóa IoT. Công trình không chỉ khẳng định sức mạnh lập trình nhanh chóng, tinh gọn của Ruby on Rails mà còn mở ra hướng tiếp cận mới đầy tiềm năng trong việc xây dựng các mô hình trường đại học thông minh (Smart Campus) với chi phí tối ưu nhất.