Inhaltsverzeichnis:

ESP32 WiFi-Wetterstation mit einem BME280-Sensor - Gunook
ESP32 WiFi-Wetterstation mit einem BME280-Sensor - Gunook

Video: ESP32 WiFi-Wetterstation mit einem BME280-Sensor - Gunook

Video: ESP32 WiFi-Wetterstation mit einem BME280-Sensor - Gunook
Video: ESP32 WiFi Weather Station Project with a Nextion Display and a BME280 sensor 2024, Juli
Anonim
Image
Image
ESP32 WiFi-Wetterstation mit einem BME280-Sensor
ESP32 WiFi-Wetterstation mit einem BME280-Sensor
ESP32 WiFi-Wetterstation mit einem BME280-Sensor
ESP32 WiFi-Wetterstation mit einem BME280-Sensor

Liebe Freunde, willkommen zu einem weiteren Tutorial! In diesem Tutorial werden wir ein WiFi-fähiges Wetterstationsprojekt erstellen! Wir werden den neuen, beeindruckenden ESP32-Chip erstmals zusammen mit einem Nextion-Display verwenden.

In diesem Video machen wir das. Es ist ein weiteres Wetterstationsprojekt, das ich kenne, aber dieses Mal verwenden wir den neuen ESP32-Chip! Außerdem verwenden wir den neuen BME280-Sensor, der die Temperatur, die Luftfeuchtigkeit und den Luftdruck misst. Wenn wir das Projekt einschalten, verbindet es sich mit dem WiFi-Netzwerk und ruft die Wettervorhersage für meinen Standort von der openweathermap-Website ab. Dann wird die Vorhersage auf diesem 3,2” Nextion Touch Display zusammen mit den Messwerten des Sensors angezeigt! Die Messwerte werden alle zwei Sekunden und die Wettervorhersage stündlich aktualisiert! Wie Sie sehen, verwenden wir in diesem Projekt die neuesten Technologien, die einem Hersteller heute zur Verfügung stehen! Wenn Sie ein DIY-Veteran sind, können Sie dieses Projekt in fünf Minuten erstellen.

Wenn Sie ein Anfänger sind, müssen Sie sich ein paar Videos ansehen, bevor Sie dieses Projekt versuchen. Sie können Links zu diesem Video in diesem Instructable finden, keine Sorge.

Lasst uns beginnen!

Schritt 1: Holen Sie sich alle Teile

Holen Sie sich alle Teile
Holen Sie sich alle Teile

Um dieses Projekt zu bauen, benötigen wir die folgenden Teile:

  • Ein ESP32-Board ▶
  • Ein BME280 I2C-Sensor ▶
  • Ein 3,2” Nextion-Display ▶
  • Ein kleines Steckbrett ▶
  • Einige Drähte ▶

Die Kosten für das Projekt betragen etwa 30 $.

Anstelle des ESP32 könnten wir den günstigeren ESP8266-Chip verwenden, aber ich entschied mich, den ESP32 zu verwenden, um einige Erfahrungen damit zu sammeln und zu sehen, was funktioniert und was nicht.

Schritt 2: Der ESP32

Image
Image
Der ESP32
Der ESP32

Dies ist das erste Projekt, das ich jemals mit dem neuen ESP32-Chip erstellt habe.

Wenn Sie damit nicht vertraut sind, der ESP32-Chip ist der Nachfolger des beliebten ESP8266-Chips, den wir in der Vergangenheit oft verwendet haben. Der ESP32 ist ein Biest! Es bietet zwei 32-Prozessorkerne, die mit 160 MHz arbeiten, eine enorme Menge an Speicher, WLAN, Bluetooth und viele andere Funktionen zu einem Preis von etwa 7 $! Tolles Zeug!

Bitte sehen Sie sich die ausführliche Rezension an, die ich für dieses Board erstellt habe. Ich habe das Video auf diesem Instructable angehängt. Es wird Ihnen helfen zu verstehen, warum dieser Chip die Art und Weise, wie wir Dinge herstellen, für immer verändern wird!

Schritt 3: Das Nextion-Display

Image
Image
BME280-Sensor
BME280-Sensor

Dies ist auch das erste Projekt, das ich mit einem Nextion-Touchdisplay baue.

Die Nextion-Displays sind eine neue Art von Displays. Sie verfügen auf der Rückseite über einen eigenen ARM-Prozessor, der für die Ansteuerung des Displays und die Erstellung der grafischen Benutzeroberfläche verantwortlich ist. Wir können sie also mit jedem Mikrocontroller verwenden und spektakuläre Ergebnisse erzielen.

Ich habe eine detaillierte Anleitung zu diesem Nextion-Display vorbereitet, in der ausführlich erklärt wird, wie sie funktionieren, wie man sie verwendet und ihre Nachteile. Sie können es lesen, indem Sie hier klicken:

Schritt 4: BME280-Sensor

BME280-Sensor
BME280-Sensor

Der BME280 in einem neuen tollen Sensor von Bosch.

Bisher habe ich den BMP180-Sensor verwendet, der Temperatur und Luftdruck messen kann. Der Sensor BME280 kann Temperatur, Luftfeuchtigkeit und Luftdruck messen! Wie cool ist das! Wir brauchen nur einen Sensor, um eine komplette Wetterstation zu bauen!

Darüber hinaus ist der Sensor sehr klein und sehr einfach zu bedienen. Das Modul, das wir heute verwenden werden, verwendet die I2C-Schnittstelle, sodass die Kommunikation mit Arduino sehr einfach ist. Wir müssen nur Strom und zwei weitere Drähte anschließen, damit es funktioniert.

Es wurden bereits viele Bibliotheken für diesen Sensor entwickelt, sodass wir ihn sehr einfach in unseren Projekten verwenden können! Die Kosten für den Sensor betragen etwa 5 $. Du bekommst es hier ▶

HINWEIS: Wir benötigen den BME280-Sensor. Es gibt auch einen BMP280-Sensor, der keine Feuchtigkeitsmessung bietet. Achten Sie darauf, den Sensor zu bestellen, den Sie benötigen.

Schritt 5: Anschließen der Teile

Anschließen der Teile
Anschließen der Teile
Anschließen der Teile
Anschließen der Teile
Anschließen der Teile
Anschließen der Teile

Die Verbindung der Teile ist einfach, wie Sie dem Schaltplan entnehmen können.

Da der BME280-Sensor die I2C-Schnittstelle verwendet, müssen wir nur zwei Drähte anschließen, um mit ESP32 zu kommunizieren. Ich habe den Sensor an Pins 26 und 27 angeschlossen. Theoretisch kann jeder digitale Pin des ESP32-Boards mit I2C-Peripherie verwendet werden. In der Praxis habe ich jedoch festgestellt, dass einige Pins nicht funktionieren, weil sie für andere Zwecke reserviert sind. Pin 26 und 27 funktionieren super!

Um Daten an das Display zu senden, müssen wir nur einen Draht an den TX0-Pin des ESP32 anschließen. Ich musste den Stift so biegen, um das weibliche Kabel des Displays anzuschließen, da die ESP32-Platine für dieses Steckbrett zu groß ist.

Nachdem wir die Teile verbunden haben, müssen wir den Code auf den ESP32 laden und die GUI auf das Nextion-Display laden. Wenn Sie Probleme beim Hochladen des Programms auf das ESP32-Board haben, halten Sie die BOOT-Taste gedrückt, nachdem Sie die Upload-Taste auf der Arduino IDE gedrückt haben.

Um die GUI auf das Nextion-Display zu laden, kopieren Sie die WeatherStation.tft-Datei, die ich mit Ihnen teilen werde, auf eine leere SD-Karte. Stecken Sie die SD-Karte in den SD-Kartensteckplatz auf der Rückseite des Displays. Schalten Sie dann das Display ein und die GUI wird geladen. Entfernen Sie dann die SD-Karte und schließen Sie die Stromversorgung wieder an.

Nach erfolgreichem Laden des Codes verbindet sich das Projekt mit dem WiFi-Netzwerk, ruft die Wettervorhersage von der Website openweathermap.org ab und zeigt die Messwerte des Sensors an. Sehen wir uns nun die Softwareseite des Projekts an.

Schritt 6: Der Code des Projekts

Der Kodex des Projekts
Der Kodex des Projekts
Der Kodex des Projekts
Der Kodex des Projekts
Der Kodex des Projekts
Der Kodex des Projekts

Um die Wetterdaten zu analysieren, benötigen wir die hervorragende Arduino JSON-Bibliothek. Wir brauchen auch eine Bibliothek für den Sensor.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

Sehen wir uns jetzt den Code an.

Zuerst müssen wir die SSID und das Passwort unseres WLAN-Netzwerks festlegen. Als nächstes müssen wir den kostenlosen APIKEY von der Website operweathermap.org eingeben. Um einen eigenen API-Schlüssel zu erstellen, müssen Sie sich auf der Website anmelden. Das Abrufen aktueller Wetterdaten und -vorhersagen ist kostenlos, aber die Website bietet mehr Optionen, wenn Sie bereit sind, etwas Geld zu zahlen. Als nächstes müssen wir die ID unseres Standorts finden. Suchen Sie Ihren Standort und kopieren Sie die ID, die Sie unter der URL Ihres Standorts finden.

Geben Sie dann die ID Ihrer Stadt in die CityID-Variable ein. Geben Sie auch die Höhe Ihrer Stadt in diese Variable ein. Dieser Wert wird für genaue Luftdruckmessungen vom Sensor benötigt.

const char* ssid = "IhreSSID";const char* password = "IhrPasswort"; Zeichenfolge CityID = "253394"; //Sparta, Griechenland String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Höhe in Sparta, Griechenland

Jetzt sind wir bereit, weiterzumachen.

Zuerst initialisieren wir den Sensor und verbinden uns mit dem WiFi-Netzwerk. Dann fordern wir Wetterdaten vom Server an.

Wir erhalten eine Antwort mit den Wetterdaten im JSON-Format. Bevor ich die Daten an die JSON-Bibliothek sende, lösche ich manuell einige Zeichen, die mir Probleme bereitet haben. Dann übernimmt die JSON-Bibliothek und wir können die benötigten Daten einfach in Variablen speichern. Nachdem wir die Daten in Variablen gehalten haben, müssen wir sie nur noch auf dem Bildschirm anzeigen und eine Stunde warten, bevor wir neue Daten vom Server anfordern. Die einzigen Informationen, die ich präsentiere, sind die Wettervorhersagen, aber Sie können weitere Informationen anzeigen, wenn Sie möchten. Alles hier in Variablen gespeichert. Dann lesen wir die Temperatur, die Luftfeuchtigkeit und den Luftdruck vom Sensor ab und senden die Daten an das Nextion-Display.

Um die Anzeige zu aktualisieren, senden wir einfach einige Befehle wie folgt an die serielle Schnittstelle:

Void showConnectingIcon () {Serial.println (); String-Befehl = "weatherIcon.pic=3"; Serial.print (Befehl); endNextionCommand(); }

Die Nextion-GUI besteht aus einem Hintergrund, einigen Textfeldern und einem Bild, das sich je nach Wettervorhersage ändert. Weitere Informationen finden Sie im Tutorial zum Nextion-Display. Sie können schnell Ihre eigene GUI entwerfen, wenn Sie möchten, und mehr Dinge darauf anzeigen.

Wie immer finden Sie den Code des Projekts, das diesem Instructable beigefügt ist

Schritt 7: Abschließende Gedanken und Verbesserungen

Abschließende Gedanken und Verbesserungen
Abschließende Gedanken und Verbesserungen

Wie Sie sehen, kann ein erfahrener Maker heute mit wenigen Codezeilen und nur drei Teilen in wenigen Stunden spannende Projekte aufbauen! Ein solches Projekt wäre vor zwei Jahren noch nicht zu realisieren gewesen!

Das ist natürlich erst der Anfang des Projekts. Ich möchte viele Funktionen hinzufügen, wie Grafiken, Touch-Funktionalität, die jetzt fehlt, vielleicht ein größeres Display und natürlich ein schön aussehendes 3D-gedrucktes Gehäuse. Ich werde auch eine besser aussehende GUI und Icons entwerfen. Ich habe ein paar ganz frische Ideen zum umsetzen!

Ich würde gerne Ihre Meinung zum heutigen Projekt hören. Welche Art von Funktionen soll ich dem Projekt hinzufügen? Gefällt dir, wie es aussieht? Wie wollen Sie die Entwicklung sehen? Bitte posten Sie Ihre Ideen in den Kommentaren unten; Ich liebe es, deine Gedanken zu lesen!

Wireless-Wettbewerb
Wireless-Wettbewerb
Wireless-Wettbewerb
Wireless-Wettbewerb

Zweiter im Wireless-Wettbewerb

Empfohlen: