Das neunzehnte Türchen

16 in 1 Kit Zubehörset mit Sensoren und Modulen

Ein ganzes Paket mit Sensoren und Modulen befindet sich hinter Türchen Nummer 19 des AZ-Adventskalenders. Was kann man damit anfangen? Jede Menge. Passend zur Adventszeit suchen Sie doch mal in der Suchmaschine Ihres Vertrauens nach "Santa Detector". Alle Sensoren zu beschreiben und Projekte dafür vorzustellen, würde den Rahmen dieses Kurzbeitrags sprengen. Ich werde trotzdem versuchen, auf alle Module einzugehen. Für einige davon gibt es bereits Blogbeiträge, oder es sind Codebeispiele in den Datenblättern der einzelnen Module im Shop enthalten. Zuerst schauen wir, was in dem Set enthalten ist. Ich habe Ihnen gleich noch einige Anmerkungen dazu geschrieben:

KY-015 DHT 11 Temperatursensor 

Misst Temperatur und Luftfeuchtigkeit; gibt keine Nachkommastellen aus; Betriebsspannung 3,3V und 5V

 DS1302 Echtzeituhr (RealTimeClock, RTC)

Zeit wird ohne externe Stromversorgung mit Knopfbatterie gehalten; Verbindung über serielle Schnittstelle; Betriebsspannung 3,3V und 5V

 

Flammensensor

Infrarot-Sensor; Empfindlichkeit zum Schalten des digitalen Ausgangssignals mit Poti einstellbar; Betriebsspannung 3,3V und 5V

HC-SR04 Ultraschall

Sendet einen Ultraschallimpuls und misst die Zeit bis zum Eintreffen des gleichen reflektierten Signals, wodurch der Abstand gemessen werden kann; Betriebsspannung 5V; Messabstand 2cm - 3m; Messwinkel ca. 15 Grad;

LED-Ampel

keine weiteren Vorwiderstände notwendig und somit direkt an den Ausgangspins nutzbar; Betriebsspannung 3,3V und 5V

KY-038 Schallsensor

Mikrofon zur Geräuscherkennung; Empfindlichkeit zum Schalten des Ausgangssignals mit Poti einstellbar; Betriebsspannung 3,3V und 5V; Blogbeitrag

LDR5528 Lichtsensor

Light Dependent Resistor (lichtabhängiger Widerstand); Empfindlichkeit zum Schalten des Ausgangssignals mit Poti einstellbar; Betriebsspannung 3,3V und 5V

TCRT5000 Linetracker

Infrarotlichtmessung unterscheidet zwischen hell und dunkel bei sehr geringem Abstand; ermöglicht die Umsetzung einer Linienverfolgung; Empfindlichkeit zum Schalten des Ausgangssignals mit Poti einstellbar; Betriebsspannung 3,3V und 5V

MQ-2 Gassensor

detektiert LPG, i-Butan, Propan, Methan, Alkohol, Wasserstoff und Rauch; Empfindlichkeit zum Schalten des digitalen Ausgangssignals mit Poti einstellbar; digitaler Ausgang schaltet Signal, analoger Ausgang gibt Messwerte aus; Betriebsspannung 5V; Achtung: Sensor wird aufgeheizt!

IR Hinderniserkennung

Erkennt Hindernisse durch ein reflektiertes Infrarotsignal; Empfindlichkeit zum Schalten des Ausgangssignals mit Poti einstellbar; Betriebsspannung 3,3V und 5V

HC-SR501 Bewegungssensor

PIR Bewegungsmelder; Empfindlichkeit und Schaltzeit mit Poti einstellbar; auch ohne Mikrocontroller nutzbar; ACHTUNG: Pinbelegung unter der Plastikkappe beachten - Kann von den Angaben abweichen; Betriebsspannung 5V; Erkennungsentfernung bis 7m; Blogbeitrag oder weiterer Blogbeitrag

433 MHz Funkmodul

Sender und Empfänger zum Übertragen von Signalen über das 433MHz-Frequenzband; FS1000A Sender, XY-MK-5V Sender; Blogbeitrag

Regensensor

Analoger und digitaler Ausgang für Messwerte oder als Schalter; Empfindlichkeit zum Schalten des digitalen Ausgangssignals mit Poti einstellbar; Betriebsspannung 3,3V und 5V; Datenblatt mit Beispielprogramm

YL-69 Bodenfeuchtesensor

Hygrometer zur Füllstands- oder Feuchtigkeitsmessung in der Erde; Analoger und digitaler Ausgang für Messwerte oder als Schalter; Empfindlichkeit zum Schalten des digitalen Ausgangssignals mit Poti einstellbar; Betriebsspannung 3,3V und 5V; Ausgangsspannung sinkt, wenn der Wasserstand ansteigt.

SW520D Neigungssensor

Winkelsensor; erkennt Neigungsänderung; funktioniert mit Kugelschaltern; Betriebsspannung 3,3V und 5V; Empfindlichkeit zum Schalten des digitalen Ausgangssignals mit Poti einstellbar;

SW420 Vibrationssensor

erkennt Vibrationen; funktioniert mit Kugelschaltern; Betriebsspannung 3,3V und 5V; Empfindlichkeit zum Schalten des digitalen Ausgangssignals mit Poti einstellbar;

 

Sie können also in Verbindung mit Mikrocontrollern (u.a. aus den vorangegangenen Türchen des AZ-Weihnachtskalenders) Temperatur, Luft- und Bodenfeuchtigkeit, Gase, Wasserstände, Vibrationen, Bewegungen, Licht, Schall, Feuer, Abstände zu Hindernissen messen, die Uhrzeit dazu erfassen, Gefahrenstufen per Ampelsignal anzeigen und die Daten per Funk an ein weiteres Gerät übertragen. Das ist schon sehr umfangreich.

Die meisten der Module geben ein digitales Signal wie ein Schalter aus, wenn etwas Entsprechendes detektiert wurde. Wie sensibel der Schalter reagiert, kann mit dem Poti auf dem Modul eingestellt werden. Einige Module haben dazu noch einen analogen Ausgang. Wird dieser mit dem analogen Eingang des Mikrocontrollers verbunden, kann über den Analog-Digital-Wandler ein Messwert erfasst werden. Beim Nano V3.0 oder Uno Microkontroller ist das der Wertebereich 0 bis 1023.

Digitale Schalter

Diese Module benötigen keine weiteren Bibliotheken. Der Anschluss an einen Mikrocontroller ist weitestgehend gleich. Achten Sie dabei auf die Betriebsspannung. Mit einer Spannungsversorgung von 5V sollten Sie auf der sicheren Seite sein. Der Plus-Pin für die Spannungsversorgung kann als VDD, VCC, (+) oder auch als V+ benannt sein, der digitale Signal-Pin als OUT, D0 oder S. Der folgende Schaltplan zeigt, wie Sie den Nano V3.0 mit den Sensormodulen verbinden, die nur über einen digitalen Schalterausgang verfügen:


Das können Sie nutzen für folgende Module:

  • Flammensensor
  • LDR Lichtsensor
  • Linetracker
  • IR Hinderniserkennung
  • Neigungssensor
  • Vibrationssensor
  • PIR Bewegungssensor

Ein kurzer Sketch für die Arduino IDE sieht dann so aus:

int digiPin = 4;
int LEDPin = LED_BUILTIN;

void setup() {
  pinMode(digiPin, INPUT);
  pinMode(LEDPin, OUTPUT);
}

void loop() {
  if (digitalRead(digiPin)) {
    digitalWrite(LEDPin, LOW);
  }
  else {
    digitalWrite(LEDPin, HIGH);
  }
}

Die Onboard-LED auf dem Nano V3.0 oder Uno Microkontroller wird je nach Status des Sensormoduls umgeschaltet. Die digitalen Ausgänge der meisten Module sind low active, sind also standardmäßig auf HIGH und im aktiven Zustand auf LOW.

Der Vibrationssensor sollte etwas anders programmiert werden. Einen Beispielsketch dazu finden Sie im Datenblatt, das auch im AZ-Shop verlinkt ist.

Zusätzliche analoge Werte

Für die Module, die zusätzlich über einen analogen Ausgang verfügen, erweitern Sie die Schaltung wie folgt:


Module mit einem zusätzlichen analogen Signal sind:

  • Schallsensor
  • Gassensor
  • Regensensor
  • Bodenfeuchtesensor

Hinweis: Einige der Module verfügen über eine Status-LED, so dass die Funktion ohne Programmierung nur mit Anschluss einer Spannungsversorgung getestet werden kann.

Für das Einlesen des analogen Signals ergänzen wir den Quellcode um eine Zeile:

int digiPin = 4;
int LEDPin = LED_BUILTIN;

void setup() {
  pinMode(digiPin, INPUT);
  pinMode(LEDPin, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  if (digitalRead(digiPin)) {
    digitalWrite(LEDPin, LOW);
  }
  else {
    digitalWrite(LEDPin, HIGH);
  }
  Serial.println(analogRead(A0));
}

Für die Ausgabe auf dem Monitor öffnen Sie den Seriellen Monitor der Arduino IDE (STRG+UMSCH+M).

Hinweis: Zum Testen des Flammen- und des Gassensors habe ich ein Feuerzeug benutzt. Solche Experimente sollten dann nicht von unbeaufsichtigten Kindern durchgeführt werden!

Mit diesen beiden einfachen Sketches konnten wir jetzt schon 11 der Module ausprobieren. Für die übrigen brauchen Sie entweder eine andere Schaltung oder sogar eine zusätzliche Bibliothek.

Ampelmodul

Diese Komponente kann z.B. als optische Ergänzung für den Gas- oder Wasserstandssensor verwendet werden. Im Blogbeitrag zum Pflanzenwächter wird auch gezeigt, wie man die drei LEDs als Warnhinweis einsetzen kann. Man ändert den Quellcode so, dass statt eines digitalen Ausgangs drei Ausgänge verwendet werden. Dann nutzt man das analoge Signal als Referenz und teilt den Wertebereich in drei Teile auf, die man wiederum jeweils einer der Farben zuordnet.

Modelleisenbahner könnten diese Ampel auch einfach für den Miniaturstraßenverkehr nutzen. Hier der Schaltplan und ein Beispielsketch (Aufgrund des fehlenden Fritzing-Bauteils für die Ampel hier nur eine schematische Darstellung):

  • G = Green (Grün)
  • Y = Yellow (Gelb)
  • R = Red (Rot)
  • GND = Ground (Masse / Minuspol)

Download Ampel-Sketch

Das Umschalten der Ampelphasen funktioniert nicht-blockierend. Sie können also z.B. einen Taster hinzufügen, um die Ampel für Fußgänger umschalten zu lassen. Die Dauer der jeweiligen Phasen kann durch die Werte der Intervalle eingestellt werden.

HC-SR04 Ultraschallsensor

Für dieses Modul möchte ich auf die Blogbeiträge Einfaches Sonar auf TFT und Näherungssensor mit Ultraschall und Servoansteuerung (Automatischer Papierkorb) von Albert Vu verweisen, in denen die Inbetriebnahme des Sensors beschrieben wird. Sollten Sie mehrere dieser Sensoren verwenden, hier der Hinweis, dass sich die Schallwellen gegenseitig stören werden.

433 MHz Funkmodul

Auch für dieses Modul gibt es einen Blogbeitrag namens Was funkt denn da? 433Mhz Module von Moritz Spranger. Dafür benötigen Sie allerdings zwei Mikrocontroller jeweils für das Senden und das Empfangen des Funksignals.

DHT11 Temperatur- und Luftfeuchtesensor

Für das Adventskalendertürchen Nummer 15 hatte ich Ihnen den DHT22 Sensor vorgestellt. Der funktioniert ganz ähnlich. Er liefert höher aufgelöste Werte (Nachkommastellen) und größere Wertebereiche. Die Programmierung ist ansonsten gleich. Die Bibliothek DHTNEW, die ich dort vorgestellt habe, erkennt den Sensortypen automatisch. Sie können also den gleichen Sketch verwenden, oder das mitgelieferte Beispiel dhtnew_minimum probieren. Sollte es Probleme mit der Bibliothek geben, versuchen Sie die SimpleDHT-Bibliothek von Winlin. Dort sind explizite Beispielsketches für den DHT11 enthalten.

DS1302 RTC serielles Echtzeituhrmodul

Für den Betrieb dieses Moduls benötigen Sie eine Knopfzellenbatterie CR2032 3V. Diese sorgt dafür, dass die Uhrzeit gespeichert wird, auch wenn keine externe Stromversorgung angeschlossen ist. Mit einem Mikrocontroller kann die Uhrzeit eingestellt und abgerufen werden. Damit ist es möglich, zu den Sensordaten auch die passende Uhrzeit zu speichern, oder abhängig von der Uhrzeit Sensordaten auszulesen.

Im AZ-Shop finden Sie das Modul auch einzeln. Dort sind Datenblatt, Schaltplan, sowie Bibliotheken für Arduino IDE und Raspberry Pi hinterlegt.

Angeschlossen wird das Modul wie folgt:


Am Nano Mikrocontroller können Sie die gleichen Pins verwenden:

RTC Modul

Uno / Nano MC

VCC

+5V

GND

GND

CLK

6

DAT

7

RST

8


Ich habe in der Bibliotheksverwaltung der Arduino IDE die Bibliothek Rtc by Makuna installiert:


Es sind noch einige andere Bibliotheken verfügbar. Achten Sie bei Ihrer Suche darauf, dass das Modul DS1302 unterstützt wird und dass Sie im Idealfall die Pins selbst bestimmen können. Das ist hier möglich.

Sie können noch andere RTC-Module mit der gleichen Bibliothek verwenden. Wie Sie den Mikrocontroller programmieren müssen und noch einige andere Informationen, finden Sie auf Github. Die Dokumentation ist meiner Meinung nach sehr gut.

Ein mitgelieferter Beispiel-Sketch namens DS1302_Simple kann als Basis für eigene Projekte dienen. Ändern Sie dort diese Zeile wie folgt:

ThreeWire myWire(6,7,8); // IO, SCLK, CE

und laden das Programm auf den von Ihnen gewählten Mikrocontroller. Im Seriellen Monitor sollte dann angezeigt werden, welches Datum und welche Uhrzeit aus ihrem System ausgelesen und in die RTC geschrieben wurden. Mögliche Fehlerquellen können eine falsche Verkabelung oder eine leere bzw. fehlende Batterie sein.

Wenn alles ordnungsgemäß funktioniert, sollten zu Beginn die Systemzeit während des Kompilierprozesses und anschließend alle 10 Sekunden das aktuelle Datum und Uhrzeit angezeigt werden.

Tipp: Wenn Sie diese Informationen auf einem LCDisplay anzeigen möchten, schauen Sie in die Funktion printDateTime() am Ende des Sketches. Dort wird eine Zeichenkette erzeugt, die am Stück ausgegeben wird. Den gleichen String können Sie auch auf dem Display ausgeben. Oder Sie setzen den String nach eigenen Wünsch anders zusammen und geben ihn dann aus.

Wir wünschen eine frohe Adventszeit. 

Andreas Wolter

für AZ-Delivery Blog

Specials

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert