- Cảm biến khí dòng MQ
- Chuẩn bị phần cứng của bạn:
- Phương pháp tiếp cận để đo PPM từ cảm biến khí MQ:
- Tính giá trị của Ro ở không khí sạch:
- Đo giá trị của Rs:
- Liên hệ tỷ lệ Rs / Ro với PPM:
- Chương trình tính toán PPM sử dụng cảm biến MQ:
- Hiển thị giá trị PPM trên Phần cứng với Arduino và MQ-137:
Ngay từ thời đại công nghiệp, nhân loại chúng ta đã phát triển nhanh chóng. Với mọi tiến bộ, chúng ta cũng gây ô nhiễm môi trường và cuối cùng làm suy thoái môi trường. Hiện nay sự nóng lên toàn cầu là một mối đe dọa đáng báo động và ngay cả không khí mà chúng ta hít thở cũng đang trở nên nghiêm trọng. Vì vậy việc giám sát chất lượng không khí cũng bắt đầu trở nên quan trọng. Vì vậy, trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng bất kỳ cảm biến khí dòng MQ nào với Arduino và hiển thị đầu ra bằng PPM (phần triệu). PPM cũng được biểu thị bằng miligam trên lít (mg / L). Các cảm biến này thường có sẵn và cũng đáng tin cậy để đo các loại khí khác nhau được hiển thị bên dưới
Cảm biến khí dòng MQ
- Carbon Dioxide (CO2): MG-811
- Carbon Monoxide (CO): MQ-9
- Tổng hợp chất hữu cơ dễ bay hơi (TVOC): CCS811
- Carbon Dioxide tương đương (eCO2): CCS811
- Oxit kim loại (MOX): CCS811
- Amoniac: MQ-137
- Chất lượng không khí: MQ-135
- LPG, rượu, khói: MQ2
Chúng tôi đã sử dụng MQ2 cho cảm biến khói và MQ-135 cho dự án giám sát chất lượng không khí. Ở đây tôi sẽ sử dụng cảm biến MQ-137 của sainsmart để đo amoniac tính bằng ppm. Với cảm biến trong tay, tôi đã xem qua tất cả các hướng dẫn có sẵn và nhận thấy rằng không có tài liệu thích hợp nào về cách đo khí bằng ppm. Hầu hết các hướng dẫn đều chỉ giải quyết các giá trị Analog hoặc giới thiệu một số hằng số không đáng tin cậy để đo tất cả các loại khí. Vì vậy, sau khi mày mò trên mạng trong một thời gian dài, cuối cùng tôi đã tìm ra cách sử dụng các cảm biến khí dòng MQ này để đo ppm bằng Arduino. Tôi đang giải thích mọi thứ từ phía dưới mà không có bất kỳ thư viện nào để bạn có thể sử dụng bài viết này cho bất kỳ cảm biến Gas nào có sẵn bên mình.
Chuẩn bị phần cứng của bạn:
Cảm biến khí MQ có thể được mua dưới dạng mô-đun hoặc chỉ là cảm biến đơn lẻ. Nếu mục đích của bạn là chỉ đo ppm thì tốt nhất bạn nên mua riêng bộ cảm biến vì mô-đun chỉ phù hợp để sử dụng chân Digital. Vì vậy, nếu bạn đã mua mô-đun rồi thì bạn phải thực hiện một vụ hack nhỏ sẽ được thảo luận thêm. Bây giờ, hãy giả sử bạn đã mua cảm biến. Sơ đồ chân và kết nối của cảm biến được hiển thị bên dưới
Như bạn có thể thấy, bạn chỉ cần kết nối một đầu của 'H' với nguồn cung cấp và đầu kia của 'H' với đất. Sau đó kết hợp cả A và cả B. Kết nối một bộ để cung cấp điện áp và bộ kia với chân analog của bạn. Điện trở R L đóng vai trò rất quan trọng giúp cảm biến hoạt động. Vì vậy, hãy ghi chú lại bạn đang sử dụng giá trị nào, giá trị là 47k được khuyến nghị.
Nếu bạn đã mua một mô-đun, thì bạn nên theo dõi dấu vết PCB của mình để tìm giá trị R L của bạn trong bảng. Grauonline đã thực hiện công việc này cho chúng tôi và sơ đồ mạch của bảng cảm biến khí MQ được đưa ra dưới đây.
Như bạn có thể thấy điện trở R L (R2) được kết nối giữa chân Aout và đất, vì vậy nếu bạn đang có một mô-đun, giá trị của R L có thể được đo bằng cách sử dụng đồng hồ vạn năng ở chế độ điện trở qua chân Vout và chân Vcc của mô-đun. Trong cảm biến khí sainsmart MQ-137 của tôi , giá trị RL là 1K và được đặt ở đây như thể hiện trong hình dưới đây.
Tuy nhiên, những tuyên bố trang web mà nó cung cấp một nồi biến của R L đó là không đúng sự thật như bạn có thể thấy rõ trong sơ đồ mạch điện, nồi được sử dụng để thiết lập các biến điện áp cho op-amp và không có gì để làm với R L. Vì vậy, chúng tôi phải hàn thủ công điện trở SMD (1K) được hiển thị ở trên và chúng tôi phải sử dụng điện trở của riêng chúng tôi qua chân Ground và Vout sẽ hoạt động như RL. Giá trị tốt nhất cho RL sẽ là 47K theo đề xuất của biểu dữ liệu, do đó chúng ta sẽ sử dụng như vậy.
Phương pháp tiếp cận để đo PPM từ cảm biến khí MQ:
Bây giờ chúng ta đã biết giá trị của R L, chúng ta hãy tiến hành cách đo ppm thực sự từ các cảm biến này. Giống như tất cả các cảm biến, nơi bắt đầu là biểu dữ liệu của nó. Biểu dữ liệu MQ-137 được cung cấp ở đây nhưng hãy đảm bảo rằng bạn tìm được biểu dữ liệu chính xác cho cảm biến của mình. Bên trong biểu dữ liệu, chúng ta chỉ cần một biểu đồ sẽ được vẽ dựa trên (Rs / Ro) VS PPM, đây là biểu đồ mà chúng ta cần cho các tính toán của mình. Vì vậy, hãy gab nó và giữ nó ở một nơi nào đó thuận tiện. Cái cho cảm biến của tôi được hiển thị bên dưới.
Hóa ra cảm biến MQ137 có thể đo NH3, C2H6O và thậm chí cả CO. Nhưng ở đây tôi chỉ quan tâm đến các giá trị của NH3. Tuy nhiên, bạn có thể sử dụng phương pháp tương tự để tính ppm cho bất kỳ cảm biến nào bạn thích. Biểu đồ này là nguồn duy nhất để chúng ta tìm giá trị của ppm và nếu bằng cách nào đó chúng ta có thể tính toán tỷ lệ Rs / Ro (trục X), chúng ta có thể sử dụng biểu đồ này để tìm giá trị của ppm (trục Y). Để tìm giá trị của Rs / Ro chúng ta cần tìm giá trị của Rs và giá trị của Ro. Trong đó Rs là điện trở của cảm biến ở nồng độ khí và Ro là điện trở của cảm biến ở trạng thái sạch.
Yess… đây là kế hoạch, hãy xem làm thế nào chúng ta có thể thoát khỏi điều này….
Tính giá trị của Ro ở không khí sạch:
Lưu ý rằng trong biểu đồ giá trị của Rs / Ro là không đổi đối với không khí (đường dày màu xanh lam) vì vậy chúng ta có thể sử dụng điều này để có lợi cho mình và nói rằng khi cảm biến làm việc trong không khí trong lành, giá trị của Rs / Ro sẽ là 3,6. Tham khảo hình phía dưới
Rs / Ro = 3,6
Từ biểu dữ liệu, chúng ta cũng có được một công thức để tính giá trị của Rs. Công thức được hiển thị bên dưới. Nếu bạn muốn biết công thức này được suy ra như thế nào, bạn có thể đọc qua hệ thống jay con, tôi cũng muốn ghi công họ đã giúp tôi phân loại điều này.
Trong công thức này, giá trị của Vc là điện áp cung cấp của chúng tôi (+ 5V) và giá trị của R L là giá trị mà chúng tôi đã tính toán (47K cho cảm biến của tôi). Nếu chúng ta viết một chương trình Arduino nhỏ, chúng ta cũng có thể tìm giá trị của V RL và cuối cùng tính giá trị của Rs. Tôi đã đưa ra một Chương trình Arduino bên dưới đọc điện áp tương tự (V RL) của cảm biến và tính toán giá trị Rs bằng công thức này và cuối cùng hiển thị nó trong màn hình nối tiếp. Chương trình được giải thích rõ ràng qua phần bình luận vì vậy tôi bỏ qua phần giải thích của nó ở đây để giữ cho bài viết này ngắn gọn.
/ * * Chương trình đo giá trị R0 để biết RL ở điều kiện không khí trong lành * Chương trình của: B.Aswinth Raj * Trang web: www.circuitdigest.com * Ngày: 28-12-2017 * // Chương trình này hoạt động tốt nhất tại phòng có không khí trong lành với nhiệt độ ổn định Nhiệt độ: 20 ℃, Độ ẩm: 65%, nồng độ O2 21% và khi giá trị của Rl là 47K #define RL 47 // Giá trị của điện trở RL là 47K void setup () // Chỉ chạy một lần {Serial.begin (9600); // Khởi tạo COM nối tiếp để hiển thị giá trị} void loop () {float analog_value; float VRL; phao Rs; phao Ro; for (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // Đọc đầu ra tương tự của cảm biến trong 200 lần {analog_value = analog_value + analogRead (A0); // thêm các giá trị cho 200} analog_value = analog_value / 500.0; // Lấy trung bình VRL = analog_value * (5.0 / 1023.0);// Chuyển đổi giá trị tương tự thành điện áp // RS = ((Vc / VRL) -1) * RL là công thức chúng ta thu được từ biểu dữ liệu Rs = ((5.0 / VRL) -1) * RL; // RS / RO là 3,6 khi chúng ta thu được từ đồ thị của biểu dữ liệu Ro = Rs / 3,6; Serial.print ("Ro at moi khong khí ="); Serial.println (Ro); // Hiển thị độ trễ Ro đã tính (1000); // độ trễ 1 giây}
Lưu ý: Giá trị của Ro sẽ thay đổi, hãy để cảm biến gia nhiệt trước ít nhất trong 10 giờ và sau đó sử dụng giá trị của Ro.
Tôi kết luận giá trị của Ro là 30 KΩ cho cảm biến của tôi (khi R L là 47kΩ). Của bạn có thể hơi khác một chút.
Đo giá trị của Rs:
Bây giờ chúng ta đã biết giá trị của Ro, chúng ta có thể dễ dàng tính giá trị của Rs bằng cách sử dụng hai công thức trên. Lưu ý rằng giá trị Rs đã được tính toán trước đó là cho điều kiện không khí trong lành và nó sẽ không giống nhau khi có amoniac trong không khí. Tính toán giá trị của Rs không phải là một vấn đề lớn mà chúng ta có thể trực tiếp quan tâm trong chương trình cuối cùng.
Liên hệ tỷ lệ Rs / Ro với PPM:
Bây giờ chúng ta đã biết cách đo giá trị của Rs và Ro, chúng ta sẽ có thể tìm ra tỷ số của nó (Rs / Ro). Sau đó, chúng ta có thể sử dụng biểu đồ (hiển thị bên dưới) để liên hệ với giá trị tương ứng của PPM.
Mặc dù đường NH3 (màu lục lam) có vẻ là tuyến tính nhưng thực tế không phải là tuyến tính. Sự xuất hiện là do quy mô được phân chia không đồng nhất cho sự xuất hiện. Vì vậy mối liên hệ giữa Rs / Ro và PPM thực sự là logarit có thể được biểu diễn bằng phương trình dưới đây.
log (y) = m * log (x) + b trong đó, y = tỷ lệ (Rs / Ro) x = PPM m = hệ số góc của đường b = giao điểm
Để tìm giá trị của m và b ta phải xét hai điểm (x1, y1) và (x2, y2) trên đường sức của ta. Ở đây chúng tôi đang làm việc với amoniac vì vậy hai điểm tôi đã xem xét là (40,1) và (100,0,8) như trong hình trên (được đánh dấu là màu đỏ) với dấu màu đỏ.
m = / m = log (0,8 / 1) / log (100/40) m = -0,243
Tương tự cho (b), hãy lấy giá trị trung điểm (x, y) từ biểu đồ là (70,0,75) như trong hình trên (được đánh dấu màu xanh lam)
b = log (y) - m * log (x) b = log (0,75) - (-0,243) * log (70) b = 0,323
Đó là bây giờ chúng ta đã tính toán giá trị của m và b, chúng ta có thể cân bằng giá trị của (Rs / Ro) với PPM bằng cách sử dụng công thức dưới đây
PPM = 10 ^ {/ m}
Chương trình tính toán PPM sử dụng cảm biến MQ:
Các chương trình hoàn chỉnh để PPM tính toán sử dụng một cảm biến MQ được đưa ra dưới đây. Vài dòng quan trọng được giải thích dưới đây.
Trước khi tiếp tục chương trình, chúng ta cần cung cấp các giá trị Lực cản tải (RL), Độ dốc (m), Hệ số chặn (b) và giá trị Điện trở trong không khí trong lành (Ro). Quy trình để có được tất cả các giá trị này đã được giải thích nên bây giờ chúng ta hãy nạp chúng vào
#define RL 47 // Giá trị của điện trở RL là 47K #define m -0.263 // Nhập Độ dốc đã tính toán #define b 0.42 // Nhập điểm chặn được tính toán #define Ro 30 // Nhập giá trị Ro tìm được
Sau đó, đọc điện áp rơi trên cảm biến (VRL) và chuyển đổi nó thành Điện áp (0V đến 5V) vì việc đọc tương tự sẽ chỉ trả về các giá trị từ 0 đến 1024.
VRL = analogRead (MQ_sensor) * (5.0 / 1023.0); // Đo điện áp rơi và chuyển đổi thành 0-5V
Bây giờ, giá trị của VRL được tính toán, bạn có thể sử dụng công thức được thảo luận ở trên để tính giá trị của Rs và cả tỷ lệ (Rs / Ro)
tỷ lệ = Rs / Ro; // tìm tỷ lệ Rs / Ro
Cuối cùng, chúng tôi có thể tính toán PPM với công thức logarit của chúng tôi và hiển thị nó trên màn hình nối tiếp của chúng tôi như được hiển thị bên dưới
đôi ppm = pow (10, ((log10 (tỷ lệ) -b) / m)); // sử dụng công thức để tính ppm Serial.print (ppm); // Hiển thị ppm
Hiển thị giá trị PPM trên Phần cứng với Arduino và MQ-137:
Tất cả lý thuyết là đủ, chúng ta hãy xây dựng một mạch đơn giản với cảm biến và màn hình LCD để hiển thị giá trị của khí trong PPM. Ở đây cảm biến tôi đang sử dụng là MQ137 đo amoniac, sơ đồ mạch cho thiết lập của tôi được hiển thị bên dưới.
Kết nối cảm biến và màn hình LCD của bạn như được hiển thị trong Sơ đồ mạch và tải lên mã được cung cấp ở cuối chương trình. Bạn phải sửa đổi giá trị Ro như đã giải thích ở trên. Đồng thời thực hiện các thay đổi trong giá trị tham số nếu bạn đang sử dụng bất kỳ điện trở nào khác làm RL ngoài 4,7K.
Để thiết bị của bạn được cung cấp điện ít nhất 2 giờ trước khi bạn thực hiện bất kỳ kết quả đọc nào, (khuyến nghị 48 giờ để có giá trị chính xác hơn). Thời gian này được gọi là thời gian làm nóng, trong đó cảm biến nóng lên. Sau đó, bạn sẽ có thể thấy giá trị của PPM và điện áp hiển thị trên màn hình LCD của bạn như hình dưới đây.
Bây giờ để đảm bảo các giá trị có thực sự liên quan đến sự hiện diện của amoniac hay không, hãy đặt thiết bị này bên trong một bình chứa kín và gửi khí amoniac vào bên trong nó để kiểm tra xem các giá trị có tăng lên không. Tôi không có đồng hồ đo PPM thích hợp để hiệu chỉnh nó và sẽ thật tuyệt nếu ai đó có đồng hồ đo có thể kiểm tra thiết lập này và cho tôi biết.
Bạn có thể xem video dưới đây để kiểm tra xem các kết quả đọc khác nhau như thế nào dựa trên sự hiện diện của amoniac. Hy vọng bạn đã hiểu khái niệm và thích học nó. Nếu bạn có bất kỳ nghi ngờ nào, hãy để lại chúng trong phần bình luận hoặc để được trợ giúp chi tiết hơn, hãy sử dụng diễn đàn tại đây.