» Electrónica » Arduino »Estación meteorológica local basada en Arduino

Estación meteorológica local basada en Arduino


Durante mucho tiempo quise hacer una mini estación meteorológica, cansada de mirar por la ventana para mirar un termómetro detrás del cristal. Este dispositivo reemplazará el higrómetro, barómetro y termómetro y también mostrará la hora actual. En esta publicación, te diré cómo ensamblar rápida y fácilmente una pequeña estación meteorológica basada en Arduino. La base será la junta Arduino Nano puede usar otras placas: Arduino Uno, Arduino Pro mini). Recibiremos datos de presión atmosférica y temperatura del sensor BMP180, y humedad y temperatura exterior del sensor DHT11. El reloj de tiempo real DS1302 indicará la hora actual. Toda la información se muestra en una pantalla LCD1602 de dos líneas.

El DHT11 transmite información a través de un solo cable a un arduino. Está alimentado por un voltaje de 5 V. Mide la humedad en el rango de 20 a 80%. Medidas de temperatura en el rango de 0 a 50acerca deC.

Estación meteorológica local basada en Arduino

El sensor BMP180 mide la presión atmosférica en el rango de 300-1100 hPa, la temperatura en el rango de -40 +85acerca deC. La tensión de alimentación es de 3,3 V. Se conecta mediante el protocolo de comunicación I2C.

El reloj de tiempo real DS1302 funciona con 5 V y está conectado a través del protocolo de comunicación I2C. Cuando se instalan en la ranura adecuada, las baterías CR2032 son compatibles con el reloj cuando se apaga la alimentación principal.

La pantalla LCD1602 funciona con un voltaje de 5 voltios y también se conecta a través del protocolo de comunicación I2C.

Este hecho en casa hecho sobre la base de tableros y sensores listos para usar, por lo que se puede repetir a cualquier amante novato para trabajar con un soldador. Al mismo tiempo, puede obtener los conceptos básicos de la programación de Arduino. Programé esta estación meteorológica en el programa de programación visual FLPROG en 15 minutos. No es necesario realizar bocetos manualmente durante horas, este programa ayuda a los principiantes (y no solo) a aprender rápidamente los conceptos básicos de los dispositivos de programación basados ​​en la plataforma Arduino.

Quién es demasiado vago para jugar con el programa: un boceto (solo será necesario configurar la hora actual del reloj):
#include 
# incluye "DHT_NEW.h"
#include 
#include 
#include 
BMP085 _bmp085 = BMP085 ();
largo _bmp085P = 0;
_bmp085T largo = 0;
largo _bmp085A = 0;

LiquidCrystal_I2C _lcd1 (0x3f, 16, 2);
int _dispTempLength1 = 0;
boolean _isNeedClearDisp1;

DHT _dht1;

iarduino_RTC _RTC1 (RTC_DS1302, 7, 5, 6);

unsigned long _dht1LRT = 0UL;
unsigned long _dht1Tti = 0UL;
int _disp1oldLength = 0;
unsigned long _bmp0852Tti = 0UL;
Cadena _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
configuración nula ()
{
Wire.begin ();
retraso (10);
_bmp085.init (MODE_ULTRA_HIGHRES, 116, verdadero);
_RTC1.begin ();
_RTC1.period (1);
_lcd1.init ();
_lcd1.backlight ();
_dht1.setup (4);
_dht1LRT = millis ();
_dht1Tti = millis ();
}
bucle vacío ()
{if (_isNeedClearDisp1) {_lcd1.clear (); _isNeedClearDisp1 = 0;}
if (_isTimer (_bmp0852Tti, 1000)) {
_bmp0852Tti = millis ();
_bmp085.getAltitude (& _ bmp085A);
_bmp085.getPressure (& _ bmp085P);
_bmp085.getTemperature (& _ bmp085T);
}

// Tarifa: 1
si (1) {
_dispTempLength1 = ((((((String ("T:")) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (String ("*")))) + (((String ( "P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*"))) + (((String ("")) + ((_floatToStringWitRaz (_dht1 .humidity, 0))) + (String ("%"))))). length ();
if (_disp1oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 0);
_lcd1.print ((((((String ("T:")) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1)))) (String ("*")))) + (((String ("P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*")))) + (((String ("")) + ((_floatToStringWitRaz ( _dht1.humidity, 0))) + (String ("%")))));
} más {
if (_disp1oldLength> 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}
if (_isTimer (_dht1Tti, 2000)) {
if (_isTimer (_dht1LRT, (_dht1.getMinimumSamplingPeriod ()))) {
_dht1.readSensor ();
_dht1LRT = millis ();
_dht1Tti = millis ();
}
}
si (1) {
_dispTempLength1 = ((((((String ("t:")) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*")))) + (_RTC1_GetTime2_StrOut)))). length ( );
if (_disp2oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 1);
_lcd1.print ((((((String ("t:"))) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*")))) + (_RTC1_GetTime2_StrOut))));
} más {
if (_disp2oldLength> 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}
_RTC1_GetTime2_StrOut = _RTC1.gettime ("H: i: sD");

}
String _floatToStringWitRaz (valor flotante, int raz)
{

cadena de retorno (valor, raz);
}
bool _isTimer (tiempo de inicio largo sin signo, período largo sin signo)
{
unsigned long currentTime;
currentTime = millis ();
if (currentTime> = startTime) {return (currentTime> = (startTime + period));} else {return (currentTime> = (4294967295-startTime + period));}
}

Puede usar dicho dispositivo en cualquier lugar o en el hogar, en la naturaleza o en un lugar un carro. Es posible alimentar el circuito desde las baterías, usando una placa de carga, al final será portátil el modelo estaciones meteorológicas

Toda la información se puede obtener mirando el video:


Listado de materiales y herramientas.

Arduino Nano Board
pantalla LCD1602 de dos líneas;
- reloj en tiempo real DS1302;
- sensor de presión atmosférica y temperatura BMP180;
- sensor de temperatura y humedad DHT11;
-bloqueo de carga desde el teléfono;
- cualquier vivienda adecuada
pinzas
tijeras
soldador
Cambridge
probador
-los cables de conexión;
Cuatro hilos para sensor remoto.

Primer paso Hacer un edificio para una estación meteorológica

Recogí una caja de plástico de la tienda Fix Price (total 17p). Ventana precortada para mostrar en la tapa. Luego cortó parcialmente las particiones en la caja, hizo agujeros para el conector USB de la placa Arduino, la abertura para el sensor BMP180 El sensor BMP180 se ubicará en el exterior de la carcasa para evitar un calentamiento excesivo. e coberturas en el interior. Después pinté el cuerpo del producto casero desde adentro porque el plástico es transparente. La caja se cierra con un pestillo y en ella todos los elementos encajan perfectamente.


Paso dos Diagrama de montaje del dispositivo.

Esquema de la foto


A continuación, debe conectar todas las placas y sensores de la estación meteorológica de acuerdo con el esquema. Hacemos esto usando cables de montaje con los conectores apropiados. No hice una conexión de soldadura, por lo que en el futuro, cuando un módulo falla (o por otras razones), puede reemplazarlo fácilmente. En el conector de tornillo, el cable del sensor DHT11 que va a la calle está conectado. La alimentación se puede suministrar desde el conector USB de la placa Arduino a una computadora, o al suministrar un voltaje de 7-12 V al pin VIN y GND.

Primero, ensamblé el circuito fuera del gabinete y lo programé y depuré en el programa FLPROG.

Diagrama de bloques de fotos en el programa FLPROG.

Cuando programé por primera vez y encendí el circuito de la estación meteorológica, funcionó. Ahora es posible tener datos meteorológicos por la borda y en la habitación. En general, resultó una estación meteorológica hogareña interesante con muchas funciones diferentes.

Foto completa

Un buen diseño casero fue ensamblado el fin de semana. Fue emocionante hacer usted mismo un aparato interesante y útil. Para hacer un dispositivo de este tipo, creo que incluso un principiante puede hacerlo, ya que no requiere mucho tiempo y dinero. Puedes aplicarlo donde quieras en una casa en una casa de campo. Durante todo el trabajo, pasaron dos noches de fin de semana, llevé toda la electrónica a Aliexpress. El resto de los materiales que encontré en el helicóptero. Basado en la plataforma Arduino, puede ensamblar una amplia variedad de dispositivos útiles.

¡Gracias a todos por su atención, les deseo éxito y buena suerte tanto en su vida como en su trabajo!
9.2
8.2
8.5

Agrega un comentario

    • sonriesonrisasxaxaokno sabesyahoonea
      jeferascarsetontosisi-siagresivosecreto
      lo sientobailardance2dance3perdónayudabebidas
      pararamigosbuenobuenosilbatodesmayarselengua
      fumaraplaudirllorardeclararburlóndon-t_mentiondescargar
      calorfuriosorisa1mdareuniónMoskingnegativo
      not_ipalomitas de maizcastigarleerasustarasustabuscar
      burlagraciasestoto_clueumnikagudode acuerdo
      malbeeeojo negroblum3ruborpresumiraburrimiento
      censuradocortesíasecreto2amenazarvictoriaYusun_bespectacled
      shokrespektjajajaPrevedbienvenidokrutoyya_za
      ya_dobryiayudantene_huliganne_othodigolpearprohibircerrar

Le recomendamos que lea:

Pásalo por el teléfono inteligente ...