HowTo: Raspberry Pi – MPR121 Touchsensor via I2C und Node Red auswerten

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:

In der folgenden Listen findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.

Benötigtes Werkzeug:

NumberLink
1xSchraubendreher Set  Bei Amazon kaufen
1xSD Kartenleser  Bei Amazon kaufen

Benötigtes Material:

NumberLink
1x Raspberry Pi  Bei Amazon kaufen
1x Raspberry Pi Netzteil  Bei Amazon kaufen
1x Raspberry Pi Gehäuse  Bei Amazon kaufen
1x Micro SD Karte 64GB  Bei Amazon kaufen
1x MPR121 Breakout board  Bei Amazon kaufen
1x Dupont Kabel  Bei Amazon kaufen


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.

RasPiMPR121
3.3V3.3V
GNDGND
GPIO2SDA
GPIO3SCL

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.

Ansicht des Login Dialogs. Hier müsst Ihr die Login Daten eingeben die Ihr während der Konfiguration des Logins angegeben habt. Infos dazu findet Ihr im Artikel NodeRed - Benutzerlogin einrichten.

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.

Ansicht des Node Red Flows in der NodeRed-Konfigurationsansicht.

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 des Flows für die erste Elektrode.

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. 🙂

Buy Me a Coffee at ko-fi.com       

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.