Posts by ghmartin77

    Ich bin immer noch im falschen Film.

    raspbastler : Ganz oben schreibst du

    Jetzt auf dem ESP32 wird jedoch es etwas komplizierter, dort gibt es auch TimerInterrupts, aber wie kann ich diese mit den beiden Kernen verknüpfen, so dass ein Interrupt nur auf einem Kern ausgeführt wird.

    und jetzt auf auf jars Rückfrage:

    Im anderen Thread ging es um das Zuweisen von Interrupts zu einem bestimmten Core. Hier ging es um die Architektur.

    Vielleicht doch mit 2 Threads etwas verschwurbelt, was du nun wo wolltest?

    Ich habe aber alle Hinweise bekommen und bin zufrieden, deshalb auch als Erledigt markiert

    Dann ist ja zumindest dein Ziel erreicht...

    und freue mich über jeden sachdienlichen Hinweis

    es geht um PRAXISERFAHRUNG!

    Ja Mensch, dann verzeih bitte mein mangelndes Textverständnis. Wird nicht wieder vorkommen...

    Es geht mir nicht um irgendwelche Dokus

    Der Link geht nicht auf "irgendwelche Dokus", sondern auf die offizielle Dokumentation des Herstellers des ESP32 und er beschreibt ganz klar und eindeutig, wie/wann INT-Handler-Code von welchem Kern verarbeitet wird. Hätt ja noch verstanden, wenn du sagst, schöne Doku, aber sie ist inhaltlich falsch, aber so...

    Naja, vermutlich auch mein fehlendes Textverständnis... :conf:

    Such mal bei Ama*on nach "eufy Security Solo IndoorCam P24". Erster Treffer, drittes Symbolbild.

    Die Menschenerkennung ist ziemlich zuverlässig, ob das auch für (Haus)Tiere (und deren Unterscheidung Katze/Hund) gilt, kann ich leider nicht sagen...

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Hm, wenn du die Events des Rotary-Encoders nicht direkt in einem Python-Programm auswerten willst und Tastendrücke (für ein anderes Programm) simulieren möchtest, kann dir das hier vielleicht helfen: https://github.com/KarsMulder/evsieve

    Oder direkt in Python sieht das hier ganz gut aus: https://python-evdev.readthedocs.io/en/latest/tuto…injecting-input

    Und für den Button deines Rotary-Encoders ist das Overlay gpio_key dein Freund: https://discourse.osmc.tv/t/how-to-use-h…-gpio-key/86594

    Das geht ganz wunderbar, aber leider nicht (vernünftig) mit den elfunddrüflzig Varianten die man bei den ersten Google-Versuchen trifft. Entprellen eines Rotary-Encoders ist eine Wissenschaft für sich und mit einem Nicht-Echtzeit-Linux und noch tiefer in Python eingebuddelt, hast du ungefähr 0 Chance, eine vernünftig reagierende Implementierung hinzubekommen.

    Aber... da gibt's schon was von Ratiopharm: Mit dem Kernel für den Pi kommt ein Overlay mit, mit dem man Rotary Encoder auf allerunterster Hardware-Ebene einbinden kann und das läuft erste Sahne:

    Das hier in der /boot/config.txt ist der Schlüssel zum Glück:

    Code
    # enable rotary encoder
    dtoverlay=rotary-encoder,pin_a=4,pin_b=17,relative_axis=1,steps-per-period=2

    Pins musst du passend zu deinem Setup konfigurieren.

    Danach hast du ein /dev/input/event0, das deinen Encoder darstellt und das kannst du dann mit bspw. Python auslesen.

    Dazu habe ich dir einen Source-Ausschnitt eines Radios, das ich mir gebaut hatte und einen Rotary-Encoder nutzt, angehängt. "dev_rotary_encoder" ist, was du suchst. Handling musst du dir aus dem Code rauskratzen :)

    Viel Erfolg!

    Allerdings stelle ich mir gerade die Frage wie man das macht denn wenn man den ESP in Deep Sleep schickt wird dabei nicht die Versorgungsspannung des Sensors ausgeschaltet

    Guxtu in den Beispielcode oben. In a nutshell: Du nutzt einen Out-Pin deines Mikrocontrollers als VCC für den Sensor. Dann kannst du mit dem Pin den Strom aus- und einschalten. In diesem Fall zieht der Sensor nicht so viel, dass du einen Mosfet oder Transistor zwischenschalten müsstest...

    Die Versorgungsspannung des ESPs muss anbleiben, sonst kann er aus dem DeepSleep nicht mehr aufwachen. Ohne Versorgungsspannung würd' er auch nicht tiefschlafen, sondern aus sein :)

    Bei uns regent es keine Schwefelsäure und auch der Straßenverkehr ist eher mäßig. Ich hatte mal versucht ihn mit Alkohol zu reinigen was nichts gebracht hat.

    War dein Sensor dauerbestromt? Weiter oben im Thread gab es die Theorie, dass der Zersetzungsprozess beschleunigt wird, wenn Strom anliegt...

    framp: Nebenbemerkung: Ich hab's zwar nie probiert, aber ich glaube nicht, dass du diese Plättchen seriös zur Regenvolumen-Messung nutzen kannst. Der Messwert wird zwar schwanken, aber wenn's da einen Linear-Zusammenhang zwischen Analogmesswert und Niederschlagsmenge gibt, dann vermutlich nur, wenn wir über Eintauchtiefe der Sensorplatte als ganzes in Wasser reden. Abhängig von Wind, Tropfengröße und sonstigen Umwelteinflüssen wird der Wert bei gleicher Regenmenge dermaßen schwanken, dass keine Korrelation zwischen Niederschlagsmenge und Messwert ableitbar ist.

    Just my 2 cents...

    BR,

    ghmartin77

    Sprich ein angemessenes Sleepintervall liegt irgendwo zwischen 1 und 5 Minuten.

    Das kannst du dir für deinen konkreten Anwendungsfall ausdenken, was am besten passt.

    Bei mir sind's ungefähr 10 Sekunden, in denen ich meine ATTiny-Lösung in den Tiefschlaf schicke. Der Comparator-Teil des Sensors wird zur Messung nur kurz mit Strom versorgt und auch das 433MHz-Funkmodul kriegt nur kurz Saft, um eine etwaige Statusänderung in die Landschaft zu schicken. Damit halten die Batterien länger als die Sensorplatte zum Verrosten brauchte :)

    Jenachdem, wie genau du's haben willst, musst du es für dich anpassen.

    Bspw. kannst du den Microcontroller immer nur 10 Sekunden schlafen lassen, solange du weißt, dass es nicht regnet (von deiner letzten Messung). Sobald Regen erkannt wird, kannst du in ein 1-sekündiges Aufwachinterval wechseln, weil du den Regen selbst "schärfer" messen möchtest...

    So vieeele Möglichkeiten... und alle nur, um nicht alle Woche auf's Dach zu Kraxeln und die Batterien zu wechseln (speziell, wenn du auf einen ESP8266 setzen möchtest).

    Hab dir meinen Code als Beispiel angehängt (ist aber für einen ATTiny, auskommentierte Logeinträge stammen vom Arduino-Prototypen).

    Display Spoiler

    Ich verstehe einfach nicht warum es sinnvoll sein soll den Sensor nicht immer aktiv zu haben.

    Es geht -wie Perlchamp schrieb- um's Messintervall.

    Bei Batteriebetrieb macht es einen signifikanten Unterschied, ob du alle Komponenten dauerhaft aktiv hast oder ob du einen Mikrocontroller nur alle 60 Sekunden aufwachen lässt, kurz misst und ihn dann wieder in den Deepsleep schickst.

    Und so sieht der Sensor aus wenn er mehrere Wochen dem Regen ausgesetzt war:...

    Wow, das ist echt krass. Bild vom Vorgänger meines ausgetauschten anbei. Der war ein gutes Jahr auf dem Dach, in der ~45-Grad-Montage, Aufstellungsort Ruhrgebiet. Dann gibt's entweder deutliche Unterschiede, wie korrodierend saurer Regen in D wirkt oder die Module sind unterschiedlich "hochwertig".

    Und nicht falsch verstehen: Auch wenn mein alter nicht so schlimm aussieht, ein Totalschaden war's trotzdem. Nehme an, da sind sowohl einige Leiterbahnen und auch die Jumperkabel komplett durchgerostet. (Deshalb war ich beim Austauschsensor mit dem Heißkleber an der Anschlussstelle Jumperkabel auf Sensor-PCB etwas großzügiger ;-))

    Egal wie man's dreht, sind die Dinger nach einer gewissen Zeit hinüber. 1 Jahr halte ich für vertretbar bei dem Billigkram. Wenn Tastenknechts nach 4 Wochen so aussah, ist das keine sinnvolle Option (in diesem Gebiet/von diesem Hersteller).

    :) Nee, schön ist fürwahr anders, aber das Teil steht bei mir auf dem Dach auf einer Feuernottreppe. Guckt kein Mensch drauf und versieht einfach seinen Dienst. Die professionell drangetüdelte Nylonschnur sorgt dafür, dass das nächste Unwetter das Teil nicht vom Dach fegt und jemanden auf die Rübe fällt.

    Mein wesentlicher Anwendungsfall ist, einsetzenden Regen zu erkennen (Niederschlagsmenge ist irrelevant). Dafür reicht die Schrägstellung.

    Behandlung mit Fett (oder evtl. auch diesen Abperlmitteln für Autofenster oder Duschtüren) hab ich noch nicht ausprobiert, könnte aber helfen. Ist die Frage, welchen Einfluss diese "Versiegelung" auf die Sensitivität hat. Versuch macht kluch... ;)

    Hi Framp,

    "Gehäuse"vorschlag anbei. 50 Cent im 1-Euro-Shop (oder vergleichbar) deiner Wahl. Kabeldurchführungen sind mit Heißkleber abgedichtet. Hält seit über einem Jahr dicht. Nur den Sensor musste ich wegen der beschriebenen Rostthematik dieser Tage austauschen. Selbe Sensor-Hardware inside, wie du nun bestellt hast. Zur Kommunikation ans restliche Smarthome-Gedönsel steckt bei mir ein ATTiny (statt ESP) und ein 433Mhz-Funksender mit in der Box.

    Viele Grüße

    ghmartin77

    Schnellste und batteriemäßig vermutlich am längsten lauffähige Lösung:

    Fertigen Sensor mit Wippe kaufen, Elektronik-Innenleben rausrupfen, stattdessen den hier (oder vergleichbar) reinbauen: https://www.zigbee2mqtt.io/devices/MCCGQ11LM.html.

    ...und die Meldungen mit zigbee2mqtt verschicken.

    Läuft seit einem guten Jahr bei mir mit immer noch der Ursprungsbatterie, mit der der Sensor aus China kam.

    Und anbei noch Anregung für Schritt 2 (alle eingeschalteten Lichter blinken lassen und eine Push-Nachricht schicken, wenn's regnet und ein "regensensibles" Fenster geöffnet ist (OpenHAB-Regel) ;-)):

    Display Spoiler