ESP32 Cảm Biến Khí Gas

Hướng dẫn này sẽ dẫn bạn qua quá trình sử dụng ESP32 và cảm biến khí gas MQ2 để đánh giá chất lượng không khí bằng cách kiểm tra nồng độ của các loại khí gas dễ cháy khác nhau như LPG, khói, cồn, propane, hydrogen, methane và carbon monoxide. Chúng ta sẽ đề cập chi tiết các khía cạnh sau:

Phần Cứng Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×Cáp USB Type-C
1×Cảm Biến Khí Gas MQ2
1×breadboard
1×Dây Nối Jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Cảm Biến Khí Gas MQ2

Cảm biến khí gas MQ2 có thể phát hiện sự hiện diện của các loại khí gas khác nhau như LPG, khói, cồn, propane, hydrogen, methane và carbon monoxide trong môi trường xung quanh. Nó cung cấp hai tùy chọn đầu ra: một chân đầu ra digital và một chân đầu ra analog.

Điều quan trọng cần lưu ý là cảm biến khí gas MQ2 không cung cấp thông tin cụ thể về từng loại khí gas riêng lẻ. Thay vào đó, nó thông báo cho chúng ta về sự kết hợp của các khí gas hoặc sự hiện diện của khí gas nói chung.

Bằng cách sử dụng cảm biến MQ2, chúng ta có thể xác định xem có rò rỉ khí gas hay chất lượng không khí có kém không. Thông tin này cho phép chúng ta thực hiện các hành động thích hợp để đảm bảo an toàn, chẳng hạn như kích hoạt báo động hoặc bật hệ thống thông gió.

Sơ Đồ Chân

Cảm biến khí gas MQ2 bao gồm bốn chân với các chức năng cụ thể:

  • Chân VCC: Chân này cần được kết nối với VCC (5V).
  • Chân GND: Chân này cần được kết nối với GND (0V).
  • Chân DO: Đây là chân đầu ra digital cho biết sự hiện diện của khí gas dễ cháy. Khi phát hiện nồng độ khí gas dễ cháy, chân này xuất tín hiệu LOW; ngược lại, nó xuất tín hiệu HIGH. Giá trị ngưỡng để phát hiện nồng độ khí gas có thể được điều chỉnh bằng potentiometer tích hợp.
  • Chân AO: Đây là chân đầu ra analog tạo ra điện áp analog tỷ lệ với nồng độ khí gas. Khi nồng độ khí gas tăng, điện áp đầu ra cũng tăng, và khi nồng độ khí gas giảm, điện áp đầu ra giảm tương ứng.
mq2 gas sensor sơ đồ chân

Ngoài ra, cảm biến khí gas MQ2 được trang bị hai đèn LED báo hiệu:

  • Đèn báo PWR-LED: LED này hoạt động như một chỉ báo nguồn, cho biết cảm biến đang nhận được nguồn điện. Nó sáng khi cảm biến được cấp nguồn và hoạt động.
  • Đèn báo DO-LED: LED này được liên kết với chân DO của cảm biến. Nó cung cấp biểu hiện trực quan về nồng độ khí gas dựa trên giá trị nhận được từ chân DO. Khi có nồng độ khí gas và chân DO được đặt thành LOW, đèn báo DO-LED sáng lên. Ngược lại, nếu không phát hiện nồng độ khí gas và chân DO được đặt thành HIGH, đèn báo DO-LED tắt.

Cách Hoạt Động

Về chân DO:

  • Module MQ2 có potentiometer tích hợp cho phép bạn điều chỉnh độ nhạy hoặc ngưỡng cho nồng độ khí gas.
  • Nếu nồng độ khí gas trong môi trường xung quanh vượt quá ngưỡng đã đặt, chân đầu ra của cảm biến được đặt thành LOW, và DO-LED sáng.
  • Ngược lại, nếu nồng độ khí gas thấp hơn ngưỡng đã đặt, chân đầu ra của cảm biến được đặt thành HIGH, và DO-LED tắt.

Về chân AO:

  • Khi nồng độ khí gas tăng, điện áp trên chân AO cũng tăng tỷ lệ thuận.
  • Ngược lại, khi nồng độ khí gas giảm, điện áp trên chân AO giảm tương ứng.

Điều quan trọng cần lưu ý là việc điều chỉnh potentiometer không ảnh hưởng đến giá trị trên chân AO.

Quá Trình Khởi Động Cảm Biến MQ2

Cảm biến khí gas MQ2 cần một khoảng thời gian khởi động trước khi có thể được sử dụng hiệu quả. Dưới đây là các chi tiết:

  • Khi sử dụng cảm biến lần đầu tiên sau một thời gian dài bảo quản (khoảng một tháng hoặc lâu hơn), cần phải khởi động nó trong 24-48 giờ. Thời gian khởi động kéo dài này đảm bảo hoạt động chính xác.
  • Nếu cảm biến đã được sử dụng gần đây, thời gian khởi động sẽ ngắn hơn đáng kể. Thông thường chỉ mất 5-10 phút để cảm biến khởi động hoàn toàn. Trong thời gian khởi động này, cảm biến ban đầu có thể cung cấp các số đọc cao, nhưng các số đọc này sẽ giảm dần cho đến khi cảm biến ổn định.

Để khởi động cảm biến MQ2, chỉ cần kết nối các chân VCCGND của nó với nguồn cấp điện hoặc kết nối chúng với các chân VCCGND của ESP32. Để cảm biến ở trạng thái này trong thời gian khởi động cần thiết.

Sơ Đồ Kết Nối

Vì module cảm biến khí gas MQ2 có hai đầu ra, bạn có thể chọn sử dụng một hoặc cả hai, tùy thuộc vào nhu cầu của bạn.

  • Cách kết nối ESP32 và cảm biến khí gas sử dụng breadboard (cấp nguồn qua cáp USB)
ESP32 mq2 gas sensor sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

  • Cách kết nối ESP32 và cảm biến khí gas sử dụng breadboard (cấp nguồn qua chân Vin)
ESP32 mq2 gas sensor wiring instruction

This image is created using Fritzing. Click to enlarge image

how to connect ESP32 and gas sensor
how to wire ESP32 and gas sensor

Mã ESP32 - Đọc giá trị từ chân DO

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-gas-sensor */ #define DO_PIN 16 // ESP32's pin GPIO16 connected to DO pin of the MQ2 sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); Serial.println("Warming up the MQ2 sensor"); delay(20000); // wait for the MQ2 to warm up } void loop() { int gasState = digitalRead(DO_PIN); if (gasState == HIGH) Serial.println("The gas is NOT present"); else Serial.println("The gas is present"); }

Các Bước Nhanh

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Sao chép đoạn mã trên và mở bằng Arduino IDE
  • Click nút Upload trên Arduino IDE để tải mã lên ESP32
  • Đặt cảm biến khí gas MQ2 gần khói/khí gas mà bạn muốn phát hiện
  • Xem kết quả trên Serial Monitor.
COM6
Send
The gas is NOT present The gas is NOT present The gas is NOT present The gas is NOT present The gas is NOT present The gas is present The gas is present The gas is present The gas is present The gas is present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Xin lưu ý rằng nếu bạn thấy trạng thái LED luôn sáng hoặc tắt, bạn có thể điều chỉnh potentiometer để tinh chỉnh độ nhạy của cảm biến.

Mã ESP32 - Đọc giá trị từ chân AO

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-gas-sensor */ #define AO_PIN 36 // ESP32's pin GPIO36 connected to AO pin of the MQ2 sensor void setup() { // initialize serial communication Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); Serial.println("Warming up the MQ2 sensor"); delay(20000); // wait for the MQ2 to warm up } void loop() { int gasValue = analogRead(AO_PIN); Serial.print("MQ2 sensor AO value: "); Serial.println(gasValue); }

Các Bước Nhanh

  • Sao chép đoạn mã trên và mở bằng Arduino IDE
  • Click nút Upload trên Arduino IDE để tải mã lên ESP32
  • Đặt cảm biến khí gas MQ2 gần khói/khí gas mà bạn muốn phát hiện
  • Xem kết quả trên Serial Monitor.
COM6
Send
MQ2 sensor AO value: 135 MQ2 sensor AO value: 136 MQ2 sensor AO value: 136 MQ2 sensor AO value: 573 MQ2 sensor AO value: 674 MQ2 sensor AO value: 1938 MQ2 sensor AO value: 1954 MQ2 sensor AO value: 2000 MQ2 sensor AO value: 3002 MQ2 sensor AO value: 4014 MQ2 sensor AO value: 4017
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Từ các giá trị đọc được từ DO hoặc AO, bạn có thể suy đoán chất lượng không khí dựa trên tiêu chuẩn của mình, hoặc kích hoạt báo động hoặc bật hệ thống thông gió.

※ Lưu ý:

Hướng dẫn này sử dụng hàm analogRead() để đọc giá trị từ ADC (Analog-to-Digital Converter) kết nối với cảm biến khí gas. ADC của ESP32 phù hợp cho các dự án KHÔNG cần độ chính xác cao. Tuy nhiên, đối với các dự án cần đo lường chính xác, xin lưu ý:

  • ADC của ESP32 không hoàn toàn chính xác và có thể cần hiệu chuẩn để có kết quả đúng. Mỗi bo mạch ESP32 có thể hơi khác nhau, vì vậy bạn cần hiệu chuẩn ADC cho từng bo mạch riêng lẻ.
  • Hiệu chuẩn có thể khó khăn, đặc biệt đối với người mới bắt đầu, và có thể không luôn cho kết quả chính xác như mong muốn.

Đối với các dự án cần độ chính xác cao, hãy cân nhắc sử dụng ADC bên ngoài (ví dụ ADS1115) với ESP32 hoặc sử dụng Arduino, có ADC đáng tin cậy hơn. Nếu bạn vẫn muốn hiệu chuẩn ADC của ESP32, hãy tham khảo ESP32 ADC Calibration Driver

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.