Utilizar MAX6675 com ESP32 lora

Projetos com LoRa
hudsonbh
Novato
Mensagens: 1
Registrado em: 16/Out/2018, 23:25

Utilizar MAX6675 com ESP32 lora

Mensagem por hudsonbh » 07/Jan/2019, 23:47

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

FabricioMM
Membro
Mensagens: 3
Registrado em: 27/Mai/2019, 19:35

Re: Utilizar MAX6675 com ESP32 lora

Mensagem por FabricioMM » 12/Out/2019, 13:37

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.

FabricioMM
Membro
Mensagens: 3
Registrado em: 27/Mai/2019, 19:35

Re: Utilizar MAX6675 com ESP32 lora

Mensagem por FabricioMM » 14/Out/2019, 00:19

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.

paloschi
Membro
Mensagens: 6
Registrado em: 09/Out/2019, 08:48

Re: Utilizar MAX6675 com ESP32 lora

Mensagem por paloschi » 17/Out/2019, 23:42

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

Responder