Página 1 de 1

Utilizar MAX6675 com ESP32 lora

Enviado: 07/Jan/2019, 23:47
por hudsonbh
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

Re: Utilizar MAX6675 com ESP32 lora

Enviado: 12/Out/2019, 13:37
por FabricioMM
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.

Re: Utilizar MAX6675 com ESP32 lora

Enviado: 14/Out/2019, 00:19
por FabricioMM
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

Enviado: 17/Out/2019, 23:42
por paloschi
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