Índice:

Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk: 4 etapas
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk: 4 etapas

Vídeo: Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk: 4 etapas

Vídeo: Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk: 4 etapas
Vídeo: ESP8266 Weather Report | NodeMCU Web Server DHT11 temperature webserver Arduino 2024, Novembro
Anonim
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk
Estação meteorológica DIY usando DHT11, BMP180, Nodemcu com Arduino IDE no servidor Blynk

Github: DIY_Weather_Station

Hackster.io: Estação meteorológica

Você teria visto o aplicativo de clima certo? Por exemplo, ao abri-lo, você fica sabendo das condições climáticas, como temperatura, umidade etc. Essas leituras são o valor médio de uma área grande, então se você quiser saber os parâmetros exatos relacionados ao seu quarto, não pode simplesmente conte com o aplicativo de clima. Para este efeito, vamos avançar para a construção de uma estação meteorológica que seja rentável e também fiável e que nos dê o valor exacto.

Uma estação meteorológica é uma instalação com instrumentos e equipamentos para medir as condições atmosféricas para fornecer informações para as previsões meteorológicas e estudar o tempo e o clima. Requer um pouco de esforço para conectar e codificar. Então vamos começar.

Sobre o Nodemcu:

NodeMCU é uma plataforma de IoT de código aberto.

Inclui firmware executado no ESP8266 Wi-Fi SoC da Espressif Systems e hardware baseado no módulo ESP-12.

O termo "NodeMCU" por padrão se refere ao firmware em vez dos kits de desenvolvimento. O firmware usa a linguagem de script Lua. É baseado no projeto eLua e construído no Espressif Non-OS SDK para ESP8266. Ele usa muitos projetos de código aberto, como lua-cjson e spiffs.

Sensores e requisitos de software:

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

2. DHT11

3. BMP180

4. IDE Arduino

Etapa 1: Conheça seus sensores

Conheça seus sensores
Conheça seus sensores

BMP180:

Descrição:

O BMP180 consiste em um sensor piezo-resistivo, um conversor analógico para digital e uma unidade de controle com E2PROM e uma interface serial I2C. O BMP180 fornece o valor não compensado de pressão e temperatura. O E2PROM armazenou 176 bits de dados de calibração individual. Isso é usado para compensar o deslocamento, a dependência da temperatura e outros parâmetros do sensor.

  • UP = dados de pressão (16 a 19 bits)
  • UT = dados de temperatura (16 bits)

Especificações técnicas:

  • Vin: 3 a 5 VDC
  • Lógica: compatível com 3 a 5V
  • Faixa de detecção de pressão: 300-1100 hPa (9000m a -500m acima do nível do mar)
  • Até 0,03hPa / 0,25m de resolução - faixa operacional de 40 a + 85 ° C, precisão de temperatura de + -2 ° C
  • Esta placa / chip usa o endereço I2C de 7 bits 0x77.

DHT11:

Descrição:

  • O DHT11 é um sensor digital básico de temperatura e umidade de baixo custo.
  • Ele usa um sensor de umidade capacitivo e um termistor para medir o ar circundante e emite um sinal digital no pino de dados (não são necessários pinos de entrada analógica). É bastante simples de usar, mas requer um tempo cuidadoso para obter os dados.
  • A única desvantagem real deste sensor é que você só pode obter novos dados dele uma vez a cada 2 segundos, portanto, ao usar nossa biblioteca, as leituras do sensor podem ter até 2 segundos.

Especificações técnicas:

  • 3 a 5 V de potência e E / S
  • Bom para leituras de temperatura de 0-50 ° C com precisão de ± 2 ° C
  • Bom para leituras de umidade de 20-80% com 5% de precisão
  • Uso de corrente máxima de 2,5 mA durante a conversão (ao solicitar dados)

Etapa 2: Conectividade

Conectividade
Conectividade

DHT11 com Nodemcu:

Pino 1 - 3,3 V

Pino 2 - D4

Pino 3 - NC

Pino 4 - Gnd

BMP180 com Nodemcu:

Vin - 3,3 V

Gnd - Gnd

SCL - D6

SDA - D7

Etapa 3: configurar o Blynk

Image
Image
Setup Blynk
Setup Blynk

O que é Blynk?

Blynk é uma plataforma com aplicativos iOS e Android para controlar Arduino, Raspberry Pi e similares pela Internet.

É um painel digital onde você pode construir uma interface gráfica para seu projeto simplesmente arrastando e soltando widgets. É muito simples configurar tudo e você começará a mexer em menos de 5 minutos. Blynk não está vinculado a nenhuma placa ou escudo específico. Em vez disso, é o hardware de suporte de sua escolha. Esteja seu Arduino ou Raspberry Pi conectado à Internet por Wi-Fi, Ethernet ou este novo chip ESP8266, o Blynk o deixará online e pronto para a Internet das suas coisas.

Para obter mais informações sobre a configuração do Blynk: Configuração detalhada do Blynk

Etapa 4: Código

Código
Código

// Comentários para cada linha são fornecidos no arquivo.ino abaixo

#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 = "Coloque sua chave de autenticação do aplicativo Blynk aqui"; char ssid = "Seu SSID WiFi"; char pass = "Sua senha"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Definindo o pino e o dhttype BlynkTimer timer; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Não foi possível encontrar um sensor BMP085 válido, verifique a fiação!"); while (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Falha ao ler do sensor DHT!"); Retorna; } gama dupla = log (h / 100) + ((17,62 * t) / (243,5 + t)); dp duplo = 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); atraso (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }

Recomendado: