Innholdsfortegnelse:

DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server: 4 trinn
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server: 4 trinn

Video: DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server: 4 trinn

Video: DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server: 4 trinn
Video: El-sykkel bobiler | 6 Kreative Micro Camper Designs 2024, November
Anonim
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server
DIY værstasjon som bruker DHT11, BMP180, Nodemcu med Arduino IDE over Blynk Server

Github: DIY_Weather_Station

Hackster.io: Værstasjon

Du ville ha sett Weather Application, ikke sant? Som når du åpner den, blir du kjent med værforholdene som temperatur, fuktighet osv. Disse målingene er gjennomsnittsverdien for et stort område, så hvis du vil vite de eksakte parameterne knyttet til rommet ditt, kan du ikke bare stole på værprogrammet. For dette formålet kan vi gå videre til å lage Weather Station, som er kostnadseffektivt, og som også er pålitelig og gir oss den nøyaktige verdien.

En værstasjon er et anlegg med instrumenter og utstyr for måling av atmosfæriske forhold for å gi informasjon om værmeldinger og for å studere været og klimaet. Det krever litt innsats å koble til og kode. Så la oss komme i gang.

Om Nodemcu:

NodeMCU er en åpen kildekode IoT -plattform.

Den inkluderer fastvare som kjører på ESP8266 Wi-Fi SoC fra Espressif Systems, og maskinvare som er basert på ESP-12-modulen.

Begrepet "NodeMCU" refererer som standard til fastvaren i stedet for dev -settene. Fastvaren bruker skriptspråket Lua. Det er basert på eLua-prosjektet, og bygget på Espressif Non-OS SDK for ESP8266. Den bruker mange åpen kildekode-prosjekter, for eksempel lua-cjson og spiffs.

Sensorer og programvarekrav:

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

2. DHT11

3. BMP180

4. Arduino IDE

Trinn 1: Kjenn dine sensorer

Kjenn dine sensorer
Kjenn dine sensorer

BMP180:

Beskrivelse:

BMP180 består av en piezo-resistiv sensor, en analog til digital omformer og en kontrollenhet med E2PROM og et serielt I2C-grensesnitt. BMP180 leverer den ukompenserte verdien av trykk og temperatur. E2PROM har lagret 176 biters individuelle kalibreringsdata. Dette brukes til å kompensere forskyvning, temperaturavhengighet og andre parametere for sensoren.

  • OPP = trykkdata (16 til 19 bit)
  • UT = temperaturdata (16 bit)

Tekniske spesifikasjoner:

  • Vin: 3 til 5VDC
  • Logikk: 3 til 5V kompatibel
  • Trykkføler: 300-1100 hPa (9000m til -500m over havet)
  • Opptil 0,03 hPa / 0,25 m oppløsning-40 til +85 ° C driftsområde, +-2 ° C temperaturnøyaktighet
  • Dette kortet/brikken bruker I2C 7-biters adresse 0x77.

DHT11:

Beskrivelse:

  • DHT11 er en grunnleggende, ekstremt billig digital temperatur- og fuktighetssensor.
  • Den bruker en kapasitiv fuktighetssensor og en termistor for å måle luften rundt, og spytter ut et digitalt signal på datapinnen (ingen analoge inngangspinner er nødvendig). Den er ganske enkel å bruke, men krever nøye timing for å hente data.
  • Den eneste virkelige ulempen med denne sensoren er at du bare kan få nye data fra den en gang hvert 2. sekund, så når du bruker biblioteket vårt, kan sensoravlesninger være opptil 2 sekunder gamle.

Tekniske spesifikasjoner:

  • 3 til 5V strøm og I/O
  • Bra for 0-50 ° C temperaturavlesninger ± 2 ° C nøyaktighet
  • Bra for 20-80% fuktighetsavlesninger med 5% nøyaktighet
  • 2,5 mA maksimal bruk under konvertering (mens du ber om data)

Trinn 2: Tilkobling

Tilkobling
Tilkobling

DHT11 med Nodemcu:

Pin 1 - 3.3V

Pin 2 - D4

Pin 3 - NC

Pin 4 - Gnd

BMP180 med Nodemcu:

Vin - 3,3V

Gnd - Gnd

SCL - D6

SDA - D7

Trinn 3: Konfigurer Blynk

Image
Image
Oppsett Blynk
Oppsett Blynk

Hva er Blynk?

Blynk er en plattform med iOS- og Android -apper for å kontrollere Arduino, Raspberry Pi og lignende over Internett.

Det er et digitalt dashbord hvor du kan bygge et grafisk grensesnitt for prosjektet ditt ved å dra og slippe widgets. Det er veldig enkelt å sette opp alt, og du begynner å tinke på mindre enn 5 minutter. Blynk er ikke knyttet til et bestemt brett eller skjold. I stedet støtter den maskinvare du ønsker. Enten Arduino eller Raspberry Pi er koblet til Internett via Wi-Fi, Ethernet eller denne nye ESP8266-brikken, vil Blynk gjøre deg online og klar for Internet Of Your Things.

For mer informasjon om hvordan du konfigurerer Blynk: Detaljert Blynk -oppsett

Trinn 4: Kode

Kode
Kode

// Kommentarer for hver linje er gitt i.ino -filen nedenfor

#include #define BLYNK_PRINT Seriell #include #include #include #include #include Adafruit_BMP085 bmp; #define I2C_SCL 12 #define I2C_SDA 13 float dst, bt, bp, ba; røye dstmp [20], btmp [20], bprs [20], balt [20]; bool bmp085_present = true; char auth = "Sett autentiseringsnøkkelen fra Blynk -appen her"; char ssid = "Din WiFi SSID"; char pass = "Ditt passord"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Definere pinnen og dhttype BlynkTimer -timeren; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Kunne ikke finne en gyldig BMP085 -sensor, sjekk ledninger!"); mens (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Kunne ikke lese fra DHT -sensor!"); komme tilbake; } dobbel gamma = log (t / 100) + ((17,62*t) / (243,5 + t)); dobbel 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); } ugyldig oppsett () {Serial.begin (9600); Blynk.begin (auth, ssid, pass); dht.begin (); Wire.begin (I2C_SDA, I2C_SCL); forsinkelse (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }

Anbefalt: