Aus dem Kurs: IoT-Grundlagen für Entwickler:innen – Elektronik-Basiswissen

Aktoren und Sensoren im Überblick

In verschiedenen elektronischen Starter Kits finden Sie die meisten Bauteile, die ich bei den Beispielen verwendet habe. Ein paar weiteren Sensoren und elektronische Bauelemente will ich noch kurz erwähnen. Betrachten wir zunächst die Sensoren. Hier haben wir gesehen, wie wir mit einem Fotowiderstand die Helligkeit messen können. Für die Temperatur gibt es sowohl Temperaturwiderstände als auch elektronische Komponenten. Eine Schaltung mit einem Feuchtigkeitsmesser werde ich noch in einem Beispiel zeigen. Zur Distanzmessung lassen sich Ultrasonic-Sensoren verwenden. Dies sind nur ein paar Möglichkeiten der Sensoren. Unter den elektronischen Bauelementen habe ich den EEPROM aufgenommen. Mit diesem lassen sich Werte speichern. Im Microcontroller des Arduino ist ein EEPROM integriert. Es gibt aber auch externe EEPROMs, falls die Speicherkapazität nicht ausreichen sollte. Den ADC, Analog Digital Converter beziehungsweise Umsetzer, haben wir schon gesehen. Auch diesen gibt es als eigenes Bauteil mit einer höheren Genauigkeit. Genauso wie das Gegenstück, den DAC, Digital Analog Converter, der ein digitales Signal in ein analoges umwandelt. Neben grünen LEDs lassen sich auch LEDs verwenden, die ihre Farbe ändern können. Zum Schluss habe ich noch das LCD-Display aufgenommen. Hier haben wir die alphanumerische LCD-Anzeige gesehen. Neben einfach Bauelementen, die lediglich an einen Pin angeschlossen werden müssen, gibt es, wie beim LCD-Display gesehen, auch solche, die eine Bibliothek verwenden. Deshalb werde ich als nächstes bei der Arduino IDE noch auf die Bibliotheken eingehen. Für die verschiedenen Sensoren und elektronischen Bauelemente gibt es passende Bibliotheken. Diese lassen sich innerhalb der Arduino IDE installieren. Hierzu gibt es zwei Möglichkeiten. Unter "Sketch" > "Bibliothek einbinden" können Sie eine ZIP-Datei hochladen. Dies ist notwendig, wenn die Bibliothek nicht unter "Bibliothek verwalten" zu finden ist. Öffnen wir unter "Bibliothek verwalten" den "Bibliotheksverwalter". Sie sehen eine Liste mit sehr vielen Bibliotheken. Diese lassen sich nach Typ und Thema eingrenzen oder Sie können nach einem entsprechenden Bauteil suchen, wie, zum Beispiel, "LED Backpack". Hier sehen Sie, dass die Bibliothek bereits installiert ist und auch die Version. Meistens werden mit den Bibliotheken auch Beispiele mitgeliefert. Diese finden Sie unter "Datei" > "Beispiele" weiter unten bei "Beispiele aus eigenen Bibliotheken" > "LED Backpack" > "quadalphanum". Dabei handelt es sich um das alphanumerische LCD-Anzeigen-Beispiel. Wie Sie vielleicht gesehen haben, habe ich mehrere Bibliotheken installiert. Unter anderem auch eine Bibliothek für einen Temperatur- und Luftfeuchtigkeitssensor. Die "DHT Sensor library". Das DHT-Testerbeispiel zeigt, wie der Sensor angesprochen werden kann und welche Methoden zur Verfügung stehen. Ich habe die Schaltung bereits aufgebaut und starte das Beispiel und öffne den seriellen Monitor. Wie Sie sehen, wird die Luftfeuchtigkeit, Temperatur in Grad Celsius und Fahrenheit und ein Heat Index ebenfalls in Celsius und Fahrenheit angezeigt. Schauen wir noch die Schaltung an. Für die Schaltung habe ich die alphanumerische Anzeige und den Temperatur- und Luftfeuchtigkeitssensor aufgebaut. Dieser ist als ein elektronisches Bauteil erhältlich und benötigt Ground, 5 Volt und ist mit einem Widerstand an Pin 2 angeschlossen. Die LCD-Anzeige zeigt abwechselnd die Temperatur in Celsius und die Luftfeuchtigkeit an. Durch die Beispiele, mit denen Bibliotheken mitgeliefert werden, kann man schnell eine Schaltung aufbauen und mehrere Bauteile kombinieren. Im Gegensatz zur LCD-Anzeige, verwendet der Temperatursensor kein I2C. Man könnte ihn aber mit einem zweiten Arduino oder Microcontroller als I2C-Bauteil aufbauen und damit die Schaltung modularisieren. In diesem Beispiel verwende ich zwei elektronische Bauteile, die mit I2C kommunizieren. Ein Mal eine Liquid-crystal-LCD-Anzeige und einen Feuchtigkeitsmesser. Zusätzlich werde ich noch ein Basilikum verwenden. Wie Sie auf der Rückseite der LCD-Anzeige sehen, ist diese mit einer zweiten Platine verbunden. Diese steuert die LCD-Anzeige, bietet aber gleichzeitig eine I2C-Kommunikation an. Anstelle diese Reihe von Pins mit unserer Schaltung zu verbinden, benötigen wir lediglich diese vier Pins, und bei I2C wissen wir auch, wie diese zu verbinden sind. Ground, 5 Volt, Daten und Takt. Das einzige, was wir nicht wissen, ist die Adresse der jeweiligen Bauteile. Zudem sind hier drei Lötstellen zu sehen. Mit ihnen kann die Adresse noch modifiziert werden. Verlöte ich, zum Beispiel, diese Lötstelle, dann erhöht sich die Adresse um zwei. Dies ist dann notwendig, wenn zwei Bauteile die selbe Adresse haben, oder wenn ich, zum Beispiel, mehrere Anzeigen verwenden möchte. Bevor wir die Anwendung implementieren, zeige ich Ihnen, wie Sie die Adressen herausfinden können. Ich habe nun zwei Bauteile, die über I2C kommunizieren. Wie finde ich aber heraus, welche Adressen diese Bauteile haben. Ich verwende hierzu das I2C-Scanner-Beispiel, das Sie unter "Datei" > "Beispiele" > "Wire" > "i2c_scanner" finden. Der Scanner geht alle Adressen von 1 und unterhalb 127 durch. Wird eine Adresse gefunden, dann wird sie ausgegeben. Das Programm habe ich schon hochgeladen. Ich öffne noch den seriellen Monitor. Das LCD-Display ist bereits verbunden und Sie sehen die hexadezimale Adresse 27. Als nächstes verbinde ich noch den Feuchtigkeitssensor. Er hat die Adresse 36. Damit kennen wir die Adressen und es besteht kein Konflikt. Schauen wir uns zunächst ein Beispiel für das Liquid-crystal-LCD-Display an. Die Anzeige wird an Adresse 27 registriert. Display hat 16 Zeichen und 2 Zeilen und wird mit "init" initialisiert. "backlight" schaltet das Hintergrundlicht an. Mit "setCursor" wird die Position gesetzt und "print" gibt den Text aus. Mehr ist nicht notwendig. Für den Feuchtigkeitssensor öffne ich das Soil Sensor-Beispiel. Dies finden Sie unter "Datei" > "Beispiele" > "seesaw Library" > "soil_sensor" > "soilsensor_example". In der Setup-Methode wird der Soil Sensor an der Adresse 36 registriert. Die Loop-Methode liest die Temperatur. Für die Feuchtigkeitsmessung wird die Kapazität gemessen. Je feuchter es ist, umso höher ist die Kapazität. Starten wir zunächst das Programm und öffnen den seriellen Monitor. Dieser zeigt die Temperatur und die Kapazität an. Mit ihr können wir die Feuchtigkeit messen und gleichzeitig wissen wir, wie warm es ist. Ich habe das Programm noch um die LCD-Anzeige erweitert. Da die LCD-Anzeige nur 16 Zeichen anzeigen kann, habe ich die Temperatur- und Kapazitätsnamen gekürzt. Ich gebe die Werte noch formatiert aus. Das Programm ist bereits hochgeladen. Die Schaltung habe ich bereits aufgebaut. Da beide Bauteile I2C verwenden, sind diese zusammen mit Ground, 5 Volt, der Datenleitung und dem Takt verbunden. Das Display zeigt die aktuelle Temperatur und Kapazität an. Stecke ich nun den Feuchtigkeitssensor in den Basilikum, ändert sich der Kapazitätswert. Der Basilikum scheint genügend Wasser zu haben. Der Kapazitätswert ist hier jedoch nicht hilfreich. Besser wäre es, wenn das LCD-Display anzeigt, ob der Basilikum Wasser braucht oder bereits genügend hat. Und schon fangen die Ideen an. Vielleicht kann das eine rote und grüne LED anzeigen oder mit einem Servomotor und einem Zeiger die Werte vielleicht aufzeichnen und plotten oder mit Firmata im Internet anzeigen. Ich hoffe, ich habe Ihnen mit diesem Kurs genügend Ideen geliefert und auch die Grundlagen, um diese umzusetzen. Ich wünsche Ihnen viel Erfolg mit Ihren Projekten.

Inhalt