Sisukord:

DIY ilmajaam, kasutades DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri: 4 sammu
DIY ilmajaam, kasutades DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri: 4 sammu

Video: DIY ilmajaam, kasutades DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri: 4 sammu

Video: DIY ilmajaam, kasutades DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri: 4 sammu
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, November
Anonim
DIY ilmajaam, mis kasutab DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri
DIY ilmajaam, mis kasutab DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri
DIY ilmajaam, mis kasutab DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri
DIY ilmajaam, mis kasutab DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri
DIY ilmajaam, mis kasutab DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri
DIY ilmajaam, mis kasutab DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri
DIY ilmajaam, mis kasutab DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri
DIY ilmajaam, mis kasutab DHT11, BMP180, Nodemcu koos Arduino IDE -ga üle Blynk -serveri

Github: DIY_Weather_Station

Hackster.io: ilmajaam

Kas oleksite ilmarakendust näinud? Nagu näiteks, avades saate teada ilmastikutingimustest nagu temperatuur, niiskus jne. Need näidud on suure ala keskmine väärtus, nii et kui soovite teada oma toaga seotud täpseid parameetreid, ei saa te lihtsalt tuginege ilmarakendusele. Sel eesmärgil saame jätkata ilmajaama valmistamisega, mis on kulutõhus, samuti usaldusväärne ja annab meile täpse väärtuse.

Ilmajaam on rajatis, kus on instrumendid ja seadmed atmosfääritingimuste mõõtmiseks, et saada teavet ilmaennustuste kohta ning uurida ilmastikutingimusi ja kliimat. Ühendamine ja kodeerimine nõuab natuke pingutusi. Nii et alustame.

Teave Nodemcu kohta:

NodeMCU on avatud lähtekoodiga asjade Interneti platvorm.

See sisaldab püsivara, mis töötab Espressif Systems'i ESP8266 Wi-Fi SoC-ga, ja riistvara, mis põhineb ESP-12 moodulil.

Mõiste "NodeMCU" viitab vaikimisi püsivarale, mitte arenduskomplektidele. Püsivara kasutab Lua skriptikeelt. See põhineb eLua projektil ja põhineb ESP8266 jaoks mõeldud Espressifi mitte-OS SDK-l. See kasutab paljusid avatud lähtekoodiga projekte, näiteks lua-cjson ja spiffs.

Andurite ja tarkvara nõuded:

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

2. DHT11

3. BMP180

4. Arduino IDE

Samm: tundke oma andureid

Tunne oma andureid
Tunne oma andureid

BMP180:

Kirjeldus:

BMP180 koosneb piesoresistentsest andurist, analoog-digitaalmuundurist ja juhtseadmest, millel on E2PROM ja seeria I2C liides. BMP180 pakub rõhu ja temperatuuri kompenseerimata väärtust. E2PROM on salvestanud 176 bitti individuaalseid kalibreerimisandmeid. Seda kasutatakse nihke, temperatuuri sõltuvuse ja muude anduri parameetrite kompenseerimiseks.

  • UP = rõhuandmed (16 kuni 19 bitti)
  • UT = temperatuuri andmed (16 bitti)

Tehnilised andmed:

  • Vin: 3 kuni 5VDC
  • Loogika: 3 kuni 5 V ühilduv
  • Rõhuandur: 300-1100 hPa (9000 m kuni -500 m üle merepinna)
  • Kuni 0,03 hPa / 0,25 m resolutsioon-40 kuni +85 ° C tööpiirkond, +-2 ° C temperatuuri täpsus
  • See plaat/kiip kasutab I2C 7-bitist aadressi 0x77.

DHT11:

Kirjeldus:

  • DHT11 on põhiline, väga odav digitaalne temperatuuri ja niiskuse andur.
  • See kasutab ümbritseva õhu mõõtmiseks mahtuvuslikku niiskusandurit ja termistorit ning sülitab andmestiku digitaalse signaali (analoogsisendit pole vaja). Seda on üsna lihtne kasutada, kuid andmete hankimine nõuab hoolikat ajastamist.
  • Selle anduri ainus negatiivne külg on see, et saate sealt uusi andmeid saada ainult üks kord iga 2 sekundi tagant, nii et meie raamatukogu kasutamisel võivad andurite näidud olla kuni 2 sekundit vanad.

Tehnilised andmed:

  • 3 kuni 5 V toide ja I/O
  • Sobib 0–50 ° C temperatuurinäitudele ± 2 ° C täpsusega
  • Sobib 20–80% niiskusnäitudele 5% täpsusega
  • 2,5 mA maksimaalne voolutarve konversiooni ajal (andmeid küsides)

Samm: ühenduvus

Ühenduvus
Ühenduvus

DHT11 koos Nodemcu'ga:

Pin 1 - 3.3V

Tihvt 2 - D4

Tihvt 3 - NC

Pin 4 - Gnd

BMP180 koos Nodemcu -ga:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

Samm: seadistage Blynk

Image
Image
Seadista Blynk
Seadista Blynk

Mis on Blynk?

Blynk on platvorm, millel on iOS- ja Android -rakendused Arduino, Raspberry Pi ja muu sarnase juhtimiseks Interneti kaudu.

See on digitaalne armatuurlaud, kus saate oma projektile graafilise liidese luua, lihtsalt vidinaid lohistades. Kõigi seadistamine on tõesti lihtne ja hakkate vähem kui 5 minuti pärast nokitsema. Blynk ei ole seotud mõne kindla tahvli või kilbiga. Selle asemel toetab see teie valitud riistvara. Ükskõik, kas teie Arduino või Raspberry Pi on Interneti-ühenduse kaudu Wi-Fi, Etherneti või selle uue ESP8266 kiibiga ühendatud, viib Blynk teid võrku ja on valmis teie asjade Interneti kasutamiseks.

Lisateavet Blynk'i seadistamise kohta: Üksikasjalik Blynk Setup

4. samm: kood

Kood
Kood

// Iga rea kommentaarid on toodud allolevas.ino -failis

#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 = tõsi; char auth = "Pange oma autentimisvõti rakendusest Blynk siia"; char ssid = "Teie WiFi SSID"; char pass = "Teie parool"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Tihvti ja dhttype BlynkTimer taimer määratlemine; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Ei leidnud sobivat BMP085 andurit, kontrollige juhtmestikku!"); while (1) {}} float h = dht.readHumidity (); ujuk t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("DHT -andurilt ei õnnestunud lugeda!"); tagasipöördumine; } kahekordne gamma = log (h / 100) + ((17,62*t) / (243,5 + t)); kahekordne dp = 243,5*gamma / (17,62-gamma); ujuk bp = bmp.readRõhk ()/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); viivitus (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); taimer.jooks (); }

Soovitan: