BH1750 mit Kabel und GY-302

Lichtsensor BH1750

Der BH1750 ist ein Sensor zum Messen der Stärke des Umgebungslichts. Er misst die Beleuchtungsstärke in Lux und gibt die Werte digital über den I2C-Bus an einen Mikrocontroller aus. Er ist für die Nutzung mit Arduino & Co. meist in zwei Varianten zu finden: als Modulplatine GY-302 (oder GY-30) mit fünf Anschlüssen oder als Modul in einer transparenten, halbkugelförmigen Kunststoff-Kappe, das mit einem 5-poligen JST-Stecker (XH 2.54) angeschlossen wird.

Weiterlesen
TEMT6000 auf dem Breadboard

Der TEMT6000 – ein analoger Lichtsensor

Der TEMT6000 ist ein Lichtsensor, der seine Messwerte analog ausgibt. Er besteht im wesentlichen aus einem Fototransistor, der Licht in dem Spektrum misst, das auch für das menschliche Auge sichtbar ist. Je höher die Beleuchtungsstärke, desto höher ist die am Signalpin ausgegebene Spannung. Als analoger Sensor ist er sehr einfach an Mikrocontroller anzuschließen; für die Programmierung wird keine Bibliothek benötigt.

Weiterlesen
Temperatursensor LM35DZ

LM35DZ – ein analoger Temperatursensor

Der LM35DZ ist ein einfacher und preisgünstiger Temperatursensor. Er misst Temperaturen zwischen 0 und 100°C und gibt die Werte analog zwischen 0 und 1 Volt aus – 1 Millivolt entspricht dabei 0,1°C. Wegen seiner Bauform TO-92 ist er dem verbreiteten DS18B20 optisch sehr ähnlich.

Weiterlesen
ADS1115-Modul auf dem Breadboard

Analogwerte messen mit dem ADS1115

Mit dem ADS1115 Breakout Board) ist es möglich, Analogwerte deutlich genauer zu messen, als es ein ESP32 oder Arduino kann. Der ADC (Analog-Digital-Konverter) misst an vier Eingängen Analogwerte mit einer Auflösung von 16 Bit und gibt die Daten per I2C-Schnittstelle an den Mikrocontroller aus. Außerdem verfügt der ADS1115 über eine bis zu 16-fache Verstärkung, differenzielle Messung und eine konfigurierbare I2C-Adresse.

Weiterlesen
Temperatursensoren im Vergleich: Aufbau auf dem Breadboard

13 Temperatursensoren im Vergleich

Mittlerweile haben sich einige Temperatursensoren für ESP32 und Arduino bei mir angesammelt. Zeit für einen Vergleich, ob die Sensoren ähnliche Werte liefern. Bei der Programmierung des CO2-Sensors MH-Z19B war aufgefallen, dass dessen Temperaturmessungen im Vergleich mehrere Grad über denen anderer Sensoren lagen. Auch die zum Vergleich genutzten Sensoren lieferten Werte, die tlw. um mehr als 1°C voneinander abwichen. Also schien ein Vergleich der Umweltsensoren mit Temperaturmessung sinnvoll. Neben sechs Exemplaren des reinen Temperatursensors DS18B20 sind DHT11 und DHT22, AM2320, SHT20, AHT20 und BMP280 Bestandteil des Vergleichs. Außer Konkurrenz lief der DS3231 – ein Echtzeituhr-Modul, bei dem die Temperaturmessung eher als Zugabe zu betrachten ist.

Weiterlesen
Arduino IDE: Bibliotheksverwaltung

Arduino-IDE: Bibliotheken verwalten

Für viele Einsatzzwecke von ESP32, Arduino und Konsorten muss man die Basisfunktionalitäten, z.B. zum Abfragen von Sensoren, nicht selbst programmieren, sondern kann auf eine Vielzahl von Bibliotheken (engl.: library, oft als lib abgekürzt) zurückgreifen. Die meisten Bibliotheken im Umfeld der offenen Arduino-Plattform stehen auf GitHub (ein Internet-Dienst zur Versionsverwaltung von Software) oder ähnlichen Plattformen unter Open-Source-Lizenzen zur Verfügung (z.B. MIT-Lizenz oder Gnu LPGL) und können über die in die Arduino-IDE integrierte Bibliotheksverwaltung installiert und aktualisiert werden. Für die meisten Einsatzzwecke gibt es mehrere Bibliotheken von verschiedenen Entwicklern mit unterschiedlichem Funktionsumfang und verschieden guter Dokumentation.

Weiterlesen
AM312 (links oben), HC-SR505 (darunter), HC-SR501 (rechts), in der Draufsicht

Miniatur-Bewegungssensoren HC-SR505, AM312 und SR602

Wie der HC-SR501 sind auch der HC-SR505, der AM312 und der SR602 pyroelektrische Infrarotsensoren (abgekürzt „PIR”). Die Sensoren sind aber deutlich kleiner als der HC-SR501 – der Durchmesser der Kunststoffkappen ist nur etwa halb so groß. Dadurch und wegen kleinerer und weniger umfangreich bestückter Platinen sind die Sensoren auf einen kürzeren Entfernungsbereich von 3 bis max. 5 Metern ausgelegt und bieten etwas weniger Funktionsmöglichkeiten: Auslösedauer und Empfindlichkeit sind fest vorgegeben, und sie unterstützen nur wiederholtes Auslösen (repeatable trigger). Dafür sind die Pins so angebracht, dass die Sensoren direkt auf einem Breadboard eingesteckt werden können. Alle Sensoren haben einen 3-Pin-Anschluss und liefern beim Erkennen einer Bewegung einen HIGH-Pegel am Ausgabepin.

Weiterlesen
Barometrischer Sensor BMP180

BMP180 und BMP280 Luftdrucksensoren

Viele kennen sicher die »Wetterstationen«, die bei Eltern oder Großeltern an der Wohnzimmerwand hingen oder noch hängen: Barometer, Hygrometer und Thermometer als analoge Instrumente. Deren Funktionen sind inzwischen in kleinen Sensoren realisiert, von denen einige zum Messen von Temperatur und Luftfeuchtigkeit hier schon vorgestellt wurden – es fehlt noch ein barometrischer Sensor wie der Bosch BMP180, um die digitale Version so einer Wetterstation mit einem Mikrocontroller aufzubauen. Er und sein Nachfolger BMP280 messen zusätzlich zum Luftdruck auch die Temperatur und bieten über die Bibliotheken Funktionen, um den gemessenen Luftdruck in den Druck auf Höhe des Meeresspiegels umzurechnen.

Weiterlesen
SHT20 Temperatur- und Luftfeuchtigkeitssensor

SHT20 Temperatur- und Luftfeuchtigkeitssensor

Der SHT20 ist ein weiterer Sensor zur Messung der Umgebungstemperatur und der relativen Luftfeuchtigkeit, den ich wegen des kleinen Preises bei einer Bestellung in China zum Ausprobieren mitbestellt habe. Der Sensor befindet sich in einem Kunststoffgehäuse mit vier Anschlusspins – vergleichbar mit dem DHT22 –, außerdem gibt es ihn auf eine kleine Platine montiert als Modul. Auf dem Modul ist lediglich eine zusätzliche rote LED samt Vorwiderstand vorhanden, die anzeigt, dass die Spannungsversorgung funktioniert. Wie der AM2320 kommuniziert der SHT20 über die I2C-Schnittstelle. Die dafür notwendigen Pull-Up-Widerstände sind bereits im Sensorgehäuse verbaut – deshalb sind sie auf der Modulplatine nicht noch einmal vorhanden.

Weiterlesen
Mit einem Widerstand kodierte I2C-Adresse (OLED-Display Typ SSD1306)

I2C-Schnittstelle am ESP32 und Arduino

I2C ist ein serieller Datenbus, über den ein Mikrocontroller mit nur zwei Steuerleitungen mehrere verschiedene Geräte gleichzeitig steuern kann – insbesondere bei Controllern mit nur wenigen I/O-Pins ein großer Vorteil, wenn nicht jedes angeschlossene Gerät eigene Anschlüsse belegt. Der Name der I2C-Schnittstelle (auch: IIC) steht für Inter-Integrated Circuit, eine andere Bezeichnung ist – wegen der beiden Steuerleitungen – Two-Wire-Interface (TWI, Zweidraht-Schnittstelle). Jede Komponente am Bus wird über ihre individuelle Adresse angesprochen. Deshalb muss diese Adresse eindeutig sein, und man kann man nicht ohne weiteres mehrere gleiche Geräte an einem Bus betreiben.

Weiterlesen