Vc mexeu apenas no arquivo BrewManiac.cpp?
Eu sou bem ruim de programação, já tentei estudar oq modificar pra utilizar o MAX31685 mas não consegui entender o código pra saber como alterar os sensores.
Também não sou bom em programar, mas a gente se ajuda powh.
Eu alterei sim o BrewManiac.cpp e coloquei um #define UseMAX6675 true||false no config.h pois se eu quiser usar o DS18B20 ou MAX6675. Ajustei os pinos pra usar a interface SPI na Wemos e realoquei para usar na PCF8574 a bomb e heat e sensor level.
******************************
config.h
#define UseMAX6675 true
*****************************
Pins.h
**linha 134
#if !UseMAX6675
#define SensorPin NODEMCU_PIN_D6
#endif
**linha 121
#define HEATER_USE_EXT true
#define PUMP_USE_EXT true
**linha 134
#if UseMAX6675
#define NODEMCU_PIN_D5 14 // (CLK / SCK) mas 6675
#define NODEMCU_PIN_D6 12 // SO/DO Sensor max 6675
#define NODEMCU_PIN_D8 15 // CS Sensor max6675
#else
#define SensorPin NODEMCU_PIN_D6
#endif
**linha 169
#if PUMP_USE_EXT != true
#if UseMAX6675
#define PumpControlPin NODEMCU_PIN_D3
#else
#define PumpControlPin NODEMCU_PIN_D5
#endif
#else
#if UseMAX6675
#define ExPumpControlPin 5
#else
#define ExPumpControlPin 5
#endif
#endif
#if HEATER_USE_EXT != true
#if UseMAX6675
#define HeatControlPin NODEMCU_PIN_D7 //alterado por acoelho 26/07/2021 para usar max6675
#else
#define HeatControlPin NODEMCU_PIN_D7
#endif
#define ExHeatControlPin 7
#else
#if UseMAX6675
#define ExHeatControlPin 7 //alterado por acoelho 26/07/2021 para usar max6675
#else
#define HeatControlPin NODEMCU_PIN_D7
#endif
#endif
***********************************
BreawManic.cpp
**linha 14
#if UseMAX6675
#include "max6675.h"
#else
#include <OneWire.h>
#endif
**linha 717
#if UseMAX6675
MAX6675 max6675(NODEMCU_PIN_D5, NODEMCU_PIN_D8, NODEMCU_PIN_D6);
#else
OneWire ds(SensorPin); //alterado para trazer max6675 acoelho 26/07/2021
#endif
**linha 726
#if !UseMAX6675
byte _sensorData[9];
#endif
**linha 852
void tpSetSensorResolution(byte *addr, byte res)
{
#if !UseMAX6675
ds.reset(); // rest 1-Wire
if(addr) ds.select(addr);
else ds.skip(); // select DS18B20
ds.write(0x4E); // write on scratchPad
ds.write(0x00); // User byte 0 - Unused
ds.write(0x00); // User byte 1 - Unused
ds.write((res << 5)|0x1F); // set up en 12 bits (0x7F)
ds.reset(); // reset 1-Wire
// write EEPROM, by lekrom
if(addr) ds.select(addr);
else ds.skip();
ds.write(0x48); // Save settings to non-volatile
#endif
delay(15); // Wait for EEPROM write to complete.
}
**linha 1124
void tpSensorRequestConvert(void){
#if !UseMAX6675
ds.reset();
ds.skip();
ds.write(DSCMD_CONVERT_T, 0);
#endif
}
bool tpSensorDataReady(void){
#if !UseMAX6675
ds.reset();
ds.skip();
byte busy = ds.read_bit();
if (busy == 0) return false;
return true;
#else
return true; //pode ser que precise colocar um delay aqui - acoelho
#endif
}
bool tpSensorRead(float* pReading){
#if UseMAX6675
float reading = max6675.readCelsius();
if(gIsUseFahrenheit) reading = C2F(reading);
*pReading = reading;
return true;
#else
// reset & "select" again
ds.reset();
ds.skip();
// request data
ds.write(DSCMD_READ_SCRATCHPAD);
for ( byte i = 0; i < 9; i++) { // with crc we need 9 bytes
_sensorData
= ds.read();
}
/* add this routine for crc version */
if ( OneWire::crc8(_sensorData, 8) != _sensorData[8]) { //if checksum fails start a new conversion right away
// re-issue convert command
return false;
}
// data got!
#if EnableSensorResolution == true
gSensorResolution=_sensorData[4] & 0x60;
#endif
// data got!
unsigned int raw = (_sensorData[1] << 8) + _sensorData[0];
// at lower res, the low bits are undefined, so let's zero them
if (gSensorResolution == 0x00) raw = raw & ~7; // 0.5C 9 bit resolution, 93.75 ms
else if (gSensorResolution == 0x20) raw = raw & ~3; // 0.25C 10 bit res, 187.5 ms
else if (gSensorResolution == 0x40) raw = raw & ~1; // 0.125C 11 bit res, 375 ms
// 0x60 0.0625C 12bits, 750ms
float reading = raw * 0.0625;
if(gIsUseFahrenheit) reading = C2F(reading);
*pReading = reading;
return true;
#endif
}
void tpReadInitialTemperature(void){
#if UseMAX6675
tpSensorRequestConvert();
int i=0;
while(i< 10){
if(tpSensorDataReady()) break;
delay(100);
i++;
}
float reading;
if(tpSensorRead(&reading)){
lpfSetInitialValue(reading);
gCurrentTemperature= reading +gSensorCalibration;
}
#else
tpSensorRequestConvert();
int i=0;
while(i< 10){
if(tpSensorDataReady()) break;
delay(100);
i++;
}
float reading;
if(tpSensorRead(&reading)){
lpfSetInitialValue(reading);
gCurrentTemperature= reading +gSensorCalibration;
}
#endif
}
void tpReadTemperature(void)
{
#if FakeHeating
return;
#endif
#if UseMAX6675
if (_isConverting == false)
{
if(gCurrentTimeInMS - _lastTempRead > MinimumTemperatureReadGap){
// start conversion and return
tpSensorRequestConvert();
_isConverting = true;
_lastTempRead = gCurrentTimeInMS;
}
return;
}
// check for conversion if it isn't complete return if it is then convert to decimal
if(! tpSensorDataReady()) return;
float reading;
if(! tpSensorRead(&reading)){
// CRC Error;
tpSensorRequestConvert();
_isConverting = true;
return;
}
gCurrentTemperature = lpfAddValue(reading) + gSensorCalibration;
_isConverting = false;
#else
if (_isConverting == false)
{
if(gCurrentTimeInMS - _lastTempRead > MinimumTemperatureReadGap){
// start conversion and return
tpSensorRequestConvert();
_isConverting = true;
_lastTempRead = gCurrentTimeInMS;
}
return;
}
// else if convert start
//if (_isConverting)
//
// check for conversion if it isn't complete return if it is then convert to decimal
if(! tpSensorDataReady()) return;
float reading;
if(! tpSensorRead(&reading)){
// CRC Error;
tpSensorRequestConvert();
_isConverting = true;
return;
}
// reading += gSensorCalibration; //((float)(readSetting(PS_Offset) - 50) / 10.0);
//apply calibration
gCurrentTemperature = lpfAddValue(reading) + gSensorCalibration;
_isConverting = false;
#endif
}
#endif // #if MaximumNumberOfSensors > 1
**linha 2804
int pidGetValue(int index)
{
#if !UseMAX6675
if(index == SensorResolutionIndex)
return ResolutionDecode(gSensorResolution) + 9;
#if MaximumNumberOfSensors > 1
else
return (int)readSetting(CalibrationAddressOf(_pidSettingAux));
#endif
return 0;
#endif
}
void pidSetValue(int index, int value)
{
// only for sensor resolution
#if !UseMAX6675
byte res= value -9;
if(index == SensorResolutionIndex){
#if MaximumNumberOfSensors > 1
for(byte i=0;i<gSensorNumber;i++)
tpSetSensorResolution(gSensorAddresses,res);
#else
tpSetSensorResolution(NULL,res);
#endif
}
#if MaximumNumberOfSensors > 1
else{
changeSettingValue(CalibrationAddressOf(_pidSettingAux),value);
gSensorCalibrations[_pidSettingAux] =((float) value -50)/10.0;
}
#endif
#endif
}