- Thành phần bắt buộc
- Cảm biến Nova PM SDS011
- Mô-đun màn hình OLED 0,96 '
- Sơ đồ mạch cho máy phân tích chất lượng không khí
- Xây dựng mạch trên Perf Board
- Giải thích mã cho Giám sát chất lượng không khí
- Kiểm tra màn hình chất lượng không khí Arduino
Ô nhiễm không khí là một vấn đề lớn ở nhiều thành phố và chỉ số chất lượng không khí đang trở nên tồi tệ hơn mỗi ngày. Theo báo cáo của Tổ chức Y tế Thế giới, nhiều người bị chết sớm do tác động của các hạt độc hại trong không khí hơn là do tai nạn xe hơi. Theo Cơ quan Bảo vệ Môi trường (EPA), không khí trong nhà có thể độc hại gấp 2 đến 5 lần không khí ngoài trời. Vì vậy, ở đây chúng tôi xây dựng một thiết bị giám sát chất lượng không khí bằng cách đo các hạt PM2.5 và PM10 trong không khí.
Trước đây, chúng tôi đã sử dụng cảm biến Khí MQ135 để theo dõi chất lượng không khí và Cảm biến Sharp GP2Y1014AU0F để đo mật độ bụi trong không khí. Lần này, chúng tôi đang sử dụng cảm biến SDS011 với Arduino Nano để xây dựng Bộ phân tích chất lượng không khí. Cảm biến SDS011 có thể tính toán nồng độ của các hạt PM2.5 và PM10 trong không khí. Tại đây, các giá trị PM2.5 và PM 10 theo thời gian thực sẽ được hiển thị trên màn hình OLED.
Thành phần bắt buộc
- Arduino Nano
- Cảm biến Nova PM SDS011
- Mô-đun màn hình OLED 0,96 'SPI
- Dây nhảy
Cảm biến Nova PM SDS011
Cảm biến SDS011 là một cảm biến chất lượng không khí mới được phát triển bởi Nova Fitness. Nó hoạt động dựa trên nguyên tắc tán xạ tia laser và có thể có nồng độ hạt từ 0,3 đến 10μm trong không khí. Cảm biến này bao gồm một quạt nhỏ, van đầu vào không khí, điốt Laser và điốt quang. Không khí đi vào cửa hút gió nơi một nguồn sáng (Laser) chiếu sáng các hạt và ánh sáng tán xạ được chuyển thành tín hiệu bởi một bộ tách sóng quang. Các tín hiệu này sau đó được khuếch đại và xử lý để có được nồng độ hạt PM2.5 và PM10.
Thông số kỹ thuật cảm biến SDS011:
- Đầu ra: PM2.5, PM10
- Phạm vi đo: 0,0-999,9μg / m3
- Điện áp đầu vào: 4.7V đến 5.3V
- Dòng điện tối đa: 100mA
- Ngủ hiện tại: 2mA
- Thời gian phản hồi: 1 giây
- Tần số đầu ra dữ liệu nối tiếp: 1 lần / giây
- Độ phân giải đường kính hạt: ≤ 0,3μm
- Lỗi tương đối: 10%
- Phạm vi nhiệt độ: -20 ~ 50 ° 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:
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 |
Chúng tôi đã đề cập đến một Bài báo đầy đủ về màn hình OLED và các loại của nó tại đây.
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 cho máy phân tích chất lượng không khí
Sơ đồ mạch đo hạt PM2.5 và PM10 bằng Arduino rất đơn giản và được đưa ra dưới đây.
Cả hai mô-đun Cảm biến SDS011 và Màn hình OLED đều được cấp nguồn + 5V và GND. Chân Bộ phát và Chân nhận của SDS011 được kết nối với chân D3 và D4 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 |
Xây dựng mạch trên Perf Board
Tôi cũng đã hàn tất cả các thành phần trên bảng mạch để làm cho nó trông gọn gàng. Nhưng bạn cũng có thể làm chúng trên breadboard. Các bảng mà tôi đã thực hiện ở dưới đây. Trong khi hàn, hãy đảm bảo rằng bạn không phân loại dây. Bảng hoàn thiện mà tôi đã hàn được hiển thị bên dưới:
Giải thích mã cho Giám sát chất lượng không khí
Mã hoàn chỉnh cho dự án này đượ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 SDS011, 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ó thể được cài đặt 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 SDS011 và cài đặt thư viện Cảm biến SDS của R. Zschiegner.
Tương tự, cài đặt thư viện Adafruit GFX và Adafruit SSD1306 của Adafruit.
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
Trong các dòng tiếp theo, xác định hai biến để lưu trữ các giá trị PM10 và PM2.5.
float p10, p25;
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 các biến SCREEN_WIDTH và SCREEN_HEIGHT tùy theo màn hình 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);
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 và cảm biến SDS011 bằng hàm begin () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Bên trong void loop (), đọc các giá trị PM10 và PM2.5 từ cảm biến SDS011 và in các kết quả đọc trên màn hình nối tiếp.
void loop () {error = my_sds.read (& p25, & p10); if (! error) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + String (p10));
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 (2); display.setTextColor (TRẮNG);
Sau đó, trong dòng tiếp theo, xác định vị trí bắt đầu văn bản bằng phương thức setCursor (x, y) . Ở đây chúng tôi sẽ hiển thị các giá trị PM2.5 và PM10 trên màn hình OLED vì vậy dòng đầu tiên bắt đầu tại (0,15) trong khi dòng thứ hai bắt đầu tại tọa độ (0, 40).
display.setCursor (0,15); display.println ("PM2.5"); display.setCursor (67,15); display.println (p25); display.setCursor (0,40); display.println ("PM10"); display.setCursor (67,40); display.println (p10);
Và cuối cùng, 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 màn hình chất lượng không khí Arduino
Khi phần cứng và mã đã sẵn sàng, đã đến lúc kiểm tra thiết bị. Để 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. Như bạn có thể thấy trong hình ảnh bên dưới, nó sẽ hiển thị các giá trị PM2.5 và PM10 trên Màn hình OLED.
Đoạn video và mã làm việc hoàn chỉnh được đưa ra bên dưới. Hy vọng bạn thích hướng dẫn và học được điều gì đó hữu ích. Nếu bạn có bất kỳ câu hỏi 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 cho các truy vấn kỹ thuật khác.