Pendeteksi Suhu Ruangan Dengan Sensor DS18B20

Razzi Permana Maolana

Sosial Media


1 orang menyukai ini
Suka

Summary

Rancang model dengan platform Arduino, sensor suhu DS18B20, dan buzzer. Tujuannya untuk mengontrol suhu ruangan tetap dingin. Apabila suhu ruangan dibawah parameter yang ditentukan, buzzer akan berbunyi

Description

Saya akan menjelaskan model yang saya buat untuk mengontrol suhu ruangan menggunakan sensor suhu DS18B20. 

Batasan Masalah
Sebelum menjelaskan lebih lanjut Saya akan menjelaskan batasan dari hasil kerja Saya :
1. Model saya buat di Wokwi, yaitu website untuk simulasi alat IoT dan belum dipraktikan di dunia nyata. Di Wokwi, model buatan saya menghasilkan output sesuai kemauan saya yaitu bunyi ketika suhu diluar parameter yang saya tentukan
2. karena tidak di implementasikan di dunia nyata, tidak dijelaskan penyebab kegagalan implementasi model ini
3. tujuan pembuatan model ini adalah untuk pembelajaran


Komponen
Pada percobaan model ini, saya menggunakan 3 komponen utama yaitu
1. Sensor Suhu DS18B20: Komponen ini digunakan untuk mengukur suhu ruangan. Sensor ini berkomunikasi menggunakan protokol OneWir.

2. Buzzer: Buzzer digunakan untuk memberikan peringatan suara jika suhu ruangan melebihi ambang batas tertentu.

3. Arduino: platform perangkat keras (hardware) dan perangkat lunak (software) open-source yang dirancang untuk memudahkan pengembangan prototipe perangkat elektronika. Arduino menyediakan papan mikrokontroler yang dapat diprogram dan sejumlah perangkat lunak yang mendukung pemrograman dan pengembangan perangkat keras.

4. Kabel dan Breadboard: Kabel digunakan untuk menghubungkan sensor dan buzzer ke papan Arduino. Breadboard dapat digunakan untuk menyusun sementara komponen-komponen tersebut.
 

Tujuan dan Manfaat
Tujuan dari pembuatan model ini adalah untuk mengontrol suhu ruangan dibawah 5 derajat celsius. Ini bermanfaat untuk ruangan-rungan yang memerlukan suhu selalu dingin seperti ruangan pembuatan es (freezer kulkas), ruangan penyimpan obat (kemoterapi infus dan insulin), dan lain-lain. Ketika ruangan tersebut memiliki suhu diatas 5 derajat celcius akan merusakan benda yang ruangan tersebut bekukan karena benda tersebut harus tetap dalam kondisi suhu rungan dibawah 5 derajat. Model ini diciptakan agar orang mendapatkan peringatan apabila suhu ruangan berubah diatas 5 derajat celcius. Peringatan akan dikirim dalam bentuk bunyi dari buzzer. Buzzer akan menyuarakan bunyinya sekali selama satu jam apabila suhu diatas 5 dejarat celcius. Harapannya dengan adanya model ini, membantu pekerja untuk segera mengambil tindakkan evakuasi barang-barang yang perlu suhu dingin ketika buzzer berbunyi. Selain itu model ini juga bisa menjadi parameter kerusakan alat pendingin mereka.



Kode Program dan Cara Kerja

Kode diatas adalah program Arduino yang digunakan untuk membaca suhu dari sensor DS18B20 dan memberikan peringatan suara menggunakan buzzer jika suhu melebihi 5 derajat Celsius. Berikut adalah penjelasan singkat untuk setiap bagian dari kode tersebut:
1. Include Library
include <OneWire.h> #
include <DallasTemperature.h>

Kode ini menggunakan dua library: OneWire untuk komunikasi dengan sensor OneWire, dan DallasTemperature untuk membaca suhu dari sensor DS18B20.

2. Definisi Pin dan Sensor
#define ONE_WIRE_BUS 2  // Pin data sensor DS18B20
#define BUZZER_PIN 3    // Pin buzzer

Mendefinisikan pin yang digunakan untuk komunikasi dengan sensor DS18B20 yaitu pin 2 dan pin yang digunakan untuk buzzer yaitu pin 3 pada papan arduino.

3. Inisialisasi OneWire dan DallasTemperature
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
bool alertSent = false; 
unsigned long lastAlertTime = 0;

Inisialisasi objek OneWire dan DallasTemperature untuk berkomunikasi dengan sensor DS18B20. Parameter yang diberikan adalah pin yang sudah didefinisikan pada tahap ke-2. DallasTemperature adalah bagian dari library (pustaka) Arduino yang dirancang khusus untuk mendukung sensor suhu digital DS18B20 dari Dallas Semiconductor (sekarang diakuisisi oleh Maxim Integrated). bool alertSent = false; adalah Variabel ini adalah tipe data boolean yang digunakan untuk melacak apakah peringatan suhu telah dikirimkan atau belum. Saat program dimulai, nilai awalnya adalah false, yang berarti belum ada peringatan yang dikirim. unsigned long lastAlertTime = 0; Variabel ini adalah tipe data unsigned long yang digunakan untuk menyimpan waktu terakhir kali peringatan suhu dikirimkan. Pada awalnya, nilainya diatur ke 0, yang menunjukkan bahwa belum ada peringatan yang dikirim sejak program dimulai.

4. Setup
void setup() {  Serial.begin(9600);  sensors.begin(); }

Inisialisasi komunikasi serial dan memulai sensor DS18B20. Kode ini digunakan untuk memulai komunikasi serial pada papan Arduino dengan kecepatan (baud rate) 9600 bit per detik (bps).

5. Loop
void loop() {  
sensors.requestTemperatures();  
float temperatureC = sensors.getTempCByIndex(0);
Potongan kode diatas digunakan untuk mengambil data suhu dari sensor DS18B20.

Serial.print("Temperature: ");  
Serial.print(temperatureC);  
Serial.println("°C");
Potongan kode diatas digunakan untuk menampilkan suhu pada Serial Monitor.

if (millis() - lastAlertTime >= 3600000) {    
alertSent = false;  }
Potongan kode diatas memeriksa apakah sudah satu jam sejak peringatan terakhir dikirim. Jika ya, variabel alertSent direset ke false untuk memungkinkan peringatan dikirim lagi.

if (temperatureC >= 5 && !alertSent) {   
 tone(BUZZER_PIN, 2000, 500);    
delay(1000);   
alertSent = true;        
lastAlertTime = millis();  }
Potongan kode diata memeriksa apakah suhu melebihi 5 derajat Celsius dan peringatan belum dikirim. Jika ya, buzzer dinyalakan selama 500 milidetik dan diberi jeda 1000 milidetik. Variabel alertSent diatur menjadi true, dan waktu terakhir peringatan dikirim diperbarui.
 

 delay(5000); }
Memberikan jeda selama 5 detik sebelum kembali ke awal loop. Ini membantu mengontrol seberapa sering sensor suhu dibaca dan peringatan diberikan.

Output
Ketika program dijalankan, program akan menghasilkan output pada serial monitor yaitu suhu yang ditangkap oleh sensor dan dicetak setiap penangkapan suhu selama setiap 5 detik untuk melihat kenaikan atau penurunan suhu. Apabila suhu diatas 5 celcius dan peringatan belum dikirim sebelumnya, maka buzzer akan berbunyi selama 500 milidetik dengan jeda 1000 milidetik. Proses pengecekan akan berulang setiap satu jam sekali.

Kesimpulan
Model ini dikembangkan sebagai simulasi untuk mengontrol suhu ruangan menggunakan sensor suhu DS18B20, buzzer, dan Arduino. Batasan model meliputi penggunaan platform simulasi (Wokwi), belum diimplementasikan di dunia nyata, dan tujuan pembuatan untuk pembelajaran.

Komponen utama model melibatkan sensor suhu DS18B20 untuk mengukur suhu, buzzer untuk memberikan peringatan suara, dan Arduino sebagai platform pengendali. Penggunaan kode program Arduino memungkinkan pembacaan suhu, peringatan suara jika suhu melebihi batas, dan manajemen waktu agar peringatan hanya dikirim sekali setiap satu jam.

Tujuan model ini adalah mengontrol suhu ruangan di bawah 5 derajat Celsius, memberikan peringatan suara jika suhu melebihi batas, dan bermanfaat untuk ruangan dengan kebutuhan suhu konstan. Meskipun model ini belum diimplementasikan di dunia nyata, diharapkan dapat menjadi referensi dan alat pembelajaran untuk konsep pengendalian suhu dengan Arduino dan sensor suhu.

Informasi Course Terkait
  Kategori: Internet of Things / FPGA
  Course: Embedded System Berbasis Arduino