Auriol Weather Station

  • Thread starter Thread starter Mjhb
  • Data de início Data de início
Bons dias a todos aqui!!. Bem, moro em Piracicaba, Estado de São Paulo no Brasil, e tenho boas noticias a voces que assim como eu, adiquiriram esta estação, mesmo que de fornecedores diferentes.
A mais de 8 anos, tenho como hobby, meteorológia e avião civil, e já fiz estudos e mais estudos sobre estações, anemometros, higrometros, etc.
bem, em primeiro lugar, vi usuários falando muito sobre a instação perfeita, e devo dizer que eles tem total razão.
1º reparem que a caixinha aonde fica o termo-higrometro da estação, tem os furos de ventilação e uma capa mais fina atraz, porem, aqui na américa do Sul, ela deve ficar rigorozamente apontada para o Sul, e no emisfério norte, para o Norte. ( assim vc evita que os raios solares penetrem nos sensores, e a leitura se torna mais real )
2º nunca se compara vento a mais de 25 metros de distância, pois cada lugar tem sua rajada, direção e media diferente, e muito menos tempeartura.
Vou explicar: A cada 300 pés, temos 1ºC a menos, e se não fizermos as contas da altitudo da estação a se verificar e comparar as temperaturas, tudo vai dar errado,
3º depende muito, mais muito mesmo do solo aonde a estação está instalada. Se for gramado, claro, a temperatura do ar é bem menor que telhados, asfalto, comcreto etc. ( lembren-se, o ar quente sempre sobe!!!! )
4º não é necessário fazer uma RS, ou abrigo qualquer para o termometro e nem o higrometro, pois a estação não passa de 1ºC de diferença. ( basta estar instalado corretamente, como disse a cima, ou seja... em caso de duvidas, aponte a haste e o braçod o anemometro para o Norte, no hemisfério sul, e para o Sul no hemisfério norte) e reparem a diferença.

Somente a pressão atmosférica pode ser calibrada com cartas do dia ou prognósticos, isso a nivel do mar. ( cada lugar tem sua altitude )
:thumbsup:
Tenho 2 anemometros, e um de mão, tenho 4 thermo-higrometro ( 2 em RS ) e dois espalhados pela casa. Essa estação, funciona bem, e é bem parata!!!!:surprise:

desculpem dos erros de escrita :confused:

Legal, boas informações....vc tem site com dados da estação?:huh:
 
Legal, boas informações....vc tem site com dados da estação?:huh:


Infelizmente não, pois não passei ela para o PC, pois seria um preço incompativel. Porem, tenho uma novidade boa a todos.

Todos já vimos e tivemos, ou temos entenas de sinal Digital, ou antenas de tv.

Liguei uma dessas na antena da estação, dentro da caixinha aonde fica o thermo- Higrometro e... Tenho um mega sinal kkkkk dá para se distanciar uns 150 metros kkkk. e Claro, diminui a interferência.

e se quiserem que tudo fique mais perfeito ainda, coloca uma no receptor tambem.

porem, tenho só um detalhe triste. quando não há vento, ou a temperatura fica muito tempo estável, ela dá valços valores. Ex: LL etc.:eek:
 
Preciso de ajuda!!!, liguei minha Celestron W 155 em uma arduino... porem, não recebo dados alguns no WSDL. esta ligado o GND na GND da erduino e o DATa na porta 8 da arduino. mais indica DATA insuficiente no WSDL???? o que pode ser. o 5V não liguei porque já está alimentado pela estação.
 
Preciso de ajuda!!!, liguei minha Celestron W 155 em uma arduino... porem, não recebo dados alguns no WSDL. esta ligado o GND na GND da erduino e o DATa na porta 8 da arduino. mais indica DATA insuficiente no WSDL???? o que pode ser. o 5V não liguei porque já está alimentado pela estação.

Boas.

Como ligaste a estação ao Arduino? Não estou a perceber se fizeste uma ligação directa ou se estás a usar receptor RF..

Cumps.
 
Boas.

Como ligaste a estação ao Arduino? Não estou a perceber se fizeste uma ligação directa ou se estás a usar receptor RF..

Cumps.

Ok. Fiz assim, tentei com um receptor... não deu certo kkk, então abri a estação e do mesmo transmissor da estação, eu liguei na arduino uno. GND em GND e DATA na porta 2 e também tentei na 8 da arduino. Instalei o WSDL, o arduino bisca o RX, porem... não recebo dados algum.

nao liguei o VCC porque ele está alimentado na estação mesmo, a qual recebe os dados perfeitamente:eek:
 
Ok. Fiz assim, tentei com um receptor... não deu certo kkk, então abri a estação e do mesmo transmissor da estação, eu liguei na arduino uno. GND em GND e DATA na porta 2 e também tentei na 8 da arduino. Instalei o WSDL, o arduino bisca o RX, porem... não recebo dados algum.

nao liguei o VCC porque ele está alimentado na estação mesmo, a qual recebe os dados perfeitamente:eek:

Deverá ser ligado no PIN 8 do Arduino.

Testa a versão 1.32 sem barómetro BMP085:
http://forum.auriolws.info/viewtopic.php?f=8&t=35

E usa sempre primeiro o "Serial Monitor" do programa Arduino para ver se obtens dados. Ao abrires o "Serial Monitor" verifica se o baudrate está a 9600.

Depois diz que resultados tens.

Mas deste-me uma excelente ideia, estou sem receptores RF..acho que vou fazer o mesmo e ligar directamente à estação :)
 
Deverá ser ligado no PIN 8 do Arduino.

Testa a versão 1.32 sem barómetro BMP085:
http://forum.auriolws.info/viewtopic.php?f=8&t=35

E usa sempre primeiro o "Serial Monitor" do programa Arduino para ver se obtens dados. Ao abrires o "Serial Monitor" verifica se o baudrate está a 9600.

Depois diz que resultados tens.

Mas deste-me uma excelente ideia, estou sem receptores RF..acho que vou fazer o mesmo e ligar directamente à estação :)

Muito estranho!!!! tanto com RS 232 Data Loger ou o Serial Monitor,,, nadad de dados recebidos. nada mesmo!!!!!!
 
falha
 
estranho, alguns códigos dão falha... estou usando o arduino 1.0.1
 


Faz download da versão 022:
http://arduino.cc/hu/Main/Software

faz com este

Código:
/******* Sketch to test Input Capture interrupt handling *********************************
functionality: measure length of pulses on the ICP pin with precision of 0.5 microseconds
Show the min and max pulse widths in microseconds on the serial port

**************************************************************************************************************/
#include <stdio.h>      // for verbose debugging using sprintf

#define icpPin 8        // ICP input pin on arduino
#define outPin 2        // output pin that will shadow the input, can be monitored with a scope

                        // some variables to help see that something is happening in the interrupt handlers
volatile unsigned int Value;     // this stores the current ICR1 value
volatile unsigned int MinValue;   
volatile unsigned int MaxValue;
volatile unsigned int Overflows;
volatile unsigned int PulseCount;


/* Overflow interrupt vector */
ISR(TIMER1_OVF_vect){                 // here if no input pulse detected
   Overflows++;                       // incriment overflow count
}

/* ICR interrupt vector */
ISR(TIMER1_CAPT_vect){
   TCNT1 = 0;                            // reset the counter
   if( bit_is_set(TCCR1B ,ICES1)){       // was rising edge detected ?
        digitalWrite(outPin,HIGH );      // yes, set our output pin high to mirror the input
   }
   else {                                // falling edge was detected
        Value = ICR1;                    // save the input capture value
        digitalWrite(outPin,LOW );       // set our output pin low to mirror the input
        PulseCount++;
        if(Value < MinValue)             // update min or max values as appropriate
            MinValue = Value;
        if (Value > MaxValue)
            MaxValue = Value;   
   }   
   TCCR1B ^= _BV(ICES1);                 // toggle bit value to trigger on the other edge   
}

void setup() {
  Serial.begin (19200);
  pinMode(outPin, OUTPUT);               // declare the ledPin as an OUTPUT
  pinMode(icpPin, INPUT);                // ICP pin (digital pin 8 on arduino) as input
  MinValue =    30000;                   // Initialise with extreme values
  MaxValue =    0;


  TCCR1A = 0 ;                    // this register set to 0!
  TCCR1B =_BV(CS11);              // NORMAL MODE!!, prescaller 8, rising edge ICP1 - this works
  TCCR1B |= _BV(ICES1);           // enable input capture   

  TIMSK1 =  _BV(ICIE1);                         // enable input capture interrupt for timer 1
  TIMSK1 |= _BV(TOIE1);                         // enable overflow interrupt to detect missing input pulses
  Serial.print("Finished setup\r\n");
}

// this loop prints the number of pulses in the last second, showing min and max pulse widths
void loop() {
  char buffer[80];
  // show the captured data, divide pulse widths by 2 to display time in microseconds
  sprintf(buffer,"Got %d pulses: min=%d, max=%d (%d timer overflows)\r\n", PulseCount, MinValue / 2, MaxValue / 2, Overflows);       
  Serial.print(buffer);    // send the info to the serial port
  /* reset variables ready for the next reading */
  PulseCount = Overflows = 0; // reset counts
  MinValue =    30000;        // set values to extremes
  MaxValue =    0;     

  delay(1000); 

}  // wait 1 second for next update
 
estou achando que a celestron W155 não envia
 
Faz download da versão 022:
http://arduino.cc/hu/Main/Software

faz com este

Código:
/******* Sketch to test Input Capture interrupt handling *********************************
functionality: measure length of pulses on the ICP pin with precision of 0.5 microseconds
Show the min and max pulse widths in microseconds on the serial port

**************************************************************************************************************/
#include <stdio.h>      // for verbose debugging using sprintf

#define icpPin 8        // ICP input pin on arduino
#define outPin 2        // output pin that will shadow the input, can be monitored with a scope

                        // some variables to help see that something is happening in the interrupt handlers
volatile unsigned int Value;     // this stores the current ICR1 value
volatile unsigned int MinValue;   
volatile unsigned int MaxValue;
volatile unsigned int Overflows;
volatile unsigned int PulseCount;


/* Overflow interrupt vector */
ISR(TIMER1_OVF_vect){                 // here if no input pulse detected
   Overflows++;                       // incriment overflow count
}

/* ICR interrupt vector */
ISR(TIMER1_CAPT_vect){
   TCNT1 = 0;                            // reset the counter
   if( bit_is_set(TCCR1B ,ICES1)){       // was rising edge detected ?
        digitalWrite(outPin,HIGH );      // yes, set our output pin high to mirror the input
   }
   else {                                // falling edge was detected
        Value = ICR1;                    // save the input capture value
        digitalWrite(outPin,LOW );       // set our output pin low to mirror the input
        PulseCount++;
        if(Value < MinValue)             // update min or max values as appropriate
            MinValue = Value;
        if (Value > MaxValue)
            MaxValue = Value;   
   }   
   TCCR1B ^= _BV(ICES1);                 // toggle bit value to trigger on the other edge   
}

void setup() {
  Serial.begin (19200);
  pinMode(outPin, OUTPUT);               // declare the ledPin as an OUTPUT
  pinMode(icpPin, INPUT);                // ICP pin (digital pin 8 on arduino) as input
  MinValue =    30000;                   // Initialise with extreme values
  MaxValue =    0;


  TCCR1A = 0 ;                    // this register set to 0!
  TCCR1B =_BV(CS11);              // NORMAL MODE!!, prescaller 8, rising edge ICP1 - this works
  TCCR1B |= _BV(ICES1);           // enable input capture   

  TIMSK1 =  _BV(ICIE1);                         // enable input capture interrupt for timer 1
  TIMSK1 |= _BV(TOIE1);                         // enable overflow interrupt to detect missing input pulses
  Serial.print("Finished setup\r\n");
}

// this loop prints the number of pulses in the last second, showing min and max pulse widths
void loop() {
  char buffer[80];
  // show the captured data, divide pulse widths by 2 to display time in microseconds
  sprintf(buffer,"Got %d pulses: min=%d, max=%d (%d timer overflows)\r\n", PulseCount, MinValue / 2, MaxValue / 2, Overflows);       
  Serial.print(buffer);    // send the info to the serial port
  /* reset variables ready for the next reading */
  PulseCount = Overflows = 0; // reset counts
  MinValue =    30000;        // set values to extremes
  MaxValue =    0;     

  delay(1000); 

}  // wait 1 second for next update
Há fazer.... tenho que apagar o 1.0.1???