Mi Estación Meteorológica

No hace mucho tiempo que empecé a programar juntas de microcontroladores basados ​​Arduino. Cosa muy interesante y práctico. Sobre la base de la Arduino, puede crear una gran cantidad de dispositivos útiles para sí mismos y no sólo. Por ejemplo, puede hacer que la máquina se encienden automáticamente las luces en el apartamento varios robots o quadrocopter.

No puedo enumerar todos los dispositivos que se crean sobre la base de estas placas, y hoy voy a hablar sobre todo acerca de la estación meteorológica que he creado. Y si tienes curiosidad para aprender más sobre Arduino, - pedir a Google o Yandex.





Estación meteorológica consta de placa Arduino y sensores de presión conectados, la humedad y dos sensores de temperatura. El segundo dispositivo es un teléfono o tableta Android móvil.

El principio es simple - cargo lee los sensores, y al iniciar la aplicación en su teléfono comando se envía a través de Bluetooth a la placa y la placa envía las lecturas en el teléfono. Después de eso, ya podemos ver la temperatura, la presión o la humedad.



Temperatura exterior



Presión en mmHg



y el porcentaje de humedad



Para empezar, conectar el sensor de temperatura DS18B20 2 al arduino como se muestra en la imagen. El sensor está conectado a un pin digital de 4 a Arduino.



A continuación, conecte el sensor de presión atmosférica como en la imagen VMR085



Módulo bluetooth Siguiente HC-05 y HC pueden ser 07 ... También como el
imagen


Después de que todos ensamblado, escribir la parte de software para tarjetas con sensores

#include & lt; OneWire.h & gt;
#include & lt; DallasTemperature.h & gt;
#include & lt; Wire.h & gt;
#include & lt; BMP085.h & gt;
# include & lt; DHT.h & gt;

#define ONE_WIRE_BUS 4

OneWire OneWire (ONE_WIRE_BUS);

Sensores DallasTemperature (y OneWire);

DeviceAddress Thermometer1 = {
0x28, 0x00, 0x54, 0xB6, 0x04, 0x00, 0x00, 0x92};
DeviceAddress Thermometer3 = {
0x28, 0x94, 0xAC, 0xDF, 0x02, 0x00, 0x00, 0xB5};

BMP085 dps = BMP085 ();
largo Temperatura = 0, la presión = 0, Altitud = 0;

DHT DHT (8, DHT11);

Char incomingByte;

int x = 0;

void setup () {

sensors.begin ();
sensors.setResolution (Thermometer1, 10);
sensors.setResolution (Thermometer3, 10);

Wire.begin ();
dps.init (MODE_ULTRA_HIGHRES, 21000, true);
dht.begin ();

Serial.begin (9600);
}

anular printTemperature (DeviceAddress deviceAddress) {
flotar tempC = sensors.getTempC (deviceAddress);
Serial.println (tempC, 1);
}

void loop () {

sensors.requestTemperatures ();

dps.getPressure (y presión);

int h = dht.readHumidity ();
flotan t = dht.readTemperature ();

si (Serial.available () & gt; 0) {
incomingByte Serial.read = ();
si (incomingByte == '1') {
x = 2;
}
si (incomingByte == '2') {
x = 1;
}
si (incomingByte == '3') {
x = 3;
}
si (incomingByte == '4') {
x = 4;
}
}
retardo (100);
switch (x) {
Caso 1:
printTemperature (Thermometer1);
romper;
caso 2:
printTemperature (Thermometer3);
romper;
caso 3:
Serial.println (presión / 133,3, 1);
romper;
caso 4:
Serial.println (h);
romper;
}
} Abrir el puerto serie de la computadora cuando se conecta la tarjeta y comprobar el rendimiento ... Y si envía más exactamente 1, luego 2, 3 y 4. Como resultado, tenemos que conseguir los valores de temperatura en la calle - el envío 1, la temperatura en la habitación - al enviar 2 presión - cuando el envío de 3 y humedad - al enviar 4.

Publicado en [mergetime] 1405694477 [/ mergetime]
Si todo funciona, usted puede hacer pivotar la aplicación para tu teléfono, y se puso a utilizar ...

arduino-project.net/download/arduino-android/WSAB.apk

Publicado en [mergetime] 1405694560 [/ mergetime]
En el video se puede ver un video de la estación meteorológica en

youtu.be/z3ldbmcO8Ck