Radar basierter WiFi-Niederschlagssensor für Regen, Hagel und Schnee

Begonnen von chunter1, 10 Juni 2017, 13:07:48

Vorheriges Thema - Nächstes Thema

HCS

Ich würde sagen A oder B.

Wenn Du stopCapture() / startCapture() eingebaut hast, dann gibt es nur einen Fall, in dem das Sammeln der Daten kurz usgesetzt wird, und zwar genau ein mal, wenn man auf die setup-page des WebFrontends geht. Der Rest vom web frontend dürfte die Messung nicht beeinflussen, der Timer tickt in dem Fall ja weiter. Und wie schon geschrieben, wenn man die Settings mit "Save and Restart" speichert, erfolgt eh ein Reset direkt von der web frontend routine aus, so dass man erst gar nicht in die main loop zurück kommt und nochmal (schlechte) Daten an FHEM abgesetzt werden könnten.

Ich würde vorerst Variante A machen, ist wohl an einfachsten. Und eventuell eine Überwachung, ob das Timing korrekt war und falls nicht den Durchlauf verwerfen.

Ich baue dann die "32 bins configuration" ein.
Also so (korrekt?):
Speed class 01 from: [    1]  to: [   7]
Speed class 02 from: [    8]  to: [   15]
Speed class 03 from: [   16]  to: [   23]
usw.

Eckige Klammern sind Eingabefelder mit entsprechender Vorbelegung

PeMue

Hallo,

Zitat von: chunter1 am 16 Juli 2017, 20:47:48
Eine erste ESP32 basierte "Developer"-Version ist jetzt auf GitHub verfügbar.
https://github.com/chunter1/precipitationSensorESP32
könntest Du den Link bitte im ersten Post einfügen? Dann muss man nicht suchen. Ich werde mir mal die Bauteilliste als Wunschliste merken und bei der nächsten Bestellung mitbestellen.

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

chunter1

Zitat von: HCS am 22 Juli 2017, 18:01:04
Ich baue dann die "32 bins configuration" ein.
Also so (korrekt?):
Speed class 01 from: [    1]  to: [   7]
Speed class 02 from: [    8]  to: [   15]
Speed class 03 from: [   16]  to: [   23]
usw.

Eckige Klammern sind Eingabefelder mit entsprechender Vorbelegung
Genau, zum Testen ist das perfekt.
Die Zuordnung der FFT-bin Nummer zur realen Geschwindigkeit muss man momentan eben aus der geposteten Tabelle entnehmen.

Bin grade beim Umsetzen der Variante B.
Funktioniert bereits rudimentär.
Selbst bei intensiver Web-frontent Nutzung (wildes Rumklicken  ;) ) gibts keine Aussetzer.
Overflow check und automatic recovery müssen noch rein.
Ich denke im Laufe des Abends kann ich die Version uploaden.

HCS

Zitat von: PeMue am 22 Juli 2017, 18:16:52
Ich werde mir mal die Bauteilliste als Wunschliste merken und bei der nächsten Bestellung mitbestellen.
Ahh, cool, der Designer der Platine, die einen 45° Knick für die korrekte Ausrichtung des Antennearrays haben wird, ist eingetroffen  ;)  ;D ;D

HCS

Zitat von: chunter1 am 22 Juli 2017, 18:29:56
Die Zuordnung der FFT-bin Nummer zur realen Geschwindigkeit muss man momentan eben aus der geposteten Tabelle entnehmen.
Ich könnte die Gschwindigkeitstabelle in die momentan weg optimierte Hilfe-Seite vom Frontend reinpacken, dann hat man sie zur Hand, wenn man sie braucht.
Ich glaube ich baue die Hilfe Seite wieder ein.

Zitat von: chunter1 am 22 Juli 2017, 18:29:56
Overflow check und automatic recovery müssen noch rein.
Ich denke im Laufe des Abends kann ich die Version uploaden.
Cool. Komme vor morgen eh zu nichts mehr  :(

PeMue

Zitat von: HCS am 22 Juli 2017, 18:37:30
Ahh, cool, der Designer der Platine, die einen 45° Knick für die korrekte Ausrichtung des Antennearrays haben wird, ist eingetroffen  ;)  ;D ;D
Hm, definiere Du lieber erst mal, welches ESP32 Board Du haben willst  ;D ;D ;D
Aber: 45 ° ist für Eagle (zumindest in x-y-Ebene) kein Problem  ;)

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

chunter1

#141
Zitat von: HCS am 22 Juli 2017, 18:42:34
Ich könnte die Gschwindigkeitstabelle in die momentan weg optimierte Hilfe-Seite vom Frontend reinpacken, dann hat man sie zur Hand, wenn man sie braucht.
Ich glaube ich baue die Hilfe Seite wieder ein.
Find ich gut!

Eine neue Version mit u.a. vergrößtertem Ringbuffer und overflow check/handling sowie neuen Statistik Parametern steht auf GitHub zur Verfügung.
Die Anzahl der Ringbuffer overflows seit der letzten Datenübergabe (publish) werden in FHEM als "RBoverflows" Reading angezeigt.
Ich konnte mit der momentanen ringbuffer Größe vorerst keine overflows bei intensiver Nutzung des Web-frontends mehr erreichen.
Ein paar Szenarien muss ich hier aber noch auf korrekte Funktion testen.
Das Problem mit der Interrupt-Unterbrechung in Verbindung mit dem NVS ist damit aber noch nicht gelöst.

HCS

Zitat von: chunter1 am 23 Juli 2017, 00:40:43
Das Problem mit der Interrupt-Unterbrechung in Verbindung mit dem NVS ist damit aber noch nicht gelöst.
Ja, ich lasse das mal noch etwas auf mich einwirken.
Entweder es gibt einen funktionierenden Weg, analog zu lesen, während das NVS offen ist, oder es ist ein Bug im IDF, den ich dann einreiche.

chunter1

#143
Ein schönes Beispiel von heute Früh.
Zu sehen sind die detection-counts der Gruppe0 bis 9 (entsprechend 0.2...14 m/s gleichmäßig über 10 Gruppen verteilt).

HCS

Habe gerade die Version committed, in der man die bin groups konfigurieren kann. Nebenbei habe ich noch eine Konfiguration eingebaut, um das "OTA Notfall delay beim start zu konfigurieren"

Mein Testaufbau sieht aktuell wie im angehängten Bild aus.
Die 5V-Spanungsversorgung vom Radarsensor habe ich mit einem 5V step up Wandler gemacht (weil der gerade rumlag), der aus den 3.3V die 5V sauber erzeugt.
3.3V seitig mit 100uF und 5V seitig mit 47uF und 100nF geglättet/geblockt.
Die Analoganbindung ist wie von dir beschrieben (Bandpass).

Die bin groups stehen sauber auf 0, bis Bewegung aufkommt.
Trotz einer Stunde tanz auf der Terrasse kein Regen, kann nur simulieren.  ;D ;D

justme1968

ZitatTrotz einer Stunde tanz auf der Terrasse kein Regen.

hättest mal besser direkt vor dem sensor getanzt. dann wäre die simulation auch gleich erledigt gewesen :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

chunter1

Zitat von: HCS am 23 Juli 2017, 19:12:43
Mein Testaufbau sieht aktuell wie im angehängten Bild aus.
Perfektes Setup würd ich sagen. :)
Bin übrigens seit gestern auch auf die von dir gewählte Orientierung des Sensors umgestiegen (also breite Keule).

Zitat
Die bin groups stehen sauber auf 0, bis Bewegung aufkommt.
Kannst du mal die Readings im Ruhezustand posten?
Würde gern das Grundrauschen (GroupMagAVG) vergleichen.

Was mich auch noch interessieren würde ist, ob du bei der Nähe des ESP32 zum Sensor Störungen bei intensiver WLAN Kommunikation in den Sensorwerten feststellst.
Bei mir sind Sensor und ESP32 momentan räumlich 2m voneinander getrennt.
Dadurch brauch ich das geschirmte Kabel für das analoge Sensorsignal - was für den Nachbau eher unkomfortabel ist.

chunter1

#147
Noch was...
Welche Verstärkung hast du eingestellt?
Bei meinem Setup steht das Poti so, dass ich 16 kOhm über die beiden gelb markierten Pins messe.
Die Einstellung der Verstärkung wirkt sich nämlich direkt auf das Grundrauschen und somit den Detection-Threshold aus.

HCS

Zitat von: chunter1 am 23 Juli 2017, 19:38:42
Kannst du mal die Readings im Ruhezustand posten?
Würde gern das Grundrauschen (GroupMagAVG) vergleichen.
2017-07-23 19:43:59   ADCclipping     0
     2017-07-23 19:43:59   ADCoffset       -103
     2017-07-23 19:43:59   ADCpeak         2
     2017-07-23 19:43:59   GroupDetections 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     2017-07-23 19:43:59   GroupMagAVG     3.53 3.17 2.83 2.71 2.72 2.68 2.42 2.41 2.45 2.32 2.34 2.25 2.09 2.05 2.05 1.96 2.05 1.89 1.89 1.82 1.89 1.84 1.79 1.72 1.76 1.72 1.70 1.78 1.75 1.75 1.76 1.72
     2017-07-23 19:43:59   GroupMagPeak    17 13 14 14 14 12 10 11 13 13 8 10 10 8 8 9 8 7 8 7 9 7 6 6 8 6 5 8 7 7 8 8
     2017-07-23 19:43:59   MagAVG          2.16
     2017-07-23 19:43:59   MagPeak         17
     2017-07-23 19:43:59   RBoverflows     0
     2017-07-23 19:43:59   detections      0
     2017-07-23 19:43:59   snapshots       200
     2017-07-23 19:43:59   state           0

Zitat von: chunter1 am 23 Juli 2017, 19:38:42
Was mich auch noch interessieren würde ist, ob du bei der Nähe des ESP32 zum Sensor Störungen bei intensiver WLAN Kommunikation in den Sensorwerten feststellst.
Bei mir sind Sensor und ESP32 momentan räumlich 2m voneinander getrennt.
Wenn die Frage ist, ob sich GroupMagAVG wesentlich ändert: Nein, das ist bei intensiver Nutzung der Frontends recht unverändert, und pendelt unabhängig davon für die unteren beiden Gruppen so zw. 2.5 und 4

Zitat von: chunter1 am 23 Juli 2017, 19:49:36
Noch was...
Welche Verstärkung hast du eingestellt?
Bei meinem Setup steht das Poti so, dass ich 16 kOhm über die beiden gelb markierten Pins messe.
Ich habe das Poti nach Augenmaß auf Mittelstellung gedreht.

Aber das ist ein gutes Stichwort. Man muss ja wohl mit der Einstellung der Verstärkung und Detection threshold ein Setting hin bekommen, bei dem man noch empfindlich genug ist aber keine fehl-detections hat.

Wäre da ein Kalibriermodus sinnvoll, den man aktiviert (wenn man sicher keine Bwegung vor dem Radar hat) und der dann Detection threshold stückweise hochfährt und bei Erreichen der ersten detections in wieder z.B. 10% reduziert und dann wegspeichert?

HCS

Habe es mal auf 16K gedreht.

Dann sieht das so aus:
    2017-07-23 20:11:47   ADCclipping     0
     2017-07-23 20:11:47   ADCoffset       -94
     2017-07-23 20:11:47   ADCpeak         2
     2017-07-23 20:11:47   GroupDetections 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     2017-07-23 20:11:47   GroupMagAVG     0.49 0.43 0.40 0.34 0.36 0.34 0.33 0.33 0.33 0.33 0.31 0.27 0.28 0.30 0.31 0.33 0.35 0.30 0.30 0.27 0.27 0.29 0.31 0.29 0.31 0.32 0.32 0.29 0.31 0.34 0.35 0.41
     2017-07-23 20:11:47   GroupMagPeak    7 6 4 4 6 5 4 4 5 4 5 4 4 3 3 3 3 3 2 2 2 3 3 3 2 3 3 2 3 3 3 3
     2017-07-23 20:11:47   MagAVG          0.33
     2017-07-23 20:11:47   MagPeak         7
     2017-07-23 20:11:47   RBoverflows     0
     2017-07-23 20:11:47   detections      0
     2017-07-23 20:11:47   snapshots       200
     2017-07-23 20:11:47   state           0