Ein Partikelsensor wie der MAX30105 erlaubt es, die Luft in der Umgebung auf feste Teilchen zu überwachen.
Es liegt was in der Luft – was als Liedtitel beschwingt, verursacht in der Realität mitunter Husten oder bedroht auf andere Weise die Gesundheit. Haben Sie den Verdacht, dass sich Teilchen in der Luft befinden, die Sie lieber meiden sollten, dann kommen Sie diesen mit dem Partikelsensor MAX30105 auf die Spur.
Der Baustein analysiert mithilfe optischer Komponenten, wie viele Partikel sich in der Luft befinden. Wir erläutern die Grundlagen des Sensors und demonstrieren die konkrete Funktionsweise. Da das korrekte Ansteuern sich nicht trivial gestaltet, kommt in diesem Beispiel eine Python-Bibliothek zum Einsatz.
Technische Daten
Der MAX30105 misst als optischer Sensor die Menge von Partikeln in der Luft. Dabei umfasst der Begriff Partikel salopp gesagt alles, was in der Luft herumschwirrt, also beispielsweise auch Rauch. Daher kommt der Baustein unter anderem in Brandmeldern zum Einsatz. Vereinfacht ausgedrückt emittiert er mithilfe von LEDs Licht und ermittelt über einen Detektor, wie viel davon die Umgebung wieder zurückwirft. Auf diese Weise lassen sich Partikel unterschiedlicher Größe in der Luft erkennen.
Am I2C-Bus meldet sich das Modul unter der Adresse 0x57. Der MAX30105 benötigt zwei Betriebsspannungen, 1,8 Volt für die Sensorelektronik und 3,3 Volt, um die drei integrierten LEDs zu betreiben. Diese leuchten rot, grün und infrarot. Jede LED verbraucht bis zu 50 Milliampere Strom. Der Detektor selbst benötigt dagegen weniger als 1 Milliampere. Über verschiedene Mechanismen ist es möglich, den Stromverbrauch des MAX30105 zu senken. Weitere technische Details nennt das Datenblatt [1].
Da es sich beim MAX30105 mit seinen 3,3 x 5,6 Millimetern Fläche um einen echten Zwerg handelt, kommt im Folgenden ein Board zum Einsatz, auf dem der Sensor mit einigen zusätzlichen Komponenten verbaut ist. Zu den Letzteren gehört etwa ein Spannungsregler, der es ermöglicht, eine Spannung von 3,3 Volt bereitzustellen. Das Board erhalten Sie bei Amazon für einen Preis zwischen 13 und 40 Euro [2]. Je mehr Sie bezahlen, um so schneller liegt die Bestellung im Briefkasten. Bei einer Lieferung direkt aus China gibt es das Board schon für etwa 9 Euro [3].
Testaufbau
Als Basis für den Test dient ein aktuelles Pi OS Lite. Sie schreiben das System mit dem RPi Imager auf eine SD-Karte. Diese Software laden Sie bei Bedarf frei von der Homepage der Foundation [4] herunter. Danach booten Sie den Mini-PC von der SD-Karte. Sie benötigen noch einige zusätzliche Softwarepakete, diese Sie mit den Kommandos aus Listing 1 installieren.
Listing 1
Zusätzliche Software
$ sudo apt update $ sudo apt upgrade $ sudo apt install python-pip python-smbus i2c-tools $ sudo pip install max30105
Um die I2C-Schnittstelle zu aktivieren, verwenden Sie das Konfigurationswerkzeug des RasPi (sudo raspi-config). Navigieren Sie zum entsprechenden Menüpunkt (5**Interfacing Options | P5 I2C) und wählen Sie Ja. Das MAX30105-Board verbinden Sie entsprechend der Angaben in der Tabelle “Verbindungen” mit dem Rechner; Abbildung 1 zeigt den Aufbau.
|
RasPi |
Header |
Board |
|---|---|---|
|
Pin 1 |
3,3V |
VCC |
|
Pin 3 |
SDA1 |
SDA |
|
Pin 5 |
SCL1 |
SCL |
|
Pin 9 |
GND |
GND |

Abbildung 1: Es lohnt sich, den Sensor auf einem passenden Board zu montieren, da sich so die Komponenten leichter handhaben lassen.
Haben Sie das Board an den RasPi angeschlossen, testen Sie zunächst mit dem Tool I2cdetect, ob sich der Sensor am Bus meldet (Listing 2, Zeile 1 bis 10). Klappt das, lesen Sie die ID des MAX30105 aus, für die I2cget den Wert 0x15 melden sollte (Zeile 11 und 12). Haben die beiden Tests funktioniert, passt in der Regel alles richtig zusammen und der Sensor arbeitet fehlerfrei.
Listing 2
Funktionstest
$ i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- $ i2cget -y 1 0x57 0xff 0x15
Passende Software für erste Test finden Sie im Github-Repo von Pimoroni für den MAX30105. Dort finden Sie unter anderen das Programm get-temperature.py [5]. Nachdem es die nötigen Bibliotheken importiert hat, erzeugt es ein Objekt vom Typ MAX30105. Es stellt unter anderem die Methode get_temperature() bereit, um die vom Sensor die gemessene Temperatur auszulesen und anzuzeigen. Der Rest des Programms führt die Messung in Sekundentakt durch und formatiert die Ausgabe (Abbildung 2).






