Inhaltsverzeichnis:

DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server - Gunook
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server - Gunook

Video: DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server - Gunook

Video: DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server - Gunook
Video: Blynk2.0 - displaying temperature and humidity getting from DHT11 sensor | JAKK DIY 2024, November
Anonim
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server
DIY Wetterstation mit DHT11, BMP180, Nodemcu mit Arduino IDE über Blynk Server

Github: DIY_Weather_Station

Hackster.io: Wetterstation

Sie hätten Weather Application richtig gesehen? Wenn Sie es öffnen, erfahren Sie beispielsweise die Wetterbedingungen wie Temperatur, Luftfeuchtigkeit usw. Diese Messwerte sind der Durchschnittswert einer großen Fläche. Wenn Sie also die genauen Parameter Ihres Raums wissen möchten, können Sie nicht einfach verlassen Sie sich auf die Wetter-Anwendung. Lassen Sie uns zu diesem Zweck zur Herstellung einer Wetterstation übergehen, die kostengünstig und zuverlässig ist und uns den genauen Wert liefert.

Eine Wetterstation ist eine Einrichtung mit Instrumenten und Geräten zur Messung der atmosphärischen Bedingungen, um Informationen für Wettervorhersagen zu liefern und das Wetter und das Klima zu studieren. Das Plug-and-Coding erfordert nur wenig Aufwand. Also lasst uns anfangen.

Über Nodemcu:

NodeMCU ist eine Open-Source-IoT-Plattform.

Es enthält Firmware, die auf dem ESP8266 Wi-Fi SoC von Espressif Systems läuft, und Hardware, die auf dem ESP-12-Modul basiert.

Der Begriff "NodeMCU" bezieht sich standardmäßig auf die Firmware und nicht auf die Dev-Kits. Die Firmware verwendet die Skriptsprache Lua. Es basiert auf dem eLua-Projekt und baut auf dem Espressif Non-OS SDK für ESP8266 auf. Es verwendet viele Open-Source-Projekte wie lua-cjson und spiffs.

Anforderungen an Sensoren und Software:

1. Nodemcu (esp8266-12e v1.0)

2. DHT11

3. BMP180

4. Arduino-IDE

Schritt 1: Kennen Sie Ihre Sensoren

Kennen Sie Ihre Sensoren
Kennen Sie Ihre Sensoren

BMP180:

Beschreibung:

Der BMP180 besteht aus einem piezoresistiven Sensor, einem Analog-Digital-Wandler und einem Steuergerät mit E2PROM und serieller I2C-Schnittstelle. Der BMP180 liefert den unkompensierten Wert von Druck und Temperatur. Das E2PROM hat 176 Bit individuelle Kalibrierdaten gespeichert. Dies wird verwendet, um Offset, Temperaturabhängigkeit und andere Parameter des Sensors zu kompensieren.

  • UP = Druckdaten (16 bis 19 Bit)
  • UT = Temperaturdaten (16 Bit)

Technische Daten:

  • Vin: 3 bis 5VDC
  • Logik: 3 bis 5 V konform
  • Druckmessbereich: 300-1100 hPa (9000m bis -500m über dem Meeresspiegel)
  • Bis zu 0,03 hPa / 0,25 m Auflösung – 40 bis +85°C Betriebsbereich, +-2 °C Temperaturgenauigkeit
  • Dieses Board/Chip verwendet die I2C-7-Bit-Adresse 0x77.

DHT11:

Beschreibung:

  • Der DHT11 ist ein einfacher, extrem kostengünstiger digitaler Temperatur- und Feuchtigkeitssensor.
  • Es verwendet einen kapazitiven Feuchtigkeitssensor und einen Thermistor, um die Umgebungsluft zu messen, und gibt ein digitales Signal an den Datenpin aus (keine analogen Eingangspins erforderlich). Es ist ziemlich einfach zu bedienen, erfordert jedoch ein sorgfältiges Timing, um Daten zu erfassen.
  • Der einzige wirkliche Nachteil dieses Sensors ist, dass Sie nur alle 2 Sekunden neue Daten von ihm erhalten können. Wenn Sie also unsere Bibliothek verwenden, können die Sensormesswerte bis zu 2 Sekunden alt sein.

Technische Daten:

  • 3 bis 5 V Strom und I/O
  • Gut für 0-50°C Temperaturmessungen ±2 °C Genauigkeit
  • Gut für 20-80% Feuchtigkeitsmessungen mit 5% Genauigkeit
  • 2,5 mA maximaler Stromverbrauch während der Konvertierung (während der Datenabfrage)

Schritt 2: Konnektivität

Konnektivität
Konnektivität

DHT11 mit Nodemcu:

Pin 1 - 3,3 V

Stift 2 - D4

Pin 3 - NC

Pin 4 - Masse

BMP180 mit Nodemcu:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

Schritt 3: Blynk einrichten

Image
Image
Blynk einrichten
Blynk einrichten

Was ist Blynk?

Blynk ist eine Plattform mit iOS- und Android-Apps zur Steuerung von Arduino, Raspberry Pi und dergleichen über das Internet.

Es ist ein digitales Dashboard, auf dem Sie eine grafische Benutzeroberfläche für Ihr Projekt erstellen können, indem Sie Widgets einfach per Drag & Drop ziehen. Es ist wirklich einfach, alles einzurichten und Sie können in weniger als 5 Minuten mit dem Basteln beginnen. Blynk ist nicht an ein bestimmtes Board oder Schild gebunden. Stattdessen unterstützt es Hardware Ihrer Wahl. Egal, ob Ihr Arduino oder Raspberry Pi über Wi-Fi, Ethernet oder diesen neuen ESP8266-Chip mit dem Internet verbunden ist, Blynk macht Sie online und bereit für das Internet Ihrer Dinge.

Weitere Informationen zum Einrichten von Blynk: Detailliertes Blynk-Setup

Schritt 4: Code

Code
Code

// Kommentare für jede Zeile sind in der.ino-Datei unten angegeben

#include #define BLYNK_PRINT Seriennummer #include #include #include #include #include Adafruit_BMP085 bmp; #define I2C_SCL 12 #define I2C_SDA 13 float dst, bt, bp, ba; char dstmp[20], btmp[20], bprs[20], balt[20]; bool bmp085_present=true; char auth="Legen Sie Ihren Authentifizierungsschlüssel aus der Blynk-App hier ab"; char ssid = "Ihre WLAN-SSID"; char pass = "Ihr Passwort"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // Definieren des Pins und des dhttype BlynkTimer Timers; Void sendSensor () { if (! bmp.begin ()) { Serial.println ("Konnte keinen gültigen BMP085-Sensor finden, Verkabelung überprüfen!"); while (1) {} } float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan (h) || isnan (t)) { Serial.println ("Fehler beim Lesen vom DHT-Sensor!"); Rückkehr; } Doppelgamma = log(h/100) + ((17,62*t) / (243,5+t)); doppelter dp = 243,5*gamma/(17,62-gamma); float bp = bmp.readPressure()/100; float ba = bmp.readAltitude(); float bt = bmp.readTemperature(); float dst = bmp.readSealevelPressure()/100; Blynk.virtualWrite(V5, h); Blynk.virtualWrite(V6, t); Blynk.virtualWrite(V10, bp); Blynk.virtualWrite(V11, ba); Blynk.virtualWrite(V12, bt); Blynk.virtualWrite(V13, dst); Blynk.virtualWrite(V14, dp); aufrechtzuerhalten. Void setup () { Serial.begin (9600); Blynk.begin(auth, ssid, pass); dht.begin(); Wire.begin(I2C_SDA, I2C_SCL); Verzögerung(10); timer.setInterval(1000L, sendSensor); aufrechtzuerhalten. Void Schleife () { Blynk.run (); Timer.run(); }

Empfohlen: