Raspberry Pi Pico W Stromverbrauch
Der Raspberry Pi Pico W eignet sich hervorragen für kleine IoT Anwendungen. Er ist von Haus aus schon sehr energieeffizient und eignet sich somit hervorragend für den Dauerbetrieb. Ebenfalls das Betreiben mittels Batterien, Akkus oder Powerbanks ist möglich. Ich werde hier deshalb auf den Stromverbrauch des Raspberry Pi Pico W unter verschiedenen Bedingungen und Szenarien eingehen.
Voraussetzungen
Ich habe für meine Tests die folgenden Hardwarekomponenten verwendet:
- Raspberry Pi Pico W
- Coowoo USB Leistungsmesser
- RGB LED
- DHT22 Sensor
- Jumper Kabel
- Battery Pack
- MicroUSB Netzteil
Auf dem Pico solltet ihr MicroPython installieren und dann nutze ich Visual Studio Code als IDE um den Pico mit den Python Skripten zu versorgen:
- Raspberry Pi Pico W - Einstieg mit Micropython
- Raspberry Pi Pico - MicroPython und VSCode als IDE
- Eclipse Mosquitto Secure MQTT Broker Docker Installation
Testaufbau
Für den Testaufbau habe ich als erstes den Raspberry Pi Pico w mit der RGB LED und dem DHT22 Sensor verbunden:
Raspberry Pi Pico | RGB LED | |
---|---|---|
Pin 15 | GP11 | R |
Pin 16 | GP12 | G |
Pin 17 | GP13 | B |
Pin 18 | GND | GND |
Raspberry Pi Pico | DHT22 | |
---|---|---|
Pin 36 | 3V3 +3,3V | 1 (VCC) / + |
Pin 29 | GPIO 22 | 2 (Data) |
Pin 28 | GND | 4 (GND) / - |
Nachdem wir die LED und den DHT22 Sensor angeschlossen haben, können wir zum Software Thema kommen. Dafür betanken wir den Raspberry Pi Pico w mit der aktuellen MicroPython Version.
Hier war es die folgende MicroPython Version:
MicroPython v1.19.1-780-g439298be1 on 2022-12-20; Raspberry Pi Pico W with RP2040
Wie das geht könnt ihr hier nachlesen:
Danach verbinden wir den Pico mit eurem Rechner und einer IDE, mit dem ihr die Skripte auf den Pico bekommt:
Wir benötigen nun die folgenden, konfigurierten Skripte auf dem Pico:
config.py
- https://github.com/alaub81/rpi_pico_scripts/raw/main/config_sample.py
- Hier bitte die Wificonnection, den DHT Sensor GPIO Pin und den MQTT Zugang konfigurieren
wificonnection.py
- https://github.com/alaub81/rpi_pico_scripts/raw/main/wificonnection.py
- Wird für den Wifi Verbindungstest benötigt
pico_power_tests.py
- https://github.com/alaub81/rpi_pico_scripts/raw/main/pico_power_tests.py
- Das Test Skript selbst. Hier könnt ihr den Wert
testtime
anpassen.
main.py
- https://github.com/alaub81/rpi_pico_scripts/raw/main/main.py
- Hier bitte das Startscript auf
import pico_power_tests.py
ändern. # Loading DHT22 Sensor Script #import dht22homiemqtt20.py # Loading BME680 Sensor Script #import bme680homiemqtt.py # Loading Power Test Script import pico_power_tests.py
Nun kann man den Pico an das USB Messgerät anschließen und mit Strom versorgen. Entweder via Battery Pack oder klassisch mit USB Power Adapter. Wenn alles gut läuft, sollte das pico_power_tests.py
Skript nun automatisch von der main.py
gestartet werden.
Stromverbrauch
Anschluss USB Power Adapter | Anschluss via 4x AA Batterie Pack
(voll geladen - Volt nimmt während Laufzeit ab) | ||||||
---|---|---|---|---|---|---|---|
Nr. | Test | Beschreibung | Volt | Ampere | Volt | Ampere | Watt |
1 | Idle | Verbrauch des Pico im IDLE | 5.122 V | 0.032 A | 5.529 V | 0.029 A | 0.160 W |
2 | Sleep | time.sleep() Verbrauch | 0.032 A | 0.029 A | 0.176 W | ||
3 | Internal LED | Anschalten der Internen LED | 0.034 A | 0.032 A | 0.176 W | ||
4 | External RGB LED | Ansteuern und Anschalten einer RGB LED | 0.034 A | 0.032 A | 0.176 W | ||
5 | Calculating | Summen Berechnung | 0.034 A | 0.032 A | 0.176 W | ||
6 | print() | print() in einer langen Schleife
|
0.034 A | 0.033 A | 0.182 W | ||
7 | DHT22 | Auslesen des DHT22 Sensors | 0.033 A | 0.030 A | 0.165 W | ||
8 | WiFi Connect | Wifi Verbindung herstellen | 0.062 A | 0.060 A | 0.328 W | ||
9 | MQTT Connect | Verbindung über Wifi an den MQTT Broker | 0.060 A | 0.060 A | 0.328 W | ||
10 | MQTT Publish | Schleife zum Publizieren an den MQTT Broker | 0.072 A | 0.062 A | 0.369 W | ||
11 | MQTT Disconnect | Verbindungstrennung zum MQTT Broker | 0.058 A | 0.061 A | 0.292 W | ||
12 | WiFi Disconnect | Trennung der Wifi Verbindung | 0.020 A | 0.021 A | 0.101 W | ||
13 | Lightsleep | Pico in den machine.lightsleep() Modus versetzen
|
0.014 A | 0.013 A | 0.071 W | ||
14 | Deepsleep | Pico in den machine.deepsleep() Modus versetzen
|
0.014 A | 0.013 A | 0.071 W |
Laufzeiten mit Batterien
Möchte man einen Pico mit einem Batterie Pack betreiben, ist die maximale Laufzeit schon einmal auf den Sleep Mode begrenzt. In der Theorie läuft der Pico in einem dauerhaften Sleep Mode mit einem 4x AA Battery Pack (a 1,2V 2300mAh) ca. 27 Tage.
In der Praxis, komme ich mit dem Auslesen des DHT22 und senden dieser an den MQTT Broker auf eine ungefähre Laufzeit von 3 Wochen mit einem 4x AA Battery Pack (a 1,2V 2300mAh).