1 DIY TeaMaker Eichhorn, Philipp Ploner, Alexander I. Einführung Tea. Early Grey. Hot. – Jean-Luc Picard Kaffeemenschen haben es gut. Es ist nicht nur mega Hip ein Kaffeeliebhaber zu sein, sondern es gibt auch eine ganze Reihe cooler Gadgets, die das Herz eines jeden Kaffeetrinkers höher schlagen lassen. Angefangen bei bunten Coffee-to-go Bechern, bis hin zu vollautomatischen Kaffeemaschinen, die einem schon morgens ohne eigenes Tun mit dem herrlichen Geruch von frisch gemahlenen Bohnen aufwecken. Teeliebhaber hingegen müssen sich damit begnügen, frühmorgens mit verschlafenen Augen vor dem Wasserkocher zu stehen und die Ziehzeit abzuwarten, nur um sich anschließend an einem noch viel zu heißen Tee die Zunge zu verbrennen. Wir wollen das ändern! Im Rahmen der Vorlesung DIY an der FAU Erlangen-Nürnberg haben wir den ersten Prototypen einer entsprechenden Teemaschine entworfen: den TeaMaker. Bequem per Smartphone lässt sich bei ihm eine frische Tasse Tee “bestellen”. Im Folgendem wird beschrieben, wie der TeaMaker funktioniert, und welche Bauteile notwendig sind, um diesen nachzubauen. Abbildung 1: Der TeaMaker II. Hardware In diesem Abschnitt werden die zentralen Hardwarebestandteile des TeaMakers vorgestellt. Die Beschriftungen in Abbildung 1 entsprechen dabei den nachfolgenden Abschnittsbezeichnern. A. Teebeutel-Spender Hier kommen die Teebeutel rein. Durch Drehen des Spenders fallen die Teebeutel, durch ein Loch in der Bodenplatte, direkt in die Tasse. Durch Links- bzw. Rechtsdrehen des Spenders lässt sich dabei jederzeit zwischen zwei verschiedenen Teesorten wählen. Der Spender besteht im Wesentlichen aus drei Bauteilen: einer Bodenplatte, einem stehenden Zylinder mit zwölf Fächern für Teebeutel und einem Schrittmotor. Unter einem der Fächer ist ein Loch, weshalb effektiv nur elf Fächer genutzt werden können. Abbildung 2: Der Teebeutelspender an der Maschinenoberseite 2 1) Bodenplatte: Die Bodenplatte ist ein einfaches Stück Holz mit einem Loch in der Form eines stehenden Teebeutels. Es empfiehlt sich das Loch deutlich größer als der eigentliche Teebeutel zu gestalten, da diese sonst leicht beim Drehen des Zylinders stecken bleiben. 2) Teebeutel-Halter: Der Teebeutel-Halter wurde im 3D-Drucker am FabLab der FAU entwickelt. Verwendet wurde ein Ultimaker 2 mit Einstellungen auf “normaler Qualität”. Bei einer Fülldicke von 20% ergab sich ein Gewicht von 75 Gramm. Die auf GitHub befindliche Datei teebeutelspender_rad.scad wurde mit OpenSCAD erstellt und beschreibt die Form des Halters. Neben dem Hauptzylinder befinden sich am Rand noch drei kleinere Zylinder mit jeweils einem Loch. Diese waren ursprünglich als eine Art Kugellager gedacht, für den Fall, dass die Verbindung zwischen Teebeutel-Halter und Motor zu instabil ist. In der Praxis war dies allerdings nicht nötig. 3) Motor: Beim Motor handelt es sich um einen Schrittmotor 28BYJ-48 mit angeschlossener Antrieb Modulplatine ULN2003. Die sechs Pins (siehe Tabelle I) der Steuerungsplatine lassen sich direkt über einen Raspberry Pi ansteuern. Pin + und IN 1-4 Beschreibung 5 bis 12 V Versorgungsspannung Ansteuerung der Spulen im Schrittmotor, siehe auch Datenblatt Tabelle I: Pin-Belegung am Songle SRD-05VDC-SL-C Der Motor verfügt über acht Spulenzustände und besitzt dazu noch ein Getriebe mit einer Getriebeübersetzung von 1 zu 64 (engl. “gear-reduction-ratio”). Für eine volle Umdrehung sind damit 360◦ /(5.625◦ /64) = 4096 = 512 ∗ 8 Schritte notwendig. B. Teebeutel-Auffang-Sieb Damit die Teebeutel nach der Ziehzeit wieder aus der Tasse entfernt werden können, befindet sich zwischen Tasse und Teebeutel-Spender ein bewegliches Sieb, welches in die Tasse getaucht werden kann. Die Teebeutel fallen dort hinein und können nach der Ziehzeit mittels Schwenkung des Siebes in einen Auffangbehälter transportiert werden. 1) Servomotor: Ein Servomotor wird verwendet, um das Teesieb in die Tasse zu schwenken und dieses wieder herauszunehmen und den Inhalt zu leeren. Der verwendete Servo benötigt mindestens 135◦ Aktionsradius und genügend Kraft, um den Beutel auswerfen zu können. Dabei zu beachten ist, dass ein mit Wasser vollgesogener Teebeutel deutlich schwerer ist, als ein Abbildung 3: Teebeutel-Auffang-Sieb Teebeutel direkt aus der Verpackung. Hinzu kommt natürlich das Gewicht des Siebes. 2) Sieb: Der Sieb stammt aus einer alten Teekanne und war ursprünglich für loose Teeblätter gedacht. Die Halterung für das Sieb ist eine dünne Sperrholzplatte mit passendem Loch in der Mitte, in dem das Sieb mit Hilfe von kleinen Drähten befestigt wurde. Für das große Loch im Holz kam eine Lochsäge zum Einsatz, das Holz selbst wurde mit einer Tischsäge in Form gebracht. C. Wasserkocher Für das heiße Wasser haben wir eine alte Kaffeemaschine zerlegt, die über einen Schlauch heißes Wasser direkt in die Tasse leitet. Wie die meisten einfachen Kaffeemaschinen besitzt diese einen Durchlauferhitzer, welcher das Wasser direkt beim Durchlaufen des Schlauches erhitzt, und anschließend über den dabei enstandenen Druck durch den Schlauch pumpt. 1) Die Kaffeemaschine: Wir haben eine gebrauchte Kaffeemaschine über ebay-Kleinanzeigen gekauft und zerlegt. Diese bestand zunächst aus einem Wassertank, einem An-/Ausschalter, einer beheizten Platte für den Kaffeepot und einem Kaffeefilter, durch den das Wasser in den Pot läuft. Für den TeaMaker wurde alles was nicht zur Elektronik bzw. dem Durchlauferhitzer gehört mit einer einfachen Handsäge abgeschnitten, und anschließend das Ende des Schlauches freigelegt. Dieser wurde mit einem lebensmittelechtem und hitzebeständigem Schlauch aus Silikon verlängert, 3 Abbildung 4: Detektorplatte mit Taster (vorne) und Status-LED (mittig) und somit das Wasser in die Tasse gelenkt. Ein einfacher PVC-Schlauch aus dem Baumarkt funktioniert an dieser Stelle nicht, da dieser bei hohen Temperaturen zu biegsam wird und Schadstoffe an das Wasser abgibt. 2) Steuerung: Die Kaffeemaschine verfügt über einen Schalter der direkt den Durchlauferhitzer ansteuert und dafür sorgt, dass heißes Wasser durch den Schlauch gepumpt wird. Damit sich das Wasser direkt über den Raspberry Pi steuern lässt, ohne manuell den Schalter bedienen zu müssen, haben wir uns von einem erfahrenen Elektriker (Vorsicht, 230 V!) ein Relais in die Kaffeemaschine einbauen lassen, welches den Strom an der Kaffeemaschine ein- und ausschalten kann. Bei dem Relais handelt es sich um ein Songle SRD-05VDC-SL-C mit 2 Kanälen und den in Tabelle II dargestellten Anschlüssen. Abkürzung COM NC NO Volle Bezeichnung Common Normally Closed Normally Open Pi verbunden. Die Stromversorgung erfolgt über die 3.3 V des Rasperry Pi. Um Fehlinterpretationen durch eine fehlende Masseverbindung bei offenem Taster zu verhindern, wurden die 3.3 V nicht direkt über den Taster mit dem GPIO-Eingang verbunden. Stattdessen wurden die 3.3 V über den Widerstand mit dem GPIO-Pin verbunden, so dass diese immer anliegen. Im geschlossenen Zustand des Tasters wird der GPIOPin mit einer Masseleitung verbunden, so dass das Signal auf 0 V gezogen wird. Dies erfordert zwar eine negation bei der Auswertung mittels Software, garantiert dafür aber zu jeder Zeit ein definiertes Signal. 2) Statusanzeige: Als Design-Element, und um den Maschinenstatus direkt am Gerät ausgeben zu können, wurde in die transparente Plexiglasscheibe eine LED integriert. Die möglichen Zustände sind in Tabelle III aufgeführt. LED-Status Aus Blitzt selten Blinkt schnell An Tabelle III: LED-Stati Angeschlossen ist die LED über einen GPIO-Pin des Raspberry Pi. Zusätzlich wird ein Vorwiderstand verwendet, um weder LED noch Raspberry Pi durch zu hohe Ströme zu beschädigen. Die Werte für ULED und ILED erhält man aus dem Datenblatt der jeweiligen LED. Den Wert des benötigten Vorwidertandes erhält man mit folgender Berechnung, die unsere Daten als Beispiel nimmt: Uges − ULED ILED 3.3 V − 3.2 V = 20 mA = 5W RV = Bedeutung Gemeinsamer Leiter Öffner Schließer Tabelle II: Pin-Belegung am Songle SRD-05VDC-SL-C D. Tassen-Detektor und Status-LED Die Tasse wird auf eine drucksensitive Platte gestellt, die über einen Taster erkennt, ob sich eine Tasse im TeaMaker befindet. Eine LED-Anzeige visualisiert den Tassen- und Bearbeitungsstatus. 1) Tassen-Detektor: Zur Tassen-Erkennung wurde eine einfacher, sich unter einer Plexiglasscheibe befindlicher Taster verwendet. Der Taster ist über einen 1 kW Wiederstand mit den GPIOs des Raspberry Bedeutung Keine Tasse auf dem Detektor Leere Tasse erkannt Tasse ist derzeit in Verwendung Teezubereitung ist abgeschlossen ULED ILED Uges RV LED-Spannung [V] LED-Strom [A] Versorungsspannung [V] Vorwiederstand [Ω] E. Zentrale Alle Komponenten sind mit einem Raspberry Pi verbunden, auf dem die Software zur Steuerung der Maschine läuft. Eine kleine Platine enthält die zum Anschluss benötigten Schaltungen und verteilt die 3.3 V des Raspberry Pi und die 5 V des zweiten Netzteils an die jeweiligen Komponenten. 4 (a) Herstellung der Platine (a) Raspberry Pi in der Bodenplatte (b) Pinbelegung an der Platine Abbildung 6: Die Hauptplatine (b) Pinbelegung am Raspberry Pi Abbildung 5: Die Zentrale: Ein Raspberry Pi 1) Raspberry Pi: Der Raspberry Pi kommt für die Steuerung der Elektronik sowie zur Bereitstellung der REST API zum Einsatz. Die vom TeaMaker verwendete Pinbelegung ist in Abbildung 5b grafisch dargestellt. 2) Hauptplatine: Die Bezeichnung “Hauptplatine” bezieht sich nicht auf deren Größe, sondern auf deren “zentrale” Rolle im Hinblick auf die Steuerung der Peripheriegeräte. Es handelt sich bei der Platine um eine kleine, von Hand gelötete Rasterplatte. Nicht alle Komponenten lassen sich direkt an den Raspberry Pi anschließen, da entweder Widerstände vorgeschalten werden müssen, zusätzliche 3.3 V bzw. Masse-Pins erforderlich sind oder eine externe 5 V Stromversorgung angeschlossen werden muss. Um die Platine möglichst klein und einfach zu gestalten, werden einige Modulkabel direkt mit dem Raspberry Pi verbunden und nicht alles zentral über die Hauptplatine angeschlossen. Dies betrifft z. B. die GPIOs für den Schrittmotor, da dieser in seiner Ansteuerungselektronik bereits selbst die erforderlichen Abbildung 7: Bodenplatte mit versenktem Kabel Widerstände enthält. Eine weitere wichtige Aufgabe der Platine ist das Überbrücken der Masse beider Netzteile (1x 3.3 V Raspberry Pi und 1x 5 V für die Motoren). Dies ist erforderlich, damit die komplette Anlage ein gemeinsames Masse-Potential hat. Die Pinbelegung der Platine ist in Abbildung 6b dargestellt. F. Bodenplatte Die Bodenplatte besteht aus einer stabilen Holzschicht, sowie einer darüber liegenden StyrodurPlatte. Während das Holz in erster Line dafür sorgt, dass das gute Stück nicht auseinander fällt, werden im Styordur die Elektronik-Kabel und Komponenten versteckt und vor Spritzwasser geschützt. 5 III. Software Die Steuerung des TeaMakers erfolgt über zwei Software-Komponenten: einem REST-basiertem Server, entwickelt mit NodeJS, welcher auf dem Raspberry Pi läuft und einer Android-App, welche über diesen Server Befehle an den TeaMaker schicken kann. Zusätzlich bietet der Server die Möglichkeit an, über Google Cloud Messaging (GCM) Push-Nachrichten direkt an die App zu schicken, etwa wenn der Tee fertig ist. A. Server In diesem Abschnitt wird der TeaMaker-Server beschrieben. Er ist für die Steuerung und Überwachung der Elektronik zuständig und stellt eine REST API bereit, über die Steuerbefehle und Statusabfragen erfolgen können. Ein besonderes Feature ist die Anbindung an das Google Cloud Messaging, welches dem Server ermöglicht Pushnachrichten an registrierte Clients zu versenden. Die nachfolgenden Inhalte sind für einen Raspberry Pi Model B, Revision 2 geschrieben, sollten aber nahezu ohne Anpassung auch auf neueren Modellen und mit etwas mehr Anpassung auch auf ähnlichen Geräten lauffähig sein. 1) Steuerung Motoren: Der Servomotor und Schritttmotor werden jeweils über kleine, eigenständige Python-Skripte angesteuert, was sich in der Praxis als Vorteilhaft erwiesen hat, da einzelne Komponenten rudimentär auch ohne Server gesteuert werden konnten. Zur Steuerung des Servomotors ist ein konstantes Signal notwendig, welches angibt, welchen Winkel der Motor anfahren soll. Da der Raspberry Pi von Haus aus allerdings nicht echtzeitfähig ist, und somit Programme, inklusive der Motorsteuerung, jederzeit vom UNIX Scheduler pausiert werden können, kommt es zu vielen kleinen Verzögerungen vom Signal an den Servomotor, was zu einem “Zittern” führt. Die im Rahmen vom TeaMaker eingesetzte Lösung besteht darin, das Signal an den Motor auszuschalten, sobald eine finale Position angefahren wurde, wodurch der Motor seine Position an dieser Stelle hält. 2) Schnittstelle: Tabelle IV zeigt die RESTSchnittstelle des Servers. Die wesentlichen Punkte sind: Teesorten bearbeiten, Tee zubereiten, Status abfragen und Teepläne anlegen. Mit Hilfe von Teeplänen kann der TeaMaker eigenständig Tee zu einem bestimmten Zeitpunkt zubereiten, ohne, dass ein Nutzer vorher den Vorgang manuell starten muss. GET GET PUT DELETE POST / teas / t e a s /{ i d } / t e a s /{ i d } / t e a s /{ i d } / teas POST / t e a s /{ i d }/ brew GET / status GET GET PUT DELETE POST / schedules / s c h e d u l e s /{ i d } / s c h e d u l e s /{ i d } / s c h e d u l e s /{ i d } / schedules Tabelle IV: Server REST-Schnittstelle Auf Tasse warten Tasse erkannt Sieb herunterfahren Teebeutel einwerfen Wasser einschalten Ca. 50 Sekunden warten Wasser ausschalten Ziehzeit warten Sieb herausnehmen Fertig Abbildung 8: Teezubereitung 3) Teezubereitung: Die zur Teezubereitung notwendingen Schritte sind in Abbildung 8 aufgezeigt. Die 50 Sekunden zwischen Ein- und Ausschalten der Kaffeemaschine sind dabei so gewählt, dass genug Wasser für eine Tasse produziert wird. Die Ziehzeit ist variable und kann über die REST-Schnittstelle für jeden Teeart separat eingestellt werden. B. Android-App Zur bequemen Steuerung des TeaMakers wurde eine Android App entwickelt. Der Quellecode und eine genaue Anleitung zur Installation befinden sich auf 6 (a) Teesorten mit Ziehzeiten (b) Pläne für die Zeitsteuerung (c) Anzeige des Maschinenstatus (d) Pushbenachrichtung zu fertigem Tee Abbildung 9: Screenshots unserer Android-App GitHub. Im wesentlichen verfügt die App über drei Features: existierende Teesorten bearbeiten und neue anlegen, Teezubereitung starten und Tee-Zeitpläne erstellen und bearbeiten. Wärend der Teezubereitung sieht der Benutzer eine Reihe von Animationen die den aktuellen Zustand der Teemaschine darstellen. Sobald ein Tee fertig ist wird der Nutzer per PushNotification davon in Kentniss gesetzt. IV. Ausblick Der erste Prototyp des TeaMakers hat gezeigt, dass Teemaschinen im DIY-Manieren bauen durchaus realistisch und machbar ist. Allerdings bedarf es für einen zuverlässigen und sicheren Betrieb der Teemaschine noch eine Reihe von Änderungen. Eine davon ziehlt auf den Stromverbrauch ab: Zum einen werden zwei getrennte 5V-Netzteile für den Raspberry Pi und die Motoren verwendet, und zum anderen zieht der Servo auch in der Ruhelage konstant Energie. Hier könnte man entweder beide Netzteile zusammenlegen und die Stromversorgung der Motoren im Ruhezustand unterbrechen, oder das MotorenNetzteil über das derzeit freie Relais abschalten, wenn die Motoren nicht benötigt werden. Beide Motoren behalten ihre Position auch ohne Strom. Im Nachhinein hat sich die Steuerung und Führung des Wassers als besonders problematisch erwiesen, da aufgrund des Durchlauferhitzers das Wasser in sehr sporadischen Schüben, und meist unter viel Druck, durch die Leitung fließt, was im aktuellen Aufbau wiederholt zu Spritzwasser geführt hat. Eine Möglichkeit um diese Problematik zu beheben wäre die Verwendung eines zweiten Servos, der den Wasserschlauch unmittelbar über die Tasse fährt. Alternativ wäre auch eine Integration des Schlauches in das bereits motorisierte Teesieb denkbar. Damit der Tassenfüllstand durch äußere Einflüsse und die fixe Einschaltzeit des Heizelements nicht schwankt, wäre zudem eine Detektion des Wasserstandes in der Tasse sinnvoll. Weiterhin wäre es wünschenswert, nicht nur eine sondern mehrere Tassen auf Vorrat im TeaMaker zu haben, damit nicht nach jedem Tee eine neue Tasse eingestellet werden muss. Eine mögliche Lösung wäre hier, die Tassen auf einer drehbaren runden Scheibe zu platzieren, damit je nach Orientierung der Scheibe eine andere, neue Tasse befüllt werden kann.
© Copyright 2025 ExpyDoc