Boa noite galera,
Estou tentando utilizar o sensor de temperatura MAX6675 com ESP32 LORA e estou obtendo erro na compilação assim que carrego no código a biblioteca do MAX6675. Alguém já utilizou e pode me apoiar?
Desde já agradeço,
Segue o código para análise:
#include <max6675.h>
#define tamanhoDoVetorDeEntrada 10 //numero de pontos de coleta
#define n 40 //número de pontos da média móvel
double averageAnalogRead();
long movingAverage();
int thermoDO = 34;
int thermoCS = 22;
int thermoCLK = 23;
double temperatura;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
/*****************VARIAVEIS DE TRATAMENTO DE LEITURA DA TEMPERATURA**************/
double vetorDeSaida[tamanhoDoVetorDeEntrada - 2];
double numbers[n]; //vetor com os valores para média móvel
/***********************************************/
void setup() {
Serial.begin(9600);
Serial.println("Texte MAX6675");
}
void loop() {
// put your main code here, to run repeatedly:
temperatura = averageAnalogRead();
//Serial.print("C = ");
Serial.println(temperatura);
temperatura < 32 ? Serial.println("NÃO") : Serial.println("SIM");
delay(1000);
}
double averageAnalogRead() {
//Funcão para realizar coletas de dados e após média, acumular em média movel.
double inputArray[tamanhoDoVetorDeEntrada];
double maxValue, minValue, mediaTemp;
double media;
int posicaoMax = 0, posicaoMin = 0, k = 0;
//float vetorDeSaida[tamanhoDoVetorDeEntrada-2];
for (int i = 0; i < tamanhoDoVetorDeEntrada; i++) {
inputArray = thermocouple.readCelsius();
delay(2);
}
for (int i = 1; i < tamanhoDoVetorDeEntrada; i++) {
if (i == 1) {
maxValue = inputArray[0];
minValue = inputArray[0];
}
if (maxValue < inputArray) {
maxValue = inputArray;
posicaoMax = i;
} else {
minValue = inputArray;
posicaoMin = i;
}
}
for (int i = 0; i < tamanhoDoVetorDeEntrada; i++) {
if (i == 0) k = 0;
if ((i == posicaoMin) || (i == posicaoMax)) {
continue;
}
vetorDeSaida[k] = inputArray;
k++;
}
mediaTemp = 0;
for (int i = 0; i < tamanhoDoVetorDeEntrada - 2; i++) {
mediaTemp += vetorDeSaida;
}
media = mediaTemp / (tamanhoDoVetorDeEntrada - 2);
//std::cout<<media/(tamanhoDoVetorDeEntrada-2)<< std::endl;
/***********INICIO DA MÉDIA MÓVEL**************/
double original, //recebe o valor da média das temperaturas lidas
filtrado; //recebe o valor original filtrado
original = media;
for (int i = n - 1; i > 0; i--)
numbers = numbers; //desloca os elementos do vetor de média móvel
numbers[0] = original; //posição inicial do vetor recebe a leitura original
long acc = 0; //acumulador para somar os pontos da média móvel
for (int i = 0; i < n; i++)
acc += numbers; //faz a somatória do número de pontos
return acc / n; //retorna a média móvel
}
Erro apresentado
Erro compilando para a placa ESP32 Dev Module
Utilizar MAX6675 com ESP32 lora
-
- Membro
- Mensagens: 3
- Registrado em: 27/Mai/2019, 19:35
Re: Utilizar MAX6675 com ESP32 lora
Olá Hudson, eu estou tendo o mesmo problema, estou achando que não é compatível com a placa pois o mesmo código carrega normalmente no arduino uno, espero que tenha resolvido se sim poste a sua solução, Obrigado.
-
- Membro
- Mensagens: 3
- Registrado em: 27/Mai/2019, 19:35
Re: Utilizar MAX6675 com ESP32 lora
Estou tendo o mesmo tipo de erro, o programa carrega no arduíno porém no esp32 ainda não consegui, estou pensando em carregar no arduino e enviar para o esp via rx tx.
Re: Utilizar MAX6675 com ESP32 lora
Problema na compatibilidade da biblioteca, vc vai precisar editar a biblioteca ou usar essa biblioteca aqui do esp32learning
http://www.esp32learning.com/code/esp32 ... xample.php
coloquei em anexo também
http://www.esp32learning.com/code/esp32 ... xample.php
coloquei em anexo também