Flashen des Wasserbox-ESP32 =========================== Quick Guide (A) Mise en place 1. ESP32 mit USB-Kabel (ESP32 darf KEINE Wasserbox-Software enthalten!) 2. SD-Karte formatiert mit nötigen Dateien 3. Adalogger mit eingesetzter Knopfzelle und eingesteckter SD-Karte 4. ESP32 auf Adalogger eingesteckt 5. PC mit Visual Studio Code und Wasserbox-Software bereit 6. Serial Port (USB) funktionsfähig 7. ESP32 mit USB-Kabel an PC eingesteckt (B) Flashen 1. Etwaiges offenes Serial-Terminal-Fenster der ESP32-USB-Schnittstelle schliessen. 2. In VSCode ‘Build Filesystem Image’ aktivieren. 3. In VSCode ‘Upload Filesystem Image’ aktivieren: SPIFFS wird geflasht. 4. In VSCode ‘Upload’ betätigen: Wasserbox-Software wird geflasht. >>> Grüner Hinweis nach Upload: Gelbe Fehlerzeilen am Schluss des Uploads nicht beachten. 5. Optional und bei Trouble-Shooting kann unmittelbar nach Flashen ein Serial-Terminal-Fenster geöffnet werden. Dort kann ersehen werden: Dass Zeit des RTC initialisiert wurde und die Sensoren präkalibriert sind. Der ESP32 befindet sich in einer Endlosschleife. 6. Optional kann nach einem Reset des ESP32 am Serial-Terminal-Fenster mit ‘prefs’ und ‘date’ die korrekte Präkalibrierung ersehen werden. (C) Abschliessen 1. USB-Kabel entfernen 2. RTC-Knopfzelle und SD-Karte belassen. 3. ESP32 und Adalogger zusammengesteckt verpacken 4. USB-Kabel beilegen xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Ausführlichere Infos 1. Access Point Der Access Point ist per Default aktiv, falls WiFi gewählt wird. 2. Vordefinierte Werte für Sensoren Precalibration-Werte für Sensoren werden in den ESP32 gespeichert, falls die SD-Karte im Root-Verzeichnis eine Datei namens precalib.txt mit entsprechenden Werten aufweist. Format beachten! Am besten /wbox/precalib.txt nach /precalib.txt duplizieren und die Werte mit einem Editor anpassen. Nach dem Aufstarten werden die Werte aus der Datei in den ESP32 kopiert. Darauf wird /precalib.txt gelöscht. 3. Einrichten des Netzwerks via Serial >>> setnetcredentials "ZyXEL" "?????????" network ssid: ZyXEL, network pwd: ????????? >>> setnet wifi method [net, ap]: net; method change active only after restart! Dann Reset 4. Setzen von Datum und Zeit >>> date >>> time Beispiel: >>> setdate i22i5i2023 Mon, 22/05/2023 10:10:10 >>> settime i16i9i50 Mon, 22/05/2023 16:09:50 >>> date Mon, 22/05/2023 16:09:50 5. Setzen der Kalibrierwerte für den Temperatursensor Eiswasser in Glas bereitstellen. Temperatursensor in Eiswasser tauchen. 2 Minuten warten. Jetzt wird angenommen, dass der Sensor 0°C messen sollte. Eingabe und return: >>> settempcaliblow f0.0 sensor raw low: 0.1 degC ideal reference low: 0.0 degC Offenbar war das raw-Signal 0.1°C Thermosflasche mit 25 bis 30§C warmem Wasser bereitstellen. Temperatursensor und Referenzthermometer in Wasser eintauchen. 2 Minuten warten. Ablesen der Temperatur des Referenzthermometers (hier: 25.3°C) Eingabe und return: >>> settempcalibhigh f25.3 sensor raw high 25.1 degC ideal reference high: 25.3 degC Offenbar war das raw-Signal 25.1°C Mit einer 2-Punkt-Kalibrierung unter Verwendung obiger Werte werden die Temperatur- anzeigen nun korrigiert. Kontrolle aller Werte: >>> tempcalib temperature calibration, last changed: 4/04/2022 sensor raw low: 0.1 degC ideal reference low: 0.0 degC sensor raw high 25.1 degC ideal reference high: 25.3 degC Im Eiswasser muss der Temperatursensor nun 0.0°C, im 25.3°C warmen Wasser auch 25.3°C anzeigen. >>> temp Mon, 4/04/2022 21:56:11 0.0 degC >>> temp Mon, 4/04/2022 21:59:47 25.3 degC 6. Setzen des Kalibrierwertes für den Conductivity-Sensor Die Einpunktkalibrierung wird hier nicht verwendet. >>> fakesetconductivitycalib f420f420f25 sensor raw: 420 uS/cm ideal reference: 420 uS/cm temperature: 25.0 °C Soll doch kalibriert werden, muss eine Kalibrierflüssigkeit verwendet werden. >>> conductivitycalib conductivity calibration, last changed: 4/04/2022 sensor raw: 420 uS/cm ideal reference: 420 uS/cm temperature: 25.0 °C 7. Setzen der Kalibrierwerte für den Turbidity-Sensor Der Sensorstrahl in Luft ist unterbrochen, Sensor ist in schwarzer Dose >>> setturbiditycaliblow f0 sensor raw low: 0.0 V ideal reference low: 0.0 V Freier Sensorstrahl durch Luft, Sensor ist in schwarzer Dose >>> setturbiditycalibhigh f3.1 sensor raw high 3.1 V ideal reference high: 3.1 V >>> turbiditycalib Merke: Das Sensorsignal ist per Spannungsteiler für den 3.3V-ADC reduziert. Angezeigt und in der Log-Datei gespeichert wird das Signal auf 5V hochgerechnet. turbidity calibration, last changed: 21/04/2023 sensor raw low: 0.0 V ideal reference low: 0.0 V sensor raw high 3.1 V ideal reference high: 3.1 V 8. Setzen des Namens der LCD-Datei Falls Defaultname "lcd00.csv" nicht erwünscht ist, kann diese geändert werden. >>> setlcdfilename "aabach.csv" lcd display mode logfile name: aabach.csv 9. Setzen des Logging Intervalls im LCD Display Mode >>> setlcdloggerinterval i30i0 lcd display mode logging interval: 30 min 0 sec 10. Setzen der LCD Display Hintergrundbeleuchtungsdauer >>> setbacklighttimeout i3 lcd backlight timeout: 3 min