Faça este projeto de estação meteorológica simples para residências e escritórios

Experimente Nosso Instrumento Para Eliminar Problemas





Neste post, vamos construir um interessante projeto de mini estação meteorológica baseado em Arduino, que pode mostrar a temperatura ambiente, umidade, pressão, qualidade do ar e muito mais dados de seu entorno, que podem ser usados ​​para prever o tempo de casa.



Se você estiver interessado em meteorologia, este projeto pode ser útil para estudar sobre as condições climáticas locais e mudanças de curto prazo. O projeto proposto é um design de estado sólido, o que significa que não existem peças móveis.

Este projeto pode ser colocado em condições internas ou semi-internas, onde o circuito está longe da luz solar direta, vento forte ou umidade que pode deteriorar os sensores a bordo.



O design:

O projeto de circuito de mini estação meteorológica proposto é construído em torno do Arduino, que é o cérebro da estação meteorológica que coleta muitos dados de vários sensores e os processa e exibe em uma tela LCD 16x2.

Você pode escolher sua placa Arduino favorita para este projeto. O circuito consiste em três sensores MQ-135, BMP180 e DHT11. Vamos ver o que cada sensor faz em detalhes.

Sensor MQ-135:

O MQ-135 é um sensor de medição da qualidade do ar, que pode detectar dióxido de carbono, álcool, benzeno, fumaça, butano, propano etc. Se a concentração química desses gases é alta no ar, então podemos dizer que o ar está poluído.

O sensor pode detectar mudanças na concentração de poluentes no ar e fornecer o nível de tensão apropriado. A tensão de saída do sensor é diretamente proporcional ao nível de concentração de produtos químicos no ar.

A variação de tensão do sensor é fornecida ao Arduino; temos níveis de limite pré-determinados no programa. Quando ele ultrapassa o nível de limite, o microcontrolador nos diz se o ar é seguro ou não.

Diagrama de circuito

interface MQ135 sensor com circuito de estação meteorológica

O diagrama acima mostra o diagrama de fiação. Este sensor precisa de alimentação externa de 5 V porque possui elemento de aquecimento dentro do sensor que consome cerca de 1 Watt. A energia do pino de energia do arduino não pode fornecer corrente mais alta.

O elemento de aquecimento mantém o sensor aquecido e ajuda a amostrar a quantidade adequada de concentração química no ar. O sensor leva cerca de alguns minutos para atingir a temperatura ideal.

Sensor DHT11:

O sensor DHT11 é popularmente conhecido como sensor de temperatura e umidade. Ele pode medir a temperatura e a umidade do ambiente como o nome sugere.

É um dispositivo de 4 pinos, mas apenas 3 deles são usados. Pode parecer um componente muito simples, mas tem um microcontrolador dentro do sensor que passa os dados em formato digital para a placa arduino.

Ele envia dados de 8 bits a cada segundo para o arduino, para decodificar o sinal recebido, precisamos incluir a biblioteca no código que é projetado para lidar com isso. O link para a biblioteca é fornecido na parte posterior do artigo.

Diagrama de circuito:

interface DH11 com arduino

A conexão do circuito do sensor ao Arduino é muito simples. A saída do sensor é conectada ao pino A1 do Arduino. A fonte Vcc e GND são conectados aos pinos da fonte de alimentação do Arduino.

Observação: certifique-se de que seu sensor tenha um resistor pull-up integrado, se não houver um, conecte um resistor pull-up de 4,7K no pino de saída do sensor DHT11.

Sensor BMP180:

O BMP180 é um sensor barométrico que pode medir a pressão atmosférica, altitude e temperatura. A medição de temperatura deste sensor é negligenciada, pois temos um sensor dedicado para medir a temperatura ambiente.

O sensor mede a altitude da configuração a partir do nível do mar, também é um dos parâmetros usados ​​em meteorologia.

Diagrama de circuito:

interface BM180 com Arduino
Ele usa o protocolo de comunicação I2C, o pino SDA vai para A4 do arduino e SCL vai para A5 do arduino. O Vcc e o GND são conectados aos pinos da fonte de alimentação do Arduino.

Conexão LCD:

sensor de umidade usando Aduino


O display LCD mostra todos os dados dos sensores. A conexão entre o display LCD e o arduino é padrão, podemos encontrar conexões semelhantes em muitos outros projetos baseados em LCD. Ajuste o potenciômetro de 10K para obter a melhor visibilidade do display LCD.

Protótipo do autor:

imagem de protótipo de estação meteorológica

Aqui está o protótipo do autor de um minicircuito de monitor de clima, onde todos os sensores mostrados nos esquemas são conectados à placa Arduino.

Nota: A conexão do circuito de cada sensor e display LCD deve ser conectada a uma única placa Arduino. Fornecemos uma conexão de sensor discreta em cada esquema para evitar confusão ao duplicar o circuito.

Baixe os arquivos da Biblioteca antes de enviar o código:

Biblioteca DHT11: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Biblioteca BMP180: github.com/adafruit/Adafruit_BMP085_Unified.git

Código do programa:

#include
#include
#include
#include
#define DHTxxPIN A1
LiquidCrystal lcd(12,11,5,4,3,2)
dht DHT
Adafruit_BMP085 bmp
int ack
int input = A0
unsigned long A = 1000L
unsigned long B = A * 60
unsigned long C = B * 2
int low = 300
int med = 500
int high = 700
int x = 4000
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('Sensors are')
lcd.setCursor(0,1)
lcd.print('getting ready')
delay(C)
}
void loop()
{
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Temp(*C)= ')
lcd.print(DHT.temperature)
lcd.setCursor(0,1)
lcd.print('Humidity(%) = ')
lcd.print(DHT.humidity)
delay(x)
}
if(ack==1)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('NO DATA')
lcd.setCursor(0,1)
lcd.print('Check Sensor')
delay(x)
}
if (!bmp.begin())
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('BMP180 sensor')
lcd.setCursor(0,1)
lcd.print('not found')
while (1) {}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('----Pressure---- ')
lcd.setCursor(0,1)
lcd.print(bmp.readPressure())
lcd.print(' Pascal')
delay(x)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('----Altitude----')
lcd.setCursor(0,1)
lcd.print(bmp.readAltitude(101500))
lcd.print(' meter')
delay(x)
lcd.clear()
lcd.setCursor(0,0)
lcd.print(' Air Quality:')
if(analogRead(input)==0)
{
lcd.setCursor(0,1)
lcd.print(' Sensor Error')
delay(x)
}
if(analogRead(input)0)
{
lcd.setCursor(0,1)
lcd.print(' GOOD')
delay(x)
}
if(analogRead(input)>low && analogRead(input) {
lcd.setCursor(0,1)
lcd.print(' GETTING BAD')
delay(x)
}
if(analogRead(input)>=med && analogRead(input) {
lcd.setCursor(0,1)
lcd.print(' VERY POOR')
delay(x)
}
if(analogRead(input)>=high)
{
lcd.setCursor(0,1)
lcd.print(' WORST')
delay(x)
}
}

NOTA:

O circuito explicado da mini estação meteorológica leva 2 minutos para mostrar as leituras do sensor, até então exibir “Sensores estão se preparando”. Isso ocorre porque o sensor MQ-135 leva 2 minutos para atingir a temperatura operacional ideal.




Anterior: Como construir um secador de pano simples para a estação das chuvas Próximo: Circuito de Toy Car operado por aplausos