Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino-gebaseerde binnenluchtkwaliteit- en comfortsensor kit

Onderdelen en benodigdheden

OnderdeelAantal
Arduino Nano R31
DHT11 Temperatuur- & vochtigheidssensor (3 pennen)1
Luchtkwaliteitssensor (MQ135)1
0,96" I2C OLED-display1

Benodigde tools en machines

  • Solderbout (standaard)
  • 3D-printer (optioneel)

Apps en online diensten

  • Arduino IDE

Over dit project

Vaak voel je je 's ochtends moe en mattig, zelfs na een goede nachtrust. Dit kan komen door slechte luchtkwaliteit in een gesloten slaapkamer.

Dit project is een goedkope luchtkwaliteitsmonitor die de luchtkwaliteit meet met een MQ135-sensor, temperatuur en vochtigheid met een DHT11-sensor, en de gegevens weergeeft op een OLED-display. Een leuke en nuttige knutselopdracht.

Schema

Verbind:

  • Arduino D2 → DHT11 OUT
  • Arduino A0 → MQ135 AO
  • Arduino A5 → OLED SCL
  • Arduino A4 → OLED SDA

Programmeren

Installeer eerst de volgende bibliotheken via de Library Manager:

  • Adafruit_SSD1306.h
  • Adafruit_GFX.h
  • DHT.h

De code bevat twee hoofdfuncties: sendSensor() en air_sensor().

  • air_sensor() leest de analoge waarde van de MQ135 (gasLevel = analogRead(sensor)) en klassificeert de luchtkwaliteit op basis van drempelwaarden.
  • sendSensor() meet temperatuur en vochtigheid met de DHT-bibliotheek en toont dit op het display.

Kalibratie van de MQ135: Voordat je de sensor in gebruik neemt, moet je hem "branden": voed hem met 5V en laat hem minimaal 24 uur in een schone omgeving lopen. De sensor komt vervuild uit de fabriek; het branden reinigt het gevoelige element en verbetert de nauwkeurig. Daarna kun je de drempelwaarden in de code aanpassen aan je lokale omstandigheden.

Code

Arduino Luchtkwaliteitsmonitor

#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
#define SCREEN_HEIGHT 64
#define OLED_RESET 4

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#define sensor A0
#define DHTPIN 2
#define DHTTYPE DHT11

int gasLevel = 0;
String quality = "";
DHT dht(DHTPIN, DHTTYPE);

void sendSensor() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to 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)) {
    Serial.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("Quality 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();
}

Behuizing (optioneel)

Er is een 3D-printbare behuizing ontworpen, maar je kunt ook eenvoudig een doosje maken van karton of ander materiaal.

Schema

Arduino-gebaseerde binnenluchtkwaliteit- en comfortsensor kit

Productieproces

  1. Bouw Een Raspberry Pi Luchtkwaliteit & Weerstation Met InfluxDB & Grafana
  2. Luchtkwaliteit meten met OpenSensors: Een Arduino & Python Handleiding
  3. DIY Luchtkwaliteitmonitor: Kosteneffectieve EPA-compliante detector
  4. Helium-gebaseerde Zon-Powered Luchtsensor: Ontwerp & Implementatiegids
  5. Slimme stadsmonitoring van luchtkwaliteit met LoRa
  6. Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
  7. Slim Binnenklimaat- & Afvalmonitoringssysteem met Raspberry Pi en Arduino
  8. Bosch Sensortec onthult AI-ingeschakelde BME688 luchtkwaliteitssensor om virusoverdrachtsrisico te verminderen
  9. Renesas verbetert Indoor Air Quality sensorplatform met embedded AI voor verbeterde geurdeteectie
  10. Kleine PM2.5 & VOC-sensoren leveren realtime persoonlijke luchtkwaliteitsmonitoring
  11. Geavanceerde Koolstofgebaseerde NO₂-sensor Verbetert Binnenluchtkwaliteitsmonitoring