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.

https://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. 

Estou me organizado aqui e já disponibilizo o código,

Até

Exibições: 18014

Responder esta

Respostas a este tópico

tem essa biblioteca que pode lhe ser util ela tranfere strings sem complicação.

Link da biblioteca

OBRIGADO , ME AJUDOU MUITO AGORA TENHO UM PONTO DE PARTIDA .

Hum, vamos fazer muitas coisas com isso.

Estava planejando algo semelhante.

Primeiro, qual a intenção de monitorar a temperatura do solo? vc tem certeza que o lm35 funciona para esta aplicação?

Eu vou adicionar o monitor de umidade do solo, e uma estação da spurkfun que mede velocidade do vento e direção. Alem de medir volume de chuva.

Vou usar como supervisório o scadabr. Ele é mais facil de configurar. Não sei se vou usar o zgbee. Acho que preciso monitorar somente em um ponto todos os parâmetros.

Vamos discutir o codigo em detalhes, temos que destrinchar tudinho para entendermos os detalhes.

Olá,  Sidney Alves.

Este fim de semana eu posto o material, ok é bom saber que exitem pessoas com o mesmos proposito tecnológico. 

Olá Lucas,

Também estou projetando uma estação destas, inclusive com os mesmo componentes que vc esta utilizando... porem pretendo ligar ela em rede (internet), para que se possa ver as informações de forma real e remotamente.

Vc pretende usar ela em terreno isolado?

 

Parabéns pelo projeto.

A minha estação sera instala em um determinado local e se comunica via Zigbee até a outra extremidade onde os dados serão processados e armazenados e existe um 3º ponto que é apenas para visualização dos 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

Boa tarde, Lucas

 

Venho fazendo algo parecido com os seus objetivos. Vc pode dar uma olhada no resultado aqui - https://cosm.com/feeds/1393 . Falta alguns sensores serem instalados -velocidade do vento, pluviometro, direção do vento e radiação solar. Não tenho ainda um prazo definido para incluir estes sensores.

 

Ailton,

vc ja comprou os equipamentos de velocidade do vento, pluviometro, etc?

Vi um na sparkfun, vc conhece outro?

E a iluminação, como vc mede? Na realidade a pergunta é qual a unidade vc usa? 

E a voltagem?

Boa noite, Sidney

Para medir luminosidade eu utilizo o sensor TSL2561. Eu tinha comprado um na Sparkfun, só que logo ele deu problema. Hoje eu estou medindo iluminância em percentual, é mais simples. Agora, em termos de precisão, é muito pobre, isto é, qdo vc muda o LDR, muda só tudo! Eu ainda não comprei os sensores de velocidade de vento, pluviometro, direção de vento e radiação solar. Tem uma empresa na Florida que comercializa esse tipo de produto com um preço muito bom. Na próxima oportunidade eu vou comprá-los lá.

Existe uma função que mede a voltagem interna do Arduino. Se vc precisa eu te envio via e-mail. Na realidade, existem outra função que mede tb a temperatura interna.

Ailton

Quero sim,

vou olhar o equipamento da sparkfun e pedir aqui pelo LDG.

Com este trabalho acho que vou conseguir monitorar as condições ambientais bem.

Se puder manda a função de medição da voltagem para farmsid@pop.com.br

Agradeço

Bom dia Ailton, Estou tentando construir um sensor de radiação solar para medir W/m2, mas estou encontrando muitas dificuldades. O sensor satura e não consigo visualizar os valores em tensão. Esse sensor TSL2561, será que pode resolver meu problema?

Obrigado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço