- Thành phần bắt buộc
- Mô-đun màn hình OLED 0,96 '
- Chuẩn bị cảm biến MQ-135
- Sơ đồ mạch đến giao diện MQ135 với Arduino
- Tính toán R
- Mã đo CO2 bằng cảm biến Arduino MQ135
- Kiểm tra giao diện của cảm biến MQ-135
Mức CO2 trong khí quyển của trái đất đang tăng lên từng ngày. Lượng carbon dioxide trung bình trên toàn cầu trong khí quyển năm 2019 là 409,8 phần triệu và vào tháng 10-2020 là 411,29. Điôxít cacbon là khí nhà kính quan trọng và chịu trách nhiệm cho khoảng 3/4 lượng khí thải. Vì vậy, việc giám sát mức CO2 cũng bắt đầu trở nên quan trọng.
Trong dự án trước đây của chúng tôi, chúng tôi đã sử dụng cảm biến CO2 hồng ngoại trọng lực để đo nồng độ CO2 trong không khí. Trong dự án này, chúng tôi sẽ sử dụng cảm biến MQ-135 với Arduino để đo nồng độ CO2. Các giá trị nồng độ CO2 đo được sẽ được hiển thị trên mô-đun OLED và cuối cùng chúng tôi cũng sẽ so sánh các chỉ số cảm biến Arduino MQ-135 với các chỉ số cảm biến CO2 hồng ngoại. Ngoài CO2, chúng tôi cũng đã đo nồng độ của khí LPG, khói và khí Amoniac bằng Arduino.
Thành phần bắt buộc
- Arduino Nano
- Cảm biến MQ-135
- Dây nhảy
- Mô-đun màn hình OLED 0,96 'SPI
- Breadboard
- Điện trở 22KΩ
Mô-đun màn hình OLED 0,96 '
OLED (Organic Light-Emitting Diodes) là công nghệ tự phát sáng, được cấu tạo bằng cách đặt một loạt các màng mỏng hữu cơ giữa hai dây dẫn. Khi có dòng điện chạy qua các tấm phim này sẽ tạo ra ánh sáng sáng. OLED đang sử dụng công nghệ tương tự như TV, nhưng có ít điểm ảnh hơn so với hầu hết các TV của chúng ta.
Đối với dự án này, chúng tôi đang sử dụng màn hình OLED đơn sắc 7 chân SSD1306 0,96 ”. Nó có thể hoạt động trên ba Giao thức truyền thông khác nhau: chế độ SPI 3 Wire, SPI bốn dây và chế độ I2C. Bạn cũng có thể tìm hiểu thêm về những điều cơ bản của màn hình OLED và các loại của nó bằng cách đọc bài viết được liên kết. Các chân và chức năng của nó được giải thích trong bảng dưới đây:
Tên ghim |
Vài cái tên khác |
Sự miêu tả |
Gnd |
Đất |
Chân nối đất của mô-đun |
Vdd |
Vcc, 5V |
Pin nguồn (3-5V có thể chịu được) |
SCK |
D0, SCL, CLK |
Hoạt động như kim đồng hồ. Được sử dụng cho cả I2C và SPI |
SDA |
D1, MOSI |
Chân dữ liệu của mô-đun. Được sử dụng cho cả IIC và SPI |
RES |
RST, ĐẶT LẠI |
Đặt lại mô-đun (hữu ích trong SPI) |
DC |
A0 |
Pin Lệnh dữ liệu. Được sử dụng cho giao thức SPI |
CS |
Chọn chip |
Hữu ích khi nhiều mô-đun được sử dụng theo giao thức SPI |
Thông số kỹ thuật OLED:
- IC trình điều khiển OLED: SSD1306
- Độ phân giải: 128 x 64
- Góc nhìn:> 160 °
- Điện áp đầu vào: 3.3V ~ 6V
- Màu pixel: Xanh lam
- Nhiệt độ làm việc: -30 ° C ~ 70 ° C
Chuẩn bị cảm biến MQ-135
Cảm biến khí MQ-135 là một cảm biến chất lượng không khí để phát hiện nhiều loại khí, bao gồm NH3, NOx, rượu, benzen, khói và CO2. Cảm biến MQ-135 có thể được mua dưới dạng mô-đun hoặc chỉ là cảm biến đơn lẻ. Trong dự án này, chúng tôi đang sử dụng mô-đun cảm biến MQ-135 để đo nồng độ CO2 trong PPM. Sơ đồ mạch cho bảng MQ-135 được đưa ra dưới đây:
Điện trở tải RL đóng vai trò rất quan trọng giúp cảm biến hoạt động. Điện trở này thay đổi giá trị điện trở của nó theo nồng độ của khí. Theo biểu dữ liệu MQ-135, giá trị điện trở tải có thể nằm trong khoảng từ 10KΩ đến 47KΩ. Bảng dữ liệu khuyến nghị bạn nên hiệu chỉnh máy dò nồng độ 100ppm NH3 hoặc 50ppm Alcohol trong không khí và sử dụng giá trị điện trở tải (RL) khoảng 20 KΩ. Nhưng nếu bạn theo dõi dấu vết PCB của mình để tìm giá trị RL của bạn trong bảng, bạn có thể thấy điện trở tải 1KΩ (102).
Vì vậy, để đo các giá trị nồng độ CO2 thích hợp, bạn phải thay thế điện trở 1KΩ bằng một điện trở 22KΩ.
Sơ đồ mạch đến giao diện MQ135 với Arduino
Sơ đồ hoàn chỉnh để kết nối Cảm biến khí MQ-135 với Arduino được đưa ra dưới đây:
Mạch rất đơn giản vì chúng tôi chỉ kết nối Bộ cảm biến MQ-135 và mô-đun Màn hình OLED với Arduino Nano. Cảm biến khí MQ-135 và mô-đun Màn hình OLED đều được cấp nguồn + 5V và GND. Chân Analog Out của cảm biến MQ-135 được kết nối với chân A0 của Arduino Nano. Vì mô-đun Màn hình OLED sử dụng giao tiếp SPI, chúng tôi đã thiết lập giao tiếp SPI giữa mô-đun OLED và Arduino Nano. Các kết nối được hiển thị trong bảng dưới đây:
S. không |
Pin mô-đun OLED |
Pin Arduino |
1 |
GND |
Đất |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Sau khi kết nối phần cứng theo sơ đồ mạch, thiết lập cảm biến Arduino MQ135 sẽ trông giống như sau:
Tính toán R
Bây giờ chúng ta đã biết giá trị của RL, hãy tiến hành cách tính giá trị R o trong không khí sạch. Ở đây chúng ta sẽ sử dụng MQ135.h để đo nồng độ CO2 trong không khí. Vì vậy, trước tiên hãy tải xuống Thư viện MQ-135, sau đó làm nóng bộ cảm biến trong 24 giờ trước khi đọc các giá trị R o. Sau quá trình làm nóng sơ bộ, sử dụng đoạn mã dưới đây để đọc các giá trị R o:
#include "MQ135.h" void setup () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Gắn cảm biến vào chân A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); chậm trễ (1000); }
Bây giờ khi bạn đã có các giá trị R o, hãy đi tới Tài liệu> Arduino> thư viện> thư mục MQ135-master và mở tệp MQ135.h và thay đổi giá trị RLOAD & RZERO.
/// Điện trở tải trên bo mạch #define RLOAD 22.0 /// Điện trở hiệu chuẩn ở mức CO2 trong khí quyển #define RZERO 5804.99
Bây giờ cuộn xuống và thay thế giá trị ATMOCO2 bằng CO2 trong khí quyển hiện tại là 411,29
/// Mức CO2 trong khí quyển cho mục đích hiệu chuẩn # xác định ATMOCO2 397.13
Mã đo CO2 bằng cảm biến Arduino MQ135
Mã hoàn chỉnh để giao tiếp Cảm biến MQ-135 với Arduino được đưa ra ở cuối tài liệu. Ở đây chúng tôi đang giải thích một số phần quan trọng của mã MQ135 Arduino.
Mã này sử dụng Adafruit_GFX , và Adafruit_SSD1306 , và MQ135.h thư viện. Các thư viện này có thể được tải xuống từ Trình quản lý Thư viện trong Arduino IDE và cài đặt nó từ đó. Để làm điều đó, hãy mở Arduino IDE và đi tới Sketch <Bao gồm Thư viện <Quản lý Thư viện . Bây giờ hãy tìm kiếm Adafruit GFX và cài đặt thư viện Adafruit GFX của Adafruit.
Tương tự, cài đặt các thư viện Adafruit SSD1306 của Adafruit. Thư viện MQ135 có thể được tải xuống từ đây.
Sau khi cài đặt các thư viện vào Arduino IDE, hãy bắt đầu mã bằng cách bao gồm các tệp thư viện cần thiết.
#include "MQ135.h" #include
Sau đó, xác định chiều rộng và chiều cao của OLED. Trong dự án này, chúng tôi đang sử dụng màn hình OLED 128 × 64 SPI. Bạn có thể thay đổi SCREEN_WIDTH , và SCREEN_HEIGHT biến theo hiển thị của bạn.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Sau đó, xác định các chân giao tiếp SPI nơi Màn hình OLED được kết nối.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Sau đó, tạo một phiên bản hiển thị Adafruit với chiều rộng và chiều cao được xác định trước đó bằng giao thức truyền thông SPI.
Màn hình Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Sau đó, xác định chân Arduino nơi kết nối cảm biến MQ-135.
int sensorIn = A0;
Bây giờ bên trong hàm setup () , hãy khởi tạo Serial Monitor ở tốc độ truyền 9600 cho mục đích gỡ lỗi. Ngoài ra, Khởi tạo màn hình OLED bằng hàm begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Bên trong hàm loop () , trước tiên hãy đọc các giá trị tín hiệu tại chân Analog của Arduino bằng cách gọi hàm analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Sau đó, trong dòng tiếp theo, gọi gasSensor.getPPM () để tính toán các giá trị PPM. Các giá trị PPM được tính bằng cách sử dụng điện trở tải, R 0 và đọc từ chân tương tự.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Sau đó, đặt kích thước văn bản và màu văn bản bằng cách sử dụng setTextSize () và setTextColor () .
display.setTextSize (1); display.setTextColor (TRẮNG);
Sau đó, trong dòng tiếp theo, xác định vị trí mà văn bản bắt đầu bằng cách sử dụng phương thức setCursor (x, y) . Và in Giá trị CO2 trên Màn hình OLED bằng hàm display.println () .
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
Và cuối cùng, hãy gọi phương thức display () để hiển thị văn bản trên Màn hình OLED.
display.display (); display.clearDisplay ();
Kiểm tra giao diện của cảm biến MQ-135
Khi phần cứng và mã đã sẵn sàng, đã đến lúc kiểm tra cảm biến. Để làm được điều đó, hãy kết nối Arduino với máy tính xách tay, chọn Bo mạch và Cổng và nhấn nút tải lên. Sau đó, mở màn hình nối tiếp của bạn và đợi một lúc (quá trình làm nóng trước), sau đó bạn sẽ thấy dữ liệu cuối cùng. Giá trị sẽ được hiển thị trên màn hình OLED như hình dưới đây:
Đây là cách một cảm biến MQ-135 có thể được sử dụng để đo CO2 chính xác trong không khí. Mã Arduino cảm biến chất lượng không khí MQ135 hoàn chỉnh và video hoạt động được cung cấp bên dưới. Nếu bạn có bất kỳ nghi ngờ, hãy để lại chúng trong phần bình luận.