Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

AirOwl: Echtzeit-Luftqualitätsmonitoring für gesünderes Atmen

Komponenten und Zubehör

KomponenteAnzahl
Arduino 101 (mit BLE)1
Feinstaubsensor ZH03A1
Adafruit Flora RGB NeoPixel LEDs (4er-Pack)1
Jumper-Wires10
Widerstand 10 kΩ3

Apps & Online-Dienste

Projektbeschreibung

AirOwl misst die Luftqualität in Echtzeit und zeigt die Daten über BLE in der Blynk-App an. Drei Ausgabearten:

  1. Blynk App (BLE): Drei Gauges für PM1, PM2,5, PM10.
  2. Augenfarben der AirOwl-Figur (NeoPixels):
    • Grün = sicher
    • Blau = Vorsicht
    • Rot = Gefahr
  3. Serial Monitor: Rohwerte zur Kontrolle.

Schaltung & Aufbau

Der ZH03A sendet Daten per UART (9600 Baud) an den Arduino 101 (Serial1). NeoPixels an Pins 3, 5, 6 (PWM). Stromversorgung über USB oder Batterie. Schaltpläne, PCB-Layout (Eagle/KiCad) und 3D-Modell auf GitHub.

Blynk-Einrichtung

  1. Blynk App installieren, Account erstellen.
  2. Neues Projekt → Board: Arduino 101 → Auth-Key per Mail erhalten.
  3. Workspace: BLE-Widget + 3 Gauges (Pins V1, V2, V3).
  4. Bluetooth am Handy einschalten, in App verbinden, Play drücken.

Code (Air_owl.ino)

#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[] = "Auth key"; // Blynk Auth-Key einsetzen
BLEPeripheral blePeripheral;

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

void loop() {
  Blynk.run(); blePeripheral.poll();
  // Serial-Ausgabe
  Serial.println("PM1: " + String(PM1/count));
  Serial.println("PM2.5: " + String(PM25/count));
  Serial.println("PM10: " + String(PM10/count));
  delay(500);
  WriteData();
  // Farblogik
  unsigned int avg = (PM1+PM25+PM10)/3;
  if (avg <= 100) LedColor(0,255,0);        // Grün
  else if (avg <= 300) LedColor(255,0,0);   // Rot (Achtung: Originalcode vertauscht Blau/Rot)
  else LedColor(0,0,255);                    // Blau
  delay(500);
}

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

void getWinsenData() { /* UART-Parsing laut ZH03A-Datenblatt */ }
void WriteData() { getWinsenData(); Blynk.virtualWrite(V1, PM1/count); Blynk.virtualWrite(V2, PM25/count); Blynk.virtualWrite(V3, PM10/count); delay(1000); }

Hinweis: Im Originalcode ist die Farblogik für Blau/Rot vertauscht (Rot bei mittlerer, Blau bei hoher Belastung). Obige Kommentare zeigen die sinnvolle Zuordnung.

Ressourcen

Herstellungsprozess

  1. Zehenklemmen (Toe Clamps) erklärt: Merkmale, Vorteile und Auswahlhilfe
  2. Predictive Maintenance: Effizienz und Risikoreduktion durch datengetriebene Einblicke
  3. 7 Essentielle React-Bibliotheken, die jeder Entwickler beherrschen sollte
  4. Den wahren Wert Ihres Unternehmens freisetzen: Leitfaden für kleine und mittlere Hersteller
  5. Vorrichtungsfüße (Jig Feet Buttons): Funktion & Effizienzsteigerung in der Fertigung
  6. AC- vs. DC-Motoren: Wichtige Unterschiede & Auswahlhilfe
  7. PCB-Fertigung meistern: Essenzielle Tipps für erfolgreiches Prototyping
  8. Maschinenfinanzierung 1×1: Geld sparen, Risiko reduzieren, Unternehmen absichern
  9. Wichtiger Leitfaden zu Tauchmotorpumpen: Eigenschaften, Betrieb und Installation
  10. Kreiselpumpen erklärt: Hauptmerkmale, Anwendungen & Vorteile