Update vom 22. Januar 2019

Die Maschine läuft weiterhin einwandfrei. Mittlerweile habe ich auch den Offline-Modus eingestellt, somit braucht die Maschine kein WLAN. Folgende PID-Werte haben sich bei mir bewährt:

Variablenname im CodeBlynk-PinWertBeschreibung
aggKpV428P-Wert
aggKiV50.09I-Wert
aggKdV60D-Wert
setPointV796Zieltemperatur
startKpV11100P-Wert unter Schwellentemperatur (75°)
starttempV1275Schwellentemperatur
aggbpV3080P-Wert während des Bezuges
aggbiV310I-Wert während des Bezuges
aggbdV32800D-Wert während des Bezuges
brewtimersoftwareV3345Zeit, in der die speziellen PID-Werte gelten, in Sekunden
brewboarderV34100Gibt den Grenzwert an, bei dem ein Brühvorgang erkannt wird. Erst wenn der Wert unterschritten wird, wird von einem Brühvorgang ausgegangen.

Update vom 16. Dezember 2018

Ich ergänze diesen Baubericht mit einigen Änderungen, die ich an der Maschine vorgenommen habe. Der Grund für meine Änderungen ist, dass ich nach einigen Wochen gemerkt habe, dass ich einerseits Timer und die Fernsteuerung der Maschine recht selten genutzt habe und gleichzeitig recht oft genervt war, dass ich mein Handy zur Hand haben musste, um die Heizung ein- bzw. auszuschalten. Also entschloss ich mich, den NodeMCU an den von der CPU der Maschine geschalteten Stromkreis zu klemmen, so dass er wie der Rest der Maschine von dem Hauptschalter ein- und wieder ausgeschaltet wird. Und da ich mittlerweile das „PCB ESPresso Rev1“ erhalten hatte, sollte dieses natürlich eingebaut werden. Etwas Schalldämmung war eben so vorgesehen und LEDs sollten die Maschine ergänzen. In der Ecke, in der die Maschine steht, konnte ich vorher den Bezug nicht so gut beobachten, ich brauchte mehr Licht.

Das Ergebnis des Umbaus könnt ihr auf den folgenden Fotos sehen:

Schritte:

  • Neutralleiter anstatt PIN1 an der CPU der Maschine von PIN10 abgezweigt. Das USB-Netzteil wird jetzt zusammen mit der Maschine an- und ausgeschaltet.
  • Temperatursensor nicht mehr geklebt, sondern wie von Markus empfohlen geschraubt.
  • Das Motor-Shield gegen das PCB getauscht.
  • LEDs verklebt und mit Step-Up 5V auf 12V (AZ-Delivery) verkabelt.
  • Bitumenmatten zur Schalldämmung verklebt. (Amazon)

Jetzt muss noch das Blech an der Front fachmännisch geschnitten werden, um das OLED-Display in die Maschine einzupassen.

Einleitung

Die Silvia E hat eine Energiesparfunktion, die die Maschine nach 30 Minuten Inaktivität ausschaltet. Gelöst ist dies durch eine Steuereinheit, im Schaltplan der Silvia als CPU bezeichnet. Der An/Aus-Schalter der Maschine ist nicht mehr wie bei früheren Versionen ein Kipp-Schalter, sondern ein Taster, der einen 12V Stromkreis der CPU schließt, was diese als Impuls zum Ein- bzw. Ausschalten versteht. Dies ermöglicht, die Maschine über ein Relais per NodeMCU ein- und auszuschalten, bspw. aus der Ferne oder per Timer/Zeitschaltuhr in der Blynk App.

Der Umbau fußt auf die Arbeit von Markus und Andreas und wäre ohne ihre Geduld und Hilfe nicht möglich gewesen. Dafür vielen Dank!

Achtung: 230 V sind gefährlich! Bei Arbeiten mit 230 V immer den Netzstecker ziehen. Ihr handelt dabei auf eigene Gefahr.

Material

Die Materialliste von Andreas hat mir sehr geholfen. Ich kann die angegebenen Teile auch sehr empfehlen. Wenn man allerdings keine Crimpzange hat, dann muss man die sehr kleinen Dupont-Stecker (oder PH-Stecker) mit anderen feinen Zangen verpressen.

Als „aktive“ Elemente habe ich folgende Auswahl gekauft, die auch schon von Andreas und Markus empfohlen wurde:

  • NodeMCU – Amazon Link
  • Relais-Modul – Amazon Link
  • Temperatur-Sensor (DS18B20) – Amazon Link
  • Motor-Shield (als Träger für den NodeMCU) – Amazon Link (Eleganter ist das neue „PCB ESPresso“ Board, das Andreas entworfen hat – einfach im Chat die Verfügbarkeit erfragen)
  • dazu noch von Reichelt das Carlo Gavazzi SSR – Reichelt Link
  • Alternativ zum DS18B20 Sensor kann auch ein TSIC 306 TO92 Sensor genutzt werden. Dieser ist genauer, schneller und sein Temperaturbereich geht bis 150° C. Für Funktionen wie Brüherkennung und anderes ist dieser besser geeignet und hat auch den Vorteil, dass er ohne Platine und Widerstand geliefert wird, so dass er gleich verklebt oder anderweitig am Kessel befestigt werden kann. Anschließend nur noch drei Adern anlöten und zum Node/ESPresso-Board führen. Für die reine PID Steuerung ist der DS18B20 aber ausreichend. Den TSIC 306 bekommt man u.a. auch bei Reichelt. Link

Schaltplan

Kommentierter Schaltplan der Silvia E

Fotos vom Umbau

Software

Als Software nutze ich aktuell ein etwas angepasstes Skript, dass auf dem Beta-Code von Markus und Andreas basiert. Im Chat kann man mehr dazu erfahren.

Möglichkeiten und Funktionen

Dieser Umbau ermöglicht zum einen natürlich die PID-Funktion für die Heizung. Nach dem Einschalten heizt die Maschine schnell und zuverlässig exakt auf die vorgegebene Temperatur und hält diese auch. Sämtliche weiteren Funktionen der Maschine bleiben erhalten. Sie schaltet sich bei Nichtbenutzung weiterhin nach 30 Minuten ab. Ich kann sie allerdings per Blynk-App ein- und ausschalten. Auch von unterwegs. Auch Timer sind mit Blynk möglich. So wird meine Maschine jeden Morgen zu einer festen Zeit eingeschaltet und wartet dann aufgeheizt auf den ersten Bezug. Ich persönlich nutze keine weitere Funktionen wie Pre-Infusion und Ähnlichem, es ist aber problemlos möglich, dies zu ergänzen. Da der Ein/Aus-Taster der Maschine aktuell nur parallel zum Relais geschaltet ist, kann ich die Maschine auch manuell ein- und ausschalten.

Blynk-App

So sah meine Blynk-App mit Ein-/Ausschalt-Buttons aus.

Stolperfallen

Folgendes hat mir einiges Kopfzerbrechen bereitet:

  • Mein erster NodeMCU kam nicht richtig verlötet an, es war kein Flashen möglich. Als Fehlermeldung bekam ich immer: „warning: espcomm_sync failed; error: espcomm_open failed; error: espcomm_upload_mem failed; error: espcomm_upload_mem failed“ Es lag nicht an MacOS bei mir, nicht am Arduino IDE, nicht an Treibern, nicht am Code oder am Kabel oder an der Stromversorgung des NodeMCU. Es lag daran, dass ein Pin des ESP8266 keinen Kontakt zum Board darunter hatte. Mit dem Multimeter war dieser schnell gefunden und danach verlötet.
  • Ein SSR schaltet nur, wenn 230V anliegen. Man kann nicht mit einem Multimeter einfach auf Durchgang testen, wenn der NodeMCU schaltet. Ich dachte, das SSR ist defekt, erst ein Hinweis aus dem Chat brachte mich dazu, das SSR mit einer Lampe zu testen – es funktionierte und wurde dann in die Maschine eingebaut.
  • Die 12V der CPU in der Maschine reichen nicht als Stromversorgung für den NodeMCU. Ursprünglich wollte ich diese Spannung mit einem einfachen DC-DC-Step-Down Wandler auf 5V regeln und den NodeMCU damit speisen. Das funktioniert nicht, die Spannung bricht zusammen. Deswegen ein USB-Netzteil oder ein Netzteil wie von Andreas vorgeschlagen nutzen.
  • Die PID Werte sollte man vorsichtig ändern, sonst kann der PID-Regler unvorhergesehen reagieren. Bei mir funktionieren aktuell folgende Werte ganz gut: 18.5, 0.09 und 5.
  • Der TSIC 306 Sensor ist sehr schnell. Als die Maschine auf war, hat wohl schon ein Luftzug gereicht, die Temperatur um 2-3 Grad springen zu lassen. Was mich zunächst verwirrt hatte. Wenn die Maschine geschlossen ist, ergibt sich so ein Effekt nicht. Und: das Verkleben des Sensors ist nicht so zuverlässig wie das Verschrauben.

Danksagung

Der PID-Regler funktioniert sehr gut. Herzlichen Dank an Markus und Andreas. Weitere Funktionen bzw. Erweiterungen sind in Planung bzw. Diskussion. Fragen und Kommentare sind im Chat willkommen.