Sommario:

Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk: 4 passaggi
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk: 4 passaggi

Video: Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk: 4 passaggi

Video: Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk: 4 passaggi
Video: Метеостанция на базе Интернета вещей с использованием NodeMCU [2022] 2024, Dicembre
Anonim
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk
Stazione meteorologica fai-da-te che utilizza DHT11, BMP180, Nodemcu con Arduino IDE su server Blynk

Github: DIY_Weather_Station

Hackster.io: stazione meteo

Avresti visto Applicazione Meteo giusto? Ad esempio, quando lo apri puoi conoscere le condizioni meteorologiche come temperatura, umidità ecc. Quelle letture sono il valore medio di una grande area, quindi se vuoi conoscere i parametri esatti relativi alla tua stanza, non puoi semplicemente affidati all'Applicazione Meteo. A questo scopo, passiamo alla realizzazione di una stazione meteorologica che è economica, affidabile e ci fornisce un valore accurato.

Una stazione meteorologica è una struttura con strumenti e apparecchiature per la misurazione delle condizioni atmosferiche per fornire informazioni per le previsioni meteorologiche e per studiare il tempo e il clima. Richiede un piccolo sforzo per collegare e codificare. Quindi iniziamo.

Informazioni su Nodemcu:

NodeMCU è una piattaforma IoT open source.

Include il firmware che funziona sul SoC Wi-Fi ESP8266 di Espressif Systems e l'hardware basato sul modulo ESP-12.

Il termine "NodeMCU" per impostazione predefinita si riferisce al firmware piuttosto che ai kit di sviluppo. Il firmware utilizza il linguaggio di scripting Lua. Si basa sul progetto eLua e si basa su Espressif Non-OS SDK per ESP8266. Utilizza molti progetti open source, come lua-cjson e spiff.

Sensori e requisiti software:

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

2. DHT11

3. BMP180

4. Arduino IDE

Passaggio 1: conosci i tuoi sensori

Conosci i tuoi sensori
Conosci i tuoi sensori

BMP180:

Descrizione:

Il BMP180 è costituito da un sensore piezo-resistivo, un convertitore analogico-digitale e un'unità di controllo con E2PROM e un'interfaccia seriale I2C. Il BMP180 fornisce il valore non compensato di pressione e temperatura. L'E2PROM ha memorizzato 176 bit di dati di calibrazione individuali. Viene utilizzato per compensare l'offset, la dipendenza dalla temperatura e altri parametri del sensore.

  • UP = dati di pressione (da 16 a 19 bit)
  • UT = dati di temperatura (16 bit)

Specifiche tecniche:

  • Vin: da 3 a 5VDC
  • Logica: compatibile da 3 a 5 V
  • Intervallo di rilevamento della pressione: 300-1100 hPa (da 9000 m a -500 m sul livello del mare)
  • Fino a 0,03 hPa / risoluzione 0,25 m Intervallo operativo da -40 a +85 °C, precisione della temperatura di +-2 °C
  • Questa scheda/chip utilizza l'indirizzo I2C a 7 bit 0x77.

DHT11:

Descrizione:

  • Il DHT11 è un sensore digitale di temperatura e umidità di base a bassissimo costo.
  • Utilizza un sensore di umidità capacitivo e un termistore per misurare l'aria circostante ed emette un segnale digitale sul pin dati (non sono necessari pin di ingresso analogico). È abbastanza semplice da usare, ma richiede un'attenta tempistica per acquisire i dati.
  • L'unico vero svantaggio di questo sensore è che puoi ottenere nuovi dati da esso solo una volta ogni 2 secondi, quindi quando usi la nostra libreria, le letture del sensore possono essere vecchie fino a 2 secondi.

Specifiche tecniche:

  • Alimentazione da 3 a 5 V e I/O
  • Buono per letture di temperatura 0-50°C ±2°C di precisione
  • Buono per letture di umidità del 20-80% con una precisione del 5%
  • Utilizzo di corrente max 2,5 mA durante la conversione (durante la richiesta dei dati)

Passaggio 2: connettività

Connettività
Connettività

DHT11 con Nodemcu:

Pin 1 - 3.3V

Pin 2 - D4

Pin 3 - NC

Pin 4 - Gnd

BMP180 con Nodemcu:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

Passaggio 3: configura Blynk

Image
Image
Configurazione Blynk
Configurazione Blynk

Cos'è Blynk?

Blynk è una piattaforma con app iOS e Android per controllare Arduino, Raspberry Pi e simili su Internet.

È una dashboard digitale in cui puoi creare un'interfaccia grafica per il tuo progetto semplicemente trascinando e rilasciando i widget. È davvero semplice impostare tutto e inizierai ad armeggiare in meno di 5 minuti. Blynk non è legato a nessuna scheda o scudo specifico. Invece, supporta l'hardware di tua scelta. Sia che il tuo Arduino o Raspberry Pi sia collegato a Internet tramite Wi-Fi, Ethernet o questo nuovo chip ESP8266, Blynk ti porterà online e pronto per l'Internet delle tue cose.

Per maggiori informazioni sulla configurazione di Blynk: configurazione dettagliata di Blynk

Passaggio 4: codice

Codice
Codice

//I commenti per ogni riga sono forniti nel file.ino di seguito

#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="Inserisci qui la tua chiave di autenticazione dall'app Blynk"; char ssid = "Il tuo SSID WiFi"; char pass = "La tua password"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); //Definizione del pin e del timer dhttype BlynkTimer; void sendSensor() { if (!bmp.begin()) { Serial.println("Impossibile trovare un sensore BMP085 valido, controllare il cablaggio!"); while (1) {} } float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Impossibile leggere dal sensore DHT!"); Restituzione; } doppia gamma = log(h/100) + ((17,62*t) / (243,5+t)); doppia 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); ritardo(10); timer.setInterval(1000L, sendSensor); } ciclo vuoto() { Blynk.run(); timer.run(); }

Consigliato: