You are on page 1of 10

http://blog.filipeflop.com/arduino/estacao-meteorologica-com-arduino.

html

Pantalla $5990

Sensor presin $2690

Temperatura y humedad $ 5990

Luz $ 1990

Luz y radiacin $8490

Lluvias $ 2400
Estacin Meteorolgica con Arduino
28 de abril de 2015
Arduino
127 Comentarios
8

Presentamos un proyecto de Estacin Meteorolgica con Arduino, utilizando varios


componentes compactos y de bajo costo para exhibir en un display grfico informaciones
sobre temperatura, humedad y presin:

Para el montaje de esta temporada, vamos a utilizar: Un sensor de temperatura y humedad


DHT22 un sensor de presin BMP180 y LCD de Nokia 5110 pantalla . Vamos a presentar
ms informacin sobre ellos antes de mostrar el proceso de montaje de la Estacin
Meteorolgica con Arduino.

Sensor de temperatura y humedad DHT22


El DHT22 es un sensor de temperatura y humedad sucesor DHT11. Se realizan mediciones
de temperatura entre -40 y 125 C, y humedad entre 0 y 100%. Puede ser alimentado con
tensiones de entre 3,3 y 6 V y como DHT11, pero slo tiene 4 pines se utilizan 3: Vcc y GND
fecha.

El DHT22 tiene bajo consumo de corriente (2,5 mA durante las mediciones y entre 100 y
150 A en standby), poseyendo internamente un sensor de humedad capacitivo y un
termistor. En este sensor, el intervalo recomendado entre mediciones es de 2 segundos
(contra 1 segundo en el DHT11). Puede obtener ms informacin acerca del uso de este
sensor a travs de este tutorial aqu en nuestro blog.
Sensor de temperatura y presin BMP180
El sensor de temperatura y presin BMP180 es tambin una evolucin de otro sensor, el
BMP085, completamente compatible en trminos de firmware y software de interfaz (se
puede usar incluso la misma biblioteca).

La comunicacin con Arduino se realiza a travs de la interfaz I2C, y soporta alimentacin


de 1.8 a 3.6V, por lo que es necesario tomar un cierto cuidado al conectar ese sensor al
Arduino.

A pesar de esta limitacin en la alimentacin del sensor, un regulador de tensin en la placa


permite que los pines de datos (SCL y SDA) se usen normalmente en placas con nivel de
seal de 5V, como el Arduino Uno. Descubre cmo a controlar la presin y la temperatura
despus de este post tambin aqu en nuestro blog.

Pantalla LCD Nokia 5110


La pantalla LCD de Nokia 5110 que vamos a utilizar en el proyecto es una representacin
grfica de 84 48 pxeles, 1,6 pulgadas y retroiluminacin (luz de fondo) de color azul con
una tensin de alimentacin de 5V. Su conexin con Arduino utiliza 5 hilos, y la
configuracin de los pines de conexin es hecha a travs de software, as que podemos
utilizar prcticamente cualquier pin del Arduino. Para la luz de fondo (BL pin) la tensin
mxima soportada es de 3,3V.
En nuestro proyecto, vamos a conectar esta pantalla de la siguiente manera:

pin RST del pasador 12 Arduino


pin CE conectado al pin de Arduino 11
pin DC conectada a la patilla 10 Arduino
Din pin 9 conectada a la patilla Arduino
pin Clk conectada a la patilla 8 Arduino
Pin Vcc pin conectado a la 5V Arduino
BL conectado a la clavija de la Arduino pin 3.3V
GND pin conectado a GND Arduino

Si desea montar este proyecto utilizando el display Nokia 5110 rojo, consulte las
especificaciones del fabricante, ya que existen muchos modelos de esta pantalla que slo
funcionan con un nivel de seal de 3.3V.

Circuito Estacin Meteorolgica


Vamos a presentar dos opciones de circuitos, uno con el Arduino Uno, para los que slo
quieren probar el proyecto en el tablero, y uno con el Arduino Nano , ideal para el montaje
final y que se puede colocar en una caja de plstico, por ejemplo.

En Arduino Uno, usamos los pines 8 a 12 mencionado anteriormente para mostrar la unin,
y el pin 3 como el DHT22 de entrada con una resistencia de 10K funcionar como pull-up.
El sensor BMP180 utiliza los pines I2C, que son pines analgicos A4 y A5:
Arduino Nano, se utilizan los mismos pines. Compruebe en la imagen abajo la pinza de
esa placa y la conexin de los componentes:
Para dejar el diseo ms compacto utilizamos un case de mdem para proteccin y
transporte pero usted puede usar cualquier otra caja para obtener el mismo resultado:
Bibliotecas y programas
Antes de cargar el programa, descargue las siguientes bibliotecas:

Pantalla - Bibliotecas Adafruit_GFX y Adafruit_PCD8544


DHT - Biblioteca DHT
BMP180 - Biblioteca Adafruit_BMP085

Descomprimir todos y copiar en la carpeta BIBLIOTECAS Arduino IDE.

El Adafruit_GFX es la biblioteca de grficos, responsable de las funciones de dibujo de


rectngulos, crculos, lneas, etc. El Adafruit_PCD8544 la biblioteca se utiliza para
gestionar la comunicacin entre el Arduino y la pantalla. La biblioteca BMP085 sirve tanto
para el sensor BMP085 como para el BMP180, utilizado en este proyecto.

El mismo programa puede ser cargado en el Arduino Uno o en el Arduino Nano. El


programa dibuja tres rectngulos con los bordes redondeados, y dentro de ellos muestra la
informacin de temperatura, humedad y presin, actualizando la informacin cada 5
segundos.

Programa: Estacion Meteorologica con Arduino


Autor: FILIPEFLOP

Carga bibliotecas grficas y sensores


#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <DHT.h>
#include <Adafruit_BMP085.h>
#include <Wire.h>
#include <SPI.h>

// Pinza de conexin del Nokia 5110


// pin 8 - Serial clock out (SCLK)
// pin 9 - Serial data out (DIN)
// pin 10 - Fecha / Command select (D / C)
// pin 11 - LCD chip select (CS / CE)
// pin 12 - LCD reset (RST)

// Inicializa la pantalla en los pines arriba


Adafruit_PCD8544 display = Adafruit_PCD8544 (8, 9, 10, 11, 12);

// Define el pino y el tipo del sensor DHT


DHT dht (3, DHT22);

Adafruit_BMP085 bmp180;

Void setup ()
(En ingls)
Serial.begin (9600);
Informaciones iniciales en el display
Display.begin ();
// Ajusta el contraste del display
Display.setContrast (48);
// Borra el buffer y el display
Display.clearDisplay ();
// Define el tamao del texto y el color
display.setTextSize (1);
Display.setTextColor (BLACK);

Rectngulo de temperatura
Display.drawRoundRect (0,0, 44,24, 3, 2);
// Texto inicial temperatura
Display.setCursor (11,3); // Flecha la posicin del cursor
Display.println ("TEMP");
Display.setCursor (5,14);
Display.println ("----");
Display.setCursor (29,14);
Display.drawCircle (31, 15, 1,1);
Display.println ("C");

Rectngulo de humedad
Display.drawRoundRect (45,0, 39, 24, 3, 2);
Texto original Humedad
Display.setCursor (52,3);
Display.println ("UMID");
Display.setCursor (50,14);
Display.println ("----");
Display.setCursor (75,14);
Display.println ("%");

Rectngulo Presin
Display.drawRoundRect (0,25, 84, 23, 3, 2);
// Texto inicial Presin
Display.setCursor (22,28);
Display.println ("PRESSAO");
Display.setCursor (55,38);
Display.println ("hPa");
Display.setCursor (11,38);
Display.println ("------");
Display.display ();

(1000);
Inicia el sensor BMP180
If (! Bmp180.begin ())
(En ingls)
Serial.println ("Sensor BMP180 no encontrado !!");
while (1) {}
}}.
// Inicializa el DHT22
Dht.begin ();
}}.

Void bucle ()
(En ingls)
Lectura de temperatura, humedad y presin
Float h = dht.readHumidity ();
Float t = dht.readTemperature ();
Float p = bmp180.readPressure () / 100.0;

// Actualiza el valor de la temperatura


Display.fillRect (4,13, 25, 10, 0);
Display.setCursor (4,14);
Display.println (t, 1);

// Actualiza el valor de la humedad


Display.fillRect (50,13, 23, 10, 0);
Display.setCursor (50,14);
Display.println (h, 1);

// Actualiza el valor de la presin


Display.fillRect (4, 37, 46, 10, 0);
Display.setCursor (11,38);
Display.println (p, 2);

Display.display ();
// Espera 5 segundos para realizar una nueva lectura
(5000);
}}.

Tambin puede utilizar el sensor de temperatura DHT11 en el proyecto utilizando la misma


biblioteca DHT que se muestra arriba. Para esto, cambiar la lnea de DHT DHT (3 DHT22),
sustituyendo DHT22 DHT11.
Te gust? Ayudenos a mejorar el blog asignar una nota a este tutorial (estrellas al final del
artculo) y visite nuestro local FILIPEFLOP!

You might also like