Pemrograman Elektronik dan IoT

Menggunakan Sensor Suhu DS18B20 dengan Arduino

DS18B20 adalah sensor suhu yang dibuat oleh Maxim Integrated (sebelumnya Dallas Semiconductor). Sensor suhu DS1820 sangat populer untuk proyek elektronik dan aplikasi industri karena memiliki keunggulan yaitu dirancang untuk pengukuran suhu yang akurat dengan kemampuan untuk berkomunikasi melalui protokol 1-Wire.

Fitur yang dimiliki oleh sensor suhu DS1820 adalah:

  1. Komunikasi 1-Wire: Ini memungkinkan sensor untuk berkomunikasi dengan mikrokontroler melalui hanya 1 kabel. Fitur ini sangat berguna untuk mengurangi kebutuhan wiring dalam proyek dan memungkinkan beberapa sensor berbagi jalur data yang sama.
  2. Rentang Pengukuran Suhu Luas: DS18B20 mampu mengukur suhu antara -55°C hingga +125°C
  3. Memiliki akurasi ±0.5°C dalam rentang suhu -10°C hingga +85°C.
  4. Resolusi yang Dapat Diprogram: Sensor ini menawarkan resolusi pengukuran yang dapat dipilih dari 9-bit hingga 12-bit, memberikan keseimbangan antara resolusi dan waktu konversi suhu.
  5. Miliki ID Unik 64-bit: Setiap sensor DS18B20 dilengkapi dengan kode unik 64-bit. Karena setiap sensor memiliki ID unk yang berbeda sehingga memungkinkan identifikasi yang spesifik dalam sistem yang terdiri dari banyak sensor.

Sensor suhu DS18B20 di pasaran tersedia dalam beberapa bentuk fisik berbeda untuk memenuhi kebutuhan aplikasi yang beragam.Ada tiga bentuk utama dari sensor ini yaitu:

1. TO-92

Bentuk ini mirip dengan transistor kecil dengan tiga kak. Ini adalah versi DS18B20 yang sering digunakan dalam aplikasi di mana sensor akan dipasang pada papan sirkuit cetak (PCB) atau menggunakan socket. Versi TO-92 mudah untuk disolder dan cocok untuk penggunaan dalam ruangan.

2. Waterproof

Sensor DS18B20 waterproof biasanya ditemukan dalam bentuk probe stainless steel yang panjang, dengan sensor yang tertanam di ujung probe dan kabel yang terhubung di ujung lainnya. lapisan stainless steel membuatnya tahan terhadap kelembaban, korosi, dan bahan kimia, menjadikannya ideal untuk pengukuran suhu dalam cairan atau dalam kondisi lingkungan yang keras seperti di luar ruangan, dalam sistem hidroponik, atau di dalam tangki.

3. SMD (Surface-Mount Device)

Versi SMD dari DS18B20 dirancang untuk pemasangan permukaan langsung pada PCB dan biasanya memiliki 8 pin kaki. DS18B20 tipe SMD biasanya memiliki dua jenis paket yaitu SO (Small Outline) biasanya dengan kode DS18B20Z, dan µSOP (Micro Small Outline Package) dengan kode DS18B20U. Perbedaan utama antara SO dan µSOP terletak pada ukuran fisik dan jarak antar kaki (pitch) dari paket tersebut. Tipe SO memiliki ukuran lebih besar dan jarak kaki lebih renggang.

Gambar 1 : Bentuk sensor DS18B20

Membaca sensor DS18B20 dengan arduino

Kita bisa membaca sensor DS1820 dengan menggunakan arduino. Sebelumnya ada beberapa spesifikasi sensor suhu DS18B20 yang perlu kita perhatikan:

  • Power supply : 3V – 5,5 V
  • Konsumsi arus : 1 mA
  • Range suhu : -55 sampai 1250C
  • Akurasi : ±0,5%
  • Resolusi : 9 – 12 bit
  • Waktu konversi : < 750 ms

Atau untuk lebih lengkapnya bisa kita baca Datasheet sensor DS18B20.

BACA JUGACara Menjalankan Motor Servo Menggunakan Arduino dengan dan tanpa Library

Sensor DS18B20 umumnya memiliki 3 kaki yaitu :

  • Kaki VDD dihubungkan ke power suppy dengan tegangan sebesar 3V samapi 5,5 V
  • kaki GND di hubungkan ke ground atau 0V
  • kaki DQ yaitu output data dari sensor

Gambar 2 : Pinout sensor suhu DS18B20

Jika di hubungkan dengan arduino maka kita membutuhkan 1 buah resistor pullup dengan hambatan sebesar 4k7. Resistor ini di hubungkan antara kaki DQ dengan kaki VDD. Berikut adalah contoh wiring sensor DS18B20 yang di hubungkan dengan arduino nano :

Gambar 3 : Wiring sensor DS18B20 dengan arduino

Untuk mempermudah dalam memprogram dengan arduino, kita membutuhkan 2 library yaitu OneWire dan DallasTemperature. Jika belum terinstall silahkan instal melalui LIBRARY MANAGER atau melaluiSketch -> Include Library -> Manage Libraries.

Ketik program di bawah ini pada aurduino IDE kita :

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

// Mendefinisikan pin yang terhubung ke data sensor DS18B20
#define ONE_WIRE_BUS 12

// Membuat instance dari kelas OneWire
OneWire oneWire(ONE_WIRE_BUS);

// Membuat instance dari kelas DallasTemperature
//untuk berkomunikasi dengan sensor suhu melalui objek oneWire
DallasTemperature sensors(&oneWire);

void setup(void) {
  // Menginisialisasi komunikasi serial
  Serial.begin(9600);

  // Menginisialisasi library sensor suhu
  sensors.begin();
}

void loop(void) {
  // Meminta pembacaan suhu dari sensor DS18B20
  sensors.requestTemperatures();

  //Membaca suhu dalam Celsius dari sensor pertama(indek 0)
  float temperatureC = sensors.getTempCByIndex(0);
  //Menampilkan ke serial monitor
  Serial.print("suhu dalam celcius");
  Serial.println(temperatureC);

  //Membaca suhu dalam Farenheit dari sensor pertama(indek 0)
  float temperatureF = sensors.getTempFByIndex(0);
  //Menampilkan ke serial monitor
  Serial.print("suhu dalam Farenheit");
  Serial.println(temperatureF);

  delay(1000);
}

Simpan kemudian upload program diatas ke arduino. Lihat hasilnya di serial monitor komputer, jika berhasil maka akan tampil nilai suhu yang terbaca dalam celcius maupun farenheit.

Berikut adalah link hasil simulasi Membaca Sensor DS18B20 dengan Arduino secara online di wokwi.com

Share:

0 comment:

Posting Komentar

HALO

Haloooooo

Pengikut