30.08.2015

Personenwaage mit Internetanschluss: mit Wii Balance Board via Bluetooth ins Internet

Ziel: Personenwaage drahtlos ins Internet

Ein Wii-Balance-Board soll als Personenwaage benutzt werden und zwar so, daß man mit dem Wiegen morgens wenig Aufwand hat: einschalten, draufstellen muß genügen. 
Das gemessene Gewicht wird dann im Internet gespeichert und visualisiert.

Kommunikation über Bluetooth mit Raspberry Pi

Das Wii-Balance-Board kommuniziert per Bluetooth mit der Wii. Das Protokoll ist zwar proprietär, aber in neueren Linux-Kerneln sind dafür Treiber eingebaut. Das heisst ein Raspberry Pi (mit Bluetooth-Dongle) kann die Werte  auslesen und ins Internet bringen.

Existierende Scripte

Stavros Korokithakis hat auf GitHub ein Script zur Verfügung gestellt, das mit Hilfe der wiiboard-simple-Library Werte vom Balance-Board lesen kann. Was hier fehlt, ist eine Weg, die Daten irgendwo zu speichern und darzustellen.

Hardware: Kompatibel zum Wii-Balance-Board: Snakebyte

Auf ebay gibt es günstige "kompatible" Balance-Boards - ich habe ein Snakebyte-Board gekauft und das verwendet.

Problem: Bluetooth-Pairing

Mein SnakeByte hat leider  ein  Problem: man muß es bei jeder Benutzung pairen. Dummerweise ist die "Pair"-Taste im Batteriefach - und am frühen Morgen das Board umdrehen, das Batteriefach zu öffnen und die "Pair"-taste zu drücken ist einfach zu aufwendig.

Hardware-Modifikation

Als Abhilfe habe ich die Power-Taste abgeklemmt und parallel zur "Pair"-Taste geschaltet. Dazu braucht man nur ein Kabel anzulöten, vorher muß man aber 24(!) Schrauben lösen, um da ran zu kommen.

Geöffnetes Balance-Board: Kabel (blau) verbindet Einschalter (linker Kringel) mit Pair-Schalter (rechter Kringel)
Die Schalter sind per Flachbandkabel mit Hauptplatine und Pair-Schalter im Batteriefach verbunden. Ich habe das Kabel vom Einschalter unterbrochen und mit einem extra Kabel an den Pair-Schalter gelötet. Der andere Pol ist am Schalter mit Masse verbunden. Dazu schaut man sich die Kabelführung genau an- das ist ein bischen fummelig.

Ein Druck auf den Einschalter betätigt nun also zusätzlich den Pair-Schalter, indem er dessen Kontakt auf Masse zieht. Erstaunlicherweise klappt es prima: das Board wird eingeschaltet und gleich in den Pair-Modus versetzt..

Bluetooth-Dongle am Raspberry Pi

Für den Raspberry Pi brauch man noch ein USB-Bluetooth-Dongle. Hier ist kann man jedes Dongle verwenden, das erkannt wird, es ist kein Bluetooth-Low-Energy nötig.

Software

Als Software zum Empfang der Daten läuft auf einem Raspberry Pi eine leicht modifizierte Version von Stavros Korokithakis Python-Script gr8w8upd8m8. Es steht auf GitHub zum Download bereit.

Zunächst installiert man auf dem Raspberry Pi die bluez-utils package und die python-bluez-Library.
Anschließend braucht man noch mein modifiziertes Python-Script (https://github.com/hermann-kurz/gr8w8upd8m8) und einen API-Key von Thingspeak.com. Dorthin wandern dann die Messdaten.

Das Python-Script kann dann in einer Endlos-Schleife von einem Shell-Script gestartet werden, oder per daemon-tools auf dem Raspberry Pi installiert werden.

Messung

Nun reicht ein morgendlicher Tritt gegen die Power-Taste: das Balance-Board wird eingeschaltet und der Pair-Vorgang startet. Auf Raspberry-Pi-Seite bekommt das ein Python-Script mit und startet nach dem pairen einen Meßvorgang.

Das Ergebnis wird dann an thingspeak.com übertragen und kann als schöne Kurve angezeigt werden. Hier ein Screenshot (links wurde versehentlich was abgeschnitten).

Links