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

Zitat von: chunter1 am 05 August 2017, 10:09:37
Wie befürchtet, stört der ESP32 bei aktiver WLAN-Kommunikation den Preamp massiv.
Evtl. sollte man das Radar incl. preamp in ein Weißblechgehäuse oder so etwas setzen (also nach vorne natürlich offen).
Bist Du sicher, dass es in den Preamp einstrahlt und nicht das Radar die 10te Oberwelle vom WiFi empfängt?

Zitat von: chunter1 am 05 August 2017, 10:09:37
Was ich testweise ausprobieren möchte ist, das WLAN während der Messung in einen power-down/sleep-mode zu versetzen und nur für die Übertragung zu aktivieren.
Das wird dem WebFrontend nicht besonders gefallen.

Zitat von: chunter1 am 05 August 2017, 10:09:37
Weiß zufällig wer wie das geht?
Aus mit WiFi.mode(WIFI_OFF);
An mit WiFi.mode(WIFI_STA);

Aber es könnte sein, dass man es dann auf den AP neu verbinden muss.
Mehr ist mir bisher im arduino-esp32 nicht aufgefallen.
Da müsste man evtl. mal im esp-idf forschen.



Maista

Hallo chunter1

Kann nichts zum Thema Deepsleep sagen.

Hast du die Spannungsversorgung voneinander entkoppelt?
Z.B. mit RC-Glied oder LC-Glied?
Ansonsten vielleicht zwischen ESP  und Verstärker (und Radar-Modul?) ein Stück Weissblech/Cu-Kaschierte Leiterplatte
nach GND hochkant löten.
Dann hättest du schon mal etwas Entkopplung zwischen HF/CPU und Verstärker.
Und die Spannungszuführung trotz allem mit RC/LC zuführen.

Viel Erfolg weiterhin.

Gerd

Mist zu langsam ;)

chunter1

#272
Zitat von: HCS am 05 August 2017, 10:25:24
Bist Du sicher, dass es in den Preamp einstrahlt und nicht das Radar die 10te Oberwelle vom WiFi empfängt?
100% sicher bin ich nicht, aber wenn man die Antenne des ESP32 in die Nähe des preamp Einganges hält wirds wesentlich schlimmer als wenn man sie direkt vor die Radar-Antenne hält.

Zitat
Das wird dem WebFrontend nicht besonders gefallen.
Aus mit WiFi.mode(WIFI_OFF);
An mit WiFi.mode(WIFI_STA);
Ja, hätt ich nur mal zum Testen ausprobiert.
Danke für die commands.

Zitat von: Maista
Hast du die Spannungsversorgung voneinander entkoppelt?
Z.B. mit RC-Glied oder LC-Glied?
Yup, alle üblichen EMV-Maßnahmen hab ich schon durchprobiert.
Das einzige was bisher eine deutliche Verbesserung gebracht hat, war eine räumliche Trennung von mind. 1m (Signal über Koax).

Zitat
Ansonsten vielleicht zwischen ESP  und Verstärker (und Radar-Modul?) ein Stück Weissblech/Cu-Kaschierte Leiterplatte nach GND hochkant löten.
Dann hättest du schon mal etwas Entkopplung zwischen HF/CPU und Verstärker.
Und die Spannungszuführung trotz allem mit RC/LC zuführen.
Ein RF-technisch fett angebundenes Schirmblech hatte ich auch schon probiert - bringt nicht viel.
Ein Schirmgehäuse macht den Nachbau meiner Meinung nach unattraktiv.
Einzig, wenn man ein sauberes PCB hätte, könnte man standard Schirmhauben über den preamp-Teil löten, was sehr einfach ginge.
Ich werd noch etwas rumprobieren und berichten.

chunter1

#273
Das Deaktivieren des WLAN Interface während der Messungen wirkt Wunder (wie erwartet).
Die Übertragung der Ergebnisse findet bei mir alle 60s statt.
Während dieser Zeit ist die Messung deaktiviert.
@HCS: Gut, dass wir jetzt das start- und stopCapture() drin haben :)
Angenehmer Nebeneffekt... die Leistungsaufnahme bei meinem Test-Setup sinkt von rund 1,4 auf 1,0W.

Wenn das eine akzeptable Lösung wäre, dann stünde das Web-Frontend klarerweise im normalen Betrieb nicht mehr zur Verfügung.
Man könnte es aber z.B. nach einem Power-cycle für z.B. 15s aktiv schalten, und so lange weiterhin aktiv belassen, solange eine client-Verbindung steht, oder man im Setup-Menü explizit z.B "Start measuring" anklickt?

Aus momentaner Sicht wäre das die Hardware-technisch simpelste Lösung.
Was meint ihr dazu?

Anbei die Schaltung meines preamps.
Ob die Verstärkung (ca. 57 dB) für das DN40 Rohr passt, muss ich erst noch testen.
Wie gehabt, stehen die beiden 50 Ohm Widerstände am Ausgang für einen 100 Ohm Trimmer (Spindeltrimmer empfohlen).

AxelSchweiss

Zitat von: chunter1 am 05 August 2017, 16:21:32

Wenn das eine akzeptable Lösung wäre, dann stünde das Web-Frontend klarerweise im normalen Betrieb nicht mehr zur Verfügung.
Man könnte es aber z.B. nach einem Power-cycle für z.B. 15s aktiv schalten, und so lange weiterhin aktiv belassen, solange eine client-Verbindung steht, oder man im Setup-Menü explizit z.B "Start measuring" anklickt?

Aus momentaner Sicht wäre das die Hardware-technisch simpelste Lösung.
Was meint ihr dazu?

Wir haben ja genug IO-Ports  ;D
Daher schlage ich einen Schalter vor.
Ist der Schalter an bzw. Maintance geht die Firmware in einen CONFIG-ONLY Mode ohne Messungen.
Dann kann man nach aller Herzenslust Einstellungen vornehmen.
Schaltet man dann auf Off bzw. Run wird das Config-Frontend gar nicht mehr angeboten und nur noch gemessen.

Ich denke das man das Config doch eher selten macht ... auser ev. zum Debuggen.

HCS

Ja, während dem normalen Betrieb braucht man das Frontend eher kaum.
Aber dass man nicht einfach mal ein OTA-Update machen kann, ist dann schon bitterer und erst aufs Dach klettern, um es in den Wartungsmodus zu schalten, ist nicht ideal.
Es kann auch sein, dass man mal den WiFI Zugang neu konfigurieren muss usw.

Was sind aktuell die Optionen?

1) Versuchen, Zeitscheiben hinzubekommen (messen - WiFi - messen - WiFI - Messen - ...), bei denen das WebFrontend noch gut genug reagiert, um auf ihm den Wartungsmodus zu aktivieren. Damit würde OTA dann auch gehen, das stoppt ja jetzt auch schon den Timer, wenn ein Upload beginnt.

2) Räumiche Trennung von Rader+Premap und ESP32, wie es chunter1 schon mal hatte.

3) Wartungsmodus, in den man es per Schalter/Button versetzen muss, wenn man die Leiter hochgestiegen ist.

4) WiFi vergessen und die Daten auf 868 MHz rüberfunken

Die Reihenfolge stellt meine persönliche Rangliste dar.

Ich lote mal in einer Test-Firmware aus, was die Mindest-Zeitscheiben sind, mit denen man das Frontend noch so weit bedienen kann, dass man einen Wartungsmodus aktivieren könnte.
Das setzt allerdings voraus, dass man bei aufgebauter Verbindung zum AP die Sendeleistung mal kurz runternehmen kann, ohne die Verbindung zu beenden.
Ich suche mal im idf, ob es da was kann.


Wie auch immer habe ich gerade eine 0.8.1 eingecheckt, die einige kleine Verbesserungen und die Ansteuerung vom WatchDog drin hat.
* Version v0.8.1 (05.08.2017)
* -) Added Tools class with helpers like GetChipId() ...
* -) Added ChipID and Revision to the hardware page and as serial output
* -) OTA MDS name is now precipitationSensor_<ChipID>
* -) Default hostname in the setup is now precipitationSensor - LaCrosseGateway was wrong :-)
* -) AccessPoint name is now ps-<ChipID>
* -) Added watchdog triggering on GPIO32

Die Schaltung dazu poste ich später hier dann noch.

sbiermann

Bei meinen Firmwares mache ich es so mit dem OTA Updates beim starten des ESP abgerufen werden. Im Zweifel muss man den ESP nur zum booten bringen und das ist meistens ziemlich einfach, Strom aus und Strom an. Braucht man nicht auf Leitern klettern. Schon kommt die neue Firmware. Gleiches könnte man auch für neue Konfigurationen machen, abrufen von einer vorher definierten Quelle oder alternativ könnte man so das Webfrontend aktivieren, das die Firmware im Wartungsmodus hoch fährt.

AxelSchweiss

Zitat von: HCS am 05 August 2017, 21:35:51
Ja, während dem normalen Betrieb braucht man das Frontend eher kaum.
Aber dass man nicht einfach mal ein OTA-Update machen kann, ist dann schon bitterer und erst aufs Dach klettern, um es in den Wartungsmodus zu schalten, ist nicht ideal.
Es kann auch sein, dass man mal den WiFI Zugang neu konfigurieren muss usw.

Ja ... da hast du Recht .... vor allem wenn es regnet  ;D
Eventuell wäre auch folgender Ablauf denkbar.

Messen ... senden via WIFI ... prüfen ob Maintance-Flag in FHEM gesetzt ist   ... wenn ja dann MaintanceMode ... wenn nein dann weiter wie gehabt.

HCS

Zitat von: sbiermann am 05 August 2017, 21:45:33
Im Zweifel muss man den ESP nur zum booten bringen und das ist meistens ziemlich einfach, Strom aus und Strom an.
Ja, notfalls mit einer PCA301 davor.
Aber ich denke, dass wir erst mal alle Optionen ausloten sollten, bevor wir etwas verwerfen.
Ich überlege auch gerade, ob es gut ist, dass sich etwas alle 60 Sekunden auf den AccessPoint neu verbindet und wieder trennt.
Das könnte irgend welche Anmelde-Logs schnell explodieren lassen und ich glaube, dass es eher nicht üblich ist, sich 1440 mal am Tag an einen AP anzumelden und wieder zu trennen (bei 60 Sekunden Update-Interval, was ich schon recht lang finde.)

chunter1

#279
Zitat von: HCS am 05 August 2017, 21:35:51
Was sind aktuell die Optionen?

1) Versuchen, Zeitscheiben hinzubekommen (messen - WiFi - messen - WiFI - Messen - ...), bei denen das WebFrontend noch gut genug reagiert, um auf ihm den Wartungsmodus zu aktivieren. Damit würde OTA dann auch gehen, das stoppt ja jetzt auch schon den Timer, wenn ein Upload beginnt.

2) Räumiche Trennung von Rader+Premap und ESP32, wie es chunter1 schon mal hatte.

3) Wartungsmodus, in den man es per Schalter/Button versetzen muss, wenn man die Leiter hochgestiegen ist.

4) WiFi vergessen und die Daten auf 868 MHz rüberfunken

Die Reihenfolge stellt meine persönliche Rangliste dar.

Die Rangliste sehe ich ähnlich.
ad 3) Statt des Schalters würde ich den einfach aus der Ferne durchführbaren power-cycle (Steckernetzteil am Dachboden ziehen) bevorzugen.
ad 4) Würde ich als eigenes Projekt sehen, bei dem man eigentlich gleich auf einen besser geeigneteren Microcontroller umsteigen sollte.

Das ununterbrochene Messen ist mir aber doch das Wichtigste (Stichwort Niederschlagsmengenmessung).

Hat wer Erfahrung mit den günstigen China PCB shops?
Mit einem eigenen PCB-Design, könnte man den Preamp-Teil durch Auflöten eines Standard Abschirmgehäuses+Deckel (siehe unten) sehr gut und einfach dicht bekommen.
https://www.conrad.de/de/abschirmgehaeuse-wuerth-elektronik-we-shc-36503205-1-st-1086758.html?sc.ref=Product%20Details

Zitat von: HCS am 05 August 2017, 21:56:53
Ja, notfalls mit einer PCA301 davor.
Bei mir ist es grade eine Homematic Energie-Mess Steckdose :)

Zitat
Ich überlege auch gerade, ob es gut ist, dass sich etwas alle 60 Sekunden auf den AccessPoint neu verbindet und wieder trennt.
Das könnte irgend welche Anmelde-Logs schnell explodieren lassen und ich glaube, dass es eher nicht üblich ist, sich 1440 mal am Tag an einen AP anzumelden und wieder zu trennen (bei 60 Sekunden Update-Interval, was ich schon recht lang finde.)
Fürchte ich auch!

AxelSchweiss

Das mit den PowerCycle ist wahrscheinlich das beste.

Booten .... N Minuten im WebFrontend warten  .... dann normaler ununterbrochener Betrieb.
(Ich hatte zwar vor den Sensor mittels Solar und LiPo zu betreiben ... aber ok)

Mit der An/Abmelde-Orgie könnten mir in der Tat die Logs überlaufen.
Ich logge sowohl DHCP, DNS als auch die Logs vom WLAN-Router zentral.

Was spricht den dagegen den Radarsensor mittels Koax ein paar Meter vom ESP weg zu installieren?
Das hätte auch den Vorteil das man den ESP mit einem seperaten Gehäuse "ins trokene" bringen kann.

HCS

Zitat von: chunter1 am 05 August 2017, 22:07:08
Das ununterbrochene Messen ist mir aber doch das Wichtigste (Stichwort Niederschlagsmengenmessung).
Das lässt dann vermutlich nur Option 2) zu, oder man bekommt es hin, die Sendeleitung vom WiFi runterzuregeln, ohne die Verbindung zum AP zu verlieren.

Zitat von: chunter1 am 05 August 2017, 22:07:08
Hat wer Erfahrung mit den günstigen China PCB shops?
PeMue. Der hat die Platinen für das LGW (und das Nano-LGW) gemacht und geordert und sich ja schon so halb hier als Layouter committed.
Aus der Erfahrung vom LGW würde ich mal schätzten, dass das PCB zwischen 1 und 2 EUR liegt.

Zitat von: chunter1 am 05 August 2017, 22:07:08
Mit einem eigenen PCB-Design, könnte man den Preamp-Teil durch Auflöten eines Standard Abschirmgehäuses+Deckel (siehe unten) sehr gut und einfach dicht bekommen.
https://www.conrad.de/de/abschirmgehaeuse-wuerth-elektronik-we-shc-36503205-1-st-1086758.html?sc.ref=Product%20Details
Das wäre auf alle Fälle ein Weg, den man ausloten sollte. Oder evtl. eine Kombination aus Abschirmung und runtergeregelter Sendeleistung während dem Messen.

Zitat von: chunter1 am 05 August 2017, 22:07:08
Bei mir ist es grade eine Homematic Energie-Mess Steckdose :)
Ja, die PCA301 bei mir ist auch keine Idee sondern real davor. Ich habe fast alle Versuchsaufbauten hinter einer PCA301, weil ich sie zum Entwickeln oft gar nicht mitnehme.
Aber vor ein produktives IOT-Thing sollte man keine PCA301 setzen müssen.

Lass mich mal die Grenze vom Frontend ausloten, wie oft wie lange ein Messfreier Slot da sein müsste.
Dann kann man beurteilen und Entscheiden, ob das akzeptabel ist.
Auch für die Mengenermittlung sollte das bis zu einem gewissen Grad machbar sein.
Was zwischen zwei Ergebnissen war, die einen Abstand im Sekunden-Bereich haben, sollte man interpolieren können. So schnell ändert sich die Regenintensität dann auch nicht.

HCS

So, wie angekündigt die Schaltung.

Vorwort: das ist ein (und zwar mein) Versuchsaufbau und definitiv nicht die endgültige Lösung. Also nicht gleich lossprinten und genau diese Bauteile besorgen.
Eigentlich hat nur der Watchdog die Chance, am Schluss genau so zu werden  :)

Die Anbindung an den ADC ist die ursprüngliche Variante von chunter1 und eigentlich fast überholt.

Den Watchdog sollte man auf alle Fälle über einen Jumper anbinden, dass man ihn für Test- und sonstige Zwecke stilllegen kann.

Die 5V für das Radar mache ich aktuell mit einem StepUp, dass ich es an einem Laptop pur betreiben kann.

Ob der DS18B20 mit einem geschirmten und rauschfreinen Preamp am Schluss benötigt wird, ist auch noch offen. Falls nicht, hole ich den Radierer raus ...

HCS

Kannst es damit mal probieren. Damit bekommt man die Sendeleistung zwar nicht auf 0 aber zumindest wohl rund 20 dBm runter:
https://github.com/espressif/esp-idf/commit/1c4f7f20818226155a954d89060ca034d8550cb0

#include "esp_wifi.h"

und nach
StartWifi(&settings);
dann
esp_wifi_set_max_tx_power(-127);


chunter1

Zitat von: HCS am 06 August 2017, 09:43:48
Kannst es damit mal probieren. Damit bekommt man die Sendeleistung zwar nicht auf 0 aber zumindest wohl rund 20 dBm runter:

ok, mach ich.
Heute Nacht ist der ESP32 übrigens gecrashed - Version 0.8 mit 8192.