Inhaltsverzeichnis:

ESP32 Wetterstation solarbetrieben - Gunook
ESP32 Wetterstation solarbetrieben - Gunook

Video: ESP32 Wetterstation solarbetrieben - Gunook

Video: ESP32 Wetterstation solarbetrieben - Gunook
Video: Heute Regen, morgen Sonne - Wetterstation mit einem ESP8266 und einem Mini OLED Display (Banggood) 2024, November
Anonim
Image
Image
ESP32 Wetterstation Solarbetrieben
ESP32 Wetterstation Solarbetrieben
ESP32 Wetterstation Solarbetrieben
ESP32 Wetterstation Solarbetrieben

In diesem Tutorial werden wir ein WiFi-fähiges Wetterstationsprojekt erstellen.

Ziel ist es, eine Wetterstation mit fast allen möglichen Funktionen zu entwerfen:

  • Aktuelle Bedingungen, Zeit, Temperatur, Luftfeuchtigkeit, Druck anzeigen
  • Vorhersage für die nächsten Tage anzeigen
  • Update in der Luft
  • Eingebaute Website für Konfiguration und Datendarstellung
  • Hochladen von Daten in die Cloud für Verlaufsstatistiken
  • Integriert mit Aple Home Kit oder MQTT
  • Unabhängiger Akku mit Strom versorgt mit möglicher Aufladung oder Anschluss an Solarpanel

Ich kann nicht mehr hinzufügen und nicht mehr Fantasie, was sonst noch sein muss oder kann

Schritt 1: Benötigte Teile

Benötigte Teile
Benötigte Teile
Benötigte Teile
Benötigte Teile
Benötigte Teile
Benötigte Teile
  • ESP32 (ich habe das Dev-Modul verwendet)
  • 2,8" 240x320 TFT-LCD SPI ILI9341
  • Plastikbehälter
  • 3 x 18650 Akku
  • Wettersensor BME280 zur Messung von Temperatur, Luftfeuchtigkeit und Druck
  • USB-Lithium-Lademodul
  • DC-DC-Schritt UP18650
  • Batteriehalter (3 Stück)
  • HC-SR505 Bewegungsmelder
  • 220 Ohm Widerstand
  • 2x 10 kOm Widerstände
  • TIP120 NPN-Transistor (Darlington) kann mit jedem anderen kompatiblen verwendet werden
  • ButtonWires, Schalter, Lötplatine….

Schritt 2: Verdrahtung und Montage

Verdrahtung und Montage
Verdrahtung und Montage
Verdrahtung und Montage
Verdrahtung und Montage
Verdrahtung und Montage
Verdrahtung und Montage
Verdrahtung und Montage
Verdrahtung und Montage

Der erste Schritt ist die Zusammenstellung der Stationsbefugnisse.

Ich habe das Plastikgehäuse in zwei Teile geteilt, eines davon für Batterie, Schalter, USB-Ladegerät und DC-DC-Ausstieg In diesen Teil stecke ich den Batteriehalter und mache Fenster für den Schalter und das USB-Ladegerät. Seien Sie sich bewusst, dass das USB-Lademodul ziemlich heiß ist, daher habe ich eine Aluminiumplatte verwendet und das USB-Ladegerät mit Star 922-Kleber darauf gelegt.

Der zweite Schritt ist die Montage des Controller-Teils.

Siehe Schaltplan, wie es angeschlossen werden soll

Ich habe zu diesem Zweck Brotbrett mit den folgenden Schritten verwendet

  • ESP32-Entwicklungsplatine anlöten
  • Lötschirm zum Halten des TFT-Displays
  • Löten Sie andere elektronische Komponenten: BME280, Widerstände, Tasten
  • Löten Sie die Verdrahtung zwischen den Komponenten gemäß Diagramm

Der dritte Schritt ist die Vorbereitung der Montage des Brotbretts auf den zweiten Teil des Kunststoffgehäuses. Ich habe auf meinem 3D-Drucker zwei Stangen gedruckt, sie mit Schrauben am Bredboard befestigt und einen rechteckigen Schnitt für den Bildschirm gemacht.

Ich klebte Plastikstangenstützen an den Körper des Plastikgehäuses. Wenn der Leim trocken ist, kann die Brotbrettkabine mit Schrauben demontiert werden.

Der nächste Schritt ist:

  • Lötverdrahtung für Stromquelle
  • Lötverdrahtung für den Batteriespannungsstatus
  • Bewegungsmelder einlöten und montieren

Letzter Schritt:

  • Richten Sie einen DC-DC-Wandler ein, indem Sie die Ausgangsspannung auf 5 V abstimmen
  • Verbinden Sie zwei Teile des Stationscontrollers mit der Stromversorgung: Stromkabel und Spannungsmessung

Für den Bewegungsmelder und den Taster habe ich zusätzliche Löcher auf der Vorderseite gemacht.

Schritt 3: Hochladen der Firmware auf ESP32

Für dieses Projekt habe ich eine von mir entwickelte universelle Software verwendet

Bitte werfen Sie einen Blick auf die Github-Seite ESPHomeController. Diese enthält eine vollständige Anleitung zum Kompilieren und Einrichten.

! Wenn Sie mit der Kompilierung und Arduino nicht vertraut sind, sehen Sie sich den Schritt Hochladen der fertigen Firmware an

Sobald Sie die Firmware zum ersten Mal hochladen, startet der ESP32 im Konfigurationsmodus (Access Point-Modus)

Sie sollten sie konfigurieren. Öffnen Sie dazu in einem beliebigen Geräte die Liste der verfügbaren WLANs. Finden Sie HomeController und verbinden Sie sich damit. Das Captive-Portal sollte automatisch starten. Wenn nicht, geben Sie die URL Ihres Browsers ein: 192.168.4.1 und Sie sehen den Konfigurationsbildschirm

Folgen Sie den Anweisungen und konfigurieren Sie die WLAN-Anmeldeinformationen für Ihr WLAN-Netzwerk.

Der ESP wird danach als WiFi-Client neu gestartet und verbindet sich mit Ihrem Wifi.

Bei der ersten Verbindung von sson wird das Spiffs-Dateisystem automatisch gemountet und die erforderlichen Dateien für das Webportal heruntergeladen:

  • index.html
  • filebrowse.html
  • js/bundle.min.js.gz

Der Download erfolgt aus dem Ordner

Jetzt können Sie den Dateiinhalt über den Webbrowser anzeigen. dafür solltest du jetzt die ip-adresse deines ESP32

Sie können es auf eine der folgenden Weisen finden:

  • Verwenden des seriellen Port-Monitors zum Anzeigen von ESP32-Protokollen
  • Verwenden eines beliebigen TCP-Scanners zum Scannen Ihrer Netzwerkgeräte
  • Drücken Sie eine Taste an der Wetterstation und Sie sehen die Systeminformationen

Geben Sie in browse https://192.168.0. XX/browse ein und Sie sehen eine Dateiliste Ihres ESP

(192.168.0. XX ist die IP-Adresse Ihres Geräts

Für die abschließende Abstimmung müssen Sie Konfigurationsdateien vorbereiten.

Schritt 4: Hochladen der fertigen Firmware

Hochladen der fertigen Firmware
Hochladen der fertigen Firmware

Dieser Abschnitt ist speziell für Auditoren gedacht, die keine Firmware selbst erstellen. Sie müssen nur "fertige" Firmware hochladen

1. Laden Sie Flash-Upload-Tools von dieser Seite herunter

2. Laden Sie die angehängten (Auszug aus den Archiven) Dateien HomeController.bin und bootloader_qio_80m.bin auf Ihre Festplatte herunter

3. Starten Sie das ESP32-Download-Tool und geben Sie die Werte gemäß dem Screenshot ein

4. Drücken Sie Start

Schritt 5: Konfiguration

Bevor Sie mit der Vorbereitung der Konfiguration beginnen, benötigen Sie:

  1. Erstelle deinen Kanal auf dem Thingspeak und schlüssele deinen Kanal auf. Bereiten Sie 4 Felder vor und benennen Sie sie richtig Temperatur, Feuchtigkeit, Druck, Spannung
  2. Registrieren Sie sich auf Weather.com, um Ihren API-Schlüssel zu erhalten

Thingspeak wird benötigt, um Ihre Daten hochzuladen und Trends und Werte zu überwachen

Wetter sind notwendig, um Vorhersagedaten zu erhalten.

Ok, schließlich müssen Sie die Datei services.json mit dem folgenden Inhalt erstellen

[{"service":"TimeController", "name":"Time", "enabled":true, "interval":1000, "timeoffs":7200, "dayloffs":3600, "server":"pool.ntp.org", "enablesleep":true, "sleeptype"::1, "sleepinterval":900000, "restartinterval"::18000000}, {"service":"BME280Controller", "name":"BME", "enabled": true, "interval":900000, "i2caddr":118, "uselegacy":true, "temp_corr":-3.0, "hum_corr":10.0}, {"service":"WeatherClientController", "name":"WeatherForecast", "enabled":true, "interval":500000, "uri":"https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70&format=json&units=m&language=en -US&apiKey=weatherapi"}, {"service":"WeatherDisplayController", "name":"WeatherDisplay", "enabled":true, "interval":500}, {"enabled":"true", "interval": 600000, "pin":36, "service":"LDRController", "name":"LDR", "cvalmin":0.0, "cvalmax":7.2, "cfmt":"%.2f V", "acctype":10}, {"service":"ThingSpeakController", "name":"ThingSpeak", "enabled":true, "interval":1200000, "value":[1, 1, 1, 1, 0, 0, 0, 0], "apiKey":"thingspea kapi"}, {"enabled":true, "interval"::1, "pin":"", "service":"ButtonController", "name":"Button", "pins":[27]}]

!Bitte ersetzen

  • Thingspeakapi mit deinem Thingspeak API-Schlüssel
  • Wetterapi mit Ihrem Wetter-API-Schlüssel
  • Geocode mit Ihrem Standort, für den Sie eine Vorhersage erhalten möchten

Bereiten Sie dann die zweite Datei triggers.json vor

[{"type":"BMEToWeatherDisplay", "source":"BME", "destination":"WeatherDisplay"}, {"type":"TimeToWeatherDisplay", "source":"Time", "destination":"WeatherDisplay "}, {"type":"WeatherForecastToWeatherDisplay", "source":"WeatherForecast", "destination":"WeatherDisplay"}, {"type":"BMEToThingSpeak", "source":"BME", "destination": "ThingSpeak", "t_ch":1, "h_ch":2, "p_ch":3}, {"type":"ButtonToWeatherDisplay", "source":"Button", "destination":"WeatherDisplay"}, { "type":"LDRToThingSpeak", "source":"LDR", "destination":"ThingSpeak", "ch":4}]

Beide Dateien müssen in das Stammverzeichnis von esp hochgeladen werden.

Sie können dies über den Browser https://192.168.0. XX/browse tun, wobei https://192.168.0. XX die IP-Adresse Ihres Geräts ist

Nach dem Hochladen muss der ESP neu gestartet werden und alles wurde richtig gemacht. Esp zeigt den richtigen Bildschirm wie auf dem Foto und Video oben an

Schritt 6: Tuning und Stromverbrauch

Tuning und Stromverbrauch
Tuning und Stromverbrauch

Ich benutze mein Gerät mit der Verbindung zum Solarpanel und um sicher zu sein, dass es "unendlich" funktionieren kann

Der Stromverbrauch ist wichtig und nach mehreren Experimenten habe ich zwei wichtige Tricks angewendet

Reduzieren Sie den Verbrauch der Hintergrund-LED des TFT-Bildschirms

Laut Messung frisst es 15-20 mA (viel) daher habe ich Taktiken mit Bewegungsmelder verwendet. Es funktioniert perfekt Bewegungsmelder können jede Erkennung bis zu 8-10 Metern erkennen und die Spannung am Signalkabel erhöhen. Dies öffnet einen Transistor und die Hintergrund-LED erhält eine Leistung. Normalerweise behält der Detektor diesen Zustand bis zu 10 Sekunden bei, was mehr als genug ist, um den Monitor zu sehen, aber wenn Sie die Bewegungen fortsetzen, ist das Signal immer noch hoch und die LED leuchtet.

Ein solcher Ansatz gibt mir eine große Wirtschaftlichkeit, ohne zusätzliche Effekte, ich habe kein Problem damit, meinen Bildschirm zu sehen, wenn ich möchte

2. Reduzieren Sie den Stromverbrauch durch ESP32

Wenn ESP mit WiFi verbunden ist, verbraucht es ständig 7-10 mA, ich spreche von konstanter Zeit, nicht von Start und erster Verbindung. Dies kann akzeptabel sein, wenn Sie immer das aktuelle Datum und die aktuelle Uhrzeit sehen und über das Apple Home Kit auf Ihr System zugreifen

Auch für meinen Solarstrom im Winter war es passend zu Arbeiten ohne zusätzliche Stromquellen, Daher habe ich beschlossen, ESP32 regelmäßig in den Schlafmodus zu versetzen (das Essen ist weniger als 1 mA). Das ist für mich in Ordnung, zum Beispiel schläft ESP 20 Minuten, dann aufwachen, Bildschirm aktualisieren (tatsächliche Daten und Prognose) sendet Daten an den Thingspeak und wieder zurück in den Schlafmodus

Minuspunkte sind:

  • Wetterbildschirm zeigt veraltete Zeitwerte an
  • Station ist während der Ruhezeit nicht über den Browser und das Apple Home Kit zugänglich

Es liegt an Ihnen, zu entscheiden, was wichtiger ist, Sie können das einfach neu konfigurieren.

Bitte schauen Sie sich die Datei services.json und die Zeile an

[{"service":"TimeController", "name":"Time", "enabled":true, "interval":1000, "timeoffs":7200, "dayloffs":3600, "server":"pool.ntp.org", "enablesleep":true, "sleeptype"::1, "sleepinterval":900000, "restartinterval":18000000}

"enablesleep":true aktiviert den Schlaf überhaupt, wenn dort false gesetzt oder Parameter entfernt (false ist Standard) ESP wird nie schlafen

"Schlafintervall": 900000 das sind Millis, oder 15 min, bedeutet, dass alle 15 min ESP aufwacht und das notwendige Personal erledigt

So, jetzt kann jeder ganz einfach nach Bedarf spielen

Schritt 7: Sensorabstimmung

Um die Auswirkungen der internen Erwärmung auf den BME280-Temperatursensor zu minimieren

Zuerst habe ich ein Rohr um den Sensor und die Löcher herum gemacht. Hovewer in meinem Modus, wenn die LED normalerweise ausgeschaltet ist und ESP schläft, ist nicht so wichtig. In anderen Fällen sollte sich der BME280-Sensor irgendwo bewegen, um den Einfluss der internen Erwärmung auszuschließen. Jeden noch so kleinen Einfluss, den ich gefunden habe, gibt es zwei Parameter zu kompensieren

"hum_corr":10.0

was bedeutet, dass diese Werte nach der Messung hinzugefügt werden

Zweitens kalibrieren Sie die Batteriespannungsmessung, {"enabled":"true", "interval":600000, "pin":36, "service":"LDRController", "name":"LDR", "cvalmin":0.0, "cvalmax":7.2, " cfmt":"%.2f V", "acctype":10}, "cvalmin": 0.0

"cvalmax": 7,2

sind für diesen Zweck, da die Spannung nach Widerständen gemessen und mit 3,3 V verglichen wird, spielen Sie mit dem cvalmax-Wert, Sie können mit Ihrem Multimeter-Wert eine genaue Spannungsabstimmung erreichen

Schritt 8: Gerät zum Apple Home Kit hinzufügen

Gerät zum Apple Home Kit hinzufügen
Gerät zum Apple Home Kit hinzufügen

Wenn Ihr Gerät schließlich ordnungsgemäß funktioniert, kann es zum Apple Home Kit hinzugefügt werden und Sie können es sehen

Sensorwerte auf dem Apple-Startbildschirm.

Zuerst müssen Sie das Gerät neu starten, sobald das Gerät gestartet wird, geht es nicht in den Ruhezustand 20 Minuten sind mehr als genug

Öffnen Sie dann die Home Kit App auf Ihrem iOS-Gerät und wählen oder erstellen Sie ein neues Home1. Drücken Sie Hinzufügen (+)

2. Wählen Sie Zubehör hinzufügen.

3. Drücken Sie Ich habe keinen Code oder kann nicht scannen (weiteres Scannen wird hinzugefügt)

4. Wenn alles gut läuft, sollten Sie Ihr neues ESP-Gerät in einer Liste sehen (siehe Bild)

5. Gerät auswählen und Hinzufügen ohne offizielle Zertifizierung bestätigen

6. Geben Sie das Passwort 11111111 ein

7. Das alles! Sie sollten sehen, dass das Gerät erfolgreich gekoppelt wurde, andernfalls starten Sie den Kopplungsvorgang erneut.

Basierend auf dieser Einstellung sehen Sie zwei Geräte auf dem Apple

1. Temp-Sensor & Hum-Sensor, wenn er tief geht, werden die Werte im Vollbildmodus angezeigt

2. Lichtsensor:) Eigentlich kann Apple Licht Ambience anzeigen, aber keine Spannung, daher wird die Batteriespannung in Lux angezeigt

Schritt 9: OTA: Over the Air-Updates

Bevor Sie mit einem Update beginnen, ist es besser, ESP32 neu zu starten, da es wie bereits erwähnt in den ersten 20 Minuten nicht in den Ruhezustand versetzt wird

Es gibt zwei Möglichkeiten zu aktualisieren

  1. Konfiguration mit https://192.168.0. XX/browse können Sie auf Ihr Dateisystem auf ESP zugreifen und Konfigurationsdateien ändern
  2. Sie können die Firmware vollständig aktualisieren. zu diesem Zweck müssen Sie zuerst eine neue erstellen. Dies kann über Arduino oder Visual Studio IDE erfolgen. Geben Sie dann im Browser https://192.168.0. XX/update ein, wählen Sie Ihre Firmware aus und drücken Sie auf Update. Warten Sie, bis der Vorgang abgeschlossen ist und Sie erhalten die Antwort OK, ansonsten wiederholen Sie den Schritt erneut

Empfohlen: