Estação Metrologista


Projeto de Iniciação cientifica, onde o objetivo é desenvolver um estação metrologista de baixo custo e e fácil montagem.

Os Sensores que estão sendo utilizados:


1 - LDR // Sensor de Luz
1 - LM35 // Sensor de temperatura do Solo.
1 - Bmp085 // Sensor de pressão e Temperatura.
1 - DHT11 // Sensor de Umidade e Temperatura.
1 - Arduino 2009
1 - Display 16x2
1 - Escudo com RTC e SD-Card



Obs: O projeto ainda não esta concluído esta faltando um sistema de comunicação entre os outros módulos via Zigbee e a conexão com o PC.


http://www.youtube.com/watch?v=drl0RjsLRvA


Porem estou com um duvida, Não sei qual a melhor forma de realizar a comunicação entre 2 Arduínos onde um é o mestre ("Ok ja esta resolvido 70%") que processa todos os dados e o segundo é apenas um termina onde realizar a leitura da porta serial e exibe a informações no display. Semelhante a um Hyper terminal Remoto apena Leitura.


Pensei em criar um String para empacotar os dados no meste e enviar ao terminal via TX/RX e na outra extremidade desempacotar os dados.



/*
Projeto de Iniciação cientifica, onde o objetivo é desenvolver um estação metrologista de baixo custo e e fácil montagem.
//Em desenvolvimento por: Lucas Fonseca


//http://labdegaragem.com/forum/topics/esta-o-meteorol-gica-c-arduino


#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


#include
#include
BMP085 bmp;


#include "DHT.h"
#define DHTPIN 10 // Sensor de DHT11 esta conectado ao pino 10
#define DHTTYPE DHT11 // Tipo de sensor DHT 11 mudar se necessario
DHT dht(DHTPIN, DHTTYPE);

const int Sensor_solo = 0; // Sensor de Temperatura LM35 conectado no pino 0
int delay_slide = 4000; // mudar para delay_menu
int pisca_Led();


void setup()

{ // menu de entrada
Serial.begin(9600);
Serial.print("Weather Station - Rio Claro");
Serial.println();
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Weather Station");
lcd.setCursor(4, 1);
lcd.print("Rio Claro");
delay(3500);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Arduino 2009");
lcd.setCursor(2, 1);
lcd.print("Software R01");
delay(delay_slide);
lcd.clear();
delay(500);


bmp.begin(); // Inicializa o modulo BMP085
pinMode(13, OUTPUT);
}


void loop()
{
{
Serial.print("Temperatura Solo = ");
int sensor_solo = analogRead(sensor_solo); // Valor no LM35 e armazenado nesta variavel.
float Temp_solo = (sensor_solo * 0.00488)*100; // 5V / 1023 = 0.00488 (precisão do A/D) * 100 para converter milivolts em graus celcius, Sendo que cada 10mV equivalem a 1 grau c


Serial.print(Temp_solo);
Serial.println(" *C");
lcd.setCursor(0, 0);
lcd.print("Temperatura Solo");
lcd.setCursor(4, 1);
lcd.print(Temp_solo);
lcd.print(" ");
lcd.print((char)223); // Faz o simbolo de Graus
lcd.print("C");
delay(delay_slide);
lcd.clear();


Serial.print("Temperatura Atm = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
lcd.setCursor(0, 0);
lcd.print("Temperatura Atm");
lcd.setCursor(4, 1);
lcd.print(bmp.readTemperature());
lcd.print(" ");
lcd.print((char)223); // Faz o simbolo de Graus
lcd.print("C");
delay(delay_slide);
lcd.clear();


//O que é umidade relativa do ar e como ela nos afeta?
//http://ciencia.hsw.uol.com.br/questao651.htm


Serial.print("Umidade Relativa = "); //Escreve na porta serial
Serial.print(dht.readHumidity()); //Escreve na serial valores armazenados na variavel.
Serial.println(" UR %"); //Coloca a unidade de medida
lcd.setCursor(0, 0); //Escreve na primeira linha primeira coluna
lcd.print("Umidade Relativa"); //Exibe informaçõa no Display de LCD
lcd.setCursor(3, 1); // Escreve na segunda linha e pula 3 colunas para centralizar a invormação
lcd.print("Ur "); //Coloca a unidade de medida no display
lcd.print(dht.readHumidity());
lcd.print(" %"); //adiciona o simbolo de %
delay(delay_slide);
lcd.clear();


Serial.print("Pressao = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
lcd.setCursor(2, 0);
lcd.print("Pressao Atm");
lcd.setCursor(2, 1);
lcd.print(bmp.readPressure()); // 1 pascal é = 0,00750061683 mmHG
lcd.print(" ");
lcd.print("Pascal");
delay(delay_slide);
lcd.clear();


Serial.print("Altitude = ");
Serial.print(bmp.readAltitude());
Serial.println(" Metros");
lcd.setCursor(0, 0);
lcd.print("Altitude Niv.Mar");
lcd.setCursor(1, 1);
lcd.print(bmp.readAltitude());
lcd.print(" ");
lcd.print("Metros");
delay(delay_slide);
lcd.clear();


Serial.print("Altitude Real = ");
Serial.print(bmp.readAltitude(101500));
Serial.println(" Metros");
lcd.setCursor(1, 0);
lcd.print("Altitude Real");
lcd.setCursor(1, 1);
lcd.print(bmp.readAltitude());
lcd.print(" ");
lcd.print("Metros");
delay(delay_slide);
lcd.clear();
}
Serial.println();
//delay(5000);


} //Final



Fonte: http://labdegaragem.com/forum/topics/esta-o-meteorol-gica-c-arduino

Nenhum comentário:

Postar um comentário

Copyright © Mechatronics & Robotics |
Design by Mechatronicrobotics | Tecnologia do Blogger
    YouTube Google + Facebook