Dank des I2C Bus kann der Raspberry Pi mit vielerlei praktischen Sensoren und Aktoren ausgestattet werden. Eine (meiner Meinung nach) sehr elegante Möglichkeit für Benutzereingaben bietet dabei der MPR121.
Der MPR121 ist ein Controller, der es ermöglicht bis zu 12 Touch-Elektroden auszuwerten. Ihr könnt damit also bis zu 12 Elektroden aufbauen, welche dann als Taster genutzt werden können. Je nach Aufbau der Elektrode könnt Ihr diese Berührungen dabei auch durch dünne Materialien hindurch oder sogar nur durch Annäherung (ohne Berührung) detektieren.
Ich verwende diesen zum Beispiel an meinem MagicMirror um den Bildschirm manuell ein- und ausschalten zu können.
Alles was Ihr benötigt um den MPR121 per NodeRed auszulesen und auf Tastendrücke zu reagieren, findet Ihr im folgenden Artikel.
Sicherheitshinweise
Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/
Affiliatelinks/Werbelinks
Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂
Voraussetzungen
Hilfreiche Artikel:
Damit Ihr neue Nodes installieren könnt sollte NodeRed natürlich schon installiert sein.
Wie ihr einen RaspberryPi dazu vorbereitet und dann NodeRed darauf installiert ist in den folgenden Artikeln beschrieben.
Die folgenden drei Artikel beschreiben was zu tun ist um den RaspberryPi soweit vorzubereiten:
- RaspberryPi – Einrichten für Nerdiys!
- RaspberryPi – Die Erste Konfiguration!
- RaspberryPi – Den RaspberryPi über SSH steuern
- NodeRed – Installation von NodeRed auf dem RaspberryPi
- NodeRed – Neue Nodes installieren
- NodeRed – Node-Code importieren und exportieren
In der folgenden Listen findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.
Benötigtes Werkzeug:
Benötigtes Material:
MPR121 korrekt anschließen
Damit Euer Raspberry Pi mit dem MPR121 kommunizieren kann, müsst Ihr ihn natürlich korrekt an die GPIOs des Raspberry Pi anschließen.
Dazu müsst Ihr das MPR121 Breakout board wie abgebildet mit dem Raspberry Pi verbinden.
RasPi | MPR121 |
---|---|
3.3V | 3.3V |
GND | GND |
GPIO2 | SDA |
GPIO3 | SCL |
I2C-Bus in der RaspberryPi Konfiguration aktivieren.
Damit Ihr den I2C Bus mit dem Raspberry Pi nutzen könnt, muss dieser zunächst aktiviert werden. Dazu gibt es zwei Wege.
I2C Bus des Raspberry Pi per SSH aktivieren
Um den I2C Bus über die SSH Verbindung zu aktivieren, müsst Ihr eine Verbindung per SSH zu Eurem Raspberry Pi aufbauen und dann den folgenden Befehl eingeben.
sudo raspi-config
Daraufhin erscheint das dargestellte Menu.
Navigiert darin mit den Pfeiltasten zu der Option
- Interface options
und bestätigt diese mit “Enter”.
Navigiert in dem nächsten Menü mit den Pfeiltasten zu dem Eintrag
- I2C
Bestätigt den erscheinenden Dialog indem Ihr mit den Pfeiltasten auf
- Yes
wechselt und mit Enter bestätigt.
Daraufhin wird nochmal eine Bestätigung der Aktivierung angezeigt.
Nun könnt Ihr das Menü verlassen indem Ihr auf
- Finish
wechselt und mit “Enter” bestätigt.
I2C Bus des Raspberry Pi über das grafische Interface aktivieren
Um den I2C Bus über die grafische Benutzeroberfläche zu aktivieren, müsst Ihr zunächst auf das Raspberry Pi Icon in der oberen linken Ecke klicken.
Öffnet dann das Programm
- Raspberry Pi Configuration
Wechselt in dem dargestellten Fenster in den Reiter
- Interfaces
setzt den Abschnitt “I2C” auf “enabled” und bestätigt dies durch einen Klick auf “OK”
In die NodeRed Konfigurationsoberfläche einloggen
Bevor Ihr eure NodeRed Konfiguration bearbeiten könnt müsst Ihr Euch - falls aktiviert - zunächst in die NodeRed Konfigurationsoberfläche einloggen.
Installation der benötigten Node
Damit NodeRed mit Eurem bereits angeschlossenem MPR121 kommunizieren kann, müsst Ihr zunächst die Node “node-red-contrib-mpr121” installieren. Wie Ihr eine Node installieren könnt ist im Artikel NodeRed – Neue Nodes installieren beschrieben.
Node Red code importieren
In diesem Abschnitt findet Ihr den Node Red code den Ihr benötigt. Wie ihr diesen in Eure NodeRed Umgebung importieren könnt ist im Artikel NodeRed – Node-Code importieren und exportieren beschrieben.
Den Node Red code findet Ihr im Nerdiy-Git-Repository unter folgendem Link:
Der unten stehende NodeCode wertet alle 12 Elektroden des MRP121 aus. Damit dies funktioniert muss er per I2C an den Raspberry Pi angeschlossen sein. Außerdem müsst Ihr die korrekte I2C Adresse einstellen.
Für jede Elektrode wird Euch auf dem Dashboard der aktuell gemessene Wert angezeigt. Dieser Wert ändert sich je nach Umgebung und auch ob ein Finger (oder anderes) in der Nähe ist, was eine Aktion auslösen soll. Damit eine Annäherung/Berührung auch sicher detektiert werden kann, könnt Ihr im Dashboard auch den Schwellenwert für jede Elektrode einstellen. Probiert es einfach aus. Man kann eigentlich nichts kaputt machen. 🙂
Beim loslassen einer Elektrode wird dann ein Signal zu der zugehörigen Link-Node gesendet, welches Ihr nutzen könnt um beliebige Schaltaktionen auszuführen.
Indem Ihr auf die MPR121 Node klickt, könnt Ihr die Adresse Eures MPR121 konfigurieren. Diese muss mit der Hardwareseitig konfigurierten Adresse des MPR121 übereinstimmen.
Ansicht im Dashboard
Hier seht Ihr den aktuellen Messwert jeder Elektrode und könnt auch den Schwellwert für jede Elektrode einstellen.
Weitere Artikel zum Thema
In der folgenden Kategorie findet Ihr weitere Links zum Thema Rasperry Pi und Node Red.
Viel Spaß mit dem Projekt
Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂
P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂