Memonitor suhu dengan akurat sangatlah penting dalam berbagai konteks aplikasi mulai dari industri hingga proyek DIY (do-it-yourself). Sensor MAX31865 merupakan pilihan yang ideal untuk mengukur suhu dengan tingkat ketelitian yang tinggi terutama saat digunakan bersama thermocouple (termokopel). Dalam panduan ini kami akan membahas cara yang sederhana untuk menghubungkan sensor suhu MAX31865 ke ESP32 (microcontroller). Anda akan mempelajari langkah-langkah konfigurasi perangkat kerasnya beserta contoh kode untuk membaca data suhu tersebut agar siap digunakan.
Berikut Merupakan Codingan Yang Telah Kami Sediakan, Telah Diuji Untuk Memastikan Keakuratan Serta Kestabilannya.
#include <Arduino.h>
#include <Adafruit_MAX31865.h>
// Use software SPI: CS, DI, DO, CLK
Adafruit_MAX31865 thermo = Adafruit_MAX31865(5, 22, 23, 34);
// 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 cek_suhu_max31865(){
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);
}
void setup()
{
Serial.begin(9600);
Serial.begin(115200);
Serial.println("Adafruit MAX31865 PT100 Sensor Test!");
thermo.begin(MAX31865_3WIRE); // set to 2WIRE or 4WIRE as necessary
}
void loop(){
cek_suhu_max31865();
}
untuk skematik, kamu bisa menggunakan gambar berikut:
MAX31865 Pin
ESP32 Pin
VCC
3.3V
GND
GND
SCK
GPIO 34
SDI
GPIO 22
SDO
GPIO 23
CS
GPIO 5
Selamat mencoba! Semoga sukses dengan proyekmu. Jadikan setiap langkah sebagai pengalaman berharga. Salam dari Labrobotika, tempat inovasi dan kreativitas!
Jika anda berminat menggunakan jasa labrobotika, silahkan hubungi admin: WHATSAPP