Página 1 de 1

ESP32 HELTEC - FUNCIONAMENTO COM ANEMOMETRO

Enviado: 30/Jul/2018, 12:24
por Rodrigo1810
Bom Dia a todos, estou fazendo alguns testes numa pequena estação meteorológica e comecei pelo anemometro. Num arduino uno funciona perfeitamente a leitura e obtenho o resultado. Minha intencao é colocar num ESP32 ( neste caso estou utilizando Heltec com OLED - WIFI LORA 32 ) e não funciona. Estou utilizando a IDE do arduino, Mudei a placa de ARDUINO UNO para WIFI-LORA-32, alterei o pino de GPIO ( no arduino era D2 e no ESP estou usando 13 ). Nao tenho osciloscopio mas medi com um multimetro na porta do ESP e tem sinal variando, ou seja, estão chegando dados, mas não consigo processa-lo e mostra-lo na serial.
Observacao, esta porta esta funcionando porque coloquei um DHT22 para fazer teste e funcionou perfeitamente.
Alguem tem alguma ideia ?

Re: ESP32 HELTEC - FUNCIONAMENTO COM ANEMOMETRO

Enviado: 30/Jul/2018, 12:40
por baigno
Bom dia, como funciona o seu anemômetro? A placa só suporta 3.3v. Talvez seja seu anemometro.

Re: ESP32 HELTEC - FUNCIONAMENTO COM ANEMOMETRO

Enviado: 30/Jul/2018, 13:18
por Rodrigo1810
Nao lembrei disto, vou tentar alimenta-lo com 3,3v para ver o que acontece

Re: ESP32 HELTEC - FUNCIONAMENTO COM ANEMOMETRO

Enviado: 31/Jul/2018, 00:16
por Rodrigo1810
baigno escreveu:
30/Jul/2018, 12:40
Bom dia, como funciona o seu anemômetro? A placa só suporta 3.3v. Talvez seja seu anemometro.
O anemometro é baseado em reed switch, nao tem segredo. Alimentei tuco com 3,3V e não funciona, todas as leituras ficam zeradas. No arduino funciona bem. Segue o sketch talvez ajude:

float pi = 3.14159265; //Número de pi
int period = 5000; //Tempo de medida(miliseconds)
int delaytime = 2000; //Invervalo entre as amostras (miliseconds)
int radius = 147; //Raio do anemometro(mm)

// --- Variáveis Globais ---
int Sample = 0; //Armazena o número de amostras
int counter = 0; //Contador para o sensor
int RPM = 0; //Rotações por minuto
float speedwind = 0; //Velocidade do vento (m/s)
float windspeed = 0; //Velocidade do vento (km/h)


// --- Configurações Inicias ---
void setup() {
pinMode(12,INPUT); //configura o digital 12 como entrada
digitalWrite(12,HIGH);
Serial.begin(9600); //inicia serial em 9600 baud rate
} //end setup

// --- Loop Infinito ---
void loop() {
Sample++;
Serial.print(Sample);
Serial.print(": Inicia Leitura...");
windvelocity();
Serial.println(" Finalizado.");
Serial.print("Contador: ");
Serial.print(counter);
Serial.print("; RPM: ");
RPMcalc();
Serial.print(RPM);
Serial.print("; Vel. Vento: ");

//*****************************************************************
//print m/s
WindSpeed();
Serial.print(windspeed);
Serial.print(" [m/s] ");

//*****************************************************************
//print km/h
SpeedWind();
Serial.print(speedwind);
Serial.print(" [km/h] ");
Serial.println();

delay(delaytime); //taxa de atualização
} //end setup



//Função para medir velocidade do vento
void windvelocity() {
speedwind = 0;
windspeed = 0;

counter = 0;
attachInterrupt(0, addcount, RISING);
unsigned long millis();
long startTime = millis();
while (millis() < startTime + period) {}
}

//Função para calcular o RPM
void RPMcalc() {
RPM = ((counter) * 60) / (period / 1000); // Calculate revolutions per minute (RPM)
}

//Velocidade do vento em m/s
void WindSpeed() {
windspeed = ((4 * pi * radius * RPM) / 60) / 1000; //Calcula a velocidade do vento em m/s
} //end WindSpeed

//Velocidade do vento em km/h
void SpeedWind() {
speedwind = (((4 * pi * radius * RPM) / 60) / 1000) * 3.6; //Calcula velocidade do vento em km/h
} //end SpeedWind

//Incrementa contador
void addcount() {
counter++;
}

Re: ESP32 HELTEC - FUNCIONAMENTO COM ANEMOMETRO

Enviado: 31/Jul/2018, 16:35
por baigno
Se eu não entendi errado,
Interrupção externa? Os pinos estão declarados?-Local ou Global- São pinos de interrupt?
Se não me engano, o pino de interrupção do esp32 é o 25 ou o 13.
Espero ter ajudado :D