Fango PCB
Die Raspberry Pi IO-Platine zum Einbau in Braumaschinen
Nachdem wir die Fangomaschine zunächst mit der einem System ohne Display und Webschnittstelle gesteuert hatten ist uns aufgefallen, dass wir zum Brauen eigentlich gar keinen separates Bediengerät verwenden möchten.
Ab und zu mit dem Smartphone oder Tablet den Stand des Maischeprozesses überprüfen ist super, aber den Maischprozess starten und die Rasten einstellen möchte man auch direkt an der Braumaschine können.
Es musste also eine Platine mit Display und Tasten her!
Das Layout der Platine wurde mehrfach angepasst, so dass die aktuelle Version kompatibel zu den neueren Versionen des Raspberry Pi (2-4 und Pi Zero W) ist. Der Pi Zero W reicht völlig aus. Die Versionen 3 und 4 haben eigentlich zu viel Leistung laufen aber auch.
Aktueller Stand
Platine mit folgenden Eigenschaften:
- Zwei Relais für Heizung und Rührwerksteuerung
- Anschluss für 1-wire Temperatursensor (alternativ zur empfohlenen i2C Variante auch per GPIO anschließbar)
- Piezosummer zur aktustischen Signalisierung der Rasten
- 4-Zeiliges Alphanumerisches Display und 4 Tasten oder Drehgeber zur Steuerung der Web 2.0 Mash Software ohne Webbrowser direkt an der Braumaschine.
- Layout für Raspberry Pi > 2 und Zero W
- Statt der Tasten bzw. des Drehgebers kann auch eine IR-Fernbedienung verwendet werden.
Downloads
- Platinenlayout und Schaltplan im Eagle-Format (ZIP-Datei, git://git.geggus.net/fango.git)
- Schaltplan (PDF-Format)
- Passend vorkonfiguriertes Raspbian Image
- Bedienknopf für Drehgeber zum 3D-Druck (knob4encoder.scad, knob4encoder.stl)
Zusammenbau
Die meisten Teile kann man bei Reichelt Elektronik bestellen. Der SMD-Baustein DS2483 ist etwas schwierig zu bekommen. Aus diesem Grund kann die Ansteuerung alternativ auch über den Softwaretreiber im Linuxkernel (w1-gpio) und den Anschluss rechts auf der Platine erfolgen. Das Display gibt es günstig bei Ebay.
Die folgenden Bilder zeigen die fertig bestückte Platine:
FAQ
Kann ich bei euch Hardware kaufen?
Aufgrund des fehlenden CE-Zeichens ist es für uns fast unmöglich fertige Hardware zu verkaufen. Wer an einer unbestückten Platine zum Selbstkostenpreis interessiert ist kann gerne eine Mail schreiben.
Der Temperatursensor funktioniert nicht, woran liegt das?
Sehr wahrscheinlich wurde in diesem Fall der SMD-Baustein auf der Platine nicht korrekt aufgelötet. Die korrekte Funktion des Bausteins kann man mit Hilfe von i2cdetect prüfen.
Wenn der Baustein korrekt angesteuert werden kann sieht der Aufruf wie folgt aus:
root@lambic:~# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --Wichtig ist die Zahl 18. Sollte diese nicht auftauchen funktioniert die Kommunikation über I²C nicht.
Zusätzlich sollte man noch prüfen, dass der 1-wire Anschluss des Bausteins nicht gegen VCC oder GND kurzgeschlossen ist.
Das Display erzeugt beim schalten des Relais lustige Zeichen
Die Displays scheinen relativ empfindlich gegenüber EMV Einflüssen zu sein. Als workaround kann das Programm webmash_4x20_client nach Relais-Schaltvorgängen einen Display-Reset ausführen.
Um diese Funktionalität zu aktivieren ergänzt man bei dessen Aufruf im Initscript /etc/init.d/wm4x20c die Optionen -rs und -rh.
diff --git a/webmash_4x20_client/wm4x20c.init b/webmash_4x20_client/wm4x20c.init index c4958c7..93a6ca4 100755 --- a/webmash_4x20_client/wm4x20c.init +++ b/webmash_4x20_client/wm4x20c.init @@ -21,7 +21,7 @@ NAME=webmash_4x20_client DAEMON=/usr/bin/$NAME # # for german language add "-l de_DE.UTF-8" -DAEMON_ARGS=(-bd -n -l de_DE.UTF-8) +DAEMON_ARGS=(-bd -n -l de_DE.UTF-8 -rs -rh) # #change like this for custom brewery name #DAEMON_ARGS=(-bd -n -b ' my brewery name' -l de_DE.UTF-8)