Brauen mit Mac, Mash It und 1-Wire

Dieser Artikel beschreibt eine Lösung zur Brauprozessautomatisierung mittels der Software Mash It in kombination mit 1-Wire Sensoren und Aktoren auf einem Mac (Mac OS X 10.6).

=Verwendete Komponenten=

Prinzipschaltbild

Die hier gezeigte Schaltung ist in Anlehnung an folgende Schaltungsvariante aufgebaut:

Schema siehe hier: http://www.dunkelbrauer.de/doc/Schema_1_wire_hobbyboards.pdf.

Hardware-Komponenten

  • Mac mit Intel CPU
  • 1-Wire
  • RELAIS 6V 16A G2R-1-E (Conrad Electronic) - Last-Relais für Schalten der Heizplatte, da die Relais des I/O-Boards dafür nicht ausreichen. Die Relais des I/O-Boards schaltet den Eingang des Last-Relais, welches darauf hin die Heizplatte schaltet.
  • Ggf. gleiches Relais zum Schalten des Rührwerkes bzw. ein 12-V-kfz-Relais, falls das Rührwerk mit 12 V betrieben wird (Scheibenwischermotor).

Software

  • Mac OS X 10.6.2
  • lbusb USB-Interface (über MacPorts)
  • One Wire Filesystem (OWFS) Version 2.7p22(!) - neuere Versionen ließen sich auf dem Mac nicht in Betrieb nehmen!
  • Mash It 1.0.2 (läuft in der derzeitigen Form nicht mit dem o.g. I/O-Board (in der nächsten Version läuft es aber wahrscheinlich out of the box). Für genauere Infos PM an Forenmitglied „psycho“.

=Installation=

Hardware

In dem folgenden Verdrahtung des Sudwerks (Elektrotopf/Glühweinautomant) werden folgende Komponenten verwendet:

  1. 8 Channel I/O Board (8 Relais Version) - Schalten der Heizplatte und des Rührwerks
  2. RELAIS 6V 16A G2R-1-E (Conrad Electronic) - Last-Relais für Schalten der Heizplatte, da die Relais des I/O-Boards dafür nicht ausreichen. Die Relais des I/O-Boards schaltet den Eingang des Last-Relais, welches darauf hin die Heizplatte schaltet.

Vorüberlegung: Ich habe es hier so verdrahtet, dass es schaltete wenn <b>kein Signal</b> anliegt. Damit ist auch ein manueller Betrieb möglich wenn die Steuerung abgenommen wird. Wird statt des NC-Anschlusses der Anschluss NO (Normally Open, geöffnet wenn ein Signal anliegt) verwendet schaltet das Relais erst wenn ein Signal an liegt. In diesem fall müsste das Relais für den manuellen Betrieb überbrückt werden.

  1. USB-Interface an den Rechner anschließen
  2. Mittels beiliegendem RJ12 auf RJ45 Kabel (Verdrahtung) den Adapter an das I/O-Board anschließen.
  3. Den Temperaturfühler mittels RJ45 Stecker ebenfalls gemäß Verdrahtung an das I/O-Board anschließen. Vorsicht: Die o.g. Kits von Conrad besitzen RJ12 Stecker und müssen somit umgerüstet werden.
  4. Eine +5V Stromquelle mit dem C-Anschluss des ersten Relais des I/O-Boards verbinden. Vom Anschluss NC (Normally Closed, geschlossen wenn kein Signal anliegt) desselben Relais ein Kabel zum Eingang des Last-Relais legen. Ein zweites Kabel wird vom Eingang des Last-Relais zu GND der +5V Stromquelle zurückgeführt. Nun kann das Last-Relais mittels I/O-Board geschaltet werden.
  5. Den schaltbaren Ausgang des Last-Relais wird zwischen eine der Stromphasen geschlossen, indem das Kabel aufgetrennt wird und das Relais als Schalter zwischen diese Enden gelötet wird. Es ist darauf zu Achten, dass der Stromkreis geschlossen ist, wenn kein Signal anliegt (siehe Vorüberlegung oben).
  6. Soll das Rührwerk ebenfalls über das I/O-Board geschaltet werden, so muss es analog zum Heißplatte angeschlossen werden. Bei einem Scheibenwischermotor (12V) kann auf ein Last-Relais verzichtet werden und die Versorgungsspannung direkt über das Relais des Boards geschaltet werden.

Software

Anmerkung: Es muss zuvor die Entwicklungsumgebung Xcode Tools für Mac OS X installiert werden, die jedem Mac beiliegt. Es werden für die Installation Admin-Berechtigungen benötigt.

libusb installieren

libusb ist eine open-source-Software-Bibliothek, die Anwendungen den Zugriff auf den USB-Bus ermöglicht. In unserem Fall wird libusb für das OWFS (siehe unten) benötigt.

libusb kann über MacPorts installiert werden.

OWFS installieren

OWFS ist ein Open-Source-Treiber, der den Zugriff auf den 1-wire-bus ermöglicht. OWFS ist eine gute Alternative zur „offiziellen“ Java-OWAPI von Maxim-IC. Dieser offizielle Treiber hat den Nachteil, dass der USB-Zugriff nur unter Windows funktioniert. Da OWFS ursprünglich für Linux geschrieben wurde, ist OWFS optimal unter Linux und Mac OS verwendbar. (Es ist auch möglich OWFS, für Windows zu übersetzen, das ist aber aufwändiger, als die offizielle OWAPI zu verwenden.)

In unserem Fall muss das OWFS für MAC übersetzt und installiert werden:

$ tar xzf owfs-2.7p22.tar.gz

  • Wechseln in das entpackte Verzeichnis:

$cd owfs-2.7p22

  • Konfigurieren:

Dies geschieht über das Kommando <i>configure</i>. Es muss auf zeroconf (<i> –disable-zero</i> und tcl <i>–disable-owtcl</i> verzichtet werden, da beides zu Fehlern führt. $ ./configure –with-libusb-config=/opt/local/bin/libusb-config –with-tcl=/usr/lib/ –disable-zero –disable-owtcl Ich wollte das Paket in ein Verzeichnis des Benutzers „user“ installieren. Dies kann über die Parameter <i>–prefix</i>, <i>–exec-prefix</i> und <i>–datarootdir</i> erreicht werden: $ ./configure –prefix=/Users/user/local/ –exec-prefix=/Users/user/local/ –datarootdir=/Users/user/local/ \

  1. -with-libusb-config=/opt/local/bin/libusb-config –disable-zero –disable-owtcl
  • Kompilieren:

$ make

  • Installieren:

Hier benötigt man Adminrechte. $ sudo make install

Testen

Anmerkung: Der Pfad <i>/Users/user/local/</i> muss evtl. angepasst werden, je nach dem wohin OWFS installiert wurde.

  • owserver starten:

$ /Users/user/local/bin/owserver -u -p 3000 –error_level=5 –foreground

  • Abfrage absetzen:

$ /Users/user/local/bin/owdir -s 3000

Mash It installieren

Mash It ist ein Java-Anwendung und kann unter http://www.dunkelbrauer.de/Software/Index.html heruntergeladen werden. Nach entpacken des Zip-Archivs kann diese einfach über Doppelklick auf die Datei <i>MashItNG.jar</i> gestartet werden. Vor der ersten Nutzung muss die Hardware konfiguriert werden. Leider ist Mash It 1.0.2 nicht automatisch auf das genutzte I/O-Board eingerichtet. Bei Fragen einfach eine PM an das Forenmitglied psycho senden.

Anmerkung von DunkelBrauer: Unter Mash-It-v1.0.2 muss in dem hier beschriebenen Szenario ein gepatchter OWFS-Treiber verwendet werden; Diesen gibt es bei psycho oder DunkelBrauer. Ab der nächsten Mash-It-Version wird dieser Patch nicht mehr notwendig sein.

Mash It konfigurieren

Jedes 1-wire-Element (Sensoren, Relais etc.) hat eine eigene - weltweit eindeutige - ID, mit der es am 1-wire-bus angesprochen wird. Jedes Hobbyboard und jeder Sensor hat eigene Ids, daher können diese nicht vordefiniert werden. Beim hier verwendeten OWFS (One-Wire-File-System) sind die Komponenten über Pfade ansprechbar, die auch die Id enthalten. Daher muss man in Mash-It erst die richtigen Ids der angeschlossenen Komponenten einstellen.

Als erstes muss man also die richtigen Ids der Komponenten herausfinden. Dies kann man z.B. mit dem Kommandozeilen-Programm owdir (in OWFS enthalten) machen. (Aufruf siehe oben).

Dann muss Mash-It konfiguriert werden. Erst wählt man im Rezeptplaner im Menü „Tools“ die Option „Hardware konfigurieren“. Dort wählt man das OWFS-Interface aus und klickt auf „Diese Hardware konfigurieren“. Im anschließenden Menü muss zunächst unter „owserver“ der Server-Port (meist einfach die lokale Portnummer, in unserem Fall z.B. „3000“) eingegeben werden. Damit weis das Programm, unter welchem Port der owserver (OWFS-Server-Dienst) erreichbar ist. In den anderen Feldern müssen die OWFS-Ids des Sensors und der Relais eingegeben werden.

Jetzt alle Konfig-Dialoge mit Okay beenden (wichtig, sonst werden die Änderungen nicht übernommen) und am besten einen Test mit angeschlossener Hardware und der „Manuellen Hardware-Steuerung“ (im Mash-It-Menü „Tools“) vornehmen. Wenn jetzt Fehlermeldungen hochkommen, hat das in der Regel einen der folgenden Gründe:

  • Die Kommandozeilen-Befehle owread oder owwrite sind nicht ausführbar oder im „path“ (Auf der Konsole testen)
  • Das OWFS-Dienst-Programm owserver läuft nicht (Wie dieser gestartet wird, siehe weiter oben). Am besten man startet dieses Programm immer beim Rechnerstart oder vor dem Start von Mash-It
  • Die eingegebene port-Nummer stimmt nicht (muss mit der Konfiguration des owserver übereinstimmen)
  • Die eingegebenen Ids stimmen nicht oder fehlen
  • Wenn die falschen Relais gezogen werden beim Schalten (z.B. Rührwerk geht an beim Einschalten der Heizung etc.), sind die Relais-Ids im Konfig-Dialog vertauscht.
Drucken/exportieren
QR-Code
QR-Code Brauen mit Mac, Mash It und 1-Wire (erstellt für aktuelle Seite)
*
^