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). LibraryWire
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 (sepertireadAmbientTempC()
ataureadObjectTempC()
).Adafruit_MLX90614 mlx = Adafruit_MLX90614();
: Baris ini membuat sebuah objek dari kelasAdafruit_MLX90614
dan menamainyamlx
. Objekmlx
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 libraryAdafruit_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 libraryAdafruit_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 disetup()
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 fungsibaca_suhu_lingkungan_mlx()
dan menyimpan nilai yang dikembalikan ke variabelsuhuLingkungan_mlx
.float suhuObjek_mlx = baca_suhu_objek_mlx();
: Memanggil fungsibaca_suhu_objek_mlx()
dan menyimpan nilai yang dikembalikan ke variabelsuhuObjek_mlx
.- Serangkaian perintah
Serial.print()
danSerial.println()
digunakan untuk menampilkan kedua nilai suhu tersebut ke Serial Monitor dalam format yang mudah dibaca.Serial.print()
akan mencetak tanpa menambahkan baris baru, sementaraSerial.println()
akan mencetak dan kemudian memindahkan kursor ke baris berikutnya.
Cara Kerja Keseluruhan
Secara sederhana, kode ini akan melakukan hal berikut:
- Persiapan (
setup
): Mengaktifkan komunikasi serial dan menginisialisasi sensor MLX90614. - 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
danWire
library di Arduino IDE Anda.
untuk diskusi bisa kontak dibawah ini :

Sosial media :