- Thành phần bắt buộc
- Cảm biến CO2 hồng ngoại trọng lực
- Mô-đun màn hình OLED 0,96 '
- Sơ đồ mạch
- Mã Arduino để đo nồng độ CO2
- Kiểm tra giao diện của cảm biến CO2 hồng ngoại trọng lực
Nồng độ carbon dioxide trong không khí ngày càng tăng đã trở thành một vấn đề nghiêm trọng hiện nay. Theo báo cáo của NOAA, nồng độ CO2 trong ozone đã đạt tới 0,0385 phần trăm (385 ppm) và đây là mức cao nhất trong 2,1 triệu năm. Điều này có nghĩa là trong một triệu hạt không khí, có 385 hạt khí cacbonic. Mức độ gia tăng CO2 này đã ảnh hưởng xấu đến môi trường và khiến chúng ta phải đối mặt với tình trạng như biến đổi khí hậu và ấm lên toàn cầu. Có rất nhiều thiết bị đo chất lượng không khí được lắp đặt trên các con đường để cho biết mức CO2, nhưng chúng tôi cũng có thể chế tạo một thiết bị đo CO2 tự làm và có thể lắp đặt nó trong khu vực của chúng tôi.
Trong hướng dẫn này, chúng ta sẽ giao diện Cảm biến CO2 hồng ngoại trọng lực với Arduino để đo nồng độ CO2 trong PPM. Cảm biến CO2 hồng ngoại trọng lực là một cảm biến CO2 tương tự có độ chính xác cao. Nó đo hàm lượng CO2 trong khoảng 0 đến 5000 ppm. Bạn cũng có thể kiểm tra các dự án trước đây của chúng tôi trong đó chúng tôi đã sử dụng Cảm biến khí MQ135, Cảm biến Sharp GP2Y1014AU0F và Cảm biến Nova PM SDS011 để xây dựng một màn hình chất lượng không khí.
Thành phần bắt buộc
- Arduino Nano
- Cảm biến CO2 hồng ngoại trọng lực V1.1
- Dây nhảy
- Mô-đun màn hình OLED 0,96 'SPI
- Breadboard
Cảm biến CO2 hồng ngoại trọng lực
Cảm biến CO2 hồng ngoại trọng lực V1.1 là cảm biến CO2 hồng ngoại tương tự độ chính xác cao mới nhất được phát hành bởi DFRobot. Cảm biến này dựa trên công nghệ hồng ngoại không phân tán (NDIR) và có độ chọn lọc tốt và không phụ thuộc vào ôxy. Nó tích hợp bù nhiệt độ và hỗ trợ đầu ra DAC. Phạm vi đo hiệu quả của cảm biến này là từ 0 đến 5000ppm với độ chính xác ± 50ppm + 3%. Cảm biến CO2 hồng ngoại này có thể được sử dụng trong HVAC, giám sát chất lượng không khí trong nhà, quy trình công nghiệp và giám sát bảo vệ an ninh, giám sát quy trình sản xuất nông nghiệp và chăn nuôi.
Sơ đồ chân cảm biến CO2 hồng ngoại :
Như đã đề cập trước đó, Cảm biến CO2 hồng ngoại đi kèm với đầu nối 3 chân. Hình và bảng dưới đây cho thấy các chỉ định chân cho Cảm biến CO2 hồng ngoại:
Số pin |
Tên ghim |
Sự miêu tả |
---|---|---|
1 |
Tín hiệu |
Đầu ra tương tự (0,4 ~ 2V) |
2 |
VCC |
VCC (4,5 ~ 5,5V) |
3 |
GND |
GND |
Đặc điểm và kỹ thuật cảm biến CO2 hồng ngoại :
- Phát hiện khí: Carbon Dioxide (CO2)
- Điện áp hoạt động: 4,5 ~ 5,5V DC
- Thời gian làm nóng trước: 3 phút
- Thời gian phản hồi: 120 giây
- Nhiệt độ hoạt động: 0 ~ 50 ℃
- Độ ẩm hoạt động: 0 ~ 95% RH (không ngưng tụ)
- Chống thấm nước và chống ăn mòn
- Vòng đời cao
- Chống nhiễu hơi nước
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. Các chân và chức năng của nó được giải thích trong bảng dưới đây:
Chúng tôi đã trình bày chi tiết về OLED và các loại của nó trong bài viết trước.
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
Tìm hiểu thêm về OLED và giao diện của nó với các bộ vi điều khiển khác nhau bằng cách nhấp vào liên kết.
Sơ đồ mạch
Sơ đồ mạch để giao tiếp Cảm biến CO2 hồng ngoại tương tự trọng lực cho Arduino được đưa ra dưới đây:
Mạch rất đơn giản vì chúng tôi chỉ kết nối Cảm biến CO2 hồng ngoại trọng lực và mô-đun Màn hình OLED với Arduino Nano. Cảm biến CO2 hồng ngoại và mô-đun Màn hình OLED đều được cấp nguồn + 5V và GND. Chân Tín hiệu (Analog Out) của cảm biến CO2 đượ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, nó sẽ trông giống như dưới đây:
Mã Arduino để đo nồng độ CO2
Mã hoàn chỉnh cho Cảm biến CO2 hồng ngoại tương tự trọng lực cho dự án 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ã.
Mã này sử dụng Adafruit_GFX , và Adafruit_SSD1306 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. Cảm biến CO2 hồng ngoại không yêu cầu bất kỳ thư viện nào vì chúng tôi đang đọc các giá trị điện áp trực tiếp từ chân analog của Arduino.
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. Cảm biến bụi không yêu cầu bất kỳ thư viện nào vì quá trình đọc được lấy trực tiếp từ chân analog của Arduino.
#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 CO2.
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); analogReference (DEFAULT);
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 () . Sau đó, chuyển các giá trị tín hiệu tương tự này sang giá trị điện áp.
void loop () {int sensorValue = analogRead (sensorIn); điện áp nổi = sensorValue * (5000/1024.0);
Sau đó, so sánh các giá trị điện áp. Nếu điện áp là 0 V, điều đó có nghĩa là cảm biến đã xảy ra sự cố nào đó. Nếu điện áp lớn hơn 0 V nhưng nhỏ hơn 400 V thì có nghĩa là cảm biến vẫn đang trong quá trình làm nóng sơ bộ.
if (điện áp == 0) {Serial.println ("Lỗi"); } else if (điện áp <400) {Serial.println ("làm nóng trước"); }
Nếu điện áp bằng hoặc lớn hơn 400 V, thì chuyển nó thành các giá trị nồng độ CO2.
else {inttage_diference = áp-400; nồng độ phao = điện áp_dự kiến * 50.0 / 16.0;
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.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (nồng độ);
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 CO2 hồng ngoại trọng lực
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:
Lưu ý: Trước khi sử dụng cảm biến, hãy để cảm biến nóng lên trong khoảng 24 giờ để nhận được các giá trị PPM chính xác. Khi tôi cấp nguồn cho cảm biến lần đầu tiên, nồng độ CO2 đầu ra là 1500 PPM đến 1700PPM và sau quá trình tăng nhiệt 24 giờ, nồng độ CO2 đầu ra giảm xuống 450 PPM đến 500 PPM, đó là giá trị PPM chính xác. Vì vậy cần phải hiệu chỉnh cảm biến trước khi sử dụng để đo nồng độ CO2.
Đây là cách một cảm biến CO2 hồng ngoại có thể được sử dụng để đo nồng độ CO2 chính xác trong không khí. Mã 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ờ nào, hãy để lại chúng trong phần bình luận hoặc sử dụng diễn đàn của chúng tôi để được trợ giúp kỹ thuật.