Inhoudsopgave:

DIY-weerstation met DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server - Ajarnpa
DIY-weerstation met DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server - Ajarnpa

Video: DIY-weerstation met DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server - Ajarnpa

Video: DIY-weerstation met DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server - Ajarnpa
Video: Arduino Nano, BME280 and SSD1306 OLED Weather Station 2024, Juli-
Anonim
DIY-weerstation met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server
DIY-weerstation met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server
DIY-weerstation met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server
DIY-weerstation met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server
DIY-weerstation met DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server
DIY-weerstation met DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server
DIY-weerstation met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server
DIY-weerstation met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk-server

Github: DIY_Weather_Station

Hackster.io: Weerstation

Je zou Weather Application toch hebben gezien? Als je het bijvoorbeeld opent, leer je de weersomstandigheden kennen, zoals temperatuur, vochtigheid enz. Die metingen zijn de gemiddelde waarde van een groot gebied, dus als je de exacte parameters met betrekking tot je kamer wilt weten, kun je niet zomaar vertrouwen op de weerapplicatie. Laten we voor dit doel verder gaan met het maken van weerstation, dat kosteneffectief is, en ook betrouwbaar en geeft ons de juiste waarde.

Een weerstation is een faciliteit met instrumenten en apparatuur voor het meten van atmosferische omstandigheden om informatie te verstrekken voor weersvoorspellingen en om het weer en klimaat te bestuderen. Het kost weinig moeite om aan te sluiten en te coderen. Dus laten we beginnen.

Over Nodemcu:

NodeMCU is een open source IoT-platform.

Het bevat firmware die draait op de ESP8266 Wi-Fi SoC van Espressif Systems en hardware die is gebaseerd op de ESP-12-module.

De term "NodeMCU" verwijst standaard naar de firmware in plaats van naar de dev-kits. De firmware gebruikt de Lua-scripttaal. Het is gebaseerd op het eLua-project en gebouwd op de Espressif Non-OS SDK voor ESP8266. Het gebruikt veel open source-projecten, zoals lua-cjson en spiffs.

Sensoren en softwarevereisten:

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

2. DHT11

3. BMP180

4. Arduino IDE

Stap 1: Ken uw sensoren

Ken uw sensoren
Ken uw sensoren

BMP180:

Beschrijving:

De BMP180 bestaat uit een piëzo-resistieve sensor, een analoog naar digitaal converter en een besturingseenheid met E2PROM en een seriële I2C interface. De BMP180 levert de ongecompenseerde waarde van druk en temperatuur. De E2PROM heeft 176 bit aan individuele kalibratiegegevens opgeslagen. Dit wordt gebruikt om offset, temperatuurafhankelijkheid en andere parameters van de sensor te compenseren.

  • UP = drukgegevens (16 tot 19 bit)
  • UT = temperatuurgegevens (16 bit)

Technische specificaties:

  • Vin: 3 tot 5VDC
  • Logica: 3 tot 5V compatibel
  • Drukmeetbereik: 300-1100 hPa (9000 m tot -500 m boven zeeniveau)
  • Tot 0,03 hPa / 0,25 m resolutie-40 tot +85°C operationeel bereik, +-2°C temperatuurnauwkeurigheid
  • Dit bord/chip gebruikt I2C 7-bit adres 0x77.

DHT11:

Beschrijving:

  • De DHT11 is een eenvoudige, ultra voordelige digitale temperatuur- en vochtigheidssensor.
  • Het gebruikt een capacitieve vochtigheidssensor en een thermistor om de omringende lucht te meten, en spuugt een digitaal signaal uit op de datapin (geen analoge ingangspinnen nodig). Het is vrij eenvoudig te gebruiken, maar vereist een zorgvuldige timing om gegevens te verzamelen.
  • Het enige echte nadeel van deze sensor is dat je er maar eens in de 2 seconden nieuwe gegevens van kunt krijgen, dus bij gebruik van onze bibliotheek kunnen sensormetingen tot 2 seconden oud zijn.

Technische specificaties:

  • 3 tot 5V voeding en I/O
  • Goed voor 0-50°C temperatuurmetingen ±2°C nauwkeurigheid
  • Goed voor 20-80% vochtigheidsmetingen met 5% nauwkeurigheid
  • 2,5 mA max stroomverbruik tijdens conversie (tijdens het opvragen van gegevens)

Stap 2: Connectiviteit

Connectiviteit
Connectiviteit

DHT11 met Nodemcu:

Pin 1 - 3.3V

Pin 2 - D4

Pin 3 - NC

Pin 4 - Gnd

BMP180 met Nodemcu:

Vin - 3.3V

Gnd - Gnd

SCL-D6

SDA - D7

Stap 3: Blynk instellen

Image
Image
Blynk instellen
Blynk instellen

Wat is Blynk?

Blynk is een platform met iOS- en Android-apps om Arduino, Raspberry Pi en dergelijke via internet te bedienen.

Het is een digitaal dashboard waar u een grafische interface voor uw project kunt bouwen door eenvoudig widgets te slepen en neer te zetten. Het is heel eenvoudig om alles in te stellen en je begint binnen 5 minuten te sleutelen. Blynk is niet gebonden aan een specifiek bord of schild. In plaats daarvan ondersteunt het hardware van uw keuze. Of je Arduino of Raspberry Pi nu met internet is verbonden via Wi-Fi, Ethernet of deze nieuwe ESP8266-chip, Blynk zorgt ervoor dat je online bent en klaar bent voor het internet van je dingen.

Voor meer informatie over het instellen van Blynk: Gedetailleerde Blynk-configuratie

Stap 4: Coderen

Code
Code

//Opmerkingen voor elke regel worden gegeven in het.ino-bestand hieronder

#include #define BLYNK_PRINT Serial #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=waar; char auth="Plaats hier uw verificatiesleutel van de Blynk-app"; char ssid = "Uw WiFi SSID"; char pass = "Uw wachtwoord"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // De pin en de dhttype BlynkTimer-timer definiëren; void sendSensor() { if (!bmp.begin()) { Serial.println("Kon geen geldige BMP085-sensor vinden, controleer de bedrading!"); while (1) {} } float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Kan niet lezen van DHT-sensor!"); opbrengst; } dubbele gamma = log(h/100) + ((17,62*t) / (243,5+t)); dubbele 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); } void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); dht.begin(); Wire.begin(I2C_SDA, I2C_SCL); vertraging(10); timer.setInterval (1000L, sendSensor); } void loop() { Blynk.run(); timer.run(); }

Aanbevolen: