- Erforderliche Komponenten
- Nova PM Sensor SDS011
- 0,96 'OLED-Anzeigemodul
- Schaltplan für Luftqualitätsanalysator
- Aufbau der Schaltung auf Perf Board
- Code-Erklärung für den Luftqualitätsmonitor
- Testen des Arduino-Luftqualitätsmonitors
Luftverschmutzung ist in vielen Städten ein großes Problem und der Luftqualitätsindex wird von Tag zu Tag schlechter. Laut dem Bericht der Weltgesundheitsorganisation werden mehr Menschen durch die Auswirkungen gefährlicher Partikel in der Luft vorzeitig getötet als durch Autounfälle. Laut der Environmental Protection Agency (EPA) kann Innenluft zwei- bis fünfmal giftiger sein als Außenluft. Deshalb bauen wir hier ein Gerät zur Überwachung der Luftqualität durch Messung von PM2.5- und PM10-Partikeln in der Luft.
Wir haben zuvor den Gassensor MQ135 für die Luftqualitätsüberwachung und den Sensor Sharp GP2Y1014AU0F zur Messung der Staubdichte in der Luft verwendet. Dieses Mal verwenden wir einen SDS011-Sensor mit Arduino Nano, um einen Luftqualitätsanalysator zu bauen. Der SDS011-Sensor kann die Konzentrationen von PM2,5- und PM10-Partikeln in der Luft berechnen. Hier werden die Echtzeitwerte PM2.5 und PM 10 auf dem OLED-Display angezeigt.
Erforderliche Komponenten
- Arduino Nano
- Nova PM Sensor SDS011
- 0,96 'SPI OLED-Anzeigemodul
- Überbrückungsdrähte
Nova PM Sensor SDS011
Der SDS011-Sensor ist ein neuer Luftqualitätssensor, der von Nova Fitness entwickelt wurde. Es arbeitet nach dem Prinzip der Laserstreuung und kann die Partikelkonzentration in der Luft zwischen 0,3 und 10 μm erreichen. Dieser Sensor besteht aus einem kleinen Lüfter, einem Lufteinlassventil, einer Laserdiode und einer Fotodiode. Die Luft tritt durch den Lufteinlass ein, wo eine Lichtquelle (Laser) die Partikel beleuchtet und das gestreute Licht von einem Fotodetektor in ein Signal umgewandelt wird. Diese Signale werden dann verstärkt und verarbeitet, um die Partikelkonzentration von PM2,5 und PM10 zu erhalten.
SDS011-Sensorspezifikationen:
- Ausgabe: PM2.5, PM10
- Messbereich: 0,0-999,9 μg / m3
- Eingangsspannung: 4,7 V bis 5,3 V.
- Maximaler Strom: 100mA
- Schlafstrom: 2mA
- Reaktionszeit: 1 Sekunde
- Serielle Datenausgangsfrequenz: 1 Mal / Sekunde
- Auflösung des Teilchendurchmessers: ≤ 0,3 μm
- Relativer Fehler: 10%
- Temperaturbereich: -20 ~ 50 ° C.
0,96 'OLED-Anzeigemodul
OLED (Organic Light Emitting Diodes) ist eine selbstleuchtende Technologie, bei der eine Reihe organischer Dünnfilme zwischen zwei Leitern angeordnet werden. Ein helles Licht wird erzeugt, wenn ein elektrischer Strom an diese Filme angelegt wird. OLEDs verwenden dieselbe Technologie wie Fernseher, haben jedoch weniger Pixel als die meisten unserer Fernseher.
Für dieses Projekt verwenden wir ein monochromes 7-poliges SSD1306 0,96-Zoll-OLED-Display. Es kann mit drei verschiedenen Kommunikationsprotokollen arbeiten: SPI 3-Drahtmodus, SPI-Vierdrahtmodus und I2C-Modus. Die Stifte und ihre Funktionen werden in der folgenden Tabelle erläutert:
Pin Name |
Andere Namen |
Beschreibung |
Gnd |
Boden |
Erdungsstift des Moduls |
Vdd |
Vcc, 5V |
Stromanschluss (3-5V tolerierbar) |
SCK |
D0, SCL, CLK |
Dient als Clock. Wird sowohl für I2C als auch für SPI verwendet |
SDA |
D1, MOSI |
Daten-Pin des Moduls. Wird sowohl für IIC als auch für SPI verwendet |
RES |
RST, RESET |
Setzt das Modul zurück (nützlich während SPI) |
DC |
A0 |
Datenbefehls-Pin. Wird für das SPI-Protokoll verwendet |
CS |
Chipauswahl |
Nützlich, wenn mehr als ein Modul unter dem SPI-Protokoll verwendet wird |
Wir haben hier einen vollständigen Artikel über OLED-Displays und ihre Typen behandelt.
OLED-Spezifikationen:
- OLED-Treiber-IC: SSD1306
- Auflösung: 128 x 64
- Sichtwinkel:> 160 °
- Eingangsspannung: 3,3 V ~ 6 V.
- Pixelfarbe: Blau
- Arbeitstemperatur: -30 ° C ~ 70 ° C.
Erfahren Sie mehr über OLED und seine Schnittstelle zu verschiedenen Mikrocontrollern, indem Sie dem Link folgen.
Schaltplan für Luftqualitätsanalysator
Das Schaltbild zur Messung von PM2.5- und PM10-Partikeln mit Arduino ist sehr einfach und wird unten angegeben.
Der SDS011-Sensor und das OLED-Anzeigemodul werden beide mit +5 V und GND versorgt. Die Sender- und Empfänger-Pins von SDS011 sind mit den D3- und D4-Pins von Arduino Nano verbunden. Da das OLED-Display-Modul SPI-Kommunikation verwendet, haben wir eine SPI-Kommunikation zwischen dem OLED-Modul und Arduino Nano hergestellt. Die Verbindungen sind in der folgenden Tabelle aufgeführt:
S.No. |
OLED-Modul-Pin |
Arduino Pin |
1 |
GND |
Boden |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Aufbau der Schaltung auf Perf Board
Ich habe auch alle Komponenten auf die Perf-Platine gelötet, damit sie ordentlich aussieht. Sie können sie aber auch auf einem Steckbrett machen. Die Bretter, die ich gemacht habe, sind unten. Achten Sie beim Löten darauf, dass Sie die Drähte nicht sortieren. Die Perf-Platine, die ich gelötet habe, ist unten dargestellt:
Code-Erklärung für den Luftqualitätsmonitor
Der vollständige Code für dieses Projekt ist am Ende des Dokuments angegeben. Hier erklären wir einige wichtige Teile des Codes.
Der Code verwendet die SDS011, Adafruit_GFX , und Adafruit_SSD1306 Bibliotheken. Diese Bibliotheken können vom Bibliotheksmanager in der Arduino IDE heruntergeladen und von dort installiert werden. Öffnen Sie dazu die Arduino IDE und gehen Sie zu Skizze> Bibliothek einschließen> Bibliotheken verwalten . Suchen Sie nun nach SDS011 und installieren Sie die SDS-Sensorbibliothek von R. Zschiegner.
Installieren Sie in ähnlicher Weise die Bibliotheken Adafruit GFX und Adafruit SSD1306 von Adafruit.
Starten Sie nach der Installation der Bibliotheken in Arduino IDE den Code, indem Sie die erforderlichen Bibliotheksdateien einschließen.
#einschließen
Definieren Sie in den nächsten Zeilen zwei Variablen zum Speichern der PM10- und PM2.5-Werte.
float p10, p25;
Definieren Sie dann die Breite und Höhe der OLED. In diesem Projekt verwenden wir ein 128 × 64 SPI OLED-Display. Sie können die Variablen SCREEN_WIDTH und SCREEN_HEIGHT entsprechend Ihrer Anzeige ändern.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Definieren Sie dann die SPI-Kommunikationspins, an denen das OLED-Display angeschlossen ist.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Erstellen Sie dann eine Adafruit-Anzeigeinstanz mit der zuvor mit dem SPI-Kommunikationsprotokoll definierten Breite und Höhe.
Adafruit_SSD1306-Anzeige (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Initialisieren Sie nun in der Funktion setup () den seriellen Monitor für Debugging-Zwecke mit einer Baudrate von 9600. Initialisieren Sie außerdem das OLED-Display und den SDS011-Sensor mit der Funktion begin () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Lesen Sie in der Hohlraumschleife () die PM10- und PM2.5-Werte vom SDS011-Sensor und drucken Sie die Messwerte auf einem seriellen Monitor.
void loop () {error = my_sds.read (& p25, & p10); if (! error) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + String (p10));
Stellen Sie danach die Textgröße und die Textfarbe mit setTextSize () und setTextColor () ein .
display.setTextSize (2); display.setTextColor (WHITE);
Definieren Sie dann in der nächsten Zeile die Position, an der der Text mit der Methode setCursor (x, y) gestartet werden soll. Hier werden die PM2.5- und PM10-Werte auf dem OLED-Display angezeigt, sodass die erste Zeile bei (0,15) beginnt, während die zweite Zeile bei (0, 40) Koordinaten beginnt.
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);
Rufen Sie abschließend die Methode display () auf, um den Text auf dem OLED-Display anzuzeigen.
display.display (); display.clearDisplay ();
Testen des Arduino-Luftqualitätsmonitors
Sobald die Hardware und der Code fertig sind, ist es Zeit, das Gerät zu testen. Verbinden Sie dazu das Arduino mit dem Laptop, wählen Sie das Board und den Port aus und klicken Sie auf die Schaltfläche zum Hochladen. Wie Sie im folgenden Bild sehen können, werden PM2.5- und PM10-Werte auf dem OLED-Display angezeigt.
Das vollständige Arbeitsvideo und der Code sind unten angegeben. Ich hoffe, Ihnen hat das Tutorial gefallen und Sie haben etwas Nützliches gelernt. Wenn Sie Fragen haben, lassen Sie diese im Kommentarbereich oder nutzen Sie unsere Foren für andere technische Fragen.