ESP8266 Cảm biến rượu MQ-3
Hướng dẫn này giải thích cách giao tiếp ESP8266 với cảm biến MQ3 để đo nồng độ etanol và hơi cồn trong môi trường. Cảm biến MQ3 được chứng minh là hữu ích trong các thiết bị kiểm tra hơi thở, các thiết bị báo động phát hiện nồng độ cồn và các ứng dụng giám sát chất lượng không khí.
Trong hướng dẫn này, chúng ta sẽ đề cập đến:
- Kết nối mô-đun cảm biến cồn MQ-3 với ESP8266
- Lập trình ESP8266 để đọc dữ liệu nồng độ cồn

Phần cứng cần chuẩn bị
| 1 | × | ESP8266 NodeMCU ESP-12E | ||
| 1 | × | Recommended: ESP8266 NodeMCU ESP-12E (Uno-form) | ||
| 1 | × | USB Cable Type-A to Type-C (for USB-A PC) | ||
| 1 | × | USB Cable Type-C to Type-C (for USB-C PC) | ||
| 1 | × | MQ3 Alcohol Sensor | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP8266 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP8266 Type-C |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về cảm biến rượu MQ-3
Được thiết kế như một cảm biến điện trở hóa học MOS (Metal Oxide Semiconductor), MQ3 nhận diện cồn thông qua sự thay đổi điện trở trong vật liệu hoạt tính của nó. Cảm biến này chuyên phát hiện hơi etanol với độ nhạy đáng tin cậy trên toàn bộ phạm vi đo của nó.
Thành phần cảm biến của nó có một lớp oxit thiếc (SnO2) trên nền gốm oxit nhôm. Việc nung nóng kích hoạt SnO2 để phản ứng với các phân tử cồn bay trong không khí. Một lưới thép không gỉ bao quanh phần tử, che chắn nó trong khi cho phép khí tiếp cận vùng phát hiện.
Các triển khai phổ biến bao gồm xây dựng máy đo nồng độ cồn bằng hơi thở tự chế, hệ thống phát hiện sự suy giảm khả năng, thiết bị cảnh báo hơi cồn và đo nồng độ cồn trong không khí.
Thông số kỹ thuật
- Điện áp hoạt động: 5 V DC
- Điện trở tải: 200 kΩ
- Điện trở gia nhiệt: 33 Ω ± 5%
- Công suất tiêu thụ khi làm nóng: < 800 mW
- Điện trở cảm biến: 1 MΩ – 8 MΩ
- Phạm vi phát hiện: 25 – 500 ppm (phần triệu)
- Thời gian gia nhiệt trước: 24-48 giờ cho lần sử dụng đầu tiên
ppm là gì? ppm (phần trên triệu) là thước đo cho tỷ lệ nồng độ. Với 500 ppm, bạn có 500 phân tử cồn trên mỗi 1.000.000 phân tử khí tổng cộng, phần còn lại là 999.500 phân tử khí trong khí quyển.
Bố trí chân
Trên mô-đun cảm biến MQ3 có bốn chân:
- Chân VCC: Cấp nguồn +5V tại đây.
- Chân GND: Kết nối với đất (0V).
- Chân DO: Đầu ra kỹ thuật số ở mức LOW khi nồng độ cồn vượt ngưỡng, HIGH khi dưới ngưỡng. Điều chỉnh ngưỡng bằng biến trở tích hợp trên bo mạch.
- Chân AO: Điện áp đầu ra analog tỷ lệ với nồng độ cồn. Cồn càng cao thì điện áp đầu ra càng cao.

Hai đèn LED chỉ báo cung cấp phản hồi trực quan:
- PWR-LED: Chiếu sáng khi module được cấp nguồn.
- DO-LED: Phản hồi đầu ra số — đèn sáng khi phát hiện, tắt khi không phát hiện.
Cách hoạt động
Cơ chế cảm biến của MQ-3 phụ thuộc vào sự biến thiên điện trở của oxit thiếc (SnO2):
Trong không khí sạch: SnO2 được nung nóng liên kết các phân tử oxy với bề mặt của nó, bắt giữ các electron trong một vùng suy giảm. Những electron bị bắt giữ này thiết lập một rào cản dẫn điện, tạo ra điện trở cao.
Khi có cồn: Các phân tử cồn tương tác với oxy trên bề mặt, giải phóng các electron bị bắt giữ vào mạng SnO2. Các electron được giải phóng làm tăng khả năng dẫn điện—lượng cồn càng nhiều thì điện trở càng giảm.
Có hai chế độ đầu ra được cung cấp:
Đầu ra kỹ thuật số (chân DO):
- Biến trở trên bo mạch thiết lập ngưỡng.
- Nồng độ cồn vượt ngưỡng đưa DO về mức LOW và kích hoạt LED.
- Nồng độ cồn dưới ngưỡng giữ DO ở mức HIGH và LED tắt.
Đầu ra tương tự (chân AO):
- Điện áp đầu ra theo nồng độ cồn.
- Nồng độ cồn tăng ⇒ điện áp tăng.
- Nồng độ cồn giảm ⇒ điện áp giảm.
- Lưu ý: Biến trở chỉ ảnh hưởng đến ngưỡng kỹ thuật số, không ảnh hưởng đến điện áp analog.
Khởi động và Hiệu chuẩn
Yêu cầu làm nóng trước
Việc vận hành đúng của cảm biến MQ3 đòi hỏi được làm nóng đầy đủ:
- Triển khai lần đầu hoặc lưu trữ kéo dài (trên 30 ngày): Duy trì làm nóng liên tục trong 24-48 giờ để ổn định cảm biến cho các phép đo chính xác.
- Sử dụng thông thường: Việc làm nóng nhanh 5-10 phút là đủ. Các giá trị đo ban đầu có thể cao, nhưng sẽ nhanh chóng trở lại bình thường.
Để làm ấm cảm biến, hãy kết nối VCC với 5V và GND với đất—sử dụng nguồn cấp điện hoặc các chân nguồn của ESP8266.
Tìm Giá Trị Ngưỡng Của Bạn
Cảm biến được làm nóng như MQ3 có thể bị lệch trong quá trình lưu trữ. Đối với các ứng dụng đo nồng độ cồn bằng hơi thở, thiết lập ngưỡng thông qua thủ tục hiệu chuẩn này:
- Ghi nhận đường cơ sở trong không khí sạch: Vận hành cảm biến trong không khí sạch và ghi lại đầu ra analog (thông thường 100-150).
- Giới thiệu hơi cồn: Đặt isopropyl alcohol hoặc nước rửa tay gần cảm biến (không tiếp xúc) để hơi có thể tới nó. Ghi chú các giá trị đọc tăng lên (thường 400-900 tùy thuộc mật độ hơi).
- Thiết lập phạm vi phát hiện: Từ các phép đo của bạn, xác định các vùng ngưỡng:
- Không có cồn: Dưới baseline + 20 (ví dụ: < 120)
- Cồn ở mức vừa phải: Ở phạm vi giữa (ví dụ: 120-400)
- Cồn ở mức cao: Vượt quá phạm vi giữa (ví dụ: > 400)
Quan trọng: Các cảm biến riêng lẻ và môi trường có thể cho ra các giá trị khác nhau. Hãy luôn hiệu chuẩn phần cứng cụ thể của bạn trước khi triển khai.
Thiết lập ngưỡng số
Điều chỉnh ngưỡng kích hoạt của chân DO bằng biến trở trên mô-đun:
- Đưa cảm biến tiếp xúc với hơi cồn.
- Vặn điện trở xoay theo chiều kim đồng hồ cho đến khi LED bật.
- Xoay từ từ ngược chiều kim đồng hồ cho đến khi LED vừa tắt.
- Ngưỡng đã được thiết lập.
Sơ đồ đấu dây
Vì module cảm biến cồn MQ-3 có hai đầu ra, bạn có thể chọn sử dụng một trong hai hoặc cả hai, tùy thuộc vào nhu cầu của bạn.

This image is created using Fritzing. Click to enlarge image
Xem thêm Sơ đồ chân ESP8266 và Cách cấp nguồn cho ESP8266.
Mã ESP8266 - Đọc đầu ra kỹ thuật số
Hướng dẫn từng bước
Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:
- Xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
- Nối các linh kiện như được thể hiện trong sơ đồ.
- Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP8266 phù hợp, ví dụ (NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
- Sao chép mã ở trên và mở bằng Arduino IDE.
- Nhấn nút Upload trên Arduino IDE để tải mã lên ESP8266.
- Đặt nguồn hơi cồn gần cảm biến MQ3 (nước rửa tay sát khuẩn hoặc cồn tẩy trên bông cotton sẽ cho kết quả tốt).
- Kiểm tra kết quả trên Serial Monitor.
Hãy lưu ý rằng nếu bạn nhận thấy trạng thái đèn LED luôn sáng hoặc tắt, bạn có thể điều chỉnh biến trở để tinh chỉnh độ nhạy của cảm biến.
Mã ESP8266 - Đọc đầu ra tín hiệu tương tự
Hướng dẫn từng bước
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấn nút Tải lên trên Arduino IDE để tải mã lên ESP8266
- Xông hơi cồn vào cảm biến (hơi cồn từ nước sát khuẩn tay hoặc hơi cồn isopropanol)
- Kiểm tra kết quả trên Serial Monitor.
Từ các giá trị đọc được từ DO hoặc AO, bạn có thể xây dựng logic dựa trên ngưỡng để kích hoạt cảnh báo, điều khiển các chỉ báo cảnh báo, hoặc ghi lại dữ liệu cho chức năng của máy đo nồng độ cồn trong hơi thở.
Mã ESP8266 - Máy đo nồng độ cồn bằng hơi thở với phát hiện ngưỡng
Ví dụ này cho thấy việc sử dụng đầu ra tương tự với ngưỡng được hiệu chuẩn để ước lượng mức độ say rượu.
Hướng dẫn từng bước
- Quan trọng: Đầu tiên hiệu chuẩn cảm biến của bạn bằng ví dụ đo giá trị analog để xác định ngưỡng phù hợp với môi trường của bạn.
- Cập nhật các hằng số SOBER_THRESHOLD và DRUNK_THRESHOLD trong mã với các giá trị đã được hiệu chuẩn của bạn.
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấn nút Upload trên Arduino IDE để tải mã lên ESP8266
- Thử nghiệm với hơi cồn (cồn isopropyl hoặc hơi dung dịch sát khuẩn tay)
- Kiểm tra kết quả trên Serial Monitor.
Tuyên bố từ chối trách nhiệm: Dự án này chỉ nhằm mục đích giáo dục. Tuyệt đối không dựa vào thiết bị này cho các chức năng đo nồng độ cồn hợp pháp hoặc các đánh giá an toàn khi lái xe.
※ Lưu ý:
Hướng dẫn này sử dụng hàm analogRead() để lấy dữ liệu từ một ADC (Analog-to-Digital Converter) được kết nối với một cảm biến hoặc một bộ phận khác. ADC của ESP8266 hoạt động tốt cho những dự án mà bạn không cần độ chính xác quá cao. Tuy nhiên, hãy nhớ rằng ADC của ESP8266 không quá chính xác cho các phép đo chi tiết. Nếu dự án của bạn đòi hỏi độ chính xác rất cao, bạn có thể muốn sử dụng một ADC riêng như ADS1115 với ESP8266, hoặc dùng Arduino như Arduino Uno R4 WiFi, vốn có một ADC đáng tin cậy hơn.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.