DIY-Smartwatch

Ein Arduino, drei Sensoren und ein Display: Schon hat man eine eigene Smartwatch, für die sich dank der einsteigerfreundlichen Arduino-IDE leicht eigene Apps programmieren lassen.

In Pocket speichern vorlesen Druckansicht
Eine Uhr mit gelbem Armband und Adafruit-Display.
Lesezeit: 7 Min.
Von
  • Guido Burger
Inhaltsverzeichnis

Eine Smartwatch zeichnet sich im Kern dadurch aus, dass sie eine digitale Uhr mit Sensoren ist (z.B. mit Schrittzähler), welche zusätzlich eine Funkverbindung zu einem Smartphone hat. Hierüber können weitere, optionale Funktionen aktiviert und Daten ausgetauscht werden.

Unsere Smartwatch zum Selberbauen soll dabei nicht den Wettbewerb mit kommerziellen Produkten aufnehmen, sondern vielmehr verdeutlichen, welche Technik dahinter steckt. Man muss nicht unbedingt ein Elektronik-Ingenieur mit einem teurem Labor sein, um sich selber eine Smartwatch zu bauen. Im Nachfolgenden stellen wir ein Referenzdesign mit allen verwendeten Komponenten vor.

Make 4/15

Mehr zum Thema gibt es in Ausgabe 4/15 der Make.

Die Smartwatch besteht aus einem Sony-Armband, einem Gehäuse aus dem 3D-Drucker, dem Display sowie dem Platinchen mit Arduino und einem Sensorboard.

Als Anzeige verwenden wir das SHARP Memory Display mit einer Auflösung von 96x96 Punkten. Dieses Display vereint die Vorteile eines E-Ink Displays mit einem sehr geringen Stromverbrauch (2µA refresh/4µA write) und der schnellen Reaktion eines TFT-Displays. Außerdem zeigte sich im Praxistest, dass bei voller Sonneinstrahlung das Display ein exzellentes Bild abgibt. Das Display nutzt ein „Soft“-SPI Interface zur Kommunikation mit dem Mikrocontroller. Das ausgewählte Display lässt sich komfortabel mit Bibliotheken von Adafruit ansteuern. Neben Texten lassen sich damit auch leicht eigene Grafiken auf das Display zaubern

Das Sharp Memory Display auf einem Memory Breakout-Board von Adadfruit.


Dazu muss man nur die freien Bibliotheken Adafruit_SHARP_Memory_Display und Adafruit-GFX-Library in die Arduino-IDE einbinden.

Wie eingangs erwähnt, wollen wir eine offene, schnell erweiterbar Smartwatch bauen – deshalb setzen wir auf eine MCU von Atmel, dem aus dem Arduino UNO bekannten ATmega328P mit seinem interessanten Stromspar-Modus. Im Ruhezustand nimmt er unter 2µA auf, können aber trotzdem die volle Kompatibilität zur Arduino-Welt nutzen.

Grundsätzlich benutzen wir 3V bzw. 3.3V als Spannungsversorgung und sind damit mit den später verwendeten Sensoren direkt Pegelkompatibel. Unsere Smartwatch soll auch mit einem Smartphone „verdrahtet“ werden können. Hierzu bietet sich Bluetooth 4.0 an, auch als Bluetooth Low Energy bekannt.

Wir verwenden das BLE113 (in den Bildern noch BLE112) respektive von SiliconLab (BueGiga), es lässt sich sehr leicht mit unterschiedlichen Bluetooth-Profilen bestücken, welche gut dokumentiert sind. Wir benutzen eine serielle Kommunikation (UART Profile) zwischen ATmega328P und BLE113. Dazu haben wir auf dem BLE113 bereits ein serielles Profil vorinstalliert. Auf dem Arduino können wir eine virtuelle serielle Schnittstelle auf PIN 6 und 9 einrichten. Das BLE113 von SiliconLab (BueGiga) ist bereits FCC und CE zertifiziert und hat eine Vorzertifizierung für die Bluetooth-Nutzung.

Die Vorderseite des Platinchens trägt den ATmega.

Auf der Rückseite ist bereits das Bluetooth-Low-Energy-Modul verlötet.

Auf dem ATmega ist der Arduino-Bootloader vorinstalliert. Das Platinchen gibt es bei Tindie für 41 Euro einzeln oder zusammen mit einem Sensorshield für 82 Euro (im Warenkorb auswählen)

Intelligent wird unsere Uhr erst durch das Sensorshield. Darauf sind drei unterschiedliche Sensoren verbaut: ein UV-Sensor (Sonnenbrand. LAPIS Semiconductor ML-8511), ein Barometer- (Höhe, Wetter, Bosch Sensortech BMP180) und ein 3-Achs-Beschleunigungssensor (Analog ADXL362 3D) mit dem wir Bewegungen erkennen können. Letzterer ist insbesondere interessant, da wir die Smartwatch auch schlafen lassen können, wenn sie keine Bewegung erkennt. Das Sensorshield dient auch der Stromversorgung der Uhr.

Der Energiehaushalt einer Smartwatch bekommt besondere Aufmerksamkeit. Es kann generell ein LiPo-Akku oder auch eine Knopfzelle zum Einsatz kommen. Wir entscheiden uns in diesem Projekt für eine Knopfzelle aus zwei Gründen: eine Knopfzelle hat im Vergleich zu einem LiPo einen relativ höhere Energiedichte und da wir durchweg Komponenten mit 3V Spannungsversorgung benutzen, entfällt auch ein Spannungswandler. Es muss aber auf die polrichtige Einsetzten der Batterie geachtet werden! Der Pluspol muss von der Platine weg zeigen. Falsch herum reingesteckt, kann die Batterie die Elektronik beschädigen. Künftige Boarddesigns werden einen Verpolungsschutz enthalten

Der Aufbau der Sensoreinheit und ihre Anschlüsse.

Für die Sensoren müssen drei Librarist für den ADXL362, den BMP180 und den ML8511 zur Arduino-IDE hinzugefügt werden.