Kazalo:

Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk: 4 koraki
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk: 4 koraki

Video: Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk: 4 koraki

Video: Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk: 4 koraki
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Julij
Anonim
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk
Vremenska postaja DIY z uporabo DHT11, BMP180, Nodemcu z Arduino IDE prek strežnika Blynk

Github: DIY_Weather_Station

Hackster.io: Vremenska postaja

Bi videli vremensko aplikacijo, kajne? Na primer, ko ga odprete, spoznate vremenske razmere, kot so temperatura, vlaga itd. Ti odčitki so povprečna vrednost velike površine, zato, če želite vedeti natančne parametre, povezane z vašo sobo, ne morete samo se zanašajte na aplikacijo za vreme. V ta namen preidimo na izdelavo vremenske postaje, ki je stroškovno učinkovita, hkrati pa je tudi zanesljiva in nam daje natančno vrednost.

Vremenska postaja je objekt z instrumenti in opremo za merjenje atmosferskih razmer za zagotavljanje informacij za vremenske napovedi ter za proučevanje vremena in podnebja. Za priključitev in kodiranje zahteva malo truda. Pa začnimo.

O Nodemcu:

NodeMCU je odprtokodna platforma IoT.

Vključuje vdelano programsko opremo, ki deluje na Wi-Fi SoC ESP8266 podjetja Espressif Systems, in strojno opremo, ki temelji na modulu ESP-12.

Izraz "NodeMCU" se privzeto nanaša na vdelano programsko opremo in ne na komplete za razvoj. Vdelana programska oprema uporablja skriptni jezik Lua. Temelji na projektu eLua in temelji na Espressif Non-OS SDK za ESP8266. Uporablja številne odprtokodne projekte, na primer lua-cjson in spiffs.

Senzorji in programska oprema:

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

2. DHT11

3. BMP180

4. Arduino IDE

1. korak: Spoznajte svoje senzorje

Spoznajte svoje senzorje
Spoznajte svoje senzorje

BMP180:

Opis:

BMP180 je sestavljen iz piezo-uporovnega senzorja, analogno-digitalnega pretvornika in krmilne enote z E2PROM in serijskim vmesnikom I2C. BMP180 prinaša nekompresirano vrednost tlaka in temperature. E2PROM je shranil 176 bitov posameznih kalibracijskih podatkov. To se uporablja za kompenzacijo odmika, temperaturne odvisnosti in drugih parametrov senzorja.

  • UP = podatki o tlaku (16 do 19 bit)
  • UT = temperaturni podatki (16 bitov)

Tehnične specifikacije:

  • Vin: 3 do 5 V DC
  • Logika: skladno s 3 do 5V
  • Območje zaznavanja tlaka: 300-1100 hPa (9000m do -500m nadmorske višine)
  • Do 0,03 hPa / 0,25 m ločljivost -40 do +85 ° C, temperaturna natančnost +-2 ° C
  • Ta plošča/čip uporablja 7-bitni naslov I2C 0x77.

DHT11:

Opis:

  • DHT11 je osnovni, ultra poceni digitalni senzor temperature in vlažnosti.
  • Uporablja kapacitivni senzor vlažnosti in termistor za merjenje zraka v okolici ter izpljune digitalni signal na podatkovni zatič (brez analognih vhodnih zatičev). Je precej preprost za uporabo, vendar zahteva previden čas za zbiranje podatkov.
  • Edina resna pomanjkljivost tega senzorja je, da iz njega lahko dobite nove podatke le enkrat na 2 sekundi, zato so lahko pri uporabi naše knjižnice odčitki senzorjev stari do 2 sekundi.

Tehnične specifikacije:

  • Napajanje 3 do 5V in V/I
  • Dobro za odčitke temperature 0-50 ° C ± ± 2 ° C natančnost
  • Dobro za odčitke 20-80% vlažnosti s 5% natančnostjo
  • 2,5 mA max trenutna poraba med pretvorbo (pri zahtevanju podatkov)

2. korak: povezljivost

Povezljivost
Povezljivost

DHT11 z Nodemcu:

Pin 1 - 3.3V

Pin 2 - D4

Pin 3 - NC

Pin 4 - Gnd

BMP180 z Nodemcu:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

3. korak: Nastavite Blynk

Image
Image
Nastavitev Blynk
Nastavitev Blynk

Kaj je Blynk?

Blynk je platforma z aplikacijami za iOS in Android za nadzor Arduina, Raspberry Pi in podobnih po internetu.

To je digitalna nadzorna plošča, na kateri lahko zgradite grafični vmesnik za svoj projekt tako, da preprosto povlečete in spustite pripomočke. Nastaviti je zelo preprosto in začeli boste delati v manj kot 5 minutah. Blynk ni vezan na določeno desko ali ščit. Namesto tega podpira strojno opremo po vaši izbiri. Ne glede na to, ali je vaš Arduino ali Raspberry Pi povezan z internetom prek Wi-Fi-ja, etherneta ali tega novega čipa ESP8266, vas bo Blynk vzpostavil na spletu in pripravljen na internet vaših stvari.

Za več informacij o nastavitvi Blynk: Podrobna nastavitev Blynk

4. korak: Koda

Koda
Koda

// Komentarji za vsako vrstico so podani v spodnji datoteki.ino

#include #define BLYNK_PRINT Serijska #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 = "Tukaj vnesite ključ za preverjanje pristnosti iz aplikacije Blynk"; char ssid = "Vaš WiFi SSID"; char pass = "Vaše geslo"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Določanje zatiča in časovnika časovnika BlynkTimer dhttype; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Ni bilo mogoče najti veljavnega senzorja BMP085, preverite ožičenje!"); while (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Ni bilo mogoče prebrati s senzorja DHT!"); vrnitev; } dvojna gama = log (h / 100) + ((17,62*t) / (243,5 + t)); dvojni dp = 243,5*gama / (17,62-gama); 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); zamuda (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }

Priporočena: