Cuprins:

Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE pe serverul Blynk: 4 pași
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE pe serverul Blynk: 4 pași

Video: Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE pe serverul Blynk: 4 pași

Video: Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE pe serverul Blynk: 4 pași
Video: Stație meteo OLED Arduino Nano, BME280 și SSD1306 2024, Noiembrie
Anonim
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE peste serverul Blynk
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE peste serverul Blynk
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE peste serverul Blynk
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE peste serverul Blynk
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE peste serverul Blynk
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE peste serverul Blynk
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE peste serverul Blynk
Stație meteo DIY folosind DHT11, BMP180, Nodemcu cu Arduino IDE peste serverul Blynk

Github: DIY_Weather_Station

Hackster.io: Stație meteo

Ați fi văzut aplicația meteo nu? De exemplu, atunci când îl deschideți, veți cunoaște condițiile meteorologice, cum ar fi Temperatura, Umiditatea etc. Aceste citiri reprezintă valoarea medie a unei zone mari, așa că, dacă doriți să cunoașteți parametrii exacți legați de camera dvs., nu puteți doar mizați pe aplicația meteo. În acest scop, putem trece la realizarea stației meteo, care este rentabilă și este, de asemenea, fiabilă și ne oferă valoarea exactă.

O stație meteo este o instalație cu instrumente și echipamente pentru măsurarea condițiilor atmosferice pentru a furniza informații despre prognozele meteo și pentru a studia vremea și clima. Este nevoie de puțin efort pentru conectare și cod. Deci sa începem.

Despre Nodemcu:

NodeMCU este o platformă IoT open source.

Include firmware care rulează pe ESP8266 Wi-Fi SoC de la Espressif Systems și hardware care se bazează pe modulul ESP-12.

Termenul „NodeMCU” se referă în mod implicit la firmware, mai degrabă decât la kituri de dezvoltare. Firmware-ul utilizează limbajul de scriptare Lua. Se bazează pe proiectul eLua și este construit pe Espressif Non-OS SDK pentru ESP8266. Folosește multe proiecte open source, cum ar fi lua-cjson și spiffs.

Senzori și cerințe software:

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

2. DHT11

3. BMP180

4. IDE Arduino

Pasul 1: Cunoaște-ți senzorii

Cunoaște-ți senzorii
Cunoaște-ți senzorii

BMP180:

Descriere:

BMP180 constă dintr-un senzor piezo-rezistiv, un convertor analogic digital și o unitate de control cu E2PROM și o interfață serial I2C. BMP180 oferă valoarea necompensată a presiunii și temperaturii. E2PROM a stocat 176 biți de date de calibrare individuale. Acesta este utilizat pentru a compensa compensarea, dependența de temperatură și alți parametri ai senzorului.

  • UP = date de presiune (16 până la 19 biți)
  • UT = date de temperatură (16 biți)

Specificații tehnice:

  • Vin: 3 până la 5VDC
  • Logică: compatibil 3 până la 5V
  • Domeniu de detectare a presiunii: 300-1100 hPa (9000m până la -500m deasupra nivelului mării)
  • Până la 0,03hPa / 0,25m rezoluție-40 până la + 85 ° C domeniu operațional, + -2 ° C precizie de temperatură
  • Această placă / cip folosește adresa I2C pe 7 biți 0x77.

DHT11:

Descriere:

  • DHT11 este un senzor digital de temperatură și umiditate de bază extrem de scăzut.
  • Utilizează un senzor capacitiv de umiditate și un termistor pentru a măsura aerul înconjurător și scuipă un semnal digital pe pinul de date (nu sunt necesari pinii de intrare analogici). Este destul de simplu de utilizat, dar necesită sincronizare atentă pentru a obține date.
  • Singurul dezavantaj real al acestui senzor este că puteți obține date noi de la acesta o dată la fiecare 2 secunde, astfel încât atunci când utilizați biblioteca noastră, citirile senzorilor pot avea o vechime de până la 2 secunde.

Specificații tehnice:

  • Putere de la 3 la 5V și I / O
  • Bun pentru citiri de temperatură 0-50 ° C precizie ± 2 ° C
  • Bun pentru citiri de umiditate de 20-80% cu o precizie de 5%
  • Utilizare curentă maximă de 2,5 mA în timpul conversiei (în timp ce solicitați date)

Pasul 2: conectivitate

Conectivitate
Conectivitate

DHT11 cu Nodemcu:

Pinul 1 - 3.3V

Pinul 2 - D4

Pinul 3 - NC

Pinul 4 - Gnd

BMP180 cu Nodemcu:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

Pasul 3: Configurați Blynk

Image
Image
Configurați Blynk
Configurați Blynk

Ce este Blynk?

Blynk este o platformă cu aplicații iOS și Android pentru a controla Arduino, Raspberry Pi și like-uri prin Internet.

Este un tablou de bord digital în care puteți crea o interfață grafică pentru proiectul dvs. prin simpla glisare și plasare a widgeturilor. Este foarte simplu să configurați totul și veți începe să faceți jocuri în mai puțin de 5 minute. Blynk nu este legat de vreun tablou sau scut specific. În schimb, suportă hardware la alegere. Indiferent dacă dispozitivul dvs. Arduino sau Raspberry Pi este conectat la Internet prin Wi-Fi, Ethernet sau acest nou cip ESP8266, Blynk vă va face online și gata pentru Internetul lucrurilor voastre.

Pentru mai multe informații despre configurarea Blynk: Configurare detaliată Blynk

Pasul 4: Cod

Cod
Cod

// Comentariile pentru fiecare linie sunt date în fișierul.ino de mai jos

#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 = adevărat; char auth = "Puneți aici cheia de automatizare din aplicația Blynk"; char ssid = "SSID-ul dvs. WiFi"; char pass = "Parola ta"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Definirea pinului și a temporizatorului BlynkTimer dhttype; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Nu s-a putut găsi un senzor BMP085 valid, verificați cablarea!"); while (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Nu s-a citit de la senzorul DHT!"); întoarcere; } gamma dublă = log (h / 100) + ((17,62 * t) / (243,5 + t)); dp dublu = 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); întârziere (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }

Recomandat: