Description

8. Dasar Pembelajaran Sensor Suhu dan Kelembaban

8. Dasar Pembelajaran Sensor Suhu dan Kelembaban

Materi:

Bab ini menjelaskan penggunaan sensor yang berhubungan dengan suhu dan Kelembaban. Termasuk dalam pembahasan di Bab ini :

  • Sensor suhu LM35DZ;
  • Sensor suhu DHT11;
  • Sensor Kelembaban tanah YL-100
  • Sensor Pendekteksi hujan

8.1 Sensor Suhu

Untuk mendapatkan informasi suhu di suatu tempat, sensor suhu diperlukan. Sensor ini menghasilk tegangan didasarkan pada suhu terukur.

Salah satu sensor suhu yang terkenal dan harganya murah adalah LM35DZ. LM35 merupakan integrated circuit (IC) yang mengandung tiga pin. Ketiga pin diperlihatkan di Gambar 8.1. Vs dihubungkankan catu daya DC 4V hingga 30V. GND dihubungkan ke ground dan Vout adalah tegangan keluaran yang terkait dengan suhu.

Gambar 8.1 LM35bZ

Ada dua pendekatan yang dapat digunakan untuk mendapatkan nilai suhu kalau menggunakan Arduino pertama adalah dengan menggunakan rumus berikut:

Suhu = 0.49 * nilai di pin analog

Hal ini didasarkan pada ADC Arduino yang memiliki presisi 10 bit.

Gambar 8.2 Hubungan LM35DZ dan Arduino

Contoh penyusunan rangkaian untuk menguji LM35DZ dapat dilihat di Gambar 8.2. Pengujian dilakukan dengan menggunakan sketch berikut: Sketch: suhu

// ——————————————–

// Contoh penggunaan LM35DZ

// untuk mengukur suhu

// ——————————————–

const int PIN_A0=0;;

void setup(),

{

// Atur kecepatan komunikasi serial

Serial.begin(9600);

}

void loop()

{

// Hitung suhu

int nilaiPin = analogRead(PIN_A0);

//Hitung suhu

float suhu = 0.49 * nilaiPin;

// Kirim ke port serial

Serial.print(“Suhu = “);

Serial.println(suhu);

delay(1000);

}

Prinsip yang mendasari sketch di atas sangatlah sederhana. Pertama-tama, inisialisasi port serial dilakukan dengan tujuan untuk menampilkan hasil pemantauan suhu di PC. Mode pin yang digunakan tidak perlu ditentukan mengingat pin analog yang dilibatkan.

Selanjutnya,nilai yang dihasilkan sensor suhu dibaca melalui:

int nilaiPin = analogRead(PIN_A0);

Perhatikan, analogRead() yang digunakan karena nilai analog yang dihasilkan oleh sensor. Berdasarkan nilai tersebut, suhu dalam derajat Celcius bisa dihitung. Pernyataan yang diperlukan untuk keperluan ini adalah:

float suhu =0.49 * nilaiPin;

Nilai suhu tersebut dikirim ke port serial melalui:

Serial.print(“Suhu = “);

Serial.print1n(suhu);

Gambar 8.4 memperlihatkan contoh hasil pengukuran suhu.

Cara pertama untuk memperoleh nilai suhu di depan sebenarnya kurang teliti. Apabila tegangan referensi yang digunakan adalah sebesar 1.1 V, ketelitian terbaik akan diperoleh (McRoberts, 2009). Tegangan referensi sebesar itu akan membuat setiap kenaikan 1 di pin analog di Arduino identik dengan 1.1 / 1024V atau sama dengan 1.0742mV. Jika 10mV menyatakan 1 derajat Celcius, setiap kenaikan sebesar 9.31 (1/1.0742) di Pin analog membuat kenaikan sebesar 1 derajat Celcius. Oleh karena itu, suhu dapat dihitung dengan

menggunakan rumus berikut:

Suhu=nilai di pin analog/9.31

Adapun untuk mengubah tegangan referensi ke 1.1V,perintah berikut digunakan:

analogReference(INTERNAL);

Contoh sketch untuk pengukuran suhu yang menggunakan tegangan referensi sebesar 1.1V seperti berikut : Sketch: suhu2

// ——————————————–

// Contoh penggunaan LM35DZ

// untuk mengukur suhu

// menggunakan referensi internal

// ——————————————–

const int PIN_A0=0;

void setup()

{

// Atur kecepatan komunikasi serial

Serial.begin(9600);

// Gunakan tegangan referensi internal

analogReference(INTERNAL);

}

void loop()

{

int nilaipin =analogRead(PIN_A0);

float suhu=nilaipin / 9.31;

Serial.print(“Suhu=”);

Serial.print1n(suhu);

delay(1000);

}

8.2 Penyajian Infortnasi Suhu Menggunakan LCD

Untuk memantau suhu, LCD dapat digunakan. Rangkaian yang diperlukan untuk keperluan in.I dapat tilihat di Gambar S.S. Rangkaian tersebut melibatkan dua resistor, berukuran 220Q dan 2,2K masing-masing Penyusunan LCD seperti yang dibahas di Bab 5.

Description Gambar 8.6 memperlihatkan contoh aktual penyusunan rangkaian pengukur suhu yang dilengkapi LCD.

Gambar 8.6 Contoh aktual rangkaian

Sketch yang digunakan untuk menguji rangkaian di atas seperti berikut : Sketch: suhulcd

// ——————————————–

// Contoh untuk menampilkan suhu di LCD

// ——————————————–

#include <LiquidCrystal.h>

const int PIN_RS =12;

int PIN_E =11;

const int PIN_DB_4=7;

const int PIN_DB_5=6;

const int PIN_DB_6=5;

const int PIN_DB_7=4;

const int PIN_A0 =0;

// Buat objek

LiquidCrystal lcd(PIN_RS, PIN_E, PIN_DB_4, PIN_DB_5, PIN_DB_6,PIN_DB_7);

void setup()

{

// Tentukan ukuran:LCD

lcd.begin(16, 2);

// Gunakan tegangan referensi internal

analogReference (INTERNAL);

}

void loop()

{

int nilaiPIN = analogRead(PIN_A0);

float suhu = nilaiPIN / 9.31;

lcd.clear();

lcd.print(“Suhu sekarang:”);

lcd.setCursor(0,1);

lcd.print(suhu);

lcd.print(” Celcius”);

delay(1000);

}

Penjelasan mengenai inisialisasi LCD dapat diperoleh di Bab 5. Adapun penyajian informasi suhu di LCD ditangani melalui:

lcd.clear();

lcd.print(“Suhu sekarang:”);

lcd.setCursor(0,1);

lcd.print(suhu);

lcd.print(” Celcius”);

perintah

lcd.clear() ;

digunakan untuk menghapus layar LCD. Selanjutnya,

lcd.print (“Suhu sekarang:”) ;

menampilkan string “Suhu sekarang: ” di baris pertama. Adapun

Icd.setCursor (0, 1) ;

menempatkan kursor di kolom pertama (nilai 0) dan baris kedua (nilai 1). Pernyataan

lcd.print(suhu) ;

menampilkan nilai suhu dan pernyataan

lcd.print(” Celcius”) ;

menampilkan string “Celcius” di samping nilai suhu.

8.3 Sensor Suhu dan Kelembapan Udara Menggunakan DHT11

DHT11 (Gambar 8.7) adalah sensor yang berguna untuk mengukur suhu dan sekaligus kelembapan udara.

Sensor ini memerlukan catu daya sebesar 3V hingga 5V DC. Pengukuran suhu adalah antara O°C dan 50°C, ‘dengan tingkat presisi ±2°C. Adapun kelembapan udara yang dapat diukur berkisar antara 20 hingga 90% dengan tingkat presisi ±5% supaya bisa diperoleh yang stabil, jarak antara dua pembacaan dilakukan paling tidak adalah satu detik.

Gambar 8.7 Sensor suhu dan kelembapan DHT11

Sensor DHTII memiliki tiga pin.

  • VCC dihubungkan ke sumber tegangan 5V.
  • DATA dihubungkan ke pin analog.
  • GND dihubungkan ke ground.

Contoh hubungan DHTII dan Arduino dapat dilihat di Gambar 8.8.

Gambar 8.8 Contoh hubungan sensor DHTII dan Arduino

Sebelum pengujian rangkaian di atas dilakukan, pustaka DHT perlu diunduh terlebih dahulu. Pustaka buatn Rob Tillaart tersebut dapat diperoleh di situs web www.hobbyist.co.nz/?q=d0cumentations/wiring-up dhtll-temp-humidity-sensor-to-your-arduino. Namun, untuk kemudahan Anda, pustaka ini disertakani CD. Hal yang perlu dilakukan adalah:

  1. Dekompresilahfi/e DHT . zip. Akan terbentuk folder bernama DHT.
  2. Pindahkan subfolder DHT ke C: \ Program Files (x86) \ Arduino\libraries (dengan asumsi, program Arduino IDE terinstal di C : \ Program Files (x86) \Arduino).
  3. Tutupiah Arduino IDE jika dalam keadaan sedang dibuka.
  4. Panggil kembali Arduino IDE supaya pustaka yang baru saja Anda tambahkan dikenali.

Sketch berikut digunakan untuk menguji rangkaian di atas:

Sketch: dht11

// ——————————————–

// Contoh penggunaan sensor DHT11

// untuk mengukur kelembaban udara

// dan suhu udara

// ——————————————–

#include <dht.h>

const int PIN_DHT = A0;

dht DHT;

void setup()

{

Serial.begin (9600);

Serial.println(“Informasi kelembaban dan suhu udara”);

}

void loop()

{

DHT.read11(PIN DHT) ;

eembaban udara = “);

delay(1000); // Diperlukan oleh DHT11

}

Pada sketch di atas,

#include <dht.h>

digunakan untuk menyertakan file dht.h (pustaka DHT yang baru saja pasang di depan). Pernyataan

const int PIN DHT = A0;

dipakai untuk mendefinisikan pin analog yang digunakan untuk membaca hasil dari sensor.

Pernyataan

dht DHT ;

ditujukan untuk membuat objek DHT yang berkelas dht. Kelas dht inilah yang berada di pustaka DHT.

Agar informasi mengenai suhu dan kelembapan udara dapat dipantau, perintah berikut diperlukan:

Serial.begin (9600) ;

Perintah tersebut untuk menginisialisasi komunikasi melalui port serial.

Di fungsi loop ( ) , pernyataan berikut digunakan untuk membaca data dari sensor:

DHT.read11 (PIN_DHT) ;

Selanjutnya, informasi mengenai suhu diperoleh melalui DHT . temperature dan informasi mengenai kelem baban udara didapat melalui DHT . humidity. Pengiriman informasi ke port serial dilakukan melalui:

Serial.print(“Kelembaban udara=“ );

Serial.print(DHT . humidity) ;

Serial.println( “%” ) ;

Serial.print(“Suhu=”);

Serial.println(DHT.temperature) ;

Contoh hasil pengujian sensor suhu dan kelembapan udara dapat dilihat di Gambar 8.9.

Gambar 8.9 Contoh hasil pemantauan suhu dan kelembapan udara

8.4 Sensor Kelembapan Tanah

Sensor kelembapan tanah berguna untuk mengukur kelembapan tanah. Sensor seperti dipakai untuk kepentingan penyiraman media tanaman secara otomatis jika kelembapan tanah ambang tertentu. Contoh sensor kelembapan tanah diperlihatkan di Gambar 8.10.

Gambar 8.10 Sensor kelembapan tanah YL-IOO

Contoh penyusunan rangkaian yang melibatkan sensor kelembapan tanah dapat dilihat di Gambar 8.11. Dua Pin pada komponen masing-masing yang terlihat di Gambar 8.10 saling dihubungkan. Selanjutnya, dilakukan hubungan seperti berikut:

  • pin VCC dihubungkan ke 5V pada Arduino;
  • pin A0 dihubungkan ke pin A0 pada Arduino;
  • pin D0 dihubungkan ke pin 12 pada Arduino;
  • pin GND dihubungkan ke pin GND pada Arduino.

Description

Gambar 8.11 Contoh penyusunan rangkaian yang melibatkan sensor kelembapan tanah

Pengujian sensor kelembapan tanah dapat dilakukan dengan menggunakan sketch berikut : Sketch: moisture

// ——————————————–

// Contoh penggunaan sensor kelembaban tanah

// ——————————————–

const int PIN_ANALOG = 0;

const int PIN_DIGITAL = 12;

void setup()

{

Serial.begin(9600);

pinMode(PIN_DIGITAL, INPUT);

}

void loop()

{

int A0=analogRead(PIN_ANALOG);

int d0=digitalRead(PIN_DIGITAL);

Serial.print(d0);

Serial.print(” – “);

Serial.print1n(A0);

delay(1000):

}

Pendefinisian pin analog dan pin digital yang diperlukan untuk menguji modul YL-IOO dilakukan melalui:

const int PIN_ANALOG 0 ; const int PIN_DIGITAL 12;

Khusus untuk pin digital, mode pin perlu diatur sebagai keluaran. Hal ini dilakukan melalui:

pinMode (PIN_DIGITAL, INPUT) ;

Pernyataan berikut di setup ( ) digunakan untuk menginisialisasi port serial:

Serial.begin (9600) •

Hal ini diperlukan mengingat hasil sensor akan dipantau di PC.

Pembacaan nilai analog dari sensor dibaca melalui:

int A0=analogRead (PIN_ANALOG) ;

Adapun nilai digital dari sensor dibaca melalui:

int d0 = digitalRead (PIN DIGITAL) ;

Selanjutnya, informasi kedua nilai tersebut dikirim ke port serial melalui pernyataan-pernyataan berikUt:

Serial.print (d0) ;

Serial.print (” – “);

Serial.printin (A0) ;

Pada pengujian, komponen yang berujung lancip ditancapkan ke tanah (Gambar 8.11 kanan). pene dapat dilakukan pada saat tanah dalam keadaan kering, setengah basah, dan basah. Contoh diperlihatkan Gambar 8.12 dan

Gambar 8.13 Contoh hasil pengujian sensor kelembapan tanah Saat tanah saat kering

Gambar 8.13 Contoh hasil pengujian sensor kelembapan tanah. Saat tanah diberi air sehingga tanah mulai basah merata

Hasil pada Gambar 8.12 dan Gambar 8.13 menunjukkan bahwa pin digital D0 memberikan nilai:

  • 1 (HIGH) kalau tanah dalam keadaan kering;
  • 0 (LOW) kalau tanah dalam keadaan basah;

Dalam praktik, nilai ambang untuk menentukan media perlu disiram atau tidak sebaiknya tidak tergantung oleh pin D0 melainkan berdasarkan pin analog A0. Dengan menggunakan nilai di pin A0, akan lebih fleksibel bagi Anda untuk memutuskan penyiraman atau tidak mengingat ada tanaman yang menyukai media basah tetapi ada pula yang menyukai media agak kering.

8.5 Sensor Pendeteksi Air

Sensor pendeteksi air dapat digunakan untuk mengukur curah hujan. Contoh sensor ini diperlihatkan di Gambar 8.14. Sensor ini memiliki 3 pin (ada pula yang memiliki 4 pin. Satu pin tambahan digunakan untuk menyatakan informasi dalam bentuk digital, yakni 0 atau 1 ). Tiga pin yang terdapat di sensor di Gambar 8.14 seperti berikut:

  • SIG : berupa keluaran yang menyatakan curah hujan. Nilai yang rendah menyatakan bahwa ada banyak air yang menyentuh sensor.
  • VCC: perlu dihubungkan ke tegangan 5V.
  • GND: dihubungkan ke ground.

Untuk menguji sensor hujan, rangkaian di Gambar 8.15 bisa disusun. Selanjutnya, pengujian dilakukan dengan menggunakan sketch hujan.

Gambar 8.15 Rangkaian untuk menghubungkan sensor hujan dan Arduino

Catatan

Pemasangan sensor ini sebaiknya dibuat miring sehingga air yang menempel di sensor segera jatuh.Hal ini diperlukan supaya sensor ini melaporkan nilai dengan akurasi tinggi.

Sketch: hujan

// ——————————————–

// Contoh penggunaan sensor air untuk mendeteksi hujan

// ——————————————–

const int PIN_A0=0;

void setup()

{

Serial.begin(9600);

}

void loop()

{

// Baca sensor

int dataSensor = analogRead(PIN_A0);

Serial.print(dataSensor);

// Cek ambang

if (dataSensor < 300)

Serial.println(“. Hujan deras”);

else

if (dataSensor <500)

Serial.println(“. Hujan biasa”);

delay (100);

}

Untuk mengujisensor air, siapkan wadah untuk menampung air, seperti terlihat di Gambar 8.16.Anda bisa mengaktifkan Serial Monitor dan kemudian lakukan percobaan untuk menjatuhkan air di permukaan sensor. Contoh hasil percobaan diperlihatkan di Gambar 8.17 hingga 8.19.

    1. Contoh pengujian sensor dengan menyiapkan wadah untuk pengguyuran air pada sensor

Description

Description

Description

 

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.