Pular navegação

Estação Meteorologica

Ajuda

Estação Meteorologica

Olá Amantes da Robótica Livre hoje nos começamos nossa pesquisas sobre estação de metodológica!!!

Projeto de Iniciação cientifica, onde o objetivo é desenvolver um estação metrologia 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

Comentários

#1

Sucesso pra vocês, e um bom desempenho pra todos nesse projeto

#2

Perfeito Michel!

Precisa de ajuda?

Blog

O blog permite que os membros de um projeto se comuniquem, discutindo e publicando novidades. É um ótimo lugar para compartilhar processos, desafios e explorar ideias.