Realizza questo semplice progetto di stazione meteorologica per case e uffici

Realizza questo semplice progetto di stazione meteorologica per case e uffici

In questo post costruiremo un interessante progetto di mini stazione meteorologica basata su Arduino, che può mostrarti temperatura ambiente, umidità, pressione, qualità dell'aria e molti altri dati dall'ambiente circostante, che possono essere utilizzati per prevedere il tempo da casa.



Se sei interessato alla meteorologia, questo progetto potrebbe tornare utile per studiare le condizioni meteorologiche locali e i cambiamenti a breve termine. Il progetto proposto è un design a stato solido, il che significa che non esistono parti mobili.





Questo progetto può essere posizionato in condizioni indoor o semi-indoor, dove il circuito è lontano dalla luce solare diretta o da vento forte o umidità che possono deteriorare i sensori a bordo.

Il design:

Il progetto proposto del circuito della mini stazione meteorologica è costruito attorno ad Arduino, che è il cervello della stazione meteorologica che raccoglie molti dati da vari sensori e li elabora e li visualizza su uno schermo LCD 16x2.



Puoi scegliere la tua scheda arduino preferita per questo progetto. Il circuito è costituito da tre sensori MQ-135, BMP180 e DHT11. Vediamo cosa fa ogni sensore in dettaglio.

Sensore MQ-135:

L'MQ-135 è un sensore di misurazione della qualità dell'aria, in grado di rilevare anidride carbonica, alcol, benzene, fumo, butano, propano ecc. Se la concentrazione chimica di questi gas è elevata nell'aria, possiamo dire che l'aria è inquinata.

Il sensore è in grado di rilevare la variazione della concentrazione di inquinanti nell'aria e fornisce un livello di tensione appropriato. La tensione di uscita del sensore è direttamente proporzionale al livello di concentrazione chimica nell'aria.

La variazione di tensione dal sensore viene inviata ad Arduino abbiamo livelli di soglia predeterminati nel programma. Quando supera il livello di soglia, il microcontrollore ci dice se l'aria è sicura o meno.

Schema elettrico

interfaccia sensore MQ135 con circuito stazione meteo

Lo schema sopra mostra lo schema elettrico. Questo sensore necessita di alimentazione esterna a 5V perché ha un elemento riscaldante all'interno del sensore che consuma circa 1 Watt. L'alimentazione dal pin di alimentazione di arduino non può fornire una corrente più elevata.

L'elemento riscaldante mantiene il sensore caldo e aiuta a campionare la quantità appropriata di concentrazione chimica nell'aria. Il sensore impiega circa un paio di minuti per raggiungere la temperatura ottimale.

Sensore DHT11:

Il sensore DHT11 è comunemente noto come sensore di temperatura e umidità. Può misurare la temperatura e l'umidità dell'ambiente circostante come suggerisce il nome.

È un dispositivo a 4 pin ma solo 3 di essi vengono utilizzati. Può sembrare un componente molto semplice, ma ha un microcontrollore all'interno del sensore che passa i dati in forma digitale alla scheda arduino.

Invia dati a 8 bit ogni secondo ad arduino, per decodificare il segnale ricevuto, abbiamo bisogno di includere la libreria nel codice che è progettata per gestirlo. Il collegamento per la biblioteca è fornito nella parte successiva dell'articolo.

Schema elettrico:

interfaccia DH11 con arduino

Il collegamento del circuito dal sensore ad arduino è molto semplice. L'uscita del sensore è collegata al pin A1 di arduino. L'alimentazione Vcc e GND sono collegate ai pin di alimentazione di arduino.

Nota: assicurati che il tuo sensore abbia una resistenza di pull-up incorporata, se non ne ha una, collega una resistenza di pull-up da 4.7K al pin di uscita del sensore DHT11.

Sensore BMP180:

Il BMP180 è un sensore barometrico in grado di misurare la pressione atmosferica, l'altitudine e la temperatura. La misurazione della temperatura da questo sensore viene trascurata poiché abbiamo un sensore dedicato per la misurazione della temperatura ambiente.

Il sensore misura l'altitudine del setup dal livello del mare, è anche uno dei parametri utilizzati in meteorologia.

Schema elettrico:

interfacciare BM180 con Arduino
Utilizza il protocollo di comunicazione I2C, il pin SDA va ad A4 di arduino e SCL va ad A5 di arduino. Il Vcc e il GND sono collegati ai pin di alimentazione di arduino.

Collegamento LCD:

sensore di umidità utilizzando Aduino


Il display LCD mostra tutti i dati dei sensori. La connessione tra display LCD e arduino è standard, possiamo trovare una connessione simile su molti altri progetti basati su LCD. Regolare il potenziometro 10K per una visibilità ottimale dal display LCD.

Prototipo dell'autore:

immagine prototipo di stazione meteorologica

Ecco il prototipo dell'autore di un mini circuito di monitoraggio meteorologico in cui tutti i sensori mostrati negli schemi sono collegati alla scheda arduino.

Nota: la connessione del circuito da ciascun sensore e display LCD deve essere collegata a una singola scheda arduino. Abbiamo fornito una connessione a sensori discreti su ogni schema per evitare confusione durante la duplicazione del circuito.

Scarica i file della libreria prima di caricare il codice:

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

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

Codice programma:

#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:

Il circuito della mini stazione meteorologica spiegato impiega 2 minuti per mostrare le letture dal sensore, fino a quel momento mostra 'I sensori si stanno preparando'. Questo perché il sensore MQ-135 impiega 2 minuti per raggiungere la temperatura operativa ottimale.




Precedente: Come costruire un semplice asciugabiancheria per la stagione delle piogge Avanti: Circuito di auto giocattolo azionato da battimani