Cara Memprogram Sensor Temperatur MLX90614 Pada ESP32

Cara Memprogram Sensor Temperatur MLX90614 Pada ESP32

Sensor Temperatur MLX90614 adalah sebuah termometer inframerah digital yang dirancang untuk mengukur suhu secara non-kontak.Berikut ini adalah code untuk memprogram nya :

#include <Arduino.h>

#include <Wire.h>
#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();


float baca_suhu_lingkungan_mlx() {
return mlx.readAmbientTempC();
}
 
float baca_suhu_objek_mlx() {
return mlx.readObjectTempC();
}


void setup()
{
Serial.begin(9600);
mlx.begin();

}
void loop(){
float suhuLingkungan_mlx = baca_suhu_lingkungan_mlx();
float suhuObjek_mlx = baca_suhu_objek_mlx();
Serial.print("Suhu Lingkungan: ");
Serial.print(suhuLingkungan_mlx);
Serial.println(" °C");
 
Serial.print("Suhu Objek: ");
Serial.print(suhuObjek_mlx);
Serial.println(" °C");


}


Berikut ini adalah penjelasan dari kode di atas :

1. Inklusi Library dan Deklarasi Objek

C++

#<strong>include</strong> <Arduino.h>

#<strong>include</strong> <Wire.h>             // Library untuk komunikasi I2C (Inter-Integrated Circuit)
#<strong>include</strong> <Adafruit_MLX90614.h> // Library khusus dari Adafruit untuk sensor MLX90614

Adafruit_MLX90614 mlx = Adafruit_MLX90614(); // Membuat objek sensor MLX90614
  • #include <Arduino.h>: Ini adalah library standar yang wajib ada di setiap program Arduino. Ia menyediakan fungsi-fungsi dasar yang kita gunakan.
  • #include <Wire.h>: Sensor MLX90614 berkomunikasi menggunakan protokol I2C (disebut juga SMBus). Library Wire adalah library standar Arduino yang memungkinkan komunikasi I2C. Anda harus menyertakannya saat menggunakan perangkat I2C.
  • #include <Adafruit_MLX90614.h>: Ini adalah library khusus dari Adafruit yang sangat memudahkan interaksi dengan sensor MLX90614. Library ini menyederhanakan proses komunikasi I2C yang kompleks menjadi fungsi-fungsi yang mudah dipahami (seperti readAmbientTempC() atau readObjectTempC()).
  • Adafruit_MLX90614 mlx = Adafruit_MLX90614();: Baris ini membuat sebuah objek dari kelas Adafruit_MLX90614 dan menamainya mlx. Objek mlx inilah yang akan Anda gunakan untuk memanggil semua fungsi yang berhubungan dengan sensor.

2. Fungsi baca_suhu_lingkungan_mlx()

C++

float baca_suhu_lingkungan_mlx() {
  return mlx.readAmbientTempC(); // Membaca dan mengembalikan suhu lingkungan dalam Celcius
}
  • Ini adalah fungsi kustom yang Anda buat untuk membaca suhu lingkungan (suhu di sekitar sensor itu sendiri).
  • mlx.readAmbientTempC(): Ini adalah fungsi dari library Adafruit_MLX90614 yang secara spesifik membaca data suhu lingkungan dari sensor MLX90614 dan mengembalikannya dalam derajat Celcius.
  • return mlx.readAmbientTempC();: Fungsi ini akan mengembalikan nilai suhu lingkungan yang telah dibaca.

3. Fungsi baca_suhu_objek_mlx()

C++

float baca_suhu_objek_mlx() {
  return mlx.readObjectTempC(); // Membaca dan mengembalikan suhu objek dalam Celcius
}
  • Fungsi ini mirip dengan baca_suhu_lingkungan_mlx(), tetapi ini membaca suhu objek yang sedang diarahkan oleh sensor.
  • mlx.readObjectTempC(): Ini adalah fungsi dari library Adafruit_MLX90614 yang membaca data suhu objek yang dideteksi oleh radiasi inframerah, dan mengembalikannya dalam derajat Celcius.
  • return mlx.readObjectTempC();: Fungsi ini akan mengembalikan nilai suhu objek yang telah dibaca.

4. Fungsi setup()

C++

void setup()
{
  Serial.begin(9600); // Menginisialisasi komunikasi serial untuk debugging
  mlx.begin();        // Menginisialisasi sensor MLX90614
}
  • Serial.begin(9600);: Menginisialisasi komunikasi serial pada baud rate 9600. Ini diperlukan untuk menampilkan pembacaan suhu ke Serial Monitor di komputer Anda.
  • mlx.begin();: Ini adalah fungsi inisialisasi untuk sensor MLX90614. Anda harus memanggilnya di setup() sebelum mencoba membaca data dari sensor. Fungsi ini akan menyiapkan komunikasi I2C dan melakukan konfigurasi awal yang diperlukan agar sensor berfungsi dengan benar.

5. Fungsi loop()

C++

void loop(){
  float suhuLingkungan_mlx = baca_suhu_lingkungan_mlx(); // Memanggil fungsi untuk mendapatkan suhu lingkungan
  float suhuObjek_mlx = baca_suhu_objek_mlx();           // Memanggil fungsi untuk mendapatkan suhu objek

  Serial.print("Suhu Lingkungan: "); // Mencetak label
  Serial.print(suhuLingkungan_mlx);  // Mencetak nilai suhu lingkungan
  Serial.println(" °C");             // Mencetak satuan dan baris baru

  Serial.print("Suhu Objek: ");      // Mencetak label
  Serial.print(suhuObjek_mlx);       // Mencetak nilai suhu objek
  Serial.println(" °C");             // Mencetak satuan dan baris baru
}
  • float suhuLingkungan_mlx = baca_suhu_lingkungan_mlx();: Memanggil fungsi baca_suhu_lingkungan_mlx() dan menyimpan nilai yang dikembalikan ke variabel suhuLingkungan_mlx.
  • float suhuObjek_mlx = baca_suhu_objek_mlx();: Memanggil fungsi baca_suhu_objek_mlx() dan menyimpan nilai yang dikembalikan ke variabel suhuObjek_mlx.
  • Serangkaian perintah Serial.print() dan Serial.println() digunakan untuk menampilkan kedua nilai suhu tersebut ke Serial Monitor dalam format yang mudah dibaca. Serial.print() akan mencetak tanpa menambahkan baris baru, sementara Serial.println() akan mencetak dan kemudian memindahkan kursor ke baris berikutnya.

Cara Kerja Keseluruhan

Secara sederhana, kode ini akan melakukan hal berikut:

  1. Persiapan (setup): Mengaktifkan komunikasi serial dan menginisialisasi sensor MLX90614.
  2. Pengulangan (loop):
    • Secara terus-menerus membaca suhu lingkungan dan suhu objek dari sensor MLX90614.
    • Menampilkan kedua nilai suhu tersebut (dalam Celcius) ke Serial Monitor.
    • Karena tidak ada delay() dalam loop, pembacaan akan terjadi secepat mungkin, memberikan update suhu secara real-time.

Penting:

  • Koneksi I2C: Pastikan Anda menghubungkan pin SDA dan SCL dari modul MLX90614 ke pin SDA dan SCL pada papan Arduino Anda. Untuk Arduino Uno/Nano, ini biasanya pin A4 (SDA) dan A5 (SCL). Jangan lupa juga menghubungkan pin VCC dan GND.
  • Library: Pastikan Anda telah menginstal Adafruit_MLX90614 dan Wire library di Arduino IDE Anda.

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?