Inhaltsverzeichnis:

Erweiterungssensoren Nodemcu ESP8266 für Weewx - Gunook
Erweiterungssensoren Nodemcu ESP8266 für Weewx - Gunook

Video: Erweiterungssensoren Nodemcu ESP8266 für Weewx - Gunook

Video: Erweiterungssensoren Nodemcu ESP8266 für Weewx - Gunook
Video: IO Pins am ESP8266 erweitern mit dem PCF8574 Erweiterungsmodul 2024, Juli
Anonim
Erweiterungssensoren Nodemcu ESP8266 für Weewx
Erweiterungssensoren Nodemcu ESP8266 für Weewx

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…

Was du brauchst…
Was du brauchst…
Was du brauchst…
Was du brauchst…
Was du brauchst…
Was du brauchst…

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

Beginnen Sie mit dem Hardware-Setup des BME 280-Sensors
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

BME 280 Nodemcu ESP8266 Code
BME 280 Nodemcu ESP8266 Code
BME 280 Nodemcu ESP8266 Code
BME 280 Nodemcu ESP8266 Code
BME 280 Nodemcu ESP8266 Code
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

Erfolg BME280 Sensorgerät + Fehlerbehebung
Erfolg BME280 Sensorgerät + Fehlerbehebung
Erfolg BME280 Sensorgerät + Fehlerbehebung
Erfolg 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

Bodensensor-Hardware-Setup
Bodensensor-Hardware-Setup
Bodensensor-Hardware-Setup
Bodensensor-Hardware-Setup
Bodensensor-Hardware-Setup
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

DS18B20 Nodemcu ESP8266-Code
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

Erfolgreicher Bodensensor und Fehlerbehebung
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

Beenden
Beenden

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: