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.
Komentar Terbaru