Einrichtung des Sketches*
Samovar 7.00: Die Parameter lassen sich entweder wie unten für die Arduino IDE beschrieben oder über den Konfigurator einstellen. Der Konfigurator speichert die gewählten Werte in user_config_override.h, ohne die Hauptdatei Samovar_ini.h zu ändern. Die Firmware bindet diese Datei automatisch ein, und ihre Werte überschreiben Samovar_ini.h; sie lässt sich auch von Hand aus der Vorlage user_config_override.example.h erstellen. Im Konfigurator sind die Parameter in Abschnitte gegliedert (die Liste „Abschnitt“ («Раздел»)): Grundeinstellungen («Основные»), Temperaturen («Температуры»), Pumpen («Насосы»), NBK («НБК»), Regler («Регулятор»), Ausrüstung («Оборудование»), Rektifikation («Ректификация»), BK («БК»), Netzwerk («Сеть»), Sensoren («Датчики»), Schrittmotor («Шаговый двигатель»).
Um den Sketch an Ihre Ausrüstung anzupassen, öffnen Sie ihn in der Arduino IDE und nehmen Sie die Änderungen in der Datei Samovar_ini.h vor
Öffnen Sie in der Arduino IDE die Datei Samovar.ino aus dem Ordner ...\Documents\Arduino\Samovar\.
Dadurch werden alle Dateien aus dem Ordner ..\Documents\Arduino\Samovar\ in die Arduino IDE geladen
Suchen Sie in der oberen Zeile der Arduino IDE den Reiter Samovar_ini.h und beginnen Sie mit der Bearbeitung.
Damit eine Codezeile nicht kompiliert und somit von Samovar nicht ausgeführt wird, setzen Sie die Zeichen // vor die Zeile (auskommentieren).
Umgekehrt: Damit eine Zeile ausgeführt wird, entfernen Sie die Zeichen // (einkommentieren)
Es wird empfohlen, gezielt die Zeilen auszuschließen, die sich auf nicht vorhandene Ausrüstung beziehen, statt pauschal alle Parameter abzuschalten, die Sie vermutlich nicht brauchen.
Zur besseren Übersicht ist der Code in der Datei in Blöcke unterteilt.
#define SAMOVAR_HOST "samovar"
Name des Samovar im Netzwerk. Unter diesem Namen ist das Gerät als http://samovar.local (mDNS) erreichbar, und unter demselben Namen erscheint es bei der Aktualisierung über WLAN in den Netzwerkports der Arduino IDE und des Konfigurators. Im Konfigurator: Abschnitt „Grundeinstellungen“ («Основные»), „Gerätename im Netzwerk“ («Имя устройства в сети»).
Block
//Auswahl der verwendeten ESP32-Platine
//********************************************
//#define BOARD DEVKIT
//#define BOARD LILYGO
//#define BOARD ESP32S3
//********************************************
Überspringen Sie diesen Block. Die Firmware erkennt den Platinentyp selbst anhand der in der Arduino IDE gewählten Platine (DOIT ESP32 DEVKIT V1 / ESP32 Dev Module - DEVKIT, ESP32S3 Dev Module - ESP32S3) oder anhand der im Konfigurator gewählten Platine. Wird nichts erkannt, wird DEVKIT verwendet.
Ab dieser Zeile können Sie Werte bearbeiten und Codezeilen ein- oder ausschalten:
//Wassertemperatur, bei der der Bediener gewarnt wird
#define ALARM_WATER_TEMP 70
Hier ist 70 die Temperatur in Grad Celsius. Wird sie erreicht, erscheint eine Meldung über die kritische Kühlmitteltemperatur (im Folgenden KT). Ist ein Summer eingesetzt und die Ereignisbenachrichtigung in der Oberfläche aktiviert, warnt Samovar zusätzlich mit einem Ton. Die Warnungen kommen so lange, bis die Temperatur sinkt. Soll die Warnung bei einer anderen Temperatur kommen, ändern Sie die Zahl 70.
//Maximale Wassertemperatur, bei der die Leistung abgeschaltet wird
#define MAX_WATER_TEMP 75
Erreicht die KT 75°, gibt Samovar den Befehl, die Heizung abzuschalten.
//Maximale Dampftemperatur, bei der die Leistung abgeschaltet wird
#define MAX_STEAM_TEMP 98.8
Erreicht der Dampfsensor 98.8°, gibt Samovar den Befehl, die Heizung abzuschalten.
//Maximale Temperatur im TCA, bei der die Leistung abgeschaltet wird
#define MAX_ACP_TEMP 75
//Temperatur des Dampfsensors, bei der die Kolonne vom Anheizmodus in den Arbeitsmodus wechselt und im Destillationsmodus bei installiertem Dampfsensor den Siedebeginn erkennt
#define CHANGE_POWER_MODE_STEAM_TEMP 39
Erreicht der Dampfsensor (bzw. der obere Sensor im Kolonnenschuss) 39°, gibt Samovar dem Regler den Befehl „Anheizen beenden“ und stellt am Regler die Spannung aus der ersten Zeile des Abnahmeprogramms ein. Im Destillationsmodus erkennt Samovar anhand derselben Dampfsensortemperatur den Siedebeginn. Im Konfigurator: „Temperaturen“ («Температуры»), „Übergangstemperatur aus dem Anheizen, °C“ («Температура перехода из разгона, °C»).
//Temperatur des Brennblasensensors, bei der das Wasserzulaufventil öffnet und die Wasserpumpe einschaltet
#define OPEN_VALVE_TANK_TEMP 77
Bei einer Brennblasentemperatur von 77° wird der Befehl zum Öffnen des Wasserzulaufventils gegeben, gleichzeitig wird das PWM-Steuersignal zum Einschalten der Pumpe gesendet, und der Bediener erhält die Meldung, dass das Wasser aufgedreht werden muss.
Die Meldung wird in jedem Fall gesendet, auch wenn weder Pumpe noch Ventil verwendet werden oder das Wasser bereits läuft.
#define DELTA_T_CLOSE_VALVE 20
//Differenz zwischen der eingestellten Kühlwasser-T und der Wasser-T, bis zu der die Pumpe nach Prozessende in den Modi Destillation und Rektifikation weiterläuft. Der Wert ist in Grad C° angegeben und kann geändert werden. Vom Abschalten wird dringend abgeraten. (Details siehe
hier)
//Unterer Wert (in Prozent) für den PWM-Regler der Pumpe. Wählen Sie einen Wert, der den Wasserdurchfluss sicherstellt
#define PWM_LOW_VALUE 10
Bekanntlich braucht ein Motor zum Anlaufen eine höhere Spannung als zum Weiterlaufen. Diese Zeile legt den kleinstmöglichen Wert (in Prozent) fest, bei dem der Motor die Wasserpumpe ohne Stillstand weiterlaufen lässt.
//Unterer Wert (in Prozent), ab dem der PWM-Regler der Pumpe zu arbeiten beginnt. Wählen Sie einen Wert, bei dem der Motor sicher anläuft
#define PWM_START_VALUE 40
Wert in % der Nennspannung, bei dem der Pumpenmotor sicher anläuft.
Das heißt: Läuft Ihre Pumpe (sofern sie bereits im System eingebaut ist und Flüssigkeit enthält) bei einer Spannung ab 6 Volt zuverlässig an und bei weniger nicht, dann sind das bei einer Nennspannung von 12 Volt 50 % des Nennwerts. Die Zahl 40 muss also durch 50 ersetzt werden.
//Korrektur des Drehwinkels des Servos.
int8_t servoDelta[11] = {0, -2, -3, -4, -3, -2, 0, 0, 0, 0, -2};
Korrektur des Drehwinkels des Servos am Abnahmetisch für eine genaue Positionierung. Angabe in Grad. Jede Position wird einzeln korrigiert. Sie hängt nicht von der Korrektur der benachbarten Positionen ab.
Hat der Schwenkarm zum Beispiel Position Nr. 2 „überfahren“ und stellen wir minus 10° ein, muss dieser Wert (-10) bei der Korrektur von Position Nr. 3 nicht berücksichtigt werden.
//Differenz zwischen Zieltemperatur und aktueller Temperatur (für die Modi Bier und Sous-vide), bis zu der mit voller Leistung geheizt wird (im Anheizmodus).
Für die Modi Bier und Sous-vide. Der Wert wird in Grad Celsius angegeben. Dieser Parameter betrifft das Hauptheizelement. Er bedeutet, dass mit voller Leistung geheizt wird, solange die Differenz zwischen der Ist-Temperatur und der in der Zeile des Maischprogramms eingestellten Temperatur größer als 1° ist. Sobald die Differenz kleiner oder gleich dem in #define HEAT_DELTA angegebenen Wert ist, erhält der Regler den Befehl, die Heizung zu drosseln, damit die eingestellte Temperatur sanft erreicht und/oder nicht wesentlich überschritten wird.
Bei einem recht leistungsstarken Heizelement erhöhen Sie den Wert, um die Zieltemperatur nicht zu „überfahren“.
//Ist die Differenz zwischen Zieltemperatur und aktueller Temperatur (für die Modi Bier und Sous-vide) größer als der eingestellte Wert, schaltet bei einem über UART gesteuerten Regler das Relais Nr. 4 zusätzlich das Zusatzheizelement ein; ist die Differenz kleiner, schaltet sich das Zusatzheizelement ab
#define ACCELERATION_HEATER_DELTA 4
Für die Modi Bier und Sous-vide. Der Wert wird in Grad Celsius angegeben. Der Parameter betrifft ausschließlich das Zusatzheizelement.
Liegt die Brennblasentemperatur unter dem Zielwert (hier um 4°), schaltet sich das Zusatzheizelement ein.
//Siedetemperatur (für den Bier-Modus)
#define BOILING_TEMP 98.9
Für die Modi Bier und Sous-vide. Der Wert wird in Grad Celsius angegeben. Er wird von Hand eingestellt und teilt Samovar mit, bei welcher Temperatur auf Ihrer Anlage das echte Sieden in der Brennblase begonnen hat. Der Wert
beeinflusst den Arbeitsalgorithmus des Haupt- und des Zusatzheizelements
//Standard-Endtemperatur der Destillation
#define DEFAULT_DIST_TEMP 99.9
Für den Destillationsmodus. Brennblasentemperatur, bei der der Brand endet, sofern das Destillationsprogramm keinen anderen Wert vorgibt. Im Konfigurator: „Temperaturen“ («Температуры»), „Endtemperatur der Destillation, °C“ («Температура завершения дистилляции, °C»).
Einstellungen zur Nutzung der Samovar-Subsysteme
#define SAMOVAR_USE_BLYNK //Blynk im Projekt verwenden
Wenn Sie Blynk nicht verwenden, muss diese Zeile mit // auskommentiert werden.
#define BLYNK_SAMOVAR_TOOL "samovar-tool.ru" //den kostenlosen Blynk-Server samovar-tool.ru statt der Blynk-Cloud verwenden
Wenn Sie einen kostenpflichtigen Blynk-Server statt des vom Entwickler bereitgestellten Servers nutzen, muss die Zeile auskommentiert werden .
//#define USE_MQTT //Messwerte an einen eigenen MQTT-Broker senden Zum Speichern der Protokolle in der Cloud wird dieser Parameter nicht benötigt: Ist in den Einstellungen der Geräte-Token eingetragen und SAMOVAR_USE_BLYNK aktiviert, gehen Protokoll und Meldungen des Samovar von selbst an den Server samovar-tool.ru. Registrieren Sie sich auf der Website www.samovar-tool.ru und tragen Sie beim Bearbeiten Ihres Profils den Geräte-Token ein; die Protokolle sind dann auf der Website über das Menü erreichbar: Benutzer - Protokolle. Mehr dazu im Abschnitt -
Protokolle und Diagramme in der Cloud.
USE_MQTT ist ein separates, optionales Senden einer verkürzten Messwertzeile an einen beliebigen MQTT-Broker (ohne TLS, während eines Prozesses alle 4 Sekunden, im Leerlauf alle 5 Sekunden). Diese Zeile steht nicht in Samovar_ini.h: Der Parameter wird im Konfigurator aktiviert (Abschnitt „Netzwerk“ («Сеть»): „MQTT-Server“ («Сервер MQTT»), „MQTT-Port“ («Порт MQTT»), „MQTT-Benutzer“ («Пользователь MQTT»), „MQTT-Passwort“ («Пароль MQTT»), „MQTT-Topic“ («Топик MQTT»)) oder in user_config_override.h, wo MQTT_SERVER, MQTT_PORT, MQTT_USER, MQTT_PASSWORD und MQTT_TOPIC gesetzt sein müssen; ohne sie bricht ein Build mit USE_MQTT mit einem Fehler ab.
Auswahl des Leistungsreglers
In der Datei Samovar_ini.h erfolgt die Auswahl über gewöhnliche Zeilen:
#define SAMOVAR_USE_POWER
//#define KVIC_USE_9600
//#define SAMOVAR_USE_RMVK
//#define SAMOVAR_USE_SEM_AVR
Beim Build mit der Arduino IDE lassen Sie die Zeilen wie folgt:
KVIC: Ändern Sie nichts. Die Zeile SAMOVAR_USE_POWER ist in der Originaldatei bereits aktiviert, die Zeilen RMVK und SEM_AVR sind auskommentiert.
RMVK: Kommentieren Sie nur die Zeile SAMOVAR_USE_RMVK ein. Die nötige allgemeine Reglerunterstützung aktiviert die Firmware automatisch.
SEM_AVR: Kommentieren Sie nur die Zeile SAMOVAR_USE_SEM_AVR ein. Die Unterstützung des RMVK-Protokolls und die allgemeine Reglerunterstützung aktiviert die Firmware automatisch.
Ohne über UART gesteuerten Regler: Kommentieren Sie SAMOVAR_USE_POWER, SAMOVAR_USE_RMVK und SAMOVAR_USE_SEM_AVR aus.
Der Parameter KVIC_USE_9600 gilt nur für KVIC: Kommentieren Sie ihn bei einem Regler mit einer UART-Geschwindigkeit von 9600 ein. Arbeitet der Regler mit 38400, lassen Sie die Zeile auskommentiert.
Beim Build mit
PlatformIO müssen Sie diese Zeilen nicht von Hand ändern: Wählen Sie eine fertige Umgebung,
Samovar,
Samovar_no_power,
Samovar_rmvk oder
Samovar_sem (außerdem gibt es
Samovar_s3 für die ESP32-S3-Platine,
Samovar_lua und
Samovar_alarm_button). Der Konfigurator wählt die Umgebung selbst anhand der Gruppe „Leistungsregler“ («Регулятор мощности») (Nicht verwenden («Не использовать») / KVIC / RMVK / SEM_AVR) und der Platine. Details stehen in der Anleitung
Build und Flashen mit PlatformIO.
Parameter für die NBK
#define NBK_MULT_PAUSE_OVERFLOW 2 // Anzahl der Trägheitszeiten als Pause nach dem Fluten
#define NBK_PUMP_LIMIT 30 // maximale Förderleistung der Maischepumpe für die Optimierung, l/h
#define NBK_WORK_PRESSURE_RATIO 0.5f // Obergrenze des Arbeitsdrucks = Anteil des Flutungsdrucks
#define NBK_PRESSURE_MARGIN 5 // mm Hg unter dem Druck im Moment des Flutens beim Anlernen der Obergrenze
//#define USE_NBK_DELTA_PRESSURE // Korrektur der Schlempetemperatur anhand des Drucks im Schlempeablauf
//#define USE_NBK_END_BY_STEAM_RISE // NBK-Betrieb beenden, wenn die Dampf-T gegenüber dem Minimum um NBK_END_STEAM_RISE gestiegen ist
#define NBK_END_STEAM_RISE 5.0f // Schwelle des Dampf-T-Anstiegs (°C) für USE_NBK_END_BY_STEAM_RISE
Nur für den Modus der kontinuierlichen Maischekolonne nötig; im Konfigurator: Abschnitt „NBK“ («НБК»). Wird die NBK nicht verwendet, lassen Sie die Werte unverändert. Mehr dazu im Abschnitt
NBK.
#define SAMOVAR_USE_POWER_START_TIME 2000 //Verzögerung vor dem Senden des Anheizbefehls an den Regler. Sorgt für ein „kaltes“ Schließen des Leistungskreises durch das Schütz.
Damit an den Leistungskontakten des Schützes kein Lichtbogen entsteht. Nach dem Befehl „Heizung einschalten“ («Включить нагрев») zieht Relais Nr. 1 an und schaltet das Schütz ein, das seinerseits den Leistungskreis zum Heizelement schließt. Nach der in Millisekunden eingestellten Zeit gibt der Regler Spannung aus.
#define LCD_RESET_PERIOD_MS 240000UL //Periode (ms) der regelmäßigen Neuinitialisierung des LCD-Displays, 4 Minuten
Schutz gegen das „Einfrieren“ des Displays am I2C. Eine Änderung ist nicht nötig. Im Konfigurator: „Ausrüstung“ («Оборудование»), „Display-Rücksetzperiode, ms“ («Период сброса дисплея, мс»).
#define USE_WATERSENSOR //Durchflusssensor für das Kühlwasser verwenden. Falls verwendet, schaltet Samovar die Heizung der Kolonne ab, wenn für die eingestellte Zeit kein Wasser fließt
Der Durchflusssensor arbeitet nach dem Hall-Prinzip. Fließt Kühlmittel, erhält Samovar regelmäßige Impulse. Bleiben die Impulse aus oder kommen sie zu selten, schaltet Samovar die Heizung ab und sendet eine Warnung.
#define WF_CALIBRATION 98 //Wert für den Durchflusssensor F=98*Q(L/min); bei einem anderen Sensor einen anderen Wert einstellen.
Korrektur des Durchflusssensors. Fließt 1 Liter Wasser durch den Sensor, liefert er 5880 Impulse. Tatsächlich unterscheidet sich die Impulszahl pro 1 Liter je nach Durchflussmenge. Die Korrektur erfolgt durch Ändern des Werts 98.
#define WATER_FLOW_MIN_PULSES 7 //Der Durchfluss gilt als echt, wenn die Impulszahl pro Zyklus diese Schwelle nicht unterschreitet
Filtert einzelne Impulse des Durchflusssensors bei geschlossenem Wasser heraus. Erkennt Samovar einen Durchfluss, wo keiner ist, erhöhen Sie den Wert; schaltet er die Heizung bei schwachem Durchfluss ab, verringern Sie ihn. Im Konfigurator: „Pumpen“ («Насосы»), „Mindestanzahl Durchflussimpulse“ («Минимум импульсов потока»).
#define USE_HEAD_LEVEL_SENSOR //Rücklauf-Füllstandssensor im Kolonnenkopf verwenden (P-N-P-Sensor). Falls verwendet, wird beim Auslösen des Sensors die Leistung um 1*PWR_FACTOR verringert (bei KVIC: 1 V, bei RMVK: 2 V; bei SEM_AVR: um 3 % des aktuellen Werts)
Verwenden Sie einen Rücklauf-Füllstandssensor, dessen Ausgang beim Auslösen eine logische Eins liefert.
#define IGNORE_HEAD_LEVEL_SENSOR_SETTING //Wird der Rücklaufsensor verwendet, den Befehl zum Abschalten des Sensors in der WEB-Oberfläche ignorieren. (Wenn Sie die Zeile auskommentieren, erscheint in der Oberfläche auf dem Reiter Einstellungen («Настройки») ein Kontrollkästchen, mit dem Sie die Nutzung des Rücklaufsensors ein- oder ausschalten können.)
Zum Beispiel.Ist die Zeile
//define USE_HEAD_LEVEL_SENSOR // Rücklauf-Füllstandssensor verwenden... auskommentiert, wird der Sensor nicht verwendet, und es spielt keine Rolle, in welchem Zustand (auskommentiert oder einkommentiert) sich die nächste Zeile befindet.
Ist die Zeile #define USE_HEAD_LEVEL_SENSOR einkommentiert, wird der Zustand der nächsten Zeile berücksichtigt:
#define IGNORE_HEAD_LEVEL_SENSOR_SETTING - Ist sie einkommentiert, gibt es in der WEB-Oberfläche kein Kontrollkästchen zur Steuerung des Rücklaufsensors. Entsprechend lässt sich der Sensor nicht über die WEB-Oberfläche abschalten.
Ist //#define IGNORE_HEAD_LEVEL_SENSOR_SETTING auskommentiert, lässt sich die Nutzung des Rücklauf-Füllstandssensors schnell ein- und ausschalten (Punkt 5), und zwar über die WEB-Oberfläche.
//#define WHLS_HIGH_PULL //einen N-P-N-Flüssigkeitsstandsensor verwenden
Verwenden Sie einen Rücklauf-Füllstandssensor, dessen Ausgang beim Auslösen eine logische Null liefert.
#define USE_WATER_PUMP //PWM-Steuerung für die Wasserpumpe und/oder zum Einschalten des Rührwerks im Bier-Modus verwenden
Wird keine Pumpe zur automatischen Regelung der KT verwendet und ist kein Rührwerk im Bier-Modus angeschlossen, muss die Zeile auskommentiert werden. Im Konfigurator: „Pumpen“ («Насосы»), „Wasserpumpe oder Rührwerk steuern“ («Управлять насосом воды или мешалкой»).
//#define USE_WATER_VALVE LOW //Ventilsteuerung zur Regelung des Wasserdrucks verwenden
Bei Verwendung eines Bypass-Ventils muss die Zeile einkommentiert werden. Das Ventil wird anstelle der Pumpe angeschlossen. Es arbeitet nach dem Thermostatprinzip. Übersteigt die Temperatur den eingestellten Wert, öffnet das Ventil; sinkt sie darunter, schließt es. Mehr dazu hier.
Wird in der Bypassleitung ein stromlos geschlossenes Ventil verwendet, muss der Wert LOW durch HIGH ersetzt werden.
Wird die KT von Hand oder durch ein fremdes Gerät geregelt, müssen beide Zeilen auskommentiert werden.
//#define USE_ALARM_BTN //Notfallknopf verwenden.
Ein Druck darauf stoppt die Wasserzufuhr und schaltet die Leistung ab. Sie können ihn mit Lecksensoren nutzen (zulässig ist eine unbegrenzte Anzahl parallel geschalteter Geräte mit „Trockenkontakten“) oder als gewöhnlichen Taster (er kann auch parallel zu den Sensoren angeschlossen werden)
#define USE_BODY_TEMP_AUTOSET //automatische Korrektur der Mittellauf-T für das erste Abnahmeprogramm Mittellauf oder Vorfluten nach dem Vorlauf verwenden, außerdem für das Vorfluten-Programm, wenn es vor dem vorletzten Abnahmeprogramm Mittellauf oder Vorfluten steht
Im Standard-Build von Samovar 7.00 ist diese Funktion aktiviert. Sie lässt sich nicht auskommentieren: Die Firmware aktiviert USE_BODY_TEMP_AUTOSET zwangsweise (Samovar.h). Im Konfigurator befindet sie sich im Abschnitt „Rektifikation“ («Ректификация») („Autokorrektur der Mittellauftemperatur“ («Автокоррекция температуры тела»)), dort ist auch die Anstiegsgrenze BODY_TEMP_AUTOSET_MAX_RISE (siehe unten).
Die Abnahme wird nicht pausiert, sofern Folgendes gilt:
Für die Zeile Mittellauf («Тело»): Eine Mittellauf-Zeile folgt direkt auf eine Vorlauf-Zeile, und nach ihr kommen zwei Zeilen Mittellauf oder Vorfluten in beliebiger Kombination.
Für die Zeile Vorfluten («Предзахлеб»). Eine Vorfluten-Zeile steht an beliebiger Stelle im Abnahmeprogramm, und nach ihr kommen zwei Zeilen Mittellauf oder Vorfluten in beliebiger Kombination
//Wählen Sie den verwendeten Drucksensor und lassen Sie nur eine Zeile stehen. Die übrigen Zeilen müssen auskommentiert werden.
//#define USE_BMP180 //Drucksensor BMP180/BMP085 verwenden
//#define USE_BMP280 //Drucksensor BMP280 verwenden
//#define USE_BMP280_ALT //Drucksensor BMP280 mit alternativer Adresse verwenden
//#define USE_BME280 //Drucksensor BME280 verwenden
#define USE_BME680 //Drucksensor BME680 verwenden
Wählen Sie den verwendeten Luftdrucksensor und lassen Sie nur eine Zeile stehen. Die übrigen Zeilen müssen auskommentiert werden. Wird kein Luftdrucksensor verwendet, können Sie alle Zeilen auskommentieren. Dann korrigiert Samovar die Siedetemperatur jedoch nicht abhängig vom Luftdruck.
#define USE_BTN //Taster verwenden
Den Universaltaster am Samovar verwenden. Er wird am Ausgang D39 des ESP32 angeschlossen. Ein praktischer Taster, doch wenn er nicht genutzt wird, schalten Sie ihn besser ab.
#define USE_UPDATE_OTA //ArduinoOTA für die Aktualisierung über WLAN verwenden. Praktisch beim Debuggen; im Betrieb belastet es den ESP32 zusätzlich
Wird der ESP32-Sketch über eine serielle Kabelverbindung aktualisiert, kann diese Zeile auskommentiert werden. Die Aktualisierung über WLAN ist dann nicht verfügbar. Beim Build mit dem ESP32-Core der Version 3.x schaltet die Firmware diesen Parameter selbst ab. Im Konfigurator: „Netzwerk“ («Сеть»), „Aktualisierung über WLAN erlauben“ («Разрешить обновление по Wi-Fi»).
//#define USE_EXPANDER 0x20 //Port-Expander PCF8575 verwenden
//#define USE_ANALOG_EXPANDER 0x48 //analogen Port-Expander PCF8591 verwenden
//#define USE_LUA //Lua zum Schreiben von Skripten für die Steuerung des Samovar und des Port-Expanders verwenden
//Auswahl des Typs des Drucksensors in der Kolonne. Es kann nur ein Typ verwendet werden.
//#define USE_PRESSURE_XGZ 32 //Drucksensor XGZP6897D (oder ähnlich) verwenden. Der Wert ist der Parameter K aus der Tabelle des Sensors
//#define USE_PRESSURE_1WIRE {0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x55} //Drucksensor über 1Wire verwenden
//#define USE_PRESSURE_MPX //Drucksensor MPX5010D verwenden
Drucksensor in der Kolonne (nicht zu verwechseln mit dem Luftdrucksensor oben). Er wird für die NBK und zur Überwachung des Drucks in der Kolonne benötigt. Kommentieren Sie nur eine Zeile ein; sind zwei oder drei einkommentiert, wird der MPX5010D verwendet. Ist kein Sensor vorhanden, lassen Sie alle drei Zeilen auskommentiert. Im Konfigurator: die Gruppe „Drucksensor in der Kolonne“ («Датчик давления в колонне»).
//#define USE_STEPPER_ACCELERATION //sanften Anlauf und sanftes Abbremsen des Schrittmotors verwenden
Schaltet das sanfte Hochlaufen der Abnahmepumpe ein; sie stoppt dann auch sanft.
//#define STEPPER_REVERSE //Drehrichtung des Schrittmotors umkehren
Soll sich der Motor der Abnahmepumpe (Nema17) in die andere Richtung drehen, muss die Zeile einkommentiert werden.
//#define I2CStepperStepMl 16000 //Anzahl der Schritte pro ml für den I2CStepper
Nur bei Verwendung eines externen I2CStepper-Moduls. Legt die anfängliche Kalibrierung der Abnahmepumpe fest (Schritte pro Milliliter). Im Konfigurator: „Schrittmotor“ («Шаговый двигатель»), „Schritte pro ml für I2CStepper“ («Шагов на мл для I2CStepper»).
//#define COLUMN_WETTING //bei installiertem Rücklauf-Füllstandssensor die Kolonne zu Beginn der Rektifikation bis zum Vorfluten bringen, um die Packung zu benetzen
//#define WETTING_POWER 220 //Spannung/Leistung des Reglers (für SEM_AVR) beim Benetzen der Packung
Benetzen der Packung vor der Rektifikation. Funktioniert nur mit dem Rücklauf-Füllstandssensor (USE_HEAD_LEVEL_SENSOR): Nach dem Anheizen hält Samovar am Regler die Spannung der ersten Programmzeile (ist sie nicht gesetzt, 220 V; bei SEM_AVR WETTING_POWER), senkt sie bei Bedarf stufenweise bis auf 80 % und wartet höchstens 20 Minuten auf das Auslösen des Rücklauf-Füllstandssensors. In den Meldungen: „Benetzen der Kolonnenpackung gestartet“ («Начало смачивания насадки колонны») und „Kolonnenpackung erfolgreich benetzt!“ («Насадка колонны успешно смочена!»). Im Konfigurator: „Rektifikation“ («Ректификация»), „Benetzen der Packung vor der Rektifikation“ («Смачивание насадки перед ректификацией») und „Leistung beim Benetzen der Packung“ («Мощность смачивания насадки»).
//#define NOT_USE_INTERFACE_UPDATE //die Oberfläche beim Start nicht aktualisieren
Samovar vergleicht die lokal installierte Version der Oberfläche mit der online verfügbaren und aktualisiert sie, wenn sie nicht übereinstimmen.
So können Sie Dateien mit eigenen Entwicklungen im Samovar behalten. Eine lokale Aktualisierung überschreibt alles, während eine Aktualisierung über das Internet nur die Oberfläche erneuert; Skripte und Einstellungen bleiben erhalten.
Bei einer neuen Version müssen Sie die Oberfläche nicht hochladen, sie aktualisiert sich automatisch.
Wie sich jedoch herausstellte, hat sich etwas geändert, und das funktioniert nicht bei allen.
Ist dieser Parameter einkommentiert, wird die Oberfläche nicht über das Internet aktualisiert.
//#define KVIC_DEBUG //Debug-Meldungen des Datenaustauschs mit dem KVIC-Regler an den seriellen Monitor
Nur bei der Fehlersuche in der Kommunikation mit dem Regler nötig. Im Konfigurator: „Regler“ («Регулятор»), „KVIC-Debug-Meldungen“ («Отладочные сообщения KVIC»).
Parameter des Rektifikationsalgorithmus
#define PAUSE_RESUME_HYSTERESIS_DELTA 0.07f //Hysterese (°C) zwischen der Schwelle für den Eintritt in die Pause nach Dampf-/Kolonnen-T und der Schwelle für das Verlassen
#define PROGRAM_ROW_STOP_PAUSE_LIMIT 3 //Anzahl der Stopp-Pausen während der aktuellen Programmzeile, nach der die Grundgeschwindigkeit der Zeile automatisch gesenkt wird
#define PROGRAM_ROW_STOP_PAUSE_SPEED_CUT_PCT 10 //um wie viel % die Grundgeschwindigkeit der Zeile beim Auslösen von PROGRAM_ROW_STOP_PAUSE_LIMIT gesenkt wird
#define PROGRAM_DONE_AUTO_POWEROFF_MIN 30 //Zeit (min), für die der Status „Programmausführung beendet“ («Выполнение программы завершено») gehalten wird (die Pumpe steht, die Heizung läuft weiter), danach automatische Abschaltung. 0 = sofort abschalten
#define BODY_TEMP_AUTOSET_MAX_RISE 0.3f //Grenze (°C) für den automatischen Anstieg der Mittellauf-T innerhalb einer Programmzeile
Die Standardwerte sind für eine typische Kolonne gewählt; ändern Sie sie nur bei Bedarf. Im Konfigurator: Abschnitt „Rektifikation“ («Ректификация»).
Parameter des BK-Modus
#define BK_STEAM_SETPOINT_MIN 30 //Untergrenze des Sollwerts der Dampf-T am BK-Dephlegmator (5. Feld der Programmzeile), °C; 0 – Wasser von Hand
#define BK_STEAM_SETPOINT_MAX 100 //Obergrenze des Sollwerts der Dampf-T am BK-Dephlegmator, °C
#define BK_WATER_ADJUST_PERIOD_MS 60000 //Schrittperiode des BK-Wasserreglers, ms
#define BK_WATER_DEADBAND 0.2f //Totzone (°C) um den BK-Dampfsollwert
#define BK_WATER_PWM_STEP 30 //Schritt des BK-Wasser-PWM-Reglers (von 1023)
Sollwertgrenzen und Schrittweite der automatischen Wasserregelung im Maischekolonnen-Modus. Im Konfigurator: Abschnitt „BK“ («БК»).
Nach dem Bearbeiten der Datei müssen Sie den Sketch erneut auf den ESP32 hochladen. Klicken Sie dazu auf den Pfeil in der oberen Leiste der Arduino IDE und warten Sie, bis das Hochladen abgeschlossen ist.
Ihr Samovar ist betriebsbereit.
Hinweis.
Künftig müssen Sie Samovar_ini.h beim Installieren eines neuen Releases nicht jedes Mal bearbeiten.
Vergleichen Sie bei einer Aktualisierung über die Arduino IDE die neue und die alte Samovar_ini.h und übertragen Sie nur Ihre eigenen Werte. Ersetzen Sie die neue Datei nicht vollständig durch die alte: Ein neues Release kann Parameter enthalten, ohne die die Konfiguration unvollständig wäre. Der Konfigurator speichert die Abweichungen des Benutzers getrennt in user_config_override.h.
Bearbeiten Sie besser die neue Datei selbst, statt Zeilen aus dem neuen Code in die alte Datei einzufügen, um versehentliche Fehler zu vermeiden (siehe Aktualisierung des Sketches).
Zum Vergleichen und Bearbeiten können Sie spezielle Programme verwenden, die zwei Dateien vergleichen und die Unterschiede zwischen ihnen anschaulich anzeigen.
Achtung.
Es wird empfohlen, das Archiv mit dem neuen Samovar-Release über diesen Link herunterzuladen. Das ist eine stabile und getestete Version.
________________________________________________________________________________________________________________
* Für Entwickler. Eine Beschreibung der Sketch-Abschnitte und ein Blockschaltbild finden Sie auf
github.com
Weitere Dateien und Zeilen mit Erläuterungen:
Datei Samovar_pin.h
Samovar 7.00: Die Konstante TARGET_WATER_TEMP steht nicht mehr in dieser Datei. Die vom PWM-Regler der Pumpe gehaltene Wassertemperatur wird in allen Modi (auch bei der NBK) aus dem Feld „Sollwert des Wassersensors“ («Уставка датчика воды») auf dem Reiter
Einstellungen - Temperatur («Настройки - Температура») übernommen; ist das Feld leer, verwendet die Firmware 48°. Ist der Prozess beendet und liegt die Wassertemperatur am Auslauf um DELTA_T_CLOSE_VALVE (standardmäßig 20°, siehe oben) unter dem Sollwert, stoppt Samovar die Pumpe, gibt den Befehl zum Schließen des Wasserventils und sendet die Warnung, dass das Wasser abgedreht werden muss.
Datei pumppwm.h
define PUMP_PWM_FREQ 15
Minimale PWM-Frequenz der Kühlpumpe, in Hertz