ich stehe derzeit vor dem Problem, den Stromverbrauch des Raspberry Pi Pico für ein automatisches Gießsystem zu reduzieren. Für meine Anwendung möchte ich zweimal am Tag 5 Sensoren auslesen und je nach Ergebnis die Pumpen ansteuern. Anschließend soll der Mikrocontroller wieder in den Schlafmodus versetzt werden. Der Pico soll auch durch Betätigung eines Knopfes geweckt werden können, um externe Einstellungen vornehmen zu können. Die Programmierung soll nach derzeitigem Stand in MicroPython erfolgen. Allerdings habe ich festgestellt, dass die Schlafmodi dort noch nicht wie in C implementiert sind. Weiß jemand, wie man das am besten lösen kann?
Zur Verfügung steht eine 18650-Batterie mit einer Kapazität von ca. 3000 Milliamperestunden. Die Laufzeit soll 2 Wochen betragen. Bei einem Ruhestrom von nur 6 Milliampere würden bereits 2016 Milliamperestunden in 2 Wochen verbraucht werden, was den Großteil der Batteriekapazität ausmacht. Ist es realistisch, den Stromverbrauch auf diesen Wert zu reduzieren und gleichzeitig die erforderlichen Funktionen zu erfüllen? Im normalen Modus benötigt der Pico etwa 26 Milliampere, was deutlich zu hoch ist, wie ich gelesen habe.
Das Problem ist die falsche Konzeption mit dem falschen Mikrokontroller.
Meinst du ernsthaft, es ist für ein batteriebetriebenes Gerät, auch noch ein Gießsystem, sinnvoll, alle 2 Wochen die Batterien wechseln zu müssen?
Solange du die Pumpen nur per Funk ansteuerst, kannst du das mit einem vernünftigen Kontroller per Knopfzelle machen, und selbst da hält das Teil 5 Jahre.
Das liegt an der "Makerspace" Abzock-Influencer-Fraktion.
Als Neuling, wenn du dich da einarbeiten möchtest, und etwas googlest, hast du keine Chance und fällst garantiert in den Arduino-RaspberryPi-Schwachsinn, und kaufst überteuerte, veraltete Komponenten und betreibst die in schlechten bis gefährlichen Schaltungen, zusammengehalten mit kopiertem "Code".
Ich habe auch noch unzählige Arduino Nanos, 2 RPi Zero W, 9V Lithium-Blockbatterien, verschiedene andere Batterien, etc. aus dieser Zeit hier.
ich stehe derzeit vor dem Problem, den Stromverbrauch des Raspberry Pi
Pico für ein automatisches Gießsystem zu reduzieren. Für meine Anwendung
möchte ich zweimal am Tag 5 Sensoren auslesen und je nach Ergebnis die
Pumpen ansteuern.
Dafür reicht der kleinste Arduino Nano. Der kann schlafen, wenn gleich man da ggf. an der Hardware was machen muss, u.a. die Power-LED ablöten. Der RP2040 ist für sowas maximaler Overkill, dazu braucht es keine 32 Bit CPU mit 133MHz.
Das liegt an der "Makerspace" Abzock-Influencer-Fraktion.
Als Neuling, wenn du dich da einarbeiten möchtest, und etwas googlest,
hast du keine Chance und fällst garantiert in den
Arduino-RaspberryPi-Schwachsinn, und kaufst überteuerte, veraltete
Komponenten und betreibst die in schlechten bis gefährlichen
Schaltungen, zusammengehalten mit kopiertem "Code".
Ich habe auch noch unzählige Arduino Nanos, 2 RPi Zero W
Welcher Mikrocontroller würdest Du stattdessen vorschlagen? Ich finde ehrlich gesagt die Arduino-IDE sehr komfortabel, ebenso die Möglichkeit die Arduino- und ESP-Dev-Boards ohne Umwege über irgendwelche Programmer direkt über USB zu programmieren. Ich bin froh, dass die Zeiten vorbei sind, wo man uC nur mit speziellen (z.T. teuren) Programmern programmieren/brennen konnte und jeder Hersteller eine eigene, komplexe IDE hatte, die irgendwann nicht mehr lief.
Mich nervt es allerdings auch, dass man die Boards nicht Batteriebetrieb kompatiblel entwickelt hat. Ein paar kleines Jumper um USB-Schnittstelle, on-board-Regler, Status-LED später abzuschalten, wäre nicht die Welt gewesen.
Ein bisschen Informationen wären nicht schlecht.
Wie ist der Aufbau? Welche Sensoren? Wie werden welche Pumpen angesteuert?
Man kann durchaus einen Nano nehmen, allerdings sind da noch LED und andere Komponenten drauf, Ruhestrom ist nach dem Entfernen der LED bei 2mA.
Ich nehme für meinen ganzen Kram ATTinys der 2-Series. Sind mit Arduino-Bibliotheken kompatibel (Google: Megatinycore). Brauchst aber entsprechende Platinen bzw. Breadboardformate, je nachdem was du selber machen kannst.
Davon ausgehend, dass die Pumpen per Funk angesteuert werden, würde ich für mit einen entsprechen ATTiny nehmen (weil ich den habe und den halt immer verwende), NRF24L01 als Funkmodul, und Stromversorgung entweder über 2AAAs oder 1 2450 Knopfzelle.
Funkmodul ist ein Transceiver, kann also über Knopfdruck auch mal in den Receiver-Modus umgeschaltet werden für 5 Minuten um dann eine neue Konfiguration aufzuspielen.
Gegenseite (Pumpe und Programmierer) brauchen dann auch entsprechendes Funkmodul.
Du kannst auch deinen jetzigen Kram per externem Timer-Modul entsprechend an- bzw. ausschalten lassen.
Mich nervt es allerdings auch, dass man die Boards nicht Batteriebetrieb
kompatiblel entwickelt hat.
Naja, was heißt nicht dafür.
Die sind für fast alles schlecht. Willkommen im Makerspace.
Man muss aber auch zugeben, Langzeitbatteriebetrieb ist eine Nische. Da suchst du schon vernünftige Komponenten raus und lässt deine Platine anfertigen. Ruheströme kannst du dann in der Regel nicht mehr (genau) mit einem Multimeter messen.
Du schreibst ja selber, du willst keinen Programmierer, im Prinzip nichtmal einen USB-TTL-Adapter verwenden. Da musst du schon Abstriche machen.
Außerdem, man soll ja Batterien und Akkus verkaufen können.
Ist es realistisch, den Stromverbrauch auf diesen Wert zu
reduzieren und gleichzeitig die erforderlichen Funktionen zu erfüllen?
Im normalen Modus benötigt der Pico etwa 26 Milliampere
Ist es realistisch, den Stromverbrauch auf diesen Wert zu
reduzieren und gleichzeitig die erforderlichen Funktionen zu erfüllen?
Im normalen Modus benötigt der Pico etwa 26 Milliampere
Mit machine.lightsleep() kommt man auf 1,5mA
Gibt es in Python nicht irgendeine Funktion mit "dormant" im Namen?
Der Zustand "dormant" ist dazu geeignet, Strom zu sparen und per RTC oder einem Ereignis an einem GPIO den Controller wieder aufzuwecken.
Die Box fungiert als Wassertank mit integrierter Elektronik, die sicher vom Wasser isoliert ist. Aufgrund der fortgeschrittenen Entwicklung des Projekts auf Raspberry Pi-Basis habe ich leider keine andere Wahl, als weiterhin einen Pi zu verwenden.
Gibt es eine Lösung, um den Raspberry Pi in den Schlafmodus zu versetzen und ihn einmal täglich durch ein Timermodul oder ähnliches aufzuwecken? Wenn dies nicht möglich ist, muss ich die Stromversorgung über ein Netzteil realisieren.
Dazu habe ich viele Widersprüchliche Informationen gefunden. Es gibt einige die sagen, dass das nur mit C Programmierung möglich ist. Mit Micropython sind es anscheindn ~20mA.
Dazu habe ich viele Widersprüchliche Informationen gefunden. Es gibt
einige die sagen, dass das nur mit C Programmierung möglich ist. Mit
Micropython sind es anscheindn ~20mA.
Tatsächlich war ich mir wegen des tatsächlichen Stroms nicht mehr so sicher und hab’s deswegen schnell nachgemessen, bevor ich was Falsches schreibe. Daher kann ich dir mit Sicherheit sagen, dass 1,5mA mit dieser Funktion in der Praxis erreichbar sind. Braucht allerdings eine aktuelle Micropython-Version, sprich 1.20
Tatsächlich war ich mir wegen des tatsächlichen Stroms nicht mehr so
sicher und hab’s deswegen schnell nachgemessen, bevor ich was Falsches
schreibe. Daher kann ich dir mit Sicherheit sagen, dass 1,5mA mit dieser
Funktion in der Praxis erreichbar sind. Braucht allerdings eine aktuelle
Micropython-Version, sprich 1.20
Was spricht gegen ein Ausprobieren?
Cool, danke fürs nachmessen. Ich kann das leider selbst nicht machen, da ich den Pi gerade nicht da habe. Wie funktioniert das Aufwecken aus dem Sleep Modus? Kann dabei aktiv auf z.B. ein High eines GPIO gewartet werden und ist ein automatisches verlassen des Modus nach z.B. 12h (mit RTC) möglich?
Wie sehr ist der Ruhestrom abhöngig von den angeschlossenen Komponenten?
Cool, danke fürs nachmessen. Ich kann das leider selbst nicht machen, da
ich den Pi gerade nicht da habe.
Für Embedded Softwareentwicklung wäre es eine gute Idee, ein funktionsfähiges System auf dem Tisch stehen zu haben, gerade, wenn es um solche Fragen geht.
Warum verwendest du MicroPython, wenn du damit nicht ausreichend Zugriff auf die Hardware hast.
Eine Netzstromversorgung, nur wegen einer ungeeigneten Prozessorbasis/Programmiersprache mag allenfalls im Einzelfall ein Notbehelf sein.
Ist es realistisch, den Stromverbrauch auf diesen Wert zu
reduzieren und gleichzeitig die erforderlichen Funktionen zu erfüllen?
Bare metal mit irgend einem auf low energy getrimmten µC sind Ruheströme von einigen µA relativ einfach zu erreichen. Häufig haben die dann auch einen DC/DC Wandler eingebaut und eine auf Stromsparen optimierte RTC.
Ich nutze für meine Projekte CMake und einen Editor meiner Wahl. Compiler ist in der Regel GCC. Das funktioniert (meist) wunderbar auch wenn einem viele Hersteller lieber ihre Version von Eclipse mit Wunder-Code-Generatoren und Plugin nahelegen wollen.
Dann solltest Du aber auch den RP2040 "bare metal" verwenden.
Laut Datenblatt einen Ruhestrom von typischer weise 390µA (worst case 4,5mA). Das ist sicherlich nicht schlecht, aber insgesamt scheint mir der ausgewählte µC nicht optimal für die Aufgabe.
Wenn allerdings die Pumpen auch aus der Batterie betrieben werden, dann ist da sicherlich die meiste Musik.
Das ist sicherlich nicht schlecht, aber insgesamt scheint mir
der ausgewählte µC nicht optimal für die Aufgabe.
Was ist schon optimal? Aber der TO möchte dieses Pico-Board verwenden - aus welchen Gründen auch immer. Und wenn er Python programmieren möchte, soll er es doch tun. Zudem ist es nicht verkehrt, wenn er bei seiner Problemlösung etwas dazulernt.
Im Grunde reicht ihm ja schon seine 3 Ah LiIon-Zelle für die geforderte Laufzeit und es wäre das Einfachste, bei Bedarf eine 2. Zelle parallel zu schalten.
Ich finde ehrlich gesagt die Arduino-IDE sehr komfortabel, ebenso die
Möglichkeit die Arduino- und ESP-Dev-Boards ohne Umwege über irgendwelche
Programmer direkt über USB zu programmieren.
Was hat denn das eine mit dem anderen zu tun. Auch bei den Arduinos muss sich erstmal jemand finden, der den Bootloader drauf spielt. Ohne einen Programmer wird das nichts. Und was die Debug-Möglichkeiten der Arduino IDE betrifft, lässt sich der Komfort nicht einmal bewerten, weil es praktisch keine gibt.
Der Software für den Programmer ist bei der Arduino IDE sogar als Beispiel dabei.
Wenn du etwas zusätzliche Hardware dazubauen kannst, gäbe es die Möglichkeit mit 3 kleinen FETs den Pico komplett stromlos zu schalten. Das bringt Monate.