Pendahuluan
Pada artikel ini, kita akan membahas cara mengakses sensor suhu tahan air DS18B20 menggunakan Arduino UNO. Sensor suhu DS18B20 merupakan salah satu sensor suhu digital yang akurat dan dapat diandalkan, Selain itu sensor ini juga sudah Waterproff jadi sangant cocok untuk keperluan project yang mengharuskna pengukuran pada cairan atau lingkungan yang sering terkena aliran air.
Komponen Yang Digunakan
Berikut adalah daftar komponen yang digunakan dalam proyek ini beserta link pembelian di Golite Store:
- Arduino UNO – Beli Disini
- Sensor Suhu DS18B20 – Beli Disini
- Kabel Jumper – Beli Disini
- Resistor 4k7 – Besi Disini
Skema Sistem

Konfigurasi pinout antara Arduino dan Sensor Suhu DS18B20 adalah sebagai berikut:
- Microcontroller -> Sensor Suhu DS18b20
- 3.3V -> Kabel Merah
- GND -> Kabel Hitam
- D2 -> Kabel Kuning / Putih
- D2 -> Kaki Kiri Resistor
- Kaki Kanan Resistor -> 3.3V
Penjelasan singkat mengenai skema sistem: kabel Merah terhubung ke port 3.3v pada Arduino, kabel Hitam ke ground pada Arduino, dan kabel Kuning / Putih ke pin D2 pada Arduino.
Resistor 4k7 ditambahkan ke dalam daftar komponen yang digunakan. Penambahan resistor ini penting untuk menstabilkan sinyal pada jalur data dari sensor. Pemilihan resistor 4k7 adalah umum digunakan dalam koneksi sensor suhu DS18B20.
Baca juga Membuat Kipas Angin Otomatis Menggunakan Arduino UNO, Mofet Dan Sensor DHT11
Program Arduino
#include <OneWire.h> #include <DallasTemperature.h> // Inisialisasi sensor suhu DS18B20 OneWire oneWire(2); // D2 pada Arduino DallasTemperature sensors(&oneWire); void setup() { Serial.begin(9600); sensors.begin(); } void loop() { sensors.requestTemperatures(); // Meminta data suhu // Membaca suhu dalam derajat Celsius float suhu = sensors.getTempCByIndex(0); // Menampilkan suhu pada Serial Monitor Serial.print("Suhu: "); Serial.print(suhu); Serial.println(" °C"); delay(1000); // Menunggu 1 detik sebelum membaca suhu lagi }
Penjelasan Program:
- Library yang Digunakan:
- Program menggunakan dua library, yaitu
OneWire
danDallasTemperature
.OneWire
digunakan untuk komunikasi satu kabel dengan sensor, sementaraDallasTemperature
digunakan untuk mengambil data suhu dari sensor.
- Program menggunakan dua library, yaitu
- Inisialisasi Sensor dan Serial Communication:
OneWire oneWire(2);
: Menginisialisasi objekoneWire
pada pin D2 Arduino sebagai jalur komunikasi satu kabel.DallasTemperature sensors(&oneWire);
: Menginisialisasi objeksensors
menggunakan jalur komunikasioneWire
.
- Setup Function:
Serial.begin(9600);
: Menginisialisasi komunikasi serial pada baud rate 9600 untuk berkomunikasi dengan Serial Monitor.sensors.begin();
: Memulai komunikasi dengan sensor suhu DS18B20.
- Loop Function:
sensors.requestTemperatures();
: Meminta sensor untuk mengukur suhu.float suhu = sensors.getTempCByIndex(0);
: Membaca suhu dalam derajat Celsius dan menyimpannya dalam variabelsuhu
.Serial.print("Suhu: ");
,Serial.print(suhu);
,Serial.println(" °C");
: Menampilkan suhu pada Serial Monitor.delay(1000);
: Menunda program selama 1 detik (1000 milidetik) sebelum melakukan pembacaan lagi, ini dilakukan untuk menghindari pembacaan suhu yang terlalu cepat dan memberikan waktu pada sensor untuk mengukur suhu dengan akurat
Program ini secara berulang membaca suhu dari sensor DS18B20 dan menampilkannya pada Serial Monitor. Hasilnya dapat diawasi melalui Serial Monitor pada Arduino IDE, dan Anda akan melihat suhu aktual yang terbaca dari sensor DS18B20 ditampilkan secara berkala.
Pastikan kamu telah mendownload library disini :
- One Wire Library : Download Disini
- DallasTemperature : Download Disini
Pengujian
Selanjutnya, kita akan melakukan pengujian. Pastikan sensor DS18B20 terhubung dengan benar ke Arduino. Setelah mengunggah program di atas ke Arduino, buka Serial Monitor pada Arduino IDE. Anda akan melihat suhu aktual yang terbaca dari sensor DS18B20 ditampilkan sesui dengan delay yang kita tuliskan pada program Arduino yaitu 1 detik atau 1000 milidetik.
Berikut adalah percobaan kedua dimana saat sinyal atau kabel data dari sensor tidak di tambah pull-up resistor 4k7 maka hasil tidak akan terbaca dengan baik.
Kesimpulan
Dengan mengikuti langkah-langkah di atas, Kita telah berhasil mengakses sensor suhu tahan air DS18B20 menggunakan Arduino. Project dapat kita update lagi, seperti pengintegrasian dengan layar LCD atau pengiriman data suhu ke server.