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.
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) |
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.
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
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
- Script auf GitHub
- Stavros Korokithakis originales Python-Script
- daemon-tools
- Thingspeak.com