Mein Projekt "Wetterwerte" wird immer weiter vervollständigt. Vor kurzem habe ich mittels ESP32 einen UV-Sensor mit Arduino-Enwicklungskit unter Mithilfe von Visual Studio Code und PlatformIO-Erweiiterung in Betrieb genommen. Wie immer, werden die Werte sowohl über ein REST-API mit Antworten im JSON-Format als auch über MQTT bereitgestellt. Auch die Anzeige der Werte übernimmt wie immer mein Home Assistant-System.
Montiert wurde alles in einem PVC-Kunststoffgehäuse mit Klarsichtdeckel, so dass der Sensor ungehindert dem Licht ausgesetzt ist. Die Werte werden im 10-Sekunden-Takt ermittelt und per MQTT an Home Assistant weitergereicht.
Innerhalb des Home Assistant Systems werden die Daten innerhalb 12 Stunden zu einem durchschnittlichen UV-Index zusammengefasst, der sicher aussagekräftiger ist als der momentan gemessene Wert. Schließlich verdecken ja auch Wolken mal die Sonne und somit verringert sich die UV-Last teilweise erheblich.
Die Messung wird mit einem Sensor LTR-390 durchgeführt. Für diesen Sensortyp existiert von Adafruit eine Bibliothek, die den Messwert bereitstellt. Alles weitere ist halt nur eine geschickte Orchestrierung diverser Zusatzmodule des Software-Baukastens von Arduino für den ESP32. Inzwischen habe ich alles Projekte mit OTA (Over-The-Air)-Update-Funktion erweitert, sofern sie noch in das Flash passte. Problem bei OTA ist, dass vom Flash-Speicher des ESP32 nur maximal die Hälfte durch die Firmware vereinamt werden darf, die andere Hälfte ist für die Update-Firmware vorbehalten. Somit sind aktuell nur meine Presence-Detektoren ohne OTA ausgerüstet. Vielleicht kann ich da noch ein paar Optimierungen machen, dann könnte das eventuell ebenfalls nachgerüstet werden. Leider verbrauchen MQTT-Client, Webserver, WiFi und vor allen Dingen das Bluetooth-Modul schon fast die Hälfte des Flash-Speichers. Die OTA-Funktion braucht auch noch ein paar Bytes in der Firmware... Nicht ganz einfach aber machbar.
Lohn der Arbeit sind zwei weitere Anzeigen in meiner Wetterstation - aktueller UV-Index und durchschnittlicher 12-h-UV-Index.