software:controller:vzlogger:vzlogger_rpi_pico
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| software:controller:vzlogger:vzlogger_rpi_pico [2024/09/09 22:04] – tge | software:controller:vzlogger:vzlogger_rpi_pico [2025/01/01 20:55] (aktuell) – DS18B20 IDs tge | ||
|---|---|---|---|
| Zeile 10: | Zeile 10: | ||
| * sehr eingeschränkter RAM sowie Flash-Memory | * sehr eingeschränkter RAM sowie Flash-Memory | ||
| - | Es gibt inzwischen RPi Pico 2 - damit noch keine Erfahrungen, offenbar aber nicht als " | + | Es gibt inzwischen RPi Pico 2 - insb noch sparsamer (hat auch mehr RAM u Flash-Speicher, mehr Schnittstellen usw usf - alles bisher nicht benötigt). |
| + | Die RPi Pico gibt es auch als " | ||
| Versuche, libcurl zu portieren, hatten sich als sehr aufwändig herausgestellt und wurden abgebrochen. | Versuche, libcurl zu portieren, hatten sich als sehr aufwändig herausgestellt und wurden abgebrochen. | ||
| Zeile 19: | Zeile 20: | ||
| * Logging nach stdout, über USB sichtbar, solange der Pico an einem " | * Logging nach stdout, über USB sichtbar, solange der Pico an einem " | ||
| * Ersetzen von pthreads durch main-loop Konzept | * Ersetzen von pthreads durch main-loop Konzept | ||
| - | * Minimale | + | * Minimale |
| * Ersetzen von Curl durch lwip-API | * Ersetzen von Curl durch lwip-API | ||
| Dies wiederum erforderte ein paar Umstrukturierungen - der resultierende Code ist aber sowohl auf dem RPi Pico als auch einem normalen RPi lauffähig (muss natürlich separat gebaut werden). | Dies wiederum erforderte ein paar Umstrukturierungen - der resultierende Code ist aber sowohl auf dem RPi Pico als auch einem normalen RPi lauffähig (muss natürlich separat gebaut werden). | ||
| + | |||
| + | Mittlerweile läuft der u.g. EmonLib-basierte " | ||
| === Install PICO Dev-Kit === | === Install PICO Dev-Kit === | ||
| Zeile 66: | Zeile 69: | ||
| $ cp ../ | $ cp ../ | ||
| + | |||
| + | === Update Dez 2024 === | ||
| + | |||
| + | Neu: | ||
| + | |||
| + | * Neue Sensoren: HC-SR04 Entfernungsmesser und w1therm DS18B20 (basierend auf GPIO) - die dazu verwendeten externen libs müssen ggf wie oben heruntergeladen werden, es sind aber wenigstens keine Anpassungen nötig. | ||
| + | * Verschiedene Energiesparmassnahmen - siehe ganz unten. | ||
| + | * kontinuierliche Abfrage und Ausgabe von RAM, Betriebsspannung, | ||
| + | * Pico2 W getestet - minimale Änderungen notwendig, funktioniert noch besser | ||
| === Bauen === | === Bauen === | ||
| - | Zuerst muss die " | + | Zuerst muss die " |
| + | Mit einem Pico2 W beim cmake Kommando als Board " | ||
| $ cd ~/ | $ cd ~/ | ||
| $ mkdir build | $ mkdir build | ||
| $ cd build | $ cd build | ||
| - | $ cmake -DPICO_BOARD=pico_w .. | + | $ cmake -DPICO_BOARD=pico_w |
| ... | ... | ||
| $ make | $ make | ||
| Zeile 246: | Zeile 259: | ||
| | | ||
| Das gibt alles nach stdout aus, sowie gleichzeitig in ein File screenlog.0, | Das gibt alles nach stdout aus, sowie gleichzeitig in ein File screenlog.0, | ||
| + | |||
| + | Die DS18B20 w1 thermal Sensoren haben IDs, die in der config mit den channels verknüpft werden müssen. Anfangs sind diese IDs aber nicht bekannt - dann: | ||
| + | |||
| + | * Config mit irgendwelchen IDs Strings erstellen, Interval möglichst kurz (10s, sonst muss man solange warten) | ||
| + | * Loglevel auf 15 setzen, bauen und uf2 auf den Pico kopieren | ||
| + | * mittels USB Console den output protokollieren und auf folgende Ausgaben warten: | ||
| + | |||
| + | [Jan 01 19: | ||
| + | [Jan 01 19: | ||
| + | [Jan 01 19: | ||
| + | [Jan 01 19: | ||
| + | [Jan 01 19: | ||
| + | |||
| + | === Energiesparmöglichkeiten === | ||
| + | |||
| + | Mit einem USB-Meter kann man messen, wieviel ein Gerät eigtl verbraucht. Der Pico W (" | ||
| + | verbraucht ohne irgendwelche Anpassungen ~200mW (also ~40mA). Genauere Analysen zeigen: 40mA mit verbundenem WiFi, ohne WiFi ~20mA, während " | ||
| + | da ursprünglich WiFi dauerhaft verbunden war, resultieren daraus die ~40mA. | ||
| + | Für Netzbetrieb gar nicht schlecht gut, für Batteriebetrieb aber noch viel zuviel. | ||
| + | In der neuesten Version gibt es daher ein paar Config-Schalter, | ||
| + | |||
| + | * Trennen WiFi wenn nicht benötigt | ||
| + | * Erst Daten sammeln, dann gesammelt schicken (Interval gesondert einstellbar, | ||
| + | * Optimierung: | ||
| + | * CPU clock speed reduzieren, wenn weder Messen noch Senden (normalerweise 125MHz, gedrosselt 6MHz) - damit nur noch 9mA, dies aber fast die gesamte Zeit | ||
| + | |||
| + | Mit all dem (und einer Config mit 1x HC-SR04 und 2x DS18B20) verbraucht der Pico W nur noch ~40mW (~8mA), der Pico2 W sogar nur ~25mW (~5mA). | ||
| + | Mit einer 10000mAh Powerbank müsste dies also mindestens 8d reichen ... | ||
| + | TODO: | ||
| + | |||
| + | * Powerbanks haben oft eine Abschaltung bei zu geringer Last - meine bei <100mA, geht also nicht. | ||
| + | * Es gibt Adaptermodule, | ||
| + | * Es gibt noch einen lightsleep und deepsleep mode, womit nochmal erheblich weniger Stromverbrauch möglich sein könnte | ||
| + | |||
software/controller/vzlogger/vzlogger_rpi_pico.1725912273.txt.gz · Zuletzt geändert: von tge