Zurück

IoT-Portlet für Liferay

Smart Coffee - Ancud's Werkstudenten Projekt

Auf der Suche nach einem neuen Showcase, der die Möglichkeiten des neuen IoT-Labs bei der Ancud IT verdeutlicht und zudem einen Mehrwert für das Unternehmen schafft, kam unseren Werkstudenten eine Idee. Warum nicht das vermutliche Zentrum eines jeden Büros – den Kaffeeautomaten – smarter gestalten? Es sollte ein Kaffeevollautomat so umgebaut werden, dass er aus der Ferne steuerbar ist und sich einfach in den täglichen Arbeitsablauf bei Ancud integrieren lässt. Aufgrund des Umfangs schien es zudem sinnvoll, dauerhaft Studenten mit der Umsetzung dieses Projekts zu betrauen. Nachfolgend findet sich ihr Projektbericht.

 

Erste Schritte

Als Erstes fokussierten wir uns auf die Recherche, um einen sinnvollen Rahmen sowie die Aufgabenverteilung für unser Projekt abzustecken. Es stellte sich heraus, dass zu dem Thema bereits einige andere Ansätze existieren. Folgende Seite half uns dabei eine Jura Kaffeemaschine für unsere Zwecke zu entschlüsseln:

http://protocoljura.wiki-site.com/index.php/Hauptseite

Die Community, die hinter dieser Webseite steht, kam über einen Insider an die Verschlüsselung der Serviceschnittstelle der Firma EUGSTER/ FRISMAG, die in Kombination eine TOP-tronic Logikeinheit verwendeten. Da es sich um einen führenden Zulieferer handelt, kommt diese Schnittstelle beispielsweise bei folgenden Herstellern zum Einsatz: Jura, Nespresso, Krups, AEG, Siemens, Bosch und Franke.

Daraus resultierend nahm der Projektplan weiter Gestalt an, den wir schlussendlich in drei Phasen unterteilten.

 

Phase 1: Das Entschlüsseln der Maschine und deren Anbindung an Liferay

Die erste große Herausforderung stellte die Ansteuerung unserer Jura X9 dar. Hierfür wollten wir eine NodeMCU 1 über den D-Sub9 Port auf der Rückseite der Maschine anschließen.

Von protocoljura wussten wir schon, dass das Wiring nicht einer Standard RS232-Buchse entspricht. Um unsere NodeMCU nicht zu grillen, nahmen wir uns ein Multimeter zur Hilfe, um festzustellen welche Spannungen und Ströme auf welchem Pin laufen. 2

Softwareseitig mussten wir uns die Verschlüsselung anschauen, die leider eher mangelhaft dokumentiert ist und zumindest auf unserer Maschine nicht funktionierte.

Nach einigen Tagen intensiver Recherche und Testens, schafften wir es dann unseren ersten Kaffee über den COM Port unseres Rechners in Auftrag zu geben. Hierzu wird ein Buchstabe immer als Bit abgebildet und dieses auf 4 Bit kopiert. Immer zwei Bitpositionen werden jeweils auf die 2. und 5. Stelle eines Verschlüsselungsbits gesetzt. Am Ende des Befehls muss noch ein Linefeed, ebenfalls auf diese Weise verschlüsselt, mitgeschickt werden.

Zusätzlich müssen Timings beachtet werden: Zwischen jedem gesendeten Byte muss 1ms Zeit vergehen und zwischen jedem Zeichen 8ms. Hardwareseitig haben wir uns zum Testen für folgenden Aufbau entschieden:

Eine NodeMCU auf einem Development Board dient uns zur Steuerung. Diese ist über einen 3.3v zu 5v Levelconverter mit der D-Sub9 Buchse verbunden. 3

Wiring

Nachdem wir endlich die größte Unsicherheit dieses Projekts ausgeschlossen hatten, bestand kein Zweifel mehr daran, das Funktionsspektrum der Kaffeemaschine durch die Steuerung über ein Liferay-Portlet deutlich erhöhen zu können.

 

Auf protocoljura waren bereits einige Steuerungsbefehle gegeben, die bei ähnlichen Modellen funktionierten. Von daher konnten wir uns hier etwas Zeit sparen. Zumindest bis zu dem Punkt an dem wir die Zählerstände der einzelnen Produkte prüfen wollten. Hier scheint es große modellbezogene Unterschiede zu geben, wie der EPROM aufgeteilt ist. 4

Nach dem Auslesen und Analysieren des EPROMs fiel uns allerdings auf, dass jeweils alle 256 Offsetwerte einen neuen Wert zurückgaben. Nach genauerer Betrachtung konnten wir die HEX Werte den gesuchten Zählerständen zuordnen. Eine detaillierte Funktionsweise findet sich in unserer Dokumentation:

http://www.ancud.de/news-und-events/downloadbereich

Nun war es auch an der Zeit sich mit den Liferay Experten der Ancud IT zusammenzusetzen und über die Kommunikation zwischen unserer NodeMCU und dem im Haus bereits vorhandenen Liferay Portal zu sprechen. Im Vorfeld hatten wir uns schon auf ein RESTful HTTP Interface geeinigt.

Durch umfangreiches, NodeMCU-seitiges Coding in C konnten wir mit einer Reihe von funktionalen, teilweise kombinierbaren und bidirektionalen HTTP-Requests aufwarten. Beispielsweise kann mit diesen HTTP-Requests die Produktzubereitung, sowohl doppelt als auch einfach, oder eine Anzahlabfrage vom Portal ausgelöst werden. Nachdem das Portlet auf der Liferay-Seite eingebunden wurde, konnten wir in der ersten Version Folgendes zeigen:

 

Nach einem erfolgreichen Login steht dem User das im Ancud IT Portal hinterlegte Portlet zur Verfügung. Über ein Dropdown Menü lässt sich das gewünschte Produkt auswählen und bei "Starten" an den Kaffeeautomaten schicken.

 

Bei Fragen oder Anregungen können Sie gerne die Kommentarfunktion verwenden oder uns über info@ancud.de erreichen.

 

Demnächst Phase 2: Implementierung eines RFID Tag Systems und Default Produkte

In der Zukunft sind außerdem eine Milchstandskontrolle, ein Tassenwechselregister, höhere Statistik und Auswertungsmöglichkeiten und eine Anbindung an Atlassian Jira geplant.

 


1 Ein kleiner Miniaturrechner mit WLAN

2 Die Pinbelegung folgt an späterer Stelle

3 Zusätzlich zum Flashen und Testen ein DEV-Board um die NodeMCU mit dem Computer zu verbinden

4 Gesendet wird ein Read-EPROM Befehlt mit einem 4-stelligen Offset (RE:XXXX)

Kommentare
Trackback-URL:

Noch keine Kommentare. Seien Sie der Erste.

Ancud IT-Beratung GmbH
Glockenhofstraße 47 
90478 Nürnberg 

Tel.: +49 911 2525 68-0