ESP8266WebServer & attachInterrupt
|
11.01.2021, 14:44
Beitrag #1
|
|||
|
|||
ESP8266WebServer & attachInterrupt
Grüß Euch!
Nach mehrtägiger Einlesephase (noch keinen Test gestartet) und einen Sketch gesehen der das angeblich kann, stellt sich für mich die Frage "geht das wirklich, auch für meine Anwendung?" Soweit läuft der Server auf dem D1 sehr gut. Für die Windgeschwindigkeit und die Regenmenge hab ich zuvor (ohne Server) in der Testanwendung das ganze mit attachInterrupt lauffähig. Jetzt stellt sich für mich die weitere Frage, stört der Interrupt die Clientanfrage bzw. den Server im Ablauf? Nach der Webseite wie oben, NEIN. Der macht jedoch nur alle Minute eine Abfrage. Meine Idee dazu, Wind/Regen für sagen wir mal für je 3 Sekunden Auswerten (Also attachInterrupt aktivieren -> Messung für 3 Sekunden durchführen -> attachInterrupt deaktivieren) Hier die Funktion die so schon Läuft (Wind, Regen ist Ident, andere Berechnung für) Code: void meassure() { Code: ICACHE_RAM_ATTR void countup() { Idee [THRUE||FALSE] ? Möchte nur Input bevor ich mich da in eine falsche Richtung bewege, keinen fertigen Code, einfach nur Hinweise - DANKE! Gruß aus Wiener Neustadt Toni ================================================================= Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr. Wer Rechtschreibfehler findet darf sie behalten ![]() |
|||
11.01.2021, 15:17
Beitrag #2
|
|||
|
|||
RE: ESP8266WebServer & attachInterrupt
Regnet es bei Euch immer nur 3 Sekunden lang?
Prellt Dein Regenmesser nicht? Das Auslesen des InterruptCounter funktioniert so nicht, auch wenn Du die Deklaration verschweigst. Da der mehrere Bytes umfassen dürfte, muss der atomar geslesen werden. Ich habe es mal für einen Regenmesser auf D1 mini so gemacht: Code: const byte regenPin = 2; // D4 Es sollte aber auch ohne Interrupt machbar sein, wenn der loop nicht zu langsam ist. Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
11.01.2021, 15:59
Beitrag #3
|
|||
|
|||
RE: ESP8266WebServer & attachInterrupt
(11.01.2021 15:17)Tommy56 schrieb: Regnet es bei Euch immer nur 3 Sekunden lang? Der war gut Tommy ![]() ![]() ![]() ![]() ![]() Nein die 3 Sekunden bezogen sich auf den Messintervall - also je aufruf 3 Sekunden Messen. Hier mal für der Test für Wind der Funktioniert und die Werte liefert die dem Sensor entsprechen (Regen ist ja gleich, nur die Clicks Zählen und Umrechnen) Code: #define WindSensorPin (D6) Zitat:Prellt Dein Regenmesser nicht? RC-Entprellt, nein. Zitat:Da der mehrere Bytes umfassen dürfte, muss der atomar geslesen werden. Da kann ich nicht folgen, da bekomm ich ja nur HIGH/LOW retour? Egal ob Wind/Regen. Was hab ich da nicht Verstanden? Was meinst du mit atomar gelesen? Die Testaufbauten Funktionieren ja eh wie sie sollen. Mein jetziges Problem D1 Server mit den Wind/Regen - der Loop hat fast nix zu tun. 2 I2C Sensoren auslesen (Intervall von 5 bis 15 Sekunden) und die Clientanfragen beantworten, und die Clicks von Wind und Regen Auswerten. Gruß aus Wiener Neustadt Toni ================================================================= Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr. Wer Rechtschreibfehler findet darf sie behalten ![]() |
|||
11.01.2021, 16:11
Beitrag #4
|
|||
|
|||
RE: ESP8266WebServer & attachInterrupt
(11.01.2021 15:59)rev.antun schrieb: Da kann ich nicht folgen, da bekomm ich ja nur HIGH/LOW retour? Egal ob Wind/Regen.Du zählst doch irgendwas oder? Der Zählerstand ist doch nicht nur HIGH/LOW oder? Den Sinn Deines 3 Sekunden Messintervalls bei Regen sehe ich nicht. Beim Wind könnte das hin kommen, da das ein Durchschnittswert ist. Bei Regen geht es ja um die Menge. Ich weiß nicht, welchen Regenmesser Du verwendest, meiner kippt nach einer bestimmten Wassermenge und gibt einen Impuls, da wären 3 Sekunden lang zählen völliger Unsinn. Wenn ich nach 15 Minuten den Wert an die Datenbank schicke, dann will ich wissen, wieviel Impulse es in den 15 Minuten gab (umgerechnet über Wassermenge und Fläche). Nach dem Senden stelle ich den Zähler wieder auf 0. Atomar auslesen heißt, dass man vorher die Interrupts blockiert, dann den Wert kopiert und sie wieder einschaltet. Dann kan man in Ruhe mit den Werten rechnen. Sonst kann es Dir passieren, dass Du das 1.Byte gelesen hast, dann kommt der Interrupt und Dein 2. Byte ist schon verändert und passt nicht mehr. Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
12.01.2021, 12:03
Beitrag #5
|
|||
|
|||
RE: ESP8266WebServer & attachInterrupt
(11.01.2021 16:11)Tommy56 schrieb: Du zählst doch irgendwas oder? Der Zählerstand ist doch nicht nur HIGH/LOW oder? Ja die Clicks je Zeiteinheit Der 3 Sekunden Messintervall bezog sich nur auf den Wind - sorry das hab ich da nicht klar geschrieben. Für den Regen hab ich ebenfalls eine Wippe die nach je 7ml einen Click auslöst. Und ja, das ohne Interrupts könnte man mit millis, auch lösen. Sollte bei Wind/Regen Kombination auch von den Zeitabläufen keine Problem darstellen. Also würde dann einfach im loop IMMER durchlaufen. Für den Regen braucht man dann ja nur für die gewünschten Zeiteinheiten (zb. letzte Stunde, heutiger tag, letzten 24 Stunden etc..) den entsprechenden Zähler auf 0 Stellen. Und bei dem Windmesser kennt man dann in welcher Zeit wie viele Clicks ausgelöst wurden und das dann eben Umrechnen auf die Windgeschwindigkeit. Und wie gesagt, dass sollte mM kein Problem sein ohne Interrupt einfach im loop durchlaufen zu lassen, und selbst wenn, die Abweichungen sind denk ich Verkraftbar ![]() War da jetzt ein Gedankenfehler dabei? Warte noch auf mein Gehäuse für den Gartensensor - dann wird das ganze Eingebaut, und in der Wildnis ausgesetzt. Werde mal bis das Gehäuse kommt, den Wind/Regen auf Interruptfrei umstellen. Werde berichten. Gruß aus Wiener Neustadt Toni ================================================================= Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr. Wer Rechtschreibfehler findet darf sie behalten ![]() |
|||
12.01.2021, 12:13
Beitrag #6
|
|||
|
|||
RE: ESP8266WebServer & attachInterrupt
(12.01.2021 12:03)rev.antun schrieb: War da jetzt ein Gedankenfehler dabei? Ich kann keinen erkennen ![]() Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
12.01.2021, 12:40
Beitrag #7
|
|||
|
|||
RE: ESP8266WebServer & attachInterrupt
(12.01.2021 12:13)Tommy56 schrieb: Ich kann keinen erkennen Mal sehen was der D1 dazu sagt ... ![]() ![]() ![]() Gruß aus Wiener Neustadt Toni ================================================================= Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr. Wer Rechtschreibfehler findet darf sie behalten ![]() |
|||
13.01.2021, 22:58
Beitrag #8
|
|||
|
|||
RE: ESP8266WebServer & attachInterrupt
(11.01.2021 15:17)Tommy56 schrieb: Ich habe es mal für einen Regenmesser auf D1 mini so gemacht: Servus Tommy! Das mit der Regenwippe ist auch so eine Sache, nicht Technisch, das Funktioniert ja. Nur kommen bei mir da etwas seltsame Werte raus. Wenn der Trichter einen Durchmesser von 110mm hat komme ich auf 0,63 mm/m² JE Impuls (~6ml) ![]() Gruß aus Wiener Neustadt Toni ================================================================= Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr. Wer Rechtschreibfehler findet darf sie behalten ![]() |
|||
|
|
Möglicherweise verwandte Themen... | |||||
Thema: | Verfasser | Antworten: | Ansichten: | Letzter Beitrag | |
ESP8266WebServer RAW Post Data gesucht | Nichtraucher | 10 | 997 |
12.11.2020 12:11 Letzter Beitrag: Tommy56 |
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste