Indikator Suhu
Merupakan latihan lanjutan dari latihan sebelumnya mengunakan sensor DHT11 untuk mengukur suhu dan kelembaban. Pada latihan sebelumnya besarnya suhu yang terukur hanya bisa dilihat melalui serial monitor, kali ini dengan menambahkan tiga buah LED kamu dapat membuat sebuah indikator sebagai visual secara langnsung untuk menunjukan apakah suhu saat ini dingin, sedang atau cukup panas dengan melihat jumlah LED yang menyala.Kebutuhan Komponen:
— 1 x Breadboard
— 1 x DHT11
— 3 x LED
— 3 x Resistor 330Ω
— 8 x Kabel Jumper
Perakitan:
Rangkaian:
Upload Sketch:
Untuk mengisikan program ke board Arduino melalui PC/Laptop dapat menggunakan software Arduino IDE.Apabila kamu tidak mau menggunakan PC/Laptop untuk mengupload sketch/program ke board Arduino, kamu masih bisa menggunakan handphone Android untuk mengisikan program ke Arduino menggunakan aplikasi Bluino Loader, cara uploadnya pun bisa dua cara melalui USB dengan menggunakan adapter OTG atau melalui Bluetooth.
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) di bawah.
/*
11 - Indikator Suhu
Membuat program cara membaca data dari sensor suhu dan kelembaban DHT11,
kemudian menampilkannya pada Serial Monitor.
*/
#include "DHT.h" // menyertakan library untuk menggunakan sensor DHT11
#define DHTPIN 8 // pin 8 yang dihubungkan dengan sensor
#define DHTTYPE DHT11 // jenis sensor yang digunakan yaitu DHT-11
DHT dht(DHTPIN, DHTTYPE); // membuat sebuah objek untuk sensor, serta menentukan pin dan tipe sensor yg digunakan
const float baselineTemp = 30.0; // patokan suhu ruangan dalam Celcius
void setup() {
Serial.begin(115200); // memulai komunikasi dengan serial monitor
dht.begin(); // memulai komunikasi dengan sensor
// set semua pin LED sebagai output
// fungsi for() memperhemat penulisan program
for (int pinNumber = 2; pinNumber < 5; pinNumber++) {
pinMode(pinNumber, OUTPUT);
digitalWrite(pinNumber, LOW);
}
}
void loop() {
// Membaca suhu dalam Celsius (the default)
float temperature = dht.readTemperature();
// Periksa jika terjadi kegagalan dalam pembacaan dan keluar sesegara mungkin untuk membaca ulang.
if (isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C ");
// jika suhu ruangan sekarang lebih rendah dari baseline
// semua LED mati
if (temperature < baselineTemp + 2) {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
} // ijika suhu naik antara 2-4 derajat, satu LED nyala
else if (temperature >= baselineTemp + 2 && temperature < baselineTemp + 4) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
} // jika suhu naik antara 4-6 derajat, dua LED nyala
else if (temperature >= baselineTemp + 4 && temperature < baselineTemp + 6) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
} // jika suhu naik lebih dari 6 derajat, semua LED nyala
else if (temperature >= baselineTemp + 6) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
}
delay(2000);
}
0 comments:
Posting Komentar