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
Hallo, ich überlege eine Anbindung an einen Logging-Mechanismus an eine Waage zu erstellen. Das Wii-Balance Board ist mir dank offener Schnittstellen ins Auge gesprungen. Können Sie bitte auf die Messgenauigkeit der Waage eingehen? Ist sie als Personenwaage letztendlich brauchbar?
AntwortenLöschenGrüße Christian
Ich kann nichts zur absoluten Genauigkeit sagen, aber die Werte scheinen plausibel :-) Was mich ein bischen stört ist, dass die Auflösung nicht besonders groß ist (etwa 500g-Schritte) und zwei Messungen, die direkt hintereinander gemacht werden, sich öfter mal unterscheiden. Für mich ist das aber irrelevant, da das Wiegen keinen Aufwand macht. Deshalb kann ich mich öfter mal wiegen und eine Tendenz ist sehr gut erkennbar.
LöschenVielen Dank für die Antwort. Ich denke ich kann mit der Ungenauigkeit leben für meinen Einsatzzweck. Ich bin mir noch nicht sicher wie ich die Anbindung realisiere - ggf. per Android App. Würden sie zum originalen Balance Board raten wegen der Pairing Probleme? (Auch wenn die Auflösung dort wieder anders sein könnte)
AntwortenLöschen