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/12/28 20:09] – 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 69: | Zeile 72: | ||
| === Update Dez 2024 === | === Update Dez 2024 === | ||
| - | Neue Sensoren: HC-SR04 Entfernungsmesser und w1therm DS18B20 (basierend auf GPIO) - die dazu verwendeten | + | Neu: |
| - | externen libs müssen ggf wie oben heruntergeladen werden, es sind aber wenigstens keine Anpassungen nötig. | + | |
| - | Verschiedene Energiesparmassnahmen - siehe ganz unten. | + | * 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 253: | 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 === | === Energiesparmöglichkeiten === | ||
| Mit einem USB-Meter kann man messen, wieviel ein Gerät eigtl verbraucht. Der Pico W (" | 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 ~20mA, | + | verbraucht ohne irgendwelche Anpassungen ~200mW (also ~40mA). Genauere Analysen zeigen: 40mA mit verbundenem WiFi, ohne WiFi ~20mA, |
| - | da ursprünglich WiFi dauerthaft | + | da ursprünglich WiFi dauerhaft |
| - | Für Netzbetrieb | + | Für Netzbetrieb |
| In der neuesten Version gibt es daher ein paar Config-Schalter, | In der neuesten Version gibt es daher ein paar Config-Schalter, | ||
| * Trennen WiFi wenn nicht benötigt | * Trennen WiFi wenn nicht benötigt | ||
| * Erst Daten sammeln, dann gesammelt schicken (Interval gesondert einstellbar, | * Erst Daten sammeln, dann gesammelt schicken (Interval gesondert einstellbar, | ||
| - | * Optimierung: | + | * Optimierung: |
| - | * CPU clock speed reduzieren, wenn weder Messen noch Senden (normalerweise 125MHz, | + | * CPU clock speed reduzieren, wenn weder Messen noch Senden (normalerweise 125MHz, gedrosselt |
| - | Mit all dem (und einer Config mit 1x HC-SR04 und 2x DS18B20) verbraucht der Pico W nur noch ~45mW (9mA). | + | 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 ~8d reichen ... to be tested. | + | Mit einer 10000mAh Powerbank müsste dies also mindestens |
| TODO: | TODO: | ||
| - | * Powerbanks haben oft eine Abschaltung bei zu geringer Last - to be tested | + | * Powerbanks haben oft eine Abschaltung bei zu geringer Last - meine bei <100mA, geht also nicht. |
| - | * Es gibt Adaptermodule, | + | * 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.1735412944.txt.gz · Zuletzt geändert: von tge