Posts by Gnom

    Man kann alls übertreiben...

    Dei Kurve war exemplarisch gemeint - ob die nun etwas steiler oder flacher abfällt, spielt doch keine Rolle bei einem Popelsensor, der ein halbes Jahr lang daten Funkt und dann 4 Wochen früher oder später den Geist aufgibt. Entscheidend ist: Man hat einen über weite Strecken relativ flachen Verlauf, der es schwierig macht, aus der Spannugn verlässlich auf die verbleibende Energiemenge zu schließen.
    Die Spannung bleibt lange über 3,3-3,4 Volt und bricht dann am Ende des Entladens relativ schnell ein. Da man einen Lipo Akku nicht unter 3 Volt entladen sollte und die Kurve zwischen 3,2 und 3.0 Volt eh schon sehr steil ist, macht man üblicherweise spätestens bei 3,2 Volt Schluss und läd den Akku wieder auf.


    Alles andere ist doch hier akademisch und an der Realität vorbei. Beim Elektroauto ist es schon entscheidend, ob ich noch 25 oder 45 Km weit komme. Aber ob der Akku eines Temperatursensors nach 1/2 Jahr Laufzeit noch eine Woche oder zwei hält... da sind ja die chinesischen Reissackumfallstatistiken interessanter...

    der vordere Bereich der Kurve ist doch eh wenig relevant. Bei sehr schwacher Belastung läuft die Kurve jedenfalls auch sehr flach, zieht sich noch länger nach rechts, weil der Akku Zeit hat, sich zu regenerieren, und stürzt dann am Ende umso steiler ab. Die Gesamtkapazität, also vielmehr die Ausnutzung, steigt dabei sogar noch. Spielt aber alles keine so große Rolle - entscheidend ist, dass man bei einer geeigneten Spannung die Notbremse zieht und den Akku läd oder austauscht. Eine aufwändige Kapazitätsbestimmung steht doch hier in keinem Verhältnis. Natürlich kann man mal die Messungen täglich dokumentieren und schauen, ob es eine vernünfitge Orientierung hergibt, aber viel Aufwand würd ich da nicht treiben.

    Du solltest dir keine zu großen Gedanken machen.
    Die typische Entladekurve eines Lipo Akkus sieht ungefähr so aus:

    Wenn du mit dem ADC die Spannung misst und bei 3,2 Volt eine Warnung ausgibst, reicht das allemale.
    Die verbleibende Restkapazität in % ist kaum zu ermitteln, weil die Kurve sehr flach verläuft und je nach Strombedarf, Temperatur usw. auch etwas variieren kann.

    Wenn die Verkabelung ok ist, dann ist ja alles in bester Ordnung und du kannst den Thread schließen.


    Ja, das Problem ist bekannt: Du hast was falsch gemacht, lieferst aber kein Informationen, die es ermöglichen, zu erkennen, was es sein könnte.

    "Ich habe alles richtig gemacht, aber es geht nicht." Was soll man damit anfangen?


    Du sagst nicht

    - wie du es genau verkabelt hast

    - ob und wo und welche Widerstände du eingebaut hast

    - wo du die ominösen Spannungen gemessen hast

    - wie das ganze von der Software angesteuert wird


    Ja, es kann "wieder mega viel" sein - aber ohne irgendwelche Information kann dir keiner helfen.

    Könntest du uns verraten, was der Hintergrund ist? Das ist doch ne hierarchische Struktur. Ein Dict, das Dicts enthält, die Dicts enthalten, ...
    Sicher steht da in der Realität nicht überall "None" und nichts drin. Möglicherweise gibt es einen einfacheren Ansatz, wenn man die Aufgabenstellund kennt. So klingt das alles jedenfalls etwas sperrig und der Sinn erschließt sich einem nicht.

    Wie sieht denn deine Verkabelung genau aus?

    Und wo und wie hast du die 2 und 1,8 Volt gemessen? (Ca. 2 Volt sind für eine gelbe LED normal, wenn du an der richtigen Stelle gemessen hast.)


    Das klingt ein bisschen so wie: Ich bin jetzt 300 Km mit Vollgas im ersten Gang gefahren - das ging super. Aber seit 20 Minuten komen komische Geräusche aus dem Getriebe. Obwohl ich an meinem Fahrstil nichts geändert habe.

    Wenns nicht superpräzise sein muss, sollte das genügen. Du kannst das Ding dann 5-7 mal für die entsprechende Anzahl Sekunden nach unten fahren lassen und danach wieder komplett hochfahren und mit einem Endschalter dafür sorgen, das es an der richtigen Startposition für die nächste Fahrt ist.

    Warum sammelst du den Verlauf nicht einfach in einer Liste, die du nach dem FIFO-Prinzip befüllst und schreibst jeweils die kleinen Werte, die dich interessieren in eine getrennte Liste? Der "Verlauf" bringt dir doch eh nichts, wenn kleinere Werte darin fehlen, weil sie weiter vorne in die Liste geschrieben wurden. Und der Aufwand für diese seltsam sortierte Liste ist doch irgendwie nicht nachvollziehbar.


    Im Grunde hat Tell das schon vorgeschlagen. Aber warum soll man es sich einfach machen, wenn man sich auch die Ohren brechen kann.


    Drei Listen??? Wozu das nun wieder hilfreich sein soll, verstehe ich nicht so ganz. Wenn ich einen neuen Messwert habe, kann ich doch gleich prüfen, ob er für die "Dreier-"Liste interessant ist.

    Wenn du 36 cm in der Minute erreichen willst, bedeutet das bei 2 RPM 18 cm Umfang der Wickelachse, also ca. 5,7 cm Durchmesser. Das sollte eigentlich machbar sein. Du hast mit diesem Motor aber nur sehr eingeschränkt die Möglichkeit, die Gewschwindigkeit zu steuern oder einen genauen Punkt anzufahren. Die Geschwindigkeit geht in gewissem Maße über PWM oder Spannungsregelung, die Position geht über Endschalter/Positionsschalter oder ähnliches. Wenn du sehr präzise Bewgungen braucht, ist ein stepper oder Servomotor besser geeignet - aber auch aufwänfiger/teurer (vor allem der Servomotor).

    Stepper und Schrittmotor ist das gleiche.

    Wenn "kontrolliert" heißt, dass die Geschwindigkeit variabel sein soll und die Kugel verschiedene Positionen anfahren soll, ist ein Schrittmotor ganz sinnvoll. Allerdings brauchst du schon etwas Kraft für eine 1,5 Kg-Kugel. Ggf. kannst du mit einer Übersetzung arbeiten - kommt auf die Geschwindigkeiten an, die du erreichen willst.

    Muss die Kugel denn so schwer sein? Ein Styropor-Fake tuts nicht?

    Wenn du gerne experimentierst und tiefer ins Programmieren einsteigen willst, kannst du versuchen, das rekursiv zu programmieren. Das bietet sich bei dieser Aufgabe geradezu an. Man kann es aber auch gut und wahrscheinlich sogar einfacher und verständlicher ohne Rekursion lösen.

    Ich würd einfach ne Liste von Tupeln anlegen mit den Menüpunkten und einem Index, der die Position im (hierarchischen) Menü angibt. Für ein Menü mit vier Hierarchiestufen zum Beispiel so:


    1     Menüpunkt 1

    11    Menüpunkt 1.1

    12    Menüpunkt 1.2

    2     Menüpunkt 2

    21    Menüpunkt 2.1

    22    Menüpunkt 2.2

    221   Menüpunkt 2.2.1

    222   Menüpunkt 2.2.2

    23    Menüpunkt 2.3

    3     Menüpunkt 3


    Anhand der Zahlen kannst du die Menüpunkte auswählen, die jeweils angezeigt werden müssen, wenn du in einem bestimmten Untermenü bist. Wenn du zum Beispiel im Menü 2.2 bist, müssen alle Menüpunkte von 221 bis 229 angezeigt werden. die kannst du leicht in der Liste finden.
    Am Anfang werden die Menüpunkte 1-9 angezeigt (soweit vorhanden). Wenn du 2 auswählst, werden 21 bis 29 angezeigt, wählst du dort die 2, werden 221 bis 229 angezeigt. Springst du zurück, fällt wieder eine Ziffer weg und zu zeigst wieder 21 bis 29 an...

    Natürlich musst du als erste Zeile immer noch einen Menüeintrag "Zurück (zur vorherigen Ebene)" einbauen, den musst du aber nicht in der Liste definieren, sondern kannst ihn ins Programm fest einbauen.


    Ich hab sowas schon mal programmiert - das funktioniert ziemlich gut und es ist einfach, Menüpunkte zu ändern. Über die aktuelle Indexzahl weißt du auch immer, in welchem Menüpunkt du gerade bist oder zuletzt gewesen bist.


    So hast du 9 Einträge pro Menüebene. Wenn du die 0 dazu nimmst, kannst du sogar 10 machen - ist nur etwas verwirrend dann, weil 0 der erste, 1 der zweite, ... ist.
    Wenn du mehr als 9 oder 10 Einträge hast, kannst du auch zweistellig arbeiten, also 020202 statt 222, dann hast du 99 Einträge und springst immer zwei Stellen in der Indexzahl und listest dann zum Beispiel die Menüpunkte 020201 bis 020299 auf. (Die führende Null ist natürlich nur zur Veranschaulichung - gerechnet wird z. B. mit 20202.)

    In #7 hatte er ja eigentlich klargestellt, dass der Pi ein eigenes WLAN-Netz aufbauen soll. Eine Einbindung ins Kunden-LAN ist ja auch gar nicht notwendig - obwohl das in #3 mal so klang, als wäre das die Absicht - davon würde ich auch mal abraten. Ein Zugang zum Kunden-LAN geht ja ohnehin nur unter Beteiligung des Kunden. Was nützt ihm, wenn er sein Kabel in irgendeine Dose steckt, die nicht auf einen Switch gepacht ist... Wenn es sich anbietet, kann der Kunde immer noch zwei Dosen (für Pi und Konfigurations-PC) direkt verpatchen, ohne über einen Switch des Kunden-LANS zu gehen.

    Über welche Entfernungen soll das gehen?


    Es gibt Funkmodule auf 433 oder 867 MHz (RFM69 zum Beispiel) - Reichweiten bei freier Sicht angeblich über 500 m.

    Wenn es um größere Entfernungen geht, kannst du mal nach LoRa (z. B. RFM95) googeln. Das ist im Grunde ganz ähnlich, aber speziell für weite Entfernungen bis mehrere Kilometer ausgelegt.

    Als Empfänger kommt ein zweiter Pi oder besser ein Microcontroller (Pi Pico, Arduino, ESP32) in Frage.

    Hast du WLAN?
    Dann kannst du die Sensoren an einen ESP32 oder ESP8266 anschließen und per WLAN die Daten senden lassen. Für Batteriebetrieb ist der Stromverbrauch allerdings recht hoch - je nachdem, wie oft die Temperatur gesendet werden soll. Bei einer Datensendung pro Stunde kommst du aber schon auf ganz ordentliche Laufzeiten.

    Du kannst das verbessern, indem du nicht per WLAN, sondern mit ESP-NOW sendest - das brraucht weniger Strom. Dafür brauchst du dann aber einen weiteren ESP, der die Sendungen annimmt und per LAN/WLAN an dein System weitergibt. Der kann dann ja am Stromnetz hängen.

    Wenn du im Wohnzimmer schon einen Pi hast, der permanent läuft, kannst du den Sensor dort anschließen.


    Für den Transport der Daten kannst du zum Beispiel MQTT verwenden, das ist so weit ich weiß relativ einfach zu implementieren (ich habs selbst noch nicht benutzt).

    In dem Video wird doch überhaupt kein PWM verwendet - der Depp nennt nu rden Pin PWM-PIN, was quatsch ist.

    Es gibt tausende Videos zu 281x - schau dir die an. Die Stripes kannst du meines wissens auch an andere Pins anschließen.


    Wenn du dreimal den gleichen Stripe nimmst, kannst du die auch einfach hintereinander löten. Drei Stripes (noch dazu zwei verschiedene Typen) mit drei Anschlüssen ist ziemlich unsinnig.


    Wenn diese Lib auf PWM angewiesen ist, dann solltest du ne andere nehmen.
    Oder wie gesagt, die beiden baugleichen Stripes hintereinander schalten, dann genügen dir 2 PWM-Pins.

    Vielleicht gehts auch mit der dritten dazu - aber das kann auch schiefgehen, wenns ein anderer Typ ist.