Sensor TCRT5000 adalah modul inframerah (IR) yang sering digunakan dalam robot line follower untuk mendeteksi garis pada permukaan. Pada artikel ini, kita akan membuat proyek sederhana menggunakan ESP32 dan sensor TCRT5000 untuk mendeteksi garis.
Komponen yang Dibutuhkan
- Software Arduino IDE.
- ESP32.
- Sensor TCRT5000.
- Breadboard.
- Kabel jumper.
- Kabel USB untuk menghubungkan ESP32 ke komputer.
Rangkaian
Sambungkan komponen sesuai diagram berikut:
- VCC pada sensor ke 3.3V ESP32.
- GND pada sensor ke GND ESP32.
- OUT pada sensor ke GPIO A0 ESP32.
Catatan: Pastikan sambungan kabel sudah sesuai untuk mencegah kerusakan komponen.

#include <Arduino.h>
#include <PZEM004Tv30.h>
//sensor ini menggunakan pin hardware serial (pin RX dan TX asli)
#if !defined(PZEM_RX_PIN) && !defined(PZEM_TX_PIN)
#define PZEM_RX_PIN 16
#define PZEM_TX_PIN 17
#endif
#if !defined(PZEM_SERIAL)
#define PZEM_SERIAL Serial2
#endif
#if defined(ESP32)
PZEM004Tv30 pzem(PZEM_SERIAL, PZEM_RX_PIN, PZEM_TX_PIN);
#elif defined(ESP8266)
#else
PZEM004Tv30 pzem(PZEM_SERIAL);
#endif
// Read the data from the sensor
float voltage = 0;
float current = 0;
float power = 0;
float energy = 0;
float frequency = 0;
float pf = 0;
void get_sensor_PZEM(){
// Print the custom address of the PZEM
Serial.print("Custom Address:");
Serial.println(pzem.readAddress(), HEX);
// Read the data from the sensor
voltage = pzem.voltage();
current = pzem.current();
power = pzem.power();
energy = pzem.energy();
frequency = pzem.frequency();
pf = pzem.pf();
// Check if the data is valid
if(isnan(voltage)){
Serial.println("Error reading voltage");
} else if (isnan(current)) {
Serial.println("Error reading current");
} else if (isnan(power)) {
Serial.println("Error reading power");
} else if (isnan(energy)) {
Serial.println("Error reading energy");
} else if (isnan(frequency)) {
Serial.println("Error reading frequency");
} else if (isnan(pf)) {
Serial.println("Error reading power factor");
} else {
// Print the values to the Serial console
Serial.print("Voltage: "); Serial.print(voltage); Serial.println("V");
Serial.print("Current: "); Serial.print(current); Serial.println("A");
Serial.print("Power: "); Serial.print(power); Serial.println("W");
Serial.print("Energy: "); Serial.print(energy,3); Serial.println("kWh");
Serial.print("Frequency: "); Serial.print(frequency, 1); Serial.println("Hz");
Serial.print("PF: "); Serial.println(pf);
}
}
void setup()
{
Serial.begin(9600);
}
void loop(){
get_sensor_PZEM();
delay(500);
}
Selamat Mencoba!!
Semoga Berhasil!!
Kalau teman-teman berminat menggunakan jasa kami bisa wa kami di kontak whatsapp dibawah ini atau bisa cek tiktok kami disini : @labrobotika

