Arduino空气质量监测仪
- 介绍
- 组件耗材
- 项目描述
- 电路图
- 代码
- 附件
介绍
DIY Arduino空气质量监测器可以测量周围的空气质量,还可以显示您房间的温度和湿度。
组件耗材
元件名 | 数量 |
---|---|
空气质量传感器MQ135 | 1 |
Arduino Nano | 1 |
DHT11 | 1 |
0.96IIC OLED显示屏 | 1 |
项目描述
这是一款低成本的空气质量监测仪,可以使用MQ135空气质量传感器监测房间的空气质量。 它还使用 DHT11 测量室温和湿度,并在 OLED 显示屏上显示数据。 这是一个有趣的小项目,也很有帮助。这是一款低成本的空气质量监测仪,可以使用MQ135空气质量传感器监测房间的空气质量。它还使用 DHT11 测量室温和湿度,并在 OLED 显示屏上显示数据。这是一个有趣的小项目,也很有帮助。
布线
连接:
Arduino D2 到 DHT11 输出 Arduino A0 至 MQ135 Ao Arduino A5 至 Oled SCL Arduino A4 to Oled SDA
编码
在编码部分,您需要安装一些库来运行代码
Adafruit_SSD1306.h Adafruit_GFX.h DHT.h
代码中有两个主要功能 和 . sendSensor() air_sensor()
在 功能,它从空气质量传感器读取模拟值 并定义相应的质量 .和 sendSensor() 函数测量温度和湿度数据 库并将其显示在 OLED 上。 air_sensor() gasLevel = analogRead(sensor); gasLevel dht
在 您可能需要庆祝的功能 对传感器的价值。对于该电源,mq135传感器为5V,并在使用前将其放在清洁的环境中至少24小时。这种传感器(燃烧)是必要的,因为传感器被污染了。因此,燃烧有助于它自我清洁并提供更准确的结果。 air_sensor() gasLevel
然后将传感器连接到您的电路并带着它走到外面,并根据您的位置调整正确的值。
电路图
代码
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include<Adafruit_SSD1306.h>
#include <Fonts/FreeSans9pt7b.h>
#include <Fonts/FreeMonoOblique9pt7b.h>
#include<DHT.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#defineSCREEN_HEIGHT 64 // OLED display height, in pixels#define OLED_RESET 4// Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH,SCREEN_HEIGHT, &Wire, OLED_RESET);#define sensor A0
#define DHTPIN2 // Digital pin 2
#define DHTTYPE DHT11 // DHT 11int gasLevel= 0; //int variable for gas level
String quality ="";
DHT dht(DHTPIN,DHTTYPE);void sendSensor()
{float h = dht.readHumidity();float t = dht.readTemperature();if (isnan(h) || isnan(t)) {Serial.println("Failedto read from DHT sensor!");return;}display.setTextColor(WHITE);display.setTextSize(1);display.setFont();display.setCursor(0, 43);display.println("Temp :");display.setCursor(80, 43);display.println(t);display.setCursor(114, 43);display.println("C");display.setCursor(0,56);display.println("RH :");display.setCursor(80, 56);display.println(h);display.setCursor(114, 56);display.println("%");
}void air_sensor()
{gasLevel = analogRead(sensor);if(gasLevel<181){quality = "GOOD!";}else if (gasLevel >181 && gasLevel<225){quality =" Poor!";}else if (gasLevel >225 && gasLevel<300){quality= "Very bad!";}else if (gasLevel >300 && gasLevel<350){quality= "ur dead!";}else{quality = " Toxic";
}display.setTextColor(WHITE);display.setTextSize(1); display.setCursor(1,5);display.setFont();display.println("Air Quality:");display.setTextSize(1);display.setCursor(20,23);display.setFont(&FreeMonoOblique9pt7b);display.println(quality);}void setup() {Serial.begin(9600);pinMode(sensor,INPUT);dht.begin();if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)) { // Address0x3D for 128x64Serial.println(F("SSD1306 allocation failed"));
}display.clearDisplay();display.setTextColor(WHITE);display.setTextSize(2);display.setCursor(50, 0);display.println("Air");display.setTextSize(1);display.setCursor(23, 20);display.println("Qulaity monitor");display.display();delay(1200);display.clearDisplay();display.setTextSize(2);display.setCursor(20, 20);display.println("BY Abid");display.display();delay(1000);display.clearDisplay();
}void loop() {
display.clearDisplay();
air_sensor();
sendSensor();
display.display();}
附件
电路,代码文件评论区显示