[TUTORIAL] Menggunakan Sensor Suhu DS18B20 pada Arduino

Suhu atau Temperatur merupakan salah satu parameter yang paling favorit untuk diketahui untuk berbagai aplikasi menggunakan mikrokontroler, mulai dari aplikasi home automation, green house, memonitoring suhu server, suhu cairan, dan berbagai aplikasi keteknikan lainnya. Mari kita simak tutorial...


on Jum, 06/10/2016 - 09:13
76.408 View

Pendahuluan

Sensor DS18B20 merupakan sensor digital yang memiliki 12-bit ADC internal. Sangat presisi, sebab jika tegangan referensi sebesar 5Volt, maka akibat perubahan suhu, ia dapat merasakan perubahan terkecil sebesar 5/(212-1) = 0.0012 Volt ! Pada rentang suhu -10 sampai +85 derajat Celcius, sensor ini memiliki akurasi +/-0.5 derajat. Sensor ini bekerja menggunakan protokol komunikasi 1-wire (one-wire).

[[{"fid":"777","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"DS18B20 Arduino","field_file_image_title_text[und][0][value]":"DS18B20 Arduino"},"type":"media","link_text":null,"field_deltas":{"1":{"format":"default","field_file_image_alt_text[und][0][value]":"DS18B20 Arduino","field_file_image_title_text[und][0][value]":"DS18B20 Arduino"}},"attributes":{"alt":"DS18B20 Arduino","title":"DS18B20 Arduino","height":"255","width":"266","class":"media-element file-default","data-delta":"1"}}]]

Gambar 1. Keterangan kaki-kaki IC DS18B20

Amatilah Gambar 1. IC DS18B20 memiliki tiga kaki, yaitu GND (ground, pin 1), DQ (Data, pin 2), VDD (power, pin 3). Pada Arduino, VDD dikenal sebagai VCC. Dalam hal ini, kita asumsikan VCC sama dengan VDD. Tergantung mode konfigurasi, ketiga kaki IC ini harus dikonfigurasi terlebih dahulu. Sensor dapat bekerja dalam dua mode, yaitu mode normal power dan mode parasite power.

Pada Mode Normal, GND akan terhubung dengan ground, VDD akan terhubung dengan 5V dan DQ akan terhubung dengan pin Arduino, namun ditambahkan resistor pull-up sebesar 4,7k. Mode ini sangat direkomendasikan pada aplikasi yang melibatkan banyak sensor dan membutuhkan jarak yang panjang.

Pada Mode Parasite, GND dan VDD disatukan dan terhubung dengan ground. DQ akan terhubung dengan pin Arduino melalui resistor pull-up. Pada mode ini, power diperoleh dari power data. Mode ini bisa digunakan untuk aplikasi yang melibatkan sedikit sensor dalam jarak yang pendek. Amatilah Gambar 2.

[[{"fid":"778","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"Konfigurasi DS18B20 Arduino","field_file_image_title_text[und][0][value]":"Konfigurasi DS18B20 Arduino"},"type":"media","link_text":null,"field_deltas":{"2":{"format":"default","field_file_image_alt_text[und][0][value]":"Konfigurasi DS18B20 Arduino","field_file_image_title_text[und][0][value]":"Konfigurasi DS18B20 Arduino"}},"attributes":{"alt":"Konfigurasi DS18B20 Arduino","title":"Konfigurasi DS18B20 Arduino","height":"438","width":"557","class":"media-element file-default","data-delta":"2"}}]]

Gambar2. Konfigurasi DS18B20 dalam dua mode

Hardware

Siapkanlah sensor suhu DS18B20. Ada dua jenis packaging. Ada yang berupa single IC, ada pula yang dikemas tahan air (waterproof). Penulis merekomendasikan yang tahan air, sebab harga masih terjangkau, lebih aman secara teknis, dan lebih luas penggunaannya (dapat digunakan untuk mengukur suhu cairan). Pada tutorial kali ini, kita akan menggunakan satu buah sensor dengan konfigurasi mode parasite. Konfigurasi ini cukup mudah untuk dilakukan. Amatilah Gambar 3.

[[{"fid":"779","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"DS18B20 Arduino hardware","field_file_image_title_text[und][0][value]":"DS18B20 Arduino hardware"},"type":"media","link_text":null,"field_deltas":{"3":{"format":"default","field_file_image_alt_text[und][0][value]":"DS18B20 Arduino hardware","field_file_image_title_text[und][0][value]":"DS18B20 Arduino hardware"}},"attributes":{"alt":"DS18B20 Arduino hardware","title":"DS18B20 Arduino hardware","height":"544","width":"449","class":"media-element file-default","data-delta":"3"}}]]

Gambar 3. Konfigurasi hardware sensor suhu DS18B20

Software

Kita membutuhkan pustaka (library) untuk menggunakan sensor kita. Ada dua pilihan, yaitu install secara online atau secara offline. Jika menggunakan pilihan online, bukalah IDE Arduino kita. Carilah di Sketch -> Include Library -> Manage Libraries... . Pastikan bahwa komputer kita telah terkoneksi dengan internet. Carilah dua pustaka, yaitu OneWire dan DallasTemperature. Kemudian Install satu-per-satu. Amatilah Gambar 4.

[[{"fid":"781","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"OneWire Library Arduino","field_file_image_title_text[und][0][value]":"OneWire Library Arduino"},"type":"media","link_text":null,"field_deltas":{"4":{"format":"default","field_file_image_alt_text[und][0][value]":"OneWire Library Arduino","field_file_image_title_text[und][0][value]":"OneWire Library Arduino"}},"attributes":{"alt":"OneWire Library Arduino","title":"OneWire Library Arduino","height":"336","width":"593","class":"media-element file-default","data-delta":"4"}}]]

[[{"fid":"782","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"Dallas Temperatue Library Arduino","field_file_image_title_text[und][0][value]":"Dallas Temperatue Library Arduino"},"type":"media","link_text":null,"field_deltas":{"5":{"format":"default","field_file_image_alt_text[und][0][value]":"Dallas Temperatue Library Arduino","field_file_image_title_text[und][0][value]":"Dallas Temperatue Library Arduino"}},"attributes":{"alt":"Dallas Temperatue Library Arduino","title":"Dallas Temperatue Library Arduino","height":"332","width":"593","class":"media-element file-default","data-delta":"5"}}]]

Gambar 4. Instalasi Pustaka OneWire dan DallasTemperature

Jika ingin secara offline, unduhlah library yang ikut disertakan pada tutorial ini. Bukalah IDE Arduino, kemudian tambahkan pustaka dengan mencari: Sketch -> Include Library -> Add .ZIP Library.... Pilihlah library yang telah diunduh sebelumnya. Lakukan untuk kedua library.

Jika sudah terinstal, ketiklah program berikut:

#include <OneWire.h>
#include <DallasTemperature.h>

// sensor diletakkan di pin 2
#define ONE_WIRE_BUS 2

// setup sensor
OneWire oneWire(ONE_WIRE_BUS);

// berikan nama variabel,masukkan ke pustaka Dallas
DallasTemperature sensorSuhu(&oneWire);

float suhuSekarang;

void setup(void)
{
  Serial.begin(9600);
  sensorSuhu.begin();
}

void loop(void)
{
 
  suhuSekarang = ambilSuhu();
  Serial.println(suhuSekarang);     
  delay(2000);
}

float ambilSuhu()
{
   sensorSuhu.requestTemperatures();
   float suhu = sensorSuhu.getTempCByIndex(0);
   return suhu;   
}

Upload-lah program tersebut, dan bukalah Serial Monitor. Hasilnya adalah sebagai berikut:

29.50
29.50
29.50
29.50
29.50
29.50
29.50

Demikian tutorial kali ini. Semoga bermanfaat :)

Referensi:

Temperature Sensing using DS18B20 Digital Sensors. https://openenergymonitor.org/emon/buildingblocks/DS18B20-temperature-sensing. Diakses 10 Juni 2016 pukul 09.09 WITA.

Temperature Sensor DS18B20. https://arduino-info.wikispaces.com/Brick-Temperature-DS18B20. Diakses 10 Juni 2016 pukul 09.12 WITA.

 

Profil Penulis

User Picture
  • Member Since 8 tahun 9 bulan ago
Kusuma Wardana

MATLAB, Mikrokontroler, FPGA, Elektronika, Kontrol/Kendali, Signal Processing

I Nyoman Kusuma Wardana, yang akrab dipanggil Kusuma, lahir dan besar di Bali. Ia tinggal di Desa Wisata Ubud, dan lebih banyak melaksanakan aktivitasnya di Denpasar. Profesinya adalah sebagai staf pengajar di Jurusan Teknik Elektro, Politeknik...

Comments

Hai thor, saya mau tanya. Kok hasilnya di saya -127 ya? padahal coding dan rangkaiannya udah sama. Saya juga ikutin tutor di youtube hasilnya juga sama. Mohon balasannya. Trims

Jum, 04/17/2020 - 12:06 Link permanen

Halo,

Setau saya, kode -127 itu artinya Bad Connection, alias kabel koneksi bermasalah. Penyebabnya bisa jadi kabel putus, kabel kualitasnya terlalu jelek, bisa juga kurang kenceng masangnya atau pin longgar, bisa juga resistor tidak terpasang dengan benar. Intinya ada masalah dengan rangkaian koneksi. Silahkan dicross check dengan hati hati dan perlahan.

Semoga lempuyengnya cepat berlalu

Sen, 04/27/2020 - 09:07 Link permanen

Halo Bro,

Terimakasih untuk koreksinya, tapi setau saya, DS18B20 itu mendukung yang namanya Parasit Power. Jadi sensornya mendapatkan daya sekaligus dari bus data (kabel warna kuning). Ini tujuannya untuk simplisitas dan efisiensi biaya. Mohon dikoreksi kembali jika pengkabelan pada gambar di atas ternyata bermasalah dan menghasilkan nilai NaN / - 127

Thankyou *emo_43*

Kam, 10/01/2020 - 11:01 Link permanen

Permisi mas-mas, ini saya barusan nyoba untuk pemakaiannya juga menghasilkan nilai -127 dimana saya juga udah ngeliat youtube dkk mas, dan saya juga menggunakan nodeMCU saya udah ganti kabel, tapi ga bisa, kira-kira besarkah kemungkinan apabila tidak memakai resistor bisa menghasilkan seperti ini mas? dan apakah ada saran lain untuk melanjutkan projek yang saya lakukan? mungkin ada alternatif lain untuk sensor suhu atau gimana?

Sab, 03/13/2021 - 04:11 Link permanen