INHOUDSOPGAWE:

DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE oor Blynk -bediener: 4 stappe
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE oor Blynk -bediener: 4 stappe

Video: DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE oor Blynk -bediener: 4 stappe

Video: DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE oor Blynk -bediener: 4 stappe
Video: Bou jou eie Weerstasie 2024, November
Anonim
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE oor Blynk -bediener
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE oor Blynk -bediener
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk Server
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk Server
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk Server
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk Server
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk Server
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE via Blynk Server

Github: DIY_Weather_Station

Hackster.io: Weerstasie

U sou die Weather Application reg gesien het? Soos wanneer u dit oopmaak, leer u die weerstoestande, soos temperatuur, humiditeit, ens., Die gemiddelde waarde is 'n groot gebied, so as u die presiese parameters van u kamer wil weet, kan u nie net maak staat op die weertoepassing. Vir hierdie doel kan ons voortgaan met die vervaardiging van 'n weerstasie, wat koste -effektief is, en ook betroubaar is en ons die akkurate waarde gee.

'N Weerstasie is 'n fasiliteit met instrumente en toerusting vir die meting van atmosferiese toestande om inligting te verskaf oor weervoorspellings en om die weer en klimaat te bestudeer. Dit verg 'n bietjie moeite om aan te sluit en te kodeer. Laat ons dus begin.

Oor Nodemcu:

NodeMCU is 'n open source IoT -platform.

Dit bevat firmware wat op die ESP8266 Wi-Fi SoC van Espressif Systems werk, en hardeware wat gebaseer is op die ESP-12-module.

Die term "NodeMCU" verwys standaard na die firmware eerder as na die dev -kits. Die firmware gebruik die Lua -skriptaal. Dit is gebaseer op die eLua-projek en is gebou op die Espressif Non-OS SDK vir ESP8266. Dit gebruik baie open source-projekte, soos lua-cjson en spiffs.

Sensors en sagteware vereiste:

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

2. DHT11

3. BMP180

4. Arduino IDE

Stap 1: Ken u sensors

Ken jou sensors
Ken jou sensors

BMP180:

Beskrywing:

Die BMP180 bestaan uit 'n piëzo-weerstandige sensor, 'n analoog na digitale omskakelaar en 'n beheereenheid met E2PROM en 'n seriële I2C-koppelvlak. Die BMP180 lewer die ongekompenseerde waarde van druk en temperatuur. Die E2PROM het 176 bisse individuele kalibrasiedata gestoor. Dit word gebruik om kompensasie, temperatuurafhanklikheid en ander parameters van die sensor te vergoed.

  • UP = drukdata (16 tot 19 bit)
  • UT = temperatuurdata (16 bis)

Tegniese spesifikasies:

  • Vin: 3 tot 5VDC
  • Logika: voldoen aan 3 tot 5V
  • Drukwaarnemingsbereik: 300-1100 hPa (9000m tot -500m bo seespieël)
  • Tot 0,03hPa / 0,25m resolusie-40 tot +85 ° C operasionele omvang, +-2 ° C temperatuur akkuraatheid
  • Hierdie bord/chip gebruik I2C 7-bis adres 0x77.

DHT11:

Beskrywing:

  • Die DHT11 is 'n basiese, ultra goedkoop digitale temperatuur- en humiditeitsensor.
  • Dit gebruik 'n kapasitiewe humiditeitsensor en 'n termistor om die omringende lug te meet, en spoeg 'n digitale sein op die data -pen uit (geen analoog invoerpenne nodig nie). Dit is redelik eenvoudig om te gebruik, maar vereis noukeurige tydsberekening om data te gryp.
  • Die enigste nadeel van hierdie sensor is dat u slegs elke 2 sekondes nuwe data kan kry, dus as u ons biblioteek gebruik, kan sensorlesings tot 2 sekondes oud wees.

Tegniese spesifikasies:

  • 3 tot 5V krag en I/O
  • Goed vir 0-50 ° C temperatuurlesings ± 2 ° C akkuraatheid
  • Goed vir 20-80% humiditeitsmetings met 5% akkuraatheid
  • 2.5 mA maksimum huidige gebruik tydens omskakeling (terwyl data aangevra word)

Stap 2: Konnektiwiteit

Konnektiwiteit
Konnektiwiteit

DHT11 met Nodemcu:

Speld 1 - 3.3V

Speld 2 - D4

Speld 3 - NC

Speld 4 - Gnd

BMP180 met Nodemcu:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

Stap 3: Stel Blynk op

Image
Image
Stel Blynk op
Stel Blynk op

Wat is Blynk?

Blynk is 'n platform met iOS- en Android -programme om Arduino, Raspberry Pi en meer oor die internet te beheer.

Dit is 'n digitale dashboard waar u 'n grafiese koppelvlak vir u projek kan bou deur eenvoudig widgets te sleep en te laat val. Dit is regtig eenvoudig om alles op te stel, en u sal binne minder as 5 minute begin dink. Blynk is nie aan 'n spesifieke bord of skild vasgemaak nie. Dit ondersteun eerder die hardeware van u keuse. Of u Arduino of Raspberry Pi aan die internet gekoppel is via Wi-Fi, Ethernet of hierdie nuwe ESP8266-chip, Blynk sal u aanlyn en gereed maak vir die internet van u dinge.

Vir meer inligting oor die opstel van Blynk: Gedetailleerde Blynk -opstelling

Stap 4: Kode

Kode
Kode

// Opmerkings vir elke reël word in die.ino -lêer hieronder gegee

#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 = "Sit u verifikasiesleutel van die Blynk -app hier"; char ssid = "Jou WiFi SSID"; char pass = "U wagwoord"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Definieer die pen en die tipe BlynkTimer -timer; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Kon nie 'n geldige BMP085 -sensor vind nie, kyk na bedrading!"); terwyl (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Kan nie lees van DHT -sensor nie!"); terugkeer; } 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); } ongeldige opstelling () {Serial.begin (9600); Blynk.begin (auth, ssid, pass); dht.begin (); Wire.begin (I2C_SDA, I2C_SCL); vertraging (10); timer.setInterval (1000L, sendSensor); } leemte -lus () {Blynk.run (); timer.run (); }

Aanbeveel: