Inhaltsverzeichnis:
- Schritt 1: Was Sie brauchen…
- Schritt 2: Beginnen Sie mit dem Hardware-Setup des BME 280-Sensors
- Schritt 3: BME 280 Nodemcu ESP8266-Code
- Schritt 4: Erfolgreiches BME280-Sensorgerät + Fehlerbehebung
- Schritt 5: Bodensensor-Hardware-Setup
- Schritt 6: DS18B20 Nodemcu ESP8266-Code
- Schritt 7: Erfolgreicher Bodensensor und Fehlerbehebung
- Schritt 8: Fertig
Video: Erweiterungssensoren Nodemcu ESP8266 für Weewx - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Dies ist eine Anleitung zum Hinzufügen von Sensoren zur weewx-Wetterstationssoftware.
Wenn Sie weewx nicht haben, können Sie in diesem Tutorial einiges lernen.
Sie benötigen einige Grundkenntnisse über Arduino-Code und das Hochladen auf ein Gerät.
Informationen zu weewx finden Sie hier:
Was Sie bauen, sind 2 Geräte:
1 Gerät sendet Temperatur und Luftfeuchtigkeit an die weewx-Software.
1 Gerät sendet Bodentemperaturen verschiedener Bodentiefen an die weewx Software.
Unser erstes Gerät ist ein BME 280 Sensor.
Unser zweites Gerät ist eine Kette von 3 DS18B20 Temperatursensoren. (Sie können weitere hinzufügen, wenn Sie möchten).
Lasst uns beginnen:
Schritt 1: Was Sie brauchen…
Weewx läuft und läuft + Zugriff auf den weewx-Server. (zum Beispiel eine Himbeere PI 3).
2 Nodemcu ESP8266-Module
3 oder mehr DS18B20 Sensoren
1 Kombisensor BME 280
1 Aluminiumrohr o.ä. mit einem Durchmesser von 10mm und 1mm Wandstärke und ca. 1 Meter lang
1 Wasserdichtes Gehäuse mit Kabelverschraubung und Kontermutter.
1 5V Stromquelle (zB mobiler Lader).
Einige Drähte und Lötmaterial.
Sie finden BME280-Sensor- und Nodemcu-Module bei ebay.
Für Aluminiumrohre wähle ich einen lokalen Baumarkt
Für das DS18B20 und das wasserdichte Gehäuse verwende ich www.reichelt.de
www.reichelt.de/DS-18B20/3/index.html?ACTI…
www.reichelt.de/EL-FK-110/3/index.html?ACT…
und die Gruppe der Kabelverschraubungen mit Kontermuttern
www.reichelt.de/Kabelverschraubungen-Bopla…
Für das bme280 können Sie optional eine Abzweigdose verwenden
www.reichelt.de/Installationsmaterial/EL-D…
Schritt 2: Beginnen Sie mit dem Hardware-Setup des BME 280-Sensors
Löten Sie den Streifen in den BME280.
Dann die BME mit dem Nodemcu verkabeln:
BME-FIN bis 3.3V
BME GND zu GND
SCL zu D4
SDA zu D3
Wenn Sie möchten, können Sie das Gerät in ein Gehäuse stecken, achten Sie jedoch darauf, dass sich einige Löcher im Gehäuse befinden, damit die Luftfeuchtigkeits- und Temperaturwerte stimmen.
Schritt 3: BME 280 Nodemcu ESP8266-Code
Für den Code können Sie meine Github-Repositorys verwenden:
github.com/Landixus/BME280_TO_SERVER_WEEWX
Die ino-Datei benötigt einige Einfügungen von Ihnen:
Die IP-Adresse Ihres weewx-Servers oder Ihrer URL
und die Route, auf der Sie die PHP-Datei haben, stellen Sie sicher, dass der Bereich beschreibbar ist.
Ich wähle das Verzeichnis public_html, weil es ein Home-Server ist.
Wenn Sie die Git-Repositorys klonen möchten und Git auf Ihrem Server installiert haben, können Sie mit dem folgenden Befehl klonen:
"git-Klon"https://github.com/Landixus/BME280_TO_SERVER_WEEWX"
Jetzt müssen wir einige Dinge auf unserem weewx-Server tun.
Sie müssen die Pfade zu Ihren Einstellungen vornehmen!
in
/home/weewx/public_html
Erstellen Sie einen Ordner data
Erstellen Sie im Datenordner eine bme.txt zum Beispiel mit:
nano bme.txt
die Datei sollte leer sein.
beschreibbar machen mit:
chmod -R 777 bme.txt
(Sie tun dies niemals auf einem Server, der über das Internet zugänglich ist!)
im Ordner
/home/weewx/public_html
Sie legen die bme.php meines Github-Repositorys ab.
Der Trick ist, dass die INO-Datei Werte an die bme.php sendet und die bme.php die Daten in die bme.txt schreibt
Als nächstes müssen wir den Dienst in weewx hinzufügen
lege die bme.py in den Ordner
/home/weewx/bin/user
öffne deine weewx.conf im Ordner
/home/weewx
Es ist immer gut, eine Sicherungskopie zu erstellen, bevor Sie diese Datei bearbeiten!
Gehen Sie zur Zeile Engine und lassen Sie die Zeile wie meine aussehen:
[Motor]
# Dieser Abschnitt gibt die Dienste an, die ausgeführt werden sollen. Sie sind
# gruppiert nach Typ und der Reihenfolge der Dienste innerhalb jeder Gruppe
# bestimmt die Reihenfolge, in der die Dienste ausgeführt werden.
data_services = user.pond. PondService, user.bme.bme
starte weewx neu mit:
sudo /etc/init.d/weewx stop
sudo /etc/init.d/weewx start
mit dem Befehl
tail -f /var/log/syslog
Sie können in der Protokolldatei nach Fehlern oder Erfolgen suchen, nach einer Ausgabe suchen bme: found value of…
Geben Sie Ihrem Server einige Minuten Zeit zum Generieren, in "meiner" weewx.conf kommt alle 5 Minuten eine Ausgabe.
Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie Ihre Pfade.
Wenn Sie Werte haben, können Sie diese auf der Webseite anzeigen:
öffne die skin.conf in
/home/weewx/skins/Standard
gehe zu:
# Dieser ist wahrscheinlich spezifisch für meinen Sender!add
extraTemp3 = BME1 TemperaturextraHumid1 = BME1 Luftfeuchtigkeit
Datei speichern und im selben Ordner öffnen
index.html.tmpl
suche nach einer Zeile:
#if $day.extraTemp..
#end if
Nach dem ersten #Ende setzen Sie Ihren BME-Sensor mit:
^^ Entschuldigung, aber es ist nicht möglich, dies als Text zu schreiben:(Datei speichern und beenden.
Weewx muss nicht neu gestartet werden.
Jetzt müssen Sie die NODEMCU ESP8266 mit der Arduino-Datei füttern.
Vergessen Sie nicht, Ihr WLAN und Ihre Adressen in der Datei einzurichten.
Überprüfen Sie nach dem Laden die serielle Ausgabe auf Fehler.
Nach kurzer Zeit sollten Sie die Werte auf Ihrer weewx-Website sehen.
Schritt 4: Erfolgreiches BME280-Sensorgerät + Fehlerbehebung
Einige Tipps für Sie:
Öffne mehr als 1 Konsole über Putty
Auf einer Konsole nehmen Sie Ihre Änderungen vor und auf der anderen Konsole lesen Sie Ihr Syslog live mit:
tail -f /var/log/syslog
Wenn Sie einen Fehler haben, schauen Sie zuerst in Ihre Logdatei.
Ihre Ausgabe sollte meiner ähnlich aussehen:
Schritt 5: Bodensensor-Hardware-Setup
Für den DS18B20 Sensor müssen wir ein Bussystem mit einigen Drähten und Löten erstellen.
Überprüfen Sie Ihre DS18B20
DATEN, GND, VCC
Zwischen VCC und DATA benötigen Sie einen 4.7K-Widerstand. Es reicht, wenn Sie den Widerstand am ersten DS18B20. haben
Die anderen DS18B20 sind parallel zueinander.
Messen Sie die Länge für Ihre Bedürfnisse. Eine Kette zusammenlöten, die Stifte habe ich mit Schrumpfschlauch gesichert.
Für einen TEST verbinden Sie DATA mit D3 und VCC mit VCC (3.3V) und GND mit GND.
Für die Tiefschlafoption müssen Sie eine Brücke zwischen RST und D0 (GPIO16) anbringen
Sie sollten die Kette jetzt nicht in das Aluminiumrohr stecken, machen Sie Ihre Tests vorher!
Schritt 6: DS18B20 Nodemcu ESP8266-Code
Für den Code können Sie meine GITHUB-Repositorys verwenden:
github.com/Landixus/multipleDS18B20WeeWX
Auch die ino-Datei benötigt einige Einfügungen von Ihnen: Die IP-Adresse Ihres weewx-Servers oder die URL und die Route, auf der Sie die PHP-Datei abgelegt haben, stellen Sie sicher, dass der Bereich beschreibbar ist Ich wähle das public_html-Verzeichnis, da es sich um einen Home-Server handelt.
Wenn Sie die Git-Repositorys klonen möchten und Git auf Ihrem Server installiert haben, können Sie mit dem Befehl "git clone https://github.com/Landixus/multipleDS18B20WeeWX" klonen
Jetzt müssen wir einige Dinge tun, die auf unserem weewx-Server funktionieren.
Sie müssen die Pfade zu Ihren Einstellungen in
/home/weewx/public_html
Erstellen Sie einen Ordner "data" im Datenordner Erstellen Sie eine ds18b20.txt zum Beispiel nano ds18b20.txt die txt sollte leer sein. schreibbar machen mit chmod -R 777 ds18b20.txt (das macht man nie auf einem Server, der über das Internet erreichbar ist!) im Ordner /home/weewx/public_html legt man die ground.php meines Github-Repräsentanten ab. Der Trick ist, dass die INO-Datei Werte an die ground.php sendet und die ground.php die Daten in ds18b20.txt schreibt. Als nächstes müssen wir den Dienst in weewx hinzufügen. Legen Sie die ds18b20.py in den Ordner /home/weewx/bin/ Benutzer
öffne deine weewx.conf im Ordner /home/weewx
Es ist immer gut, eine Sicherungskopie zu erstellen, bevor Sie diese Datei bearbeiten!
gehe runter zur Zeile:
[Motor]
# gruppiert nach Typ und der Reihenfolge der Dienste innerhalb jeder Gruppe
# bestimmt die Reihenfolge, in der die Dienste ausgeführt werden.
prep_services = weewx.engine. StdTimeSynch, data_services = user.pond. PondService, user.bme.bme, user.ds18b20.ds18b20 fügen Sie die Inline nach einem Komma hinzu
"user.ds18b20.ds18b20" sollte wie die obere Zeile aussehen^^
starte weewx neu mit:
sudo /etc/init.d/weewx stop
sudo /etc/init.d/weewx start
mit dem Befehl tail -f /var/log/syslog kannst du im Logfile nach Fehlern oder Erfolg suchen nach einer Ausgabe suchen ds18b20: found value of Gib deinem Server einige Minuten zum Generieren, in meiner weewx.conf kommt alle 5 Minuten ein Out stellen. Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie Ihre Pfade. Wenn Sie Werte haben, können Sie diese auf der Seite anzeigen: Öffnen
skin.conf in /home/weewx/skins/Standard gehe zu:
# Dieser ist wahrscheinlich spezifisch für meinen Sender!
hinzufügen
BodenTemp1 = DS18B201
BodenTemp2 = DS18B202
BodenTemp3 = DS18B203
Speichern Sie die Datei und öffnen Sie im selben Ordner index.html.tmpl suchen Sie nach einer Zeile:
#if $day.extraTemp.. …
#end if
nach dem ersten #ende wenn du deinen GroundSensor Sensor findest mit:
^^ Entschuldigung, aber es ist nicht möglich, dies als Text einzufügen: (Datei speichern und beenden. Weewx muss nicht neu gestartet werden. Jetzt müssen Sie die NODEMCU ESP8266 mit der Arduino-Datei füttern.
Vergessen Sie nicht, Ihr WLAN und Ihre Adressen in der Datei einzurichten. Überprüfen Sie nach dem Laden die serielle Ausgabe auf Fehler.
Nach kurzer Zeit sollten Sie die Werte auf Ihrer weewx-Website sehen.
Schritt 7: Erfolgreicher Bodensensor und Fehlerbehebung
Wenn Sie alle Arbeiten haben und Werte sehen, dann gehen Sie nach draußen und legen Sie das Aluminiumrohr in den Boden.
Eine gute Möglichkeit ist, Heißkleber in eine Seite des Rohres zu geben und dann das Rohr zusammenzudrücken, dann hat man ein schönes Oberteil, um es leichter in den Boden zu bringen.
Legen Sie zuerst Ihre Pfeife in den Boden, Sie können mit einem Holzbrett weich hämmern.
Wenn das Rohr tief genug ist, können Sie Ihre ds18b20-Kette und die Stromkabel in die wasserdichte Box stecken.
Stellen Sie sicher, dass Ihr WLAN an diesem Ort funktioniert!
Wenn Sie nicht wissen, welcher Sensor wie tief ist, gibt es 2 Möglichkeiten.
Ich teste Phase 1 ds18b20 zwischen den Finger, die Temperatur geht für diesen höher.
Wenn sich das Rohr bereits im Boden befindet, ist normalerweise der höchste Wert der tiefste Punkt.
Schritt 8: Fertig
Nur das Ende
Poste deine Fragen und zeige deine Bodentemperaturen in den Kommentaren!
Für weitere Hilfe treten Sie weewx google Groups bei:
groups.google.com/forum/#!forum/weewx-user
Empfohlen:
Arduino Auto-Rückfahrwarnsystem - Schritt für Schritt: 4 Schritte
Arduino Auto-Rückfahrwarnsystem | Schritt für Schritt: In diesem Projekt entwerfe ich eine einfache Arduino-Auto-Rückwärts-Parksensorschaltung mit Arduino UNO und dem Ultraschallsensor HC-SR04. Dieses Arduino-basierte Car-Reverse-Warnsystem kann für eine autonome Navigation, Roboter-Ranging und andere Entfernungsr
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): 3 Schritte
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): Manchmal korrigiert die Autokorrektur möglicherweise etwas, das Sie nicht korrigieren möchten, z. Textabkürzungen beginnen sich in Großbuchstaben zu setzen (imo korrigieren zum Beispiel zu IMO). So erzwingen Sie, dass die Korrektur eines Wortes oder einer Phrase beendet wird, ohne aut zu deaktivieren
ESP8266 - Tür- und Fenstersensoren - ESP8266. Hilfe für ältere Menschen (Vergesslichkeit): 5 Schritte
ESP8266 - Tür- und Fenstersensoren - ESP8266. Hilfe für ältere Menschen (Vergesslichkeit): ESP8266 - Tür- / Fenstersensoren mit GPIO 0 und GPIO 2 (IOT). Es kann im Web oder im lokalen Netzwerk mit Browsern angezeigt werden. Auch sichtbar über die "HelpIdoso Vxapp" Anwendung. Verwendet eine 110/220 VAC-Versorgung für 5 VDC, 1 Relais / Spannung
Schnittstelle Regentropfensensor zu NodeMcu- für Anfänger: 5 Schritte
Schnittstelle Regentropfensensor zu NodeMcu| für Anfänger: In diesem Tutorial erfahren Sie, wie Sie den Regentropfensensor mit NodeMcu verbinden
DIY IoT-Lampe für die Hausautomation -- ESP8266-Tutorial: 13 Schritte (mit Bildern)
DIY IoT-Lampe für die Hausautomation || ESP8266-Tutorial: In diesem Tutorial werden wir eine mit dem Internet verbundene intelligente Lampe erstellen. Dies wird tief in das Internet der Dinge eintauchen und eine Welt der Heimautomatisierung eröffnen! Die Lampe ist über WLAN verbunden und verfügt über ein offenes Nachrichtenprotokoll. Das heißt, Sie können wählen