Picobrightness
Angelegt Freitag 02 Juni 2023
So messe ich die Helligkeit mit einem Raspberry Pi Pico w und Helligkeitssensor. Der Signalausgang des Helligkeitswiderstands ist am Pin GP28 angeschlossen. Die Spannungsversorgung holt sich der Sensor vom Pico (3.3V, GND). Die Software ist selbstjustierend geschrieben und liefert Werte zwischen 0 und 100 %. 0% stellt den niedrigsten gemessenen Helligkeitswert dar und 100% den Höchsten.
' Helligkeitsmessung Option explicit SetPin gp28,ain Dim minbrightness As float = 0.07333 Dim maxbrightness As float = 3.25278 Dim hell As Integer Function bright() Static h As float = 0.0 Static n As integer = 0 n = Min(5, n+1) h = h + (Pin(gp28)-h)/n If h > maxbrightness Then maxbrightness = h If h < minbrightness Then minbrightness = h bright = h End Function Function scale(brightness) Local range As float = 0.0 range = maxbrightness - minbrightness If range <> 0 Then scale = 100 - Int((brightness - minbrightness) / (range / 100)) Else scale = 100 EndIf End Function Do WatchDog 60000 hell = scale(bright()) Print "Helligkeit: ";hell;" %" On ERROR SKIP 3 WEB MQTT CONNECT "192.168.178.54",1883,"anon","anon" WEB MQTT PUBLISH "brightness",Str$(hell) WEB MQTT CLOSE Print Pause 1000 Loop
IoT MQTT panel Pro
Damit sich der Pico zuverlässig und automatisch mit dem wireless LAN verbindet sollte zusätlich eine Library definiert sein:
Sub DoConnect Do While MM.Info(TCPIP STATUS) <> 3 If Timer > 6000 Then CPU restart Loop End Sub DoConnect
Als Firmware sollte WebMiteV5.07.08b2 oder später verwendet werden, da sich in früheren Versionen ein MQTT Speicherleck befand.