Allgemein

Calliope mini Aufzeichnen und Visualisieren mit node-red und IFTTT

Immer mal wieder kommt man in eine Situation, wo man die Calliope-Sensor-Daten gerne aufzeichnen würde. Z.B. um sie zu visualisieren. Oder in einer Klassen-Situation, um an einem gemeinsamen Bildschirm alle einlaufenden Daten zu zeigen (es könnten z.B. alle in der Klasse Ihren Hautwiderstand messen o.ä.). Und manchmal würde man die vielleicht sogar gerne noch weiterverarbeiten, z.B. an einen anderen Service schicken, oder per IFTTT (if this then that) als Push-Nachricht auf ein Handy oder eine Email generieren, wenn das Schul-Aquarium zu warm wird…

Es gibt natürlich viele Möglichkeiten das zu tun, in unsren Tests hat sich eine als besonders einfach und gut geeignet erwiesen, und zwar node red. Dabei handelt es sich um eine kostenlose Software, die wahlweise auf dem eigenen Rechner installiert werden kann oder auf einem Schul-Server oder auch irgendwo im Web (es gibt auch Anbieter, die node-red als gehosteten Service anbieten). Die Installation ist aber eigentlich sehr einfach und schnell gemacht, insofern spricht vieles dafür es erstmal lokal auszuprobieren. Node-red ist ein graphischer Editor, mit dem Datenverbindungen hergestellt werden können.

Wie kommen die Calliope-Daten ins Node-Red?

Es gibt dafür drei gute Möglichkeiten:

  1. Per Logging auf die serielle Konsole
  2. Per Lokal-Funk auf einen zentralen Calliope
  3. Per WiFi Modul direkt vom Calliope ins Netz

Nehmen wir an, wir wollen die Helligkeit eines Calliope loggen. Für Lösung 1) muss dann mit dem Konsole-Logging im PXT-Editor der Messwert auf die serielle Konsole geschrieben werden. Sobald der Calliope dann am USB Anschluss hängt werden diese Daten auf dem Host-PC auf der seriellen Schnittstelle sichtbar. Für node-red existiert ein spezielles Zusatz-Modul, mit dem Daten aus der seriellen Schnittstelle ohne Probleme eingelesen werden können (im Menü-Manage Palette-install und nach „node-red-node-serialport“ suchen).

Bei Lösung 2) ist die Idee, dass mehrere Calliopes per Funk-Befehl auf einem vereinbarten Kanal ihre Messwerte an einen zentralen Calliope schicken, der dann wiederum wie in Lösung 1) alle Daten an die serielle Schnittstelle weitergibt.

Bei Lösung 3) kann z.B. das Grove- Wifi-Modul verwendet werden (Anleitung hier). Damit können Daten auch direkt in Internet geloggt werden – entweder von jedem Calliope aus oder wie in Lösung 2) an einem zentralen Calliope, der Daten von anderen einsammelt.

Wenn die Daten so ins node-red einlaufen (kann man leicht per Debug-Node überprüfen) können sie nahezu beliebig weiterverarbeitet werden. Hier soll aber nur auf zwei Möglichkeiten eingegangen werden:

Weiterverarbeitung zu Visualisierung

Zur Visualisierung muss in node-red die Dashboard-Funktionalität nachgerüstet werden (einfach im Menü im Paletten-Manager auf „install“ tab suchen nach „node-red-dashboard“). Sobald diese aktiv ist, stehen zusätzliche Nodes zur Verfügung, eines z.B. macht eine Linien-Graphik sobald es eine Serie von Zahlen zugeführt bekommt (die Zahlen kommen als „text“ aus dem Calliope, daher per JSON-Node die Umformung in das Format „Zahl“).

Mit diesem Mitteln lässt sich ein sehr vorzeigbares graphisches Dashboard zusammenstellen, in dem z.B. alle Messwerte der verschiedenen Forschergruppen in einer Klasse dargestellt werden.

 

Weiterleitung an IFTTT

IFTTT (if this then that) ist ein sehr populärer Web-Service, der der einfachen Logik folgt irgendetwas auszulösen, wenn irgendetwas anderes passiert. Also z.B. eine Alarm-Email zu verschicken, wenn die Temperatur im Schul-Aquarium einen bestimmten Wert überschreitet. Um dies zu erreichen müssen die sog. Maker-Services oder Web-Hooks von IFTTT verwendet werden – dies ist kostenlos möglich. Sobald diese im eigenen Account bei IFTTT aktiviert wurden steht eine spezielle URL zur Verfügung, mit der Events an IFTTT geschickt werden können. Um diese von node-red aus auszulösen gibt es zwei Möglichkeiten – entweder man richtet einen generischen „web-request“-node ein und parametrisiert diesen entsprechend. Oder man installiert ein spezielles IFTTT Modul in node-red, das einige der Schritte ein wenig vereinfacht.

Beide Lösungen sind hier nur knapp dargestellt – man kommt eh nicht drum herum, sich ein bisschen „reinzufrickeln“. Sowohl für IFTTT als auch für node-red gibt es jedoch große und meist sehr hilfsbereite communities im Web und meist auch schon auffindbare Lösungen für spezielle Probleme.

2 Kommentare zu „Calliope mini Aufzeichnen und Visualisieren mit node-red und IFTTT

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s