Bối cảnh và vấn đề nghiên cứu

Tai nạn giao thông do người điều khiển phương tiện sử dụng rượu, bia là một trong những thực trạng nhức nhối đối với trật tự an toàn xã hội và sức khỏe cộng đồng tại Việt Nam. Theo số liệu thống kê từ Ủy ban An toàn giao thông Quốc gia được trích dẫn trong đồ án, năm 2022 cả nước ghi nhận khoảng 20.000 vụ tai nạn giao thông, làm 9.000 người tử vong và 13.000 người bị thương; trong đó nguyên nhân cốt lõi xuất phát từ việc vi phạm nồng độ cồn khi lái xe. Tác động của cồn làm suy giảm phản xạ, gây buồn ngủ, hạn chế tầm nhìn quan sát biển báo, tín hiệu và làm mất kiểm soát hành vi, dẫn đến các tình huống chạy quá tốc độ, lấn làn và gây tai nạn nguy hiểm.

Nhằm chủ động ngăn ngừa tai nạn và tăng cường tính tự giác chấp hành pháp luật giao thông, nhóm tác giả thuộc Trường Đại học Công nghiệp Hà Nội đã thực hiện đề tài "Nghiên cứu và thiết kế hệ thống đo nồng độ cồn" trong khuôn khổ môn học Đồ án Đo lường và Điều khiển.

Mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Nghiên cứu nguyên lý đo nồng độ cồn và khảo sát các loại cảm biến nồng độ cồn chuyên dụng hiện có trên thị trường.
  2. Thiết kế sơ đồ khối và xây dựng mô hình phần cứng gồm khối cảm biến, khối xử lý trung tâm sử dụng vi điều khiển Arduino Uno, khối hiển thị và khối cảnh báo âm thanh - ánh sáng.
  3. Mô phỏng hoạt động hệ thống trên phần mềm Proteus nhằm kiểm chứng thuật toán xử lý trước khi thi công thực tế.
  4. Chế tạo mô hình phần cứng hoàn chỉnh, lập trình giải thuật lấy mẫu trung bình và tiến hành thử nghiệm, đo đạc sai số thực tế trên người sử dụng.

Đối tượng nghiên cứu của đề tài là hàm lượng cồn (ethanol) có trong khí thở của người điều khiển phương tiện giao thông. Phạm vi nghiên cứu giới hạn ở việc thiết kế thiết bị đo nồng độ cồn di động, vận hành độc lập, sử dụng nguồn điện một chiều và xử lý tín hiệu thông qua bộ vi điều khiển họ ATmega328 (Arduino Uno).


Cơ sở lý thuyết và phương pháp nghiên cứu

Cơ sở lý thuyết về cảm biến khí và nồng độ cồn

Hệ thống hoạt động dựa trên cơ chế phản ứng hóa - điện của cảm biến khí bán dẫn màng oxit kim loại ($SnO_2$). Trong môi trường không khí sạch, vật liệu gốm $SnO_2$ phủ trên ống Alumina có độ dẫn điện kém (điện trở $R_0$ cao). Khi cuộn dây nung bên trong cảm biến được cấp nguồn để sấy nóng, lớp gốm trở thành chất bán dẫn. Khi tiếp xúc với hơi cồn ($C_2H_5OH$), các phân tử ethanol bị oxy hóa khử trên bề mặt điện cực Aurum ($Au$), làm giảm đáng kể điện trở cảm biến ($R_s$) và làm tăng điện áp ngõ ra tương tự ($A_0$) tương ứng với nồng độ cồn trong môi trường.

Mối quan hệ giữa nồng độ cồn theo thể tích dung dịch ($mg/l$) và nồng độ thể tích khí ($ppm$) được xác định thông qua khối lượng riêng của rượu $P \ (kg/m^3)$: $$C_{ppm} = \frac{10^3 \cdot C_{mg/l}}{P}$$

Đặc tính phản hồi điện áp của cảm biến MQ-3 với nồng độ cồn tương ứng được tác giả chuẩn hóa như sau:

Điện áp đầu ra (V) Nồng độ cồn (PPM) Tỷ lệ (%)
0,0 0 0
0,5 100 10
1,0 200 20
1,5 300 30
2,0 400 40
2,5 500 50
3,0 600 60
3,5 700 70
4,0 800 80
4,5 900 90
5,0 1000 100

Phương pháp nghiên cứu

Nhóm tác giả tiến hành so sánh hai phương pháp đo nồng độ cồn phổ biến:

  • Phương pháp đo nồng độ cồn trong máu: Cho độ chính xác cao bằng các xét nghiệm hóa sinh trong phòng thí nghiệm, tuy nhiên quy trình phức tạp, đòi hỏi cán bộ y tế lấy mẫu và không đáp ứng được yêu cầu kiểm tra nhanh tại hiện trường.
  • Phương pháp đo nồng độ cồn qua hơi thở: Cho kết quả nhanh (thời gian đo chỉ từ 8 đến 10 giây), thiết bị có tính cơ động cao, không xâm lấn, phù hợp với mục tiêu kiểm tra tại chỗ.

Do đó, phương pháp đo qua hơi thở được lựa chọn để triển khai đồ án. Nhóm đã sử dụng phương pháp mô hình hóa, thiết kế mạch điện tử trên máy tính, mô phỏng thuật toán trên phần mềm Proteus và tiến hành thực nghiệm đối chiếu kết quả nhiều lần sau khi sử dụng rượu.


Thiết kế và triển khai hệ thống

Cấu trúc phần cứng

Hệ thống đo nồng độ cồn được cấu thành từ 5 khối chức năng:

  • Khối nguồn: Cung cấp nguồn điện DC 5V (thông qua cổng USB hoặc pin vuông 9V thông qua chân VIN) cho toàn bộ hệ thống.
  • Khối xử lý trung tâm: Sử dụng vi điều khiển Arduino Uno (chip ATmega328P, tốc độ xung nhịp 16MHz, 14 chân I/O số, 6 chân Analog, tích hợp bộ chuyển đổi ADC 10-bit với 1024 mức phân giải).
  • Khối cảm biến: Sử dụng module MQ-3 hoạt động ở điện áp 5V, dòng tiêu thụ 150mA, dải đo từ 0,05 mg/l đến 10 mg/l, nhiệt độ làm việc từ -10°C đến 70°C.
  • Khối hiển thị: Màn hình LCD 16x2 kết hợp module giao tiếp I2C sử dụng driver điều khiển HD44780 (địa chỉ giao tiếp mặc định 0x27), giúp giảm số chân kết nối vi điều khiển từ 6 chân xuống còn 2 chân ($SDA$ và $SCL$).
  • Khối cảnh báo: Gồm 1 còi chíp (Buzzer 5V, công suất tiêu thụ dòng < 25mA, tần số âm thanh 2300Hz ± 500Hz), 1 LED xanh (báo trạng thái an toàn) và 1 LED đỏ (báo trạng thái vượt ngưỡng).
          +----------------------------------------------------+
          |                     KHỐI NGUỒN                     |
          |               (Nguồn 5V USB / Pin 9V)              |
          +-------------------------+--------------------------+
                                    |
                                    v
+-----------------------+   +-------+-------+   +----------------------+
|     KHỐI CẢM BIẾN     |-->| KHỐI XỬ LÝ    |-->| KHỐI HIỂN THỊ        |
|  (Module Cảm biến     |   | TRUNG TÂM     |   | (LCD 16x2 qua I2C)   |
|   MQ-3 ngõ ra A0)     |   | (Arduino Uno) |   +----------------------+
+-----------------------+   +-------+-------+   | KHỐI CẢNH BÁO        |
                                    |---------->| (LED Đỏ, LED Xanh,   |
                                                |  Còi Buzzer 5V)      |
                                                +----------------------+

Sơ đồ đấu nối chân linh kiện

Các kết nối phần cứng giữa bo mạch Arduino Uno và các khối chức năng được thực hiện như sau:

  • Module MQ-3: Chân $A0 \rightarrow A0$ (Arduino), $VCC \rightarrow 5V$, $GND \rightarrow GND$.
  • Module LCD 16x2 I2C: Chân $SDA \rightarrow A4$ (Arduino), $SCL \rightarrow A5$ (Arduino), $VCC \rightarrow 5V$, $GND \rightarrow GND$.
  • Đèn LED xanh: Chân anode nối với chân số 8 ($D8$) của Arduino qua điện trở hạn dòng 200Ω, cathode nối $GND$.
  • Đèn LED đỏ: Chân anode nối với chân số 9 ($D9$) của Arduino qua điện trở hạn dòng 200Ω, cathode nối $GND$.
  • Còi báo (Buzzer): Cực dương nối với chân số 13 ($D13$) của Arduino, cực âm nối $GND$.

Thuật toán điều khiển

Quy trình vận hành phần mềm điều khiển trên vi điều khiển Arduino tuân theo các bước:

  1. Khởi tạo: Khởi tạo thông số giao tiếp I2C, bật đèn nền màn hình LCD 16x2, thiết lập các chân I/O điều khiển LED và Buzzer.
  2. Thu thập tín hiệu: Đọc tín hiệu điện áp tương tự từ chân $A0$ của cảm biến MQ-3 liên tiếp 20 lần và lấy giá trị trung bình để loại bỏ nhiễu ngẫu nhiên.
  3. Chuyển đổi dữ liệu: Quy đổi giá trị ADC đọc được thành giá trị nồng độ cồn theo đơn vị $mg/l$.
  4. Xử lý và cảnh báo:
    • Nếu giá trị nồng độ cồn đo được nhỏ hơn ngưỡng quy định ($0,8 \ mg/l$): Bật LED xanh (chân 8 lên mức HIGH), tắt LED đỏ và còi, hiển thị chỉ số nồng độ cồn cùng thông báo Normal lên màn hình LCD.
    • Nếu giá trị nồng độ cồn đo được $\ge 0,8 \ mg/l$: Bật LED đỏ (chân 9 lên mức HIGH), kích hoạt còi báo động (chân 13 lên mức HIGH), tắt LED xanh, hiển thị giá trị đo kèm cảnh báo Drunk lên màn hình LCD.
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

#define sensor_pin A0
#define G_led 8
#define R_led 9
#define buzzer 13

float adcValue = 0, val = 0, mgL = 0;

void setup() {
  lcd.backlight();
  pinMode(sensor_pin, INPUT);
  pinMode(R_led, OUTPUT);
  pinMode(G_led, OUTPUT);
  pinMode(buzzer, OUTPUT);
}

Nội dung chính theo từng chương

CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG

Chương 1 giới thiệu tính cấp thiết của đề tài xuất phát từ thực trạng tai nạn giao thông tại Việt Nam do sử dụng rượu, bia. Tác giả phân tích các quy định xử phạt của Bộ Giao thông Vận tải và chiến dịch tuyên truyền an toàn giao thông của Ủy ban An toàn giao thông Quốc gia phối hợp với Tổ chức Y tế Thế giới (WHO). Chương này xác định các yêu cầu kỹ thuật then chốt của hệ thống: độ chính xác và tin cậy cao, thời gian đáp ứng nhanh, kích thước gọn nhẹ và tính cơ động. Đồng thời, tác giả đưa ra phân tích lựa chọn phương pháp đo nồng độ cồn qua khí thở thay vì phương pháp xét nghiệm máu.

CHƯƠNG 2: XÂY DỰNG MÔ HÌNH HỆ THỐNG

Chương 2 tập trung vào việc thiết kế cấu trúc hệ thống và phân tích lựa chọn linh kiện.

Tác giả so sánh chi tiết các cảm biến khí màng oxit bán dẫn trên thị trường (MQ-3 và AL6000) cũng như so sánh các dòng vi điều khiển (PIC 16F887A, 8051 và Arduino Uno):

Tiêu chí so sánh Cảm biến MQ-3 Cảm biến AL6000
Điện áp hoạt động 3.3V - 5V 3.3V
Phạm vi ứng dụng Nghiên cứu và học tập Công nghiệp
Nhiệt độ hoạt động -10°C đến 70°C 10°C đến 40°C
Thang đo nồng độ cồn 0,05 đến 10 mg/l 0 đến 2 mg/l
Độ chính xác 5% 0,05%
Giá thành Giá thấp Giá cao

Qua phân tích, vi điều khiển 8051 bộc lộ nhược điểm dung lượng RAM thấp (128 byte), ít bộ định thời (2 Timer) và thiếu bộ chuyển đổi ADC tích hợp sẵn. PIC 16F887A có đầy đủ ngoại vi nhưng phức tạp hơn về mạch nạp. Arduino Uno được lựa chọn do tích hợp sẵn mạch nạp qua USB, bộ dao động thạch anh 16MHz, thư viện mã nguồn mở phong phú và dễ dàng giao tiếp ngoại vi. Sau khi lựa chọn linh kiện, toàn bộ mạch điện được mô phỏng kiểm chứng trên phần mềm Proteus ở hai trạng thái: không có cồn và nồng độ cồn vượt ngưỡng.

CHƯƠNG 3: CHẾ TẠO VÀ THỬ NGHIỆM HỆ THỐNG

Chương 3 trình bày quá trình gia công kết cấu cơ khí và lắp ráp mạch điện tử. Vỏ hộp thiết bị được chế tạo với kích thước $17,5 \text{ cm} \times 16 \text{ cm} \times 6 \text{ cm}$ bằng vật liệu bìa mỏng nhẹ, có nắp kéo trượt thuận tiện cho việc kiểm tra và bốn góc có gờ lồi chống trơn trượt khi cầm nắm. Toàn bộ dây dẫn được gắn cố định bằng keo nến chống chập cháy. Tác giả nêu rõ quy trình sấy nóng (pre-heating) cảm biến MQ-3 trước khi đo và tiến hành thử nghiệm thực tế 4 lần liên tiếp sau khi người thử nghiệm uống 2 chén rượu, từ đó đánh giá sai số của hệ thống.


Kết quả và đóng góp

Kết quả thử nghiệm thực tế

Hệ thống phần cứng sau khi chế tạo hoạt động ổn định đúng theo giải thuật đã thiết kế. Các kết quả thử nghiệm đo nồng độ cồn sau khi uống 2 chén rượu được ghi nhận:

  • Thiết bị phát hiện chính xác sự hiện diện của ethanol trong khí thở sau thời gian sấy nóng cảm biến.
  • Hệ thống thực hiện việc lấy mẫu liên tiếp 20 lần, tính giá trị trung bình và phân loại kết quả chính xác theo ngưỡng $0,8 \ mg/l$.
  • Khi nồng độ cồn vượt ngưỡng, còi báo kích hoạt đồng thời LED đỏ sáng và màn hình LCD hiển thị trạng thái Drunk. Khi ở dưới ngưỡng hoặc môi trường khí sạch, LED xanh sáng và màn hình hiển thị trạng thái Normal.
  • Qua 4 lần đo thực nghiệm, sai số trung bình của thiết bị được xác định là 3%.

Đóng góp của đề tài

  1. Xây dựng thành công một mô hình thiết bị đo nồng độ cồn cầm tay hoàn chỉnh từ khâu tính toán lý thuyết, mô phỏng trên Proteus đến thi công phần cứng thực tế.
  2. Ứng dụng giải pháp kết nối màn hình LCD qua giao thức I2C và giải thuật lấy mẫu trung bình 20 lần giúp tối ưu hóa chân vi điều khiển và ổn định dữ liệu đọc từ cảm biến tương tự.
  3. Chi phí chế tạo thấp, sử dụng các linh kiện điện tử phổ biến trên thị trường, thích hợp cho việc học tập, nghiên cứu và phát triển các hệ thống đo lường mức độ cơ sở.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Cảm biến MQ-3 có độ chính xác ở mức tương đối (sai số cơ bản của cảm biến khoảng 5%), độ nhạy chịu ảnh hưởng bởi nhiệt độ, độ ẩm môi trường và bắt buộc phải có thời gian nung nóng cảm biến trước khi đo.
  • Kích thước mô hình ($17,5 \text{ cm} \times 16 \text{ cm} \times 6 \text{ cm}$) còn tương đối lớn do sử dụng bo mạch phát triển Arduino tiêu chuẩn và vỏ hộp thủ công bằng bìa giấy, chưa đạt độ bền cơ học cao và chưa tối ưu để bỏ túi mang theo hàng ngày.
  • Thiết bị chỉ hoạt động độc lập tại chỗ, chưa có chức năng lưu trữ lịch sử các lần đo và chưa có giao tiếp truyền dữ liệu ra thiết bị bên ngoài.

Hướng phát triển

  • Tích hợp kết nối thông minh: Bổ sung module truyền thông không dây (Bluetooth/Wi-Fi) để gửi dữ liệu trực tiếp đến điện thoại thông minh (smartphone) của người dùng.
  • Quản lý dữ liệu tập trung: Kết nối đồng bộ dữ liệu thời gian thực lên hệ thống máy chủ (server) quản lý tài xế của các doanh nghiệp vận tải.
  • Tối ưu hóa phần cứng: Thiết kế lại mạch in (PCB) chuyên dụng dạng module tích hợp kích thước nhỏ gọn, sử dụng vỏ hộp nhựa đúc chuyên dụng để dễ dàng lắp đặt trên bảng điều khiển của các phương tiện giao thông thông minh.

Giá trị tham khảo

Tài liệu đồ án là tài liệu tham khảo phù hợp cho:

  • Sinh viên các ngành Kỹ thuật Đo lường, Điều khiển & Tự động hóa, Điện - Điện tử, Kỹ thuật Máy tính: Tham khảo phương pháp tiếp cận thiết kế hệ thống nhúng từ sơ đồ khối, cách lựa chọn và so sánh linh kiện (giữa các dòng vi điều khiển 8051, PIC, AVR/Arduino và các loại cảm biến nồng độ cồn bán dẫn).
  • Người nghiên cứu các hệ thống IoT và an toàn giao thông cơ bản: Tham khảo quy trình mô phỏng vi điều khiển kết nối ngoại vi qua phần mềm Proteus, phương thức giao tiếp I2C với màn hình LCD và cách xử lý tín hiệu analog từ cảm biến khí.

Câu hỏi thường gặp

1. Vì sao nhóm tác giả lựa chọn cảm biến MQ-3 thay vì cảm biến AL6000?
Cảm biến MQ-3 có thang đo nồng độ cồn rộng (0,05 - 10 mg/l), dải nhiệt độ hoạt động lớn (-10°C đến 70°C), giá thành rẻ, mạch giao tiếp đơn giản và sẵn có trên thị trường, rất phù hợp với mục đích học tập và nghiên cứu trong điều kiện phòng thí nghiệm sinh viên, dù độ chính xác của AL6000 cao hơn (0,05% so với 5%).

2. Module chuyển đổi I2C cho màn hình LCD có vai trò gì trong hệ thống?
Module I2C chuyển đổi giao tiếp song song 8-bit hoặc 4-bit của màn hình LCD 16x2 (vốn tiêu tốn ít nhất 6 chân vi điều khiển gồm RS, EN, D4, D5, D6, D7) thành giao thức nối tiếp 2 dây ($SDA$ và $SCL$), giúp tiết kiệm tài nguyên chân I/O trên bo mạch Arduino Uno cho các khối chức năng khác.

3. Ngưỡng nồng độ cồn được thiết lập để kích hoạt cảnh báo vượt mức trong chương trình là bao nhiêu?
Trong thuật toán điều khiển của hệ thống, giá trị ngưỡng nồng độ cồn được thiết lập để phân loại trạng thái cảnh báo là 0,8 mg/l. Nếu kết quả đo $\ge 0,8 \ mg/l$, hệ thống kích hoạt còi báo, bật LED đỏ và xuất thông báo Drunk lên màn hình LCD.

4. Tại sao cần phải thực hiện bước làm nóng (pre-heating) cảm biến MQ-3 trước khi đo?
Cảm biến MQ-3 sử dụng nguyên lý bán dẫn màng oxit $SnO_2$. Để màng oxit trở thành chất bán dẫn và phản ứng oxy hóa khử với ethanol diễn ra chính xác, cuộn dây bên trong cần được cấp nhiệt để bề mặt cảm biến đạt trạng thái nhiệt độ làm việc ổn định, từ đó đảm bảo độ nhạy và giảm thiểu sai số đo lường.

5. Sai số trung bình thực tế của thiết bị đo được ghi nhận qua thực nghiệm là bao nhiêu?
Qua các lần tiến hành đo thực nghiệm sau khi người thử nghiệm sử dụng rượu, sai số trung bình của thiết bị được xác định ở mức 3%.


Kết luận

Đồ án môn học "Nghiên cứu và thiết kế hệ thống đo nồng độ cồn" của nhóm sinh viên Trường Đại học Công nghiệp Hà Nội đã hoàn thành đầy đủ các mục tiêu thiết kế một thiết bị đo lường và cảnh báo nồng độ cồn di động qua khí thở dựa trên nền tảng vi điều khiển Arduino Uno và cảm biến MQ-3. Hệ thống đã được mô phỏng kiểm chứng trên phần mềm Proteus, gia công phần cứng hoàn chỉnh và thử nghiệm thực tế với sai số trung bình đạt 3%. Mặc dù còn hạn chế về độ bền cơ khí và khả năng kết nối mạng, đề tài cung cấp cơ sở kỹ thuật rõ ràng và mở ra tiềm năng phát triển thành module cảnh báo an toàn tích hợp trên các phương tiện giao thông thông minh.