Buscar en este blog

viernes, 14 de octubre de 2016

ESTACION METEOROLOGICA ARDUINO UNO CEFIRO PROGRAMA

/*
Configuración de los pines
Humedad del suelo      A0
Detector de lluvia     A1
SDA Presión            A4
SCL Presión            A5
DHT11 Data             D2
*/

int result [5];           //Matriz de resultados de los datos
#include <Wire.h>         //Incluimos la librería que nos permite
// utilizar la tecnología I2C
#include <SFE_BMP180.h>   //Incluímos el sensor de presión barométrica y altura
#define ALTITUDE 533      //Altitud del Cep de La Laguna
SFE_BMP180 pressure;      //Creamos una variable intermedia
#include <DHT.h>          //Incluimos la librería DHT11 que nos dará temperatura y humedad
#define DHTPIN 2          //Definimos una variable donde conectamos el sensor
#define DHTTYPE DHT11     //Definimos la variable DHT11
DHT dht(DHTPIN, DHTTYPE); // Ejecutamos la librería DHT11

void setup() {
Serial.begin(9600);       //Comenzamos con la comunicación serie a 9600 bits por segundo.
Serial.println("Estacion Meteorologica"); // Presentamos los datos por pantalla
Serial.println("Estacion");
Serial.println("Programa iniciado");

//Analog setup
pinMode(A0, INPUT);       //Humedad del suelo
pinMode(A1, INPUT);       //Lluvia
//BMP180 Setup
if (pressure.begin())     //Si inicializa bien el sensor, seguimos ejecutando comandos.
 {Serial.println("BMP180 iniciado");
 Serial.println("______________________________________________________");
 Serial.print("AWS :");
 Serial.print("\t");
 Serial.print("Hum Suelo\t");
 Serial.print("Lluvia\t");
 Serial.print("\t");
 Serial.print("Presion\t");
 Serial.print("\t");
 Serial.print("Hum Aire\t");
 Serial.println("Temp \t");}
else                       //Si falla
  {
    Serial.println("BMP180 ha fallado");
    while (1);
  }

//DHT11 setup
dht.begin();
}

void loop() {
// comenzamos con la lectura de los parámetros de la estación
int A_Rain = analogRead(A1);
int A_Soil = analogRead(A0);
A_Rain = map(A_Rain, 300, 1023, 100, 0);
A_Soil = map(A_Soil, 400, 1023, 100, 0);
result[0]=A_Soil;
result[1]=A_Rain;
//leemos presión y altura
char status;
double T, P, p0;
status = pressure.startTemperature();
if (status != 0) {
    delay(status);
    status = pressure.getTemperature(T);
    if (status != 0) {
    status = pressure.startPressure(3);
      if (status != 0) {
        delay(status);
        status = pressure.getPressure(P, T);
        if (status != 0) {
          p0 = pressure.sealevel(P, ALTITUDE);
          result[2]=p0;
        }}}}
result[3] = dht.readHumidity();
result[4] = dht.readTemperature();
Serial.print("AWS : ");
Serial.print(" \t");
Serial.print(result[0]);
Serial.print(" %\t");
Serial.print("\t");
Serial.print(result[1]);
Serial.print(" %\t");
Serial.print("\t");
Serial.print(result[2]);
Serial.print(" hPa \t");
Serial.print(result[3]);
Serial.print(" %\t");
Serial.print("\t");
Serial.print(result[4]);
Serial.println("C \t");
delay(5000);
}

No hay comentarios:

Publicar un comentario