Anleitung zu Better Wetter
Eine mit ThingSpeak verbundene Wetterstation aus einem NodeMCU (ESP8266) / M5Stack (ESP32), einem BME280 und einem Display.
Zurück zur Seite der Wetterstation
Libraries
BME280 | https://github.com/finitespace/BME280 |
TFT_eSPI | https://github.com/Bodmer/TFT_eSPI |
JPEGDecoder | https://github.com/Bodmer/JPEGDecoder |
JSON_Decoder | https://github.com/Bodmer/JSON_Decoder |
DarkSkyWeather | https://github.com/Bodmer/DarkSkyWeather |
ezTime (evtl. Anpassungen für neuste Version nötig) | https://github.com/ropg/ezTime |
ArduinoJson | https://github.com/bblanchon/ArduinoJson |
ESP32WebServer (nur für ESP32) | https://github.com/Pedroalbuquerque/ESP32WebServer |
Kompatibilität
Kompatibel mit dem ESP8266 und dem ESP32. Getestet mit einem NodeMCU (ESP8266) und einem M5Stack (ESP32).
Die richtigen Pins werden auf dem ESP32 und dem M5Stack automatisch ausgewählt, müssen für andere Geräte aber
eventuell geändert werden.
Es werden automatisch die richtigen Bibliotheken, je nach verwendetem Mikrocontroller ausgewählt.
Die TFT_eSPI Bibliothek muss je nach verwendetem Display eventuell anders
eingestellt werden (z. B. beim M5Stack).
Einstellungen
Wenn bool SetupMode = true ist, wird nach dem Start des Gerätes ein Access Point aufgebaut, über den eine Verbindung zum
WLAN hergestellt werden kann. Dann muss in ssid und password nichts eingetragen sein. Auf dem Display werden dann Anweisungen dafür angezeigt.
Da die WLAN-Zugangsdaten (derzeit) nicht über einen Reset hinweg gespeichert werden, ist dies nicht zu empfehlen, wenn die Wetterstation
oft vom Strom getrennt wird.
Für diesen Fall kann bool SetupMode = false sein, dann müssen in ssid und password die SSID und das Passwort des zu
verwendenden Netzwerks eingetragen werden.
Dark Sky Einstellungen
In api_key muss der API Key von https://darksky.net/dev/ eingetragen werden. In latitude und longitude müssen Längen und Breitengrad des Ortes für die Wettervorhersage eingetragen werden.ThingSpeak Einstellungen
In channelID muss die ID des Kanals, an den die Wetterstation ihre Messdaten senden soll eingetragen werden. In writeAPIKey muss der Write API Key für diese. In readChannelID muss die ID des Kanals, von dem die Messdaten einer andere Wetterstation abgerufen werden sollen. Dieser Kanal muss öffentlich sein.Übertragen
Wird normal mit dem Arduino IDE übertragen.
Der data Ordner muss mit
dem Arduino ESP8266 filesystem uploader für den
ESP8266
oder dem Arduino ESP32 filesystem uploader für
den ESP32
übertragen werden.
Anschließen
Es muss ein Display (ich weiß nicht, ob es auch ohne geht (ich denke ja), ist auf jeden Fall nicht sinnvoll ohne Display) angeschlossen sein. Außerdem muss ein BME280 per I²C angeschlossen sein. Auf dem ESP8266 standardmäßig SDA an D6 und SCL an D2, auf dem ESP32 SDA an 22 und SCL an 21.
Probleme
Falls FS.h nicht vorhanden ist, muss der ESP8266/ESP32 über sein Git-Repo. installiert werden. Dafür muss https://github.com/esp8266/Arduino oder https://github.com/espressif/arduino-esp32 nach hardware im Sketchbook-Ordner geklont werden und darin in tools get.py mit Python ausgeführt werden. Meiner Erfahrung nach funktioniert es auch, wenn der ESP32 auf diese Weise installiert ist und der ESP8266 nur über das Arduino IDE.