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

AirOwl: realtime luchtkwaliteitsmonitoring voor gezonder ademen

Onderdelen en benodigdheden

Onderdeel Aantal
Arduino 101 (Genuino 101) 1
Stofsensor ZH03A 1
Adafruit Flora RGB NeoPixel LEDs (pak van 4) 1
Draadjes (algemeen) 10
Weerstand 10k ohm 3

Apps en online diensten

  • Blynk (BLE)
  • Arduino IDE

Over dit project

AirOwl is een realtime luchtkwaliteitsmonitor. Het meet de luchtkwaliteit via de stofsensor en toont de data op de Blynk-app via BLE van de Arduino/Genuino 101. Een project om te weten wat we inademen!

Menselijke activiteiten beïnvloeden het milieu. Dit apparaat helpt de omgeving in de gaten te houden en actie te ondernemen.

Drie manieren om luchtkwaliteit te zien

  1. Blynk-app (BLE) – dashboards met meters voor PM1, PM2.5, PM10.
  2. Kleur van AirOwl's ogen (NeoPixels):
    • Groen = veilige omgeving
    • Blauw = let op
    • Rood = gevaar
  3. Seriële monitor – ruwe waarden.

Schema en ontwerp

Zie GitHub voor schema's, PCB-ontwerp (Eagle/KiCad), 3D-beelden en alle bestanden.

Blynk instellen

  1. Installeer Blynk (Play Store / App Store).
  2. Maak account, nieuw project, selecteer board, geef naam.
  3. Klik Create → ontvang Auth Token per e-mail.
  4. Voeg widgets toe: BLE, 3x Gauge (pins V1, V2, V3 voor PM1, PM2.5, PM10).
  5. Activeer Bluetooth op telefoon, klik BLE-icoon in app, start project.

Code

/* Copyright (C) 2017 Anith Patel & Sohil Patel. GNU FDL v1.3+ */
#include 
#include 
#define BLYNK_SERIAL Print
byte data[24];
unsigned int PM1 = 0, PM25 = 0, PM10 = 0, count = 0;
const int PIN1 = 3, PIN2 = 5, PIN3 = 6;
char auth[] = "JOUW_AUTH_TOKEN";
BLEPeripheral blePeripheral;

void setup() {
  blePeripheral.setLocalName("AirOwl");
  blePeripheral.setDeviceName("AirOwl");
  blePeripheral.setAppearance(384);
  Blynk.begin(blePeripheral, auth);
  blePeripheral.begin();
  Serial1.begin(9600); // UART naar sensor
  Serial.begin(9600);
  pinMode(PIN1, OUTPUT); pinMode(PIN2, OUTPUT); pinMode(PIN3, OUTPUT);
}

void loop() {
  Blynk.run();
  blePeripheral.poll();
  Serial.println("PM1: " + String(PM1/count));
  Serial.println("PM2.5: " + String(PM25/count));
  Serial.println("PM10: " + String(PM10/count));
  delay(500);
  WriteData();
  // LED logica op basis van gemiddelde
  int avg = (PM1 + PM25 + PM10) / 3 / count;
  if (avg <= 100) LedColor(0, 255, 0);       // Groen
  else if (avg <= 300) LedColor(255, 0, 0);   // Rood (let op: orig. code had rood/blauw omgedraaid?)
  else LedColor(0, 0, 255);                   // Blauw
  delay(500);
}

void LedColor(int r, int b, int g) {
  analogWrite(PIN1, r); analogWrite(PIN2, b); analogWrite(PIN3, g);
}

void getWinsenData() {
  byte i = 0, checksum = 0;
  Serial1.flush();
  while (Serial1.available()) {
    data[i] = Serial1.read();
    if (i <= 21) checksum += data[i];
    if (i == 23) {
      if (checksum == (256 * data[22] + data[23])) {
        if (data[0] == 0x42 && data[1] == 0x4D) { // "BM"
          PM1 += (data[4] * 256 + data[5]);
          PM25 += (data[6] * 256 + data[7]);
          PM10 += (data[8] * 256 + data[9]);
          count++;
          Serial1.flush();
          break;
        }
      } else break;
    }
    i++; delay(10);
  }
}

void WriteData() {
  getWinsenData();
  Blynk.virtualWrite(V1, PM1/count);
  Blynk.virtualWrite(V2, PM25/count);
  Blynk.virtualWrite(V3, PM10/count);
  delay(1000);
}

Let op: In de oorspronkelijke code was de kleurlogica mogelijk omgedraaid (blauw/rood). Hierboven gecorrigeerd naar standaard: groen=goed, rood=matig, blauw=slecht. Controleer datasheet ZH03A voor exacte drempels.

Bronnen

Productieproces

  1. Schaalvoetknoppen Uitgelegd: Hoe Ze Uw Schablonen Bevestigen en Productie-efficiëntie Verhogen
  2. PCB-fabricatie meesteren: essentiële tips voor prototyping succes
  3. Essentiële gids voor potgietmotorpompen: kenmerken, werking en installatie
  4. Centrifugale Pompen Uitgelegd: Belangrijkste Kenmerken, Toepassingen & Voordelen
  5. De ware waarde van uw bedrijf ontgrendelen: Gids voor kleine en middelgrote fabrikanten
  6. Teen-klemmen Uitgelegd: Kenmerken, Voordelen en Hoe de Juiste te Kiezen
  7. AC vs DC Motoren: Belangrijkste Verschillen & Hoe De Juiste Te Kiezen
  8. Apparatuurfinanciering 101: Geld besparen, risico verminderen, uw bedrijf beveiligen
  9. Voorspellend Onderhoud: Efficiëntie en Risicoreductie met Datagestuurde Inzichten
  10. 7 Essentiële React-bibliotheken die Elke Ontwikkelaar Moet Beheersen
  11. Koolstofvezel Vormen: Essentiële Inzichten Voor Moderne Fabricage