Innehållsförteckning:

DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server: 4 steg
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server: 4 steg

Video: DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server: 4 steg

Video: DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server: 4 steg
Video: Arduino Nano, BME280 och SSD1306 OLED väderstation 2024, November
Anonim
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server

Github: DIY_Weather_Station

Hackster.io: Väderstation

Du hade väl sett Weather Application? Som när du öppnar den får du veta väderförhållandena som temperatur, luftfuktighet etc. Dessa avläsningar är medelvärdet för ett stort område, så om du vill veta de exakta parametrarna relaterade till ditt rum kan du inte bara lita på väderapplikationen. För detta ändamål kan vi gå vidare till tillverkningen av Weather Station som är kostnadseffektivt, och som också är pålitligt och ger oss det exakta värdet.

En väderstation är en anläggning med instrument och utrustning för mätning av atmosfäriska förhållanden för att ge information om väderprognoser och för att studera väder och klimat. Det kräver lite ansträngning att plugga och koda. Så låt oss komma igång.

Om Nodemcu:

NodeMCU är en IoT -plattform med öppen källkod.

Den innehåller firmware som körs på ESP8266 Wi-Fi SoC från Espressif Systems och hårdvara som är baserad på ESP-12-modulen.

Termen "NodeMCU" refererar som standard till den fasta programvaran snarare än till dev -satserna. Firmware använder Lua -skriptspråket. Det är baserat på eLua-projektet och byggt på Espressif Non-OS SDK för ESP8266. Den använder många projekt med öppen källkod, till exempel lua-cjson och spiffs.

Sensorer och programvarukrav:

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

2. DHT11

3. BMP180

4. Arduino IDE

Steg 1: Känn dina sensorer

Känn dina sensorer
Känn dina sensorer

BMP180:

Beskrivning:

BMP180 består av en piezo-resistiv sensor, en analog till digital omvandlare och en styrenhet med E2PROM och ett seriellt I2C-gränssnitt. BMP180 levererar det okompenserade värdet av tryck och temperatur. E2PROM har lagrat 176 bitars individuella kalibreringsdata. Detta används för att kompensera förskjutning, temperaturberoende och andra parametrar för sensorn.

  • UPP = tryckdata (16 till 19 bitar)
  • UT = temperaturdata (16 bitar)

Tekniska specifikationer:

  • Vin: 3 till 5VDC
  • Logik: 3 till 5V kompatibel
  • Tryckavkännande område: 300-1100 hPa (9000m till -500m över havet)
  • Upp till 0,03 hPa / 0,25 m upplösning-40 till +85 ° C driftområde, +-2 ° C temperaturnoggrannhet
  • Detta kort/chip använder I2C 7-bitars adress 0x77.

DHT11:

Beskrivning:

  • DHT11 är en grundläggande, extremt billig digital temperatur- och fuktsensor.
  • Den använder en kapacitiv fuktighetssensor och en termistor för att mäta den omgivande luften och spottar ut en digital signal på datapinnen (inga analoga ingångsstiften behövs). Det är ganska enkelt att använda, men kräver noggrann timing för att fånga data.
  • Den enda verkliga nackdelen med den här sensorn är att du bara kan få ny data från den en gång varannan sekund, så när du använder vårt bibliotek kan sensoravläsningar vara upp till 2 sekunder gamla.

Tekniska specifikationer:

  • 3 till 5V effekt och I/O
  • Bra för 0-50 ° C temperaturavläsningar ± 2 ° C noggrannhet
  • Bra för 20-80% luftfuktighetsavläsningar med 5% noggrannhet
  • 2,5 mA max aktuell användning under konvertering (vid begäran av data)

Steg 2: Anslutning

Anslutningar
Anslutningar

DHT11 med Nodemcu:

Stift 1 - 3.3V

Stift 2 - D4

Stift 3 - NC

Pin 4 - Gnd

BMP180 med Nodemcu:

Vin - 3,3V

Gnd - Gnd

SCL - D6

SDA - D7

Steg 3: Konfigurera Blynk

Image
Image
Installera Blynk
Installera Blynk

Vad är Blynk?

Blynk är en plattform med iOS- och Android -appar för att styra Arduino, Raspberry Pi och liknande över Internet.

Det är en digital instrumentpanel där du kan bygga ett grafiskt gränssnitt för ditt projekt genom att helt enkelt dra och släppa widgets. Det är verkligen enkelt att ställa in allt och du börjar pyssla på mindre än 5 minuter. Blynk är inte knuten till någon specifik bräda eller sköld. Istället stöder den valfri hårdvara. Oavsett om din Arduino eller Raspberry Pi är länkad till Internet via Wi-Fi, Ethernet eller detta nya ESP8266-chip, kommer Blynk att få dig online och redo för Internet Of Your Things.

För mer information om hur du konfigurerar Blynk: Detaljerad Blynk -inställning

Steg 4: Kod

Koda
Koda

// Kommentarer för varje rad ges i.ino -filen nedan

#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 = true; char auth = "Sätt din autentiseringsnyckel från Blynk -appen här"; char ssid = "Ditt WiFi SSID"; char pass = "Ditt lösenord"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Definiera stiftet och dhttype BlynkTimer -timern; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Det gick inte att hitta en giltig BMP085 -sensor, kontrollera kabeldragning!"); medan (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Det gick inte att läsa från DHT -sensor!"); lämna tillbaka; } dubbel gamma = log (h / 100) + ((17,62*t) / (243,5 + t)); dubbel 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); fördröjning (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }

Rekommenderad: