Raspberry Pi Pico W (Solarbetriebene) Ferngesteuerte Wetterstation

Raspberry Pi Pico W softap Wetterstation

Ein ganz besonderes Merkmal des Raspberry Pi Pico W ist die SoftAP-Funktion.

SoftAP steht für Software-enabled Access Point, mit dem Sie ein WiFi-Netzwerk direkt vom Raspberry Pi Pico W aus senden können.

Aus diesem Grund haben wir uns für dieses solarbetriebene Projekt entschieden.

Wie sich ein solarbetriebenes Projekt mit SoftAP überschneidet

Hier ist das Problem.

Wenn Sie ein Projekt erstellen möchten, das Daten außerhalb Ihres Hauses misst, werden Sie feststellen, dass Sie diese Daten nicht drahtlos erhalten können.

In diesem Szenario können Sie auch den normalen Pico verwenden, da Sie seine drahtlose Fähigkeit nicht nutzen können.

Ein solarbetriebenes Projekt ist wahrscheinlich eines davon, da man es an einem sonnenbeschienenen Ort aufstellen muss, der sich normalerweise im Freien befindet.

Hier kommt SoftAP ins Spiel. Nehmen wir an, Sie möchten wissen, wie das Wetter draußen ist. Dann verbinden Sie sich mit der SoftAP, die der Raspberry Pi Pico W sendet, und loggen sich dann in die IP-Adresse ein, die die Daten anzeigt.

Dies ist so ziemlich das beste Szenario, wie wir die Vorteile des Raspberry Pi Pico W nutzen können.

Ich meine, es ist möglich, einen LTE-Zusatz oder einen drahtlosen Langstrecken-Zusatz zu kaufen, aber dann wäre es nicht wirklich ein Pico W-Tutorial, da man diese Komponenten einfach auf dem normalen Pico verwenden könnte.

Was ist mit Bluetooth auf dem Raspberry Pi Pico W?

Es wäre toll, wenn Sie Bluetooth verwenden könnten, aber zum Zeitpunkt der Veröffentlichung dieses Tutorials ist Bluetooth auf dem Raspberry Pi Pico W nicht aktiviert.

Am 1. Juli 2022 sagte Raspberry Pi Engineer & Forum Moderator jamesh: "Wir haben bereits mit der Arbeit an der Software für BT begonnen, einen Zeitplan kann ich noch nicht anbieten. Die Software muss getestet und Anleitungen geschrieben werden."

Teile

Das komplette Projekt mit dem Solarpanel auf der Unterseite des Breadboards

Aktualisieren Sie die Firmware Ihres Raspberry Pi Pico W

Die Firmware des Raspberry Pi Pico W wird ständig weiterentwickelt, so dass es am besten wäre, die neueste Firmware zu verwenden. Zum Beispiel hat die erste öffentliche MicroPython UF2 für den Pico W einige Probleme mit der Sicherheit, da Netzwerke immer offen sind.

Folgen Sie diesem Link, um zu erfahren, wie Sie sie aktualisieren können. Der Link zeigt Ihnen auch eine Schnellstartmethode für die Übertragung Ihres eigenen WiFi-Netzwerks.

Solaranlage einrichten

Ein Solarpanel, das den Pico W mit Strom versorgt, sollte mindestens 6 V und 150 mA liefern.

Das Solarmodul sollte mindestens 6 Volt und 150 mA liefern.

Die Batterie sollte eine Lithium-Batterie der Serie 18650 mit einer Nennspannung von 3,7 V sein.

TP4056 USB-C-Lademodul

Das TP4056-Modul schützt die Batterie und versorgt den Pico W.

Wetterbeobachtungsgerät

BME688-Breakout-Karte von pi3g.

Für dieses Projekt verwenden wir unser BME688-Breakout-Platine im eigenen Haus entwickelt.

Sie können jeden beliebigen Wettersensor wie z. B. einen DHT11 oder DHT22 verwenden, aber der Code und die Verdrahtung in diesem Artikel sind eigentlich für einen BME688 gedacht.

Verkabelung

Legen Sie den Pico W und den BME688 auf ein Breadboard.

Es gibt vier Pins, die Sie anschließen müssen: 3,3V, GND, SCL und SDA am BME688.

Das haben wir verwendet:

Pico W's GP1 verbindet sich mit SCL;

GP0 verbindet sich mit SDA;

GND verbindet sich mit GND;

Diese drei Pins sollten in einer Reihe neben dem Micro-USB-Steckplatz liegen.

3V3 verbindet sich mit 3V3die sich auf der anderen Seite der Tafel befindet.

TP4056 USB-C-Lademodul

Sie müssen Drähte an den TP4056 anlöten.

Es hat sich bewährt, rote Drähte an die positiven und schwarze an die negativen Anschlüsse zu löten.

Raspberry Pi Pico W Solarpanel Projekt

Die Pins neben dem USB-C-Anschluss sind für einen externen Stromanschluss, wie unser Solarmodul.

Verbinden Sie diese Stifte mit Ihrem Solarmodul.

Auf der anderen Seite befinden sich die Pins, die für die Stromabgabe gedacht sind. Die mit B+ und B- gekennzeichneten Stifte müssen mit der Batterie verbunden werden.

Wir haben uns entschieden, Klemmen zu verwenden, um unseren Batteriehalter mit dem TP4056 zu verbinden, für den Fall, dass wir die Schaltung ändern müssen, aber Sie können den Batteriehalter auch direkt an den TP4056 löten, wenn Sie möchten.

Schottky-Diode

Schließen Sie eine Schottky-Diode an den VSYS-Pin des Pico W an.

Vergewissern Sie sich, dass der graue Ring an der Diode dem Pico W zugewandt ist und das andere Ende mit der positiven Schiene auf dem Breadboard verbunden ist.

Da wir den Pico über zwei Eingänge mit Strom versorgen, nämlich über USB und die Solaranlage, müssen wir eine Schottky-Diode verwenden.

Eine Schottky-Diode verhindert Rückspeisung und ermöglicht den Betrieb von zwei Spannungen. Erfahren Sie hier mehr.

TP4056 an die Lochrasterplatine anschließen

Solarbetriebener Raspberry Pi Pico W komplett!
Solarbetriebener Raspberry Pi Pico W komplett!

Verbinden Sie den positiven Ausgang des TP4056 mit der positiven Schiene des Breadboards, wo sich die Schottky-Diode befindet.

Verbinden Sie dann den negativen Ausgang des TP4056 mit einem negativen Pin des Raspberry Pi Pico W.

Code zum Betrieb einer Raspberry Pi Pico W Wetterstation

Wir haben unseren gesamten Code auf unsere Website hochgeladen. Github Repo hier.

Hier ist eine Anleitung zum Hochladen von Dateien auf Ihren Pico W.

Wenn Sie die Komponenten wie oben beschrieben verbunden haben, können Sie den Code ohne Änderungen ausführen.

Dennoch gibt es einige Dinge, die Sie vielleicht ändern sollten.

bme68x.py

Dieses Skript modifiziert die Ausgabe des BME688.

Um genaue Temperatur- und Höhenmessungen zu erhalten, müssen Sie diese fett gedruckten Zeilen ändern:

 # change this to match the location's pressure (hPa) at sea level
        # bme68x.sea_level_pressure = 1013.25
       <strong> self.bme68x.sea_level_pressure = 1013</strong>

        # You will usually have to add an offset to account for the temperature of
        # the sensor. This is usually around 5 degrees but varies by use. Use a
        # separate temperature sensor to calibrate this one.
        <strong>self.temperature_offset = -9</strong>

main.py

Die Datei main.py startet einen Zugangspunkt und führt auch einen Server aus, der eine HTML-Datei an jeden liefert, der eine Verbindung herstellt.

In der HTML-Datei können Sie die Messwerte des BME688 sehen.

Wenn der Pico W eine Verbindung (über Sockets) empfängt, sendet er die Datei index.html, aber bevor er sie sendet, ersetzt er mit Hilfe dieses Codeblocks einige Zeichenfolgen durch die vom BME688 übernommenen Daten:

data = {
    'T': 0,
    'P': 0,
    'A': 0,
    'H': 0,
    'G': 0,
    }
...
def get_html(html_name):
    with open(html_name, 'r') as file:
        html = file.read()
        
    return html
...
sensor = bme68x.BME68X()
... 
response = get_html('index.html')
    data = sensor.save_data('data.json')
    blink_onboard_led(1, 0.2)
    response = response.replace('id_temp', str(data['T']))
    response = response.replace('id_pres', str(data['P']))
    response = response.replace('id_alti', str(data['A']))
    response = response.replace('id_humi', str(data['H']))
    response = response.replace('id_gas', str(data['G']))
    print_data(data)
    conn.send(response)
    conn.close()

Wie Sie sehen können, ist die Zeile, in der es heißt Daten = sensor.save_data('data.json') erhalten wir die Sensordaten, und dann ändert der Code die HTML-Datei mit den korrekten Messwerten für Temperatur, Druck, Höhe, Feuchtigkeit und Gasleitfähigkeit.

Alle drei Sekunden erfolgt eine automatische Aktualisierung.

Der folgende Codeblock ist erforderlich, um den Access Point auf dem Raspberry Pi Pico W zu übertragen:


essid = 'Pico-W-Weather-Station'
password = '#FreeThePicoW'

ap = network.WLAN(network.AP_IF)
ap.active(True)
ap.config(essid=essid, password=password)

while ap.active() == False:
    pass

print('Connection successfull')
print(ap.ifconfig())

# Create sensor object
sensor = bme68x.BME68X()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(3)
blink_onboard_led(3, 0.2)

Hinweis: Wenn Sie die Original-Firmware verwenden, sollten Sie sie aktualisieren, da Sie sonst die SSID nicht umbenennen können und keine WLAN-Sicherheit haben. Wir haben es mit dem Nightly Build vom 15. Juli 2022 getestet und es hat endlich funktioniert. Es gibt noch einige weitere Macken und Bugs, also lest euch unbedingt unsere Komplettlösung hier durch.

HIER KLICKEN: Übertragung eines WiFi-Netzwerks (SoftAP-Zugangspunkt)

Verbinden mit Ihrem Pico W-Zugangspunkt

Nach erfolgreicher Übertragung des AP blinkt Ihr Pico W dreimal mit dem angegebenen Code.

Verbinden Sie sich mit Ihrem AP, der folgendermaßen heißen sollte Pico-W-Wetter-Station.

Geben Sie das Passwort ein #FreeThePicoW

Verbinden Sie sich mit Ihrem Pico über die IP-Adresse. Wenn Sie es von Thonny aus gestartet haben, sehen Sie die IP-Adresse in der Shell.

Andernfalls könnten Sie versuchen 192.168.4.1 da dies in der Regel die IP-Adresse des Pico W ist, und Sie sollten den Screenshot rechts sehen:

Sie sind fertig

In diesem Projekt haben Sie gelernt, wie man mit der SoftAP-Funktion des Raspberry Pi Pico W ein Netzwerk sendet. Sie haben auch gelernt, wie man ein Solarpanel und eine Batterie an den Pico W anschließt.

Wenn Sie mehr über den Pico W erfahren möchten, Warum lesen Sie nicht unseren großen Artikel hier?

HIER KLICKEN: Alles, was Sie über den Raspberry Pi Pico W wissen müssen

7 Kommentare

  1. Veröffentlich von Carlos am Juli 25, 2022 um 8:34 am

    Specs von TP4056 sagt, um den Spannungseingang in 5,5V oder 6V zu halten, Solarpanel von 6V kann 6V und wahrscheinlich 7V + en einigen Fällen geben. Ich bin über verwirrt über dieses Ende. Könnten Sie bitte klären?

    Danke!

  2. Veröffentlich von Bigalbo am Juli 28, 2022 um 8:12 am

    Ich habe dieses Projekt getan und hatte einige tolle Ergebnisse sehr genaue Messwerte. Aber haben ein Problem getroffen es läuft nur für etwa 10 2 15 Minuten dann stoppt. Ich habe festgestellt, dass, wenn ich die json-Datei zu löschen, ist es der einzige Weg, um es wieder arbeiten wieder zu bekommen
    Kann man verhindern, dass sie gespeichert werden und nur Daten gesendet werden?
    Ich muss sagen, gute Arbeit, macht weiter so👍

    • Veröffentlich von Nabla am August 8, 2022 um 1:14 pm

      In der Datei bme68x.py fügt die Methode save_data immer wieder Zeilen zur Jason-Datei hinzu. Irgendwann muss die Datei zu groß werden. Sie können die Methode so ändern, dass nur die letzten x Zeilen von data_list gespeichert werden, bevor die Datei gespeichert wird. Sie müssen das ideale x herausfinden. Sie könnten auch nur die aktuelle Messung speichern. Auf diese Weise wird die Datei klein genug bleiben.

  3. Veröffentlich von Thomas am September 6, 2022 um 11:31 am

    Nach 4.104 Zeichen füllt die 'data.json' den Speicher des winzigen pico .-/

    Die Frage ist: Wie kann man dies einschränken, um das oben genannte Projekt zu einem funktionalen Abschluss zu bringen?
    Ein Beispiel/Codezusatz (als Update) wäre sehr willkommen!

    TiA - und weiterhin gute Arbeit...
    PS: ein entsprechendes Issue im GitHub Repo wurde ebenfalls veröffentlicht.

  4. Veröffentlich von BigMac am September 14, 2022 um 6:43 pm

    Die Verwendung des TP 4056 für ein solches Projekt ist keine effektive Lösung, siehe:
    https://www.best-microcontroller-projects.com/tp4056.html

    Konstruktives Design vielleicht mit einem MPTT Set Switch, wie dem Waveshare,
    Beschreibung hier:
    https://www.waveshare.com/solar-power-manager.htm

    Zum Wohl!

  5. Veröffentlich von Mark Beans am Juli 9, 2023 um 9:01 pm

    Tolle Projektidee! Hat jemand ein 3D-gedrucktes Gehäuse dafür entworfen, das er teilen möchte?

  6. Veröffentlich von Pavlo am Februar 22, 2024 um 11:32 am

    Hallo,
    Vielen Dank für das Handbuch.
    Gemäß TP4056-Spezifikationen LED-Anzeige Rot: (Ladevorgang), LED-Anzeige Blau: (Standby, Ladevorgang abgeschlossen)
    In meinem Fall habe ich beide LEDs am TP4056 eingeschaltet, wenn das Solarpanel unter direktem Licht steht. Ist das beabsichtigt?
    Ist es möglich, dass die Batterie von der Solaranlage geladen werden kann und gleichzeitig den Pico mit Strom versorgt?

Hinterlassen Sie einen Kommentar