Esp32 + max31865 + pt100

Hey guys, I've got an little problem with my setup here.

I've wanted to build a temperature controller. but the values i get are so random..

Also I don't know how to correctly give power to the esp32. As u guys can see I also have a power supply there. The he esp doesn't run with the power supply alone what i find very strange.
link to the power supply:
https://de.aliexpress.com/item/1005007076317286.html?spm=a2g0o.order_list.order_list_main.22.6a9f5c5fBunnvv&gatewayAdapt=glo2deu
thats the sensor PT 100 and MAX31865 i am using...

Thats the offical adafruit code i use, i just changed the pins.

/*************************************************** 
  This is a library for the Adafruit PT100/P1000 RTD Sensor w/MAX31865

  Designed specifically to work with the Adafruit RTD Sensor
  ----> https://www.adafruit.com/products/3328

  This sensor uses SPI to communicate, 4 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include <Adafruit_MAX31865.h>

// Use software SPI: CS, DI, DO, CLK
Adafruit_MAX31865 thermo = Adafruit_MAX31865(5, 23, 19, 18);
// use hardware SPI, just pass in the CS pin
//Adafruit_MAX31865 thermo = Adafruit_MAX31865(10);

// The value of the Rref resistor. Use 430.0 for PT100 and 4300.0 for PT1000
#define RREF      430.0
// The 'nominal' 0-degrees-C resistance of the sensor
// 100.0 for PT100, 1000.0 for PT1000
#define RNOMINAL  100.0

void setup() {
  Serial.begin(115200);
  Serial.println("Adafruit MAX31865 PT100 Sensor Test!");

  thermo.begin(MAX31865_3WIRE);  // set to 2WIRE or 4WIRE as necessary
}


void loop() {
  uint16_t rtd = thermo.readRTD();

  Serial.print("RTD value: "); Serial.println(rtd);
  float ratio = rtd;
  ratio /= 32768;
  Serial.print("Ratio = "); Serial.println(ratio,8);
  Serial.print("Resistance = "); Serial.println(RREF*ratio,8);
  Serial.print("Temperature = "); Serial.println(thermo.temperature(RNOMINAL, RREF));

  // Check and print any faults
  uint8_t fault = thermo.readFault();
  if (fault) {
    Serial.print("Fault 0x"); Serial.println(fault, HEX);
    if (fault & MAX31865_FAULT_HIGHTHRESH) {
      Serial.println("RTD High Threshold"); 
    }
    if (fault & MAX31865_FAULT_LOWTHRESH) {
      Serial.println("RTD Low Threshold"); 
    }
    if (fault & MAX31865_FAULT_REFINLOW) {
      Serial.println("REFIN- > 0.85 x Bias"); 
    }
    if (fault & MAX31865_FAULT_REFINHIGH) {
      Serial.println("REFIN- < 0.85 x Bias - FORCE- open"); 
    }
    if (fault & MAX31865_FAULT_RTDINLOW) {
      Serial.println("RTDIN- < 0.85 x Bias - FORCE- open"); 
    }
    if (fault & MAX31865_FAULT_OVUV) {
      Serial.println("Under/Over voltage"); 
    }
    thermo.clearFault();
  }
  Serial.println();
  delay(1000);
}

here are some pictures:




my wireing:
MAX31865 - ESP32
VIN - 3V3
GND - GND
3V3 -
CLK - VSPI_CLK (GPIO18)
SDO - VSPI_MISO (GPIO19)
SDI - VSPI_MOSI (GPIO23)
CS - VSPI_SS (GPIO5)
RDY -

PT100 3Wire - MAX31865
WRed - F+
WRed - RTD+
WBlue - RTD-
nc - F-

thats the serial monitor:

Adafruit MAX31865 PT100 Sensor Test!
RTD value: 0
Ratio = 0.00000000
Resistance = 0.00000000
Temperature = -242.02

RTD value: 0
Ratio = 0.00000000
Resistance = 0.00000000
Temperature = -242.02

It’s still not working😭 this is turning me insane haha

I created a new post. please delete this one

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.