MEMBUAT PENYIRAMAN TANAMAN OTOMATIS
Sensor Kelembaban Tanah
Membuat penyiraman tanaman otomatis berbasis Arduino memerlukan sebuah sensor Tanah. Sensor Tanah ini akan mengukur kelembaban pada Tanah, jika Tanah terlalu kering maka pompa akan di hidupkan dan jika Tanah sudah mengandung air dalam kondisi tertentu maka pompa akan kembali di matikan. Nah bagaimana kah sensor ini? Apakah ada?
Yaps, Sensor ini sudah tersedia di dalam berbentuk shield, jika saya uji sangat mirip cara kerja nya dengan sensor air untuk deteksi hujan. Nah, bagaimana kah cara kerja sensor ini? Sensor kelembaban Tanah ini adalah sebuah sensor dengan yang bekerja seperti resistor variable. Air yang menyentuh lempengan sensor ini akan membuat nilai konduksi semakin baik, begitu juga sebalik nya. Nilai tahanan yang berubah-ubah karena air yang mengenai sensor ini akan membuat tegangan output analog pada sensor ini akan berubah juga, makin tinggi nilai air maka nilai tegangan nya akan semakin kecil, itu hasil pengujian saya. Ketika tidak ada air yang mengenai nya, maka nilai tegangan nya akan maksimum. Tegangan VCC pada sensor ini di rekomendasikan antara lain 3.3volt – 5 volt.
Tegangan VCC pada sensor ini di rekomendasikan antara lain 3.3volt – 5 volt.
Jadi membaca sensor kelembaban Tanah ini cukup menggunakan pin ADC pada Arduino, PIN A0 sampe PIN A yang lain nya, jika Arduino UNO, PIN A0 sampai PIN A5. Nah bagaiamana kah cara membaca sensor kelembaban ini? yuk kita lihat lagi pembahasan selanjut nya?
Membaca Sensor Kelembaban dengan ADC
Sebelum kita membuat program sederhana untuk membaca sensor ini, Apakah teman-teman sudah paham dengan ADC? manfaat nya?. ADC adalah Analog to digital converter, Arti nya tegangan-tegangan analog ( tegangan variable dari 0 volt sampe batas maksimum) akan di rubah menjadi data-data digital. Contoh nya jika menggunakan ADC dengan resolusi 10bit, maka tegangan tadi akan di rubah menjadi nilai dari 0 sampe 1023.
Nah dari data ini lah yang akan kita buat sebuah logika program, jika lebih kecil dari 1000 maka pompa hidup, jika yang lain maka pompa mati. Dari penjelasan sederhana ini maka kita dapat memahami bahwa apa fungsi dari ADC itu sendiri. Jujur, sebenar nya ADC ini tidak lah sesederhana ini penjelasan nya, ada cerita register, admux, bla bla, kemudian berubah menjadi data-data digital. Tapi developer Arduino IDE menyederhana kan nya, Thanks to Arduino developer.
Sekarang, bagaiaman kah cara membaca tegangan output sensor ini, yuk kita lihat bagaimana cara pasang sensor nya ke Arduino, konfigurasi pin nya bisa di lihat pada table di bawah ini,
Sensor Kelembaban | Arduino |
Aout | A0 |
Vcc | 5v |
GND | GND |
Output sensor di atas akan kita baca melalui ADC pada PIN A0, berikut program nya,
#include <Wire.h> // I2C INTERFACE #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // alamat i2c lcd dan type lcd 16x2 void setup() { Serial.begin(9600); lcd.begin(); lcd.backlight(); pinMode(A0, INPUT_PULLUP); } void loop() { int s_soil = analogRead(A0); Serial.println(s_soil); lcd.setCursor(0,0); lcd.clear(); lcd.print("Ukur: "); lcd.print(s_soil); lcd.setCursor(0,1); delay(250); }
Data sensor yang telah di conversi oleh Arduino akan di tampilkan di LCD dengan driver I2C LCD. Tutorial menampilkan data di LCD dengan driver I2C bisa teman-teman baca pada artikel di link berikut, cukup di klik saja.https://mikroavr.com/arduino-lcd-i2c/
Nah, setelah kita membaca data nya, bagaiamana kah selanjut nya? Agar penyiraman otomatis berbasis Arduino ini berhasil kita buat? yuk kita lihat lagi di bawah ini?
Membuat Penyiraman Tanaman OTOMATIS
Agar sangat jelas bagaimana cara membuat project kecil ini, apa sajakah yang kita perlukan
- Arduino Uno
- Sensor Kelembaban Tanah
- Pompa DC 12volt
- Adaptor 12v 1A
- Relay Shield
Oke, sekarang kita hubungkan sesuai pada table berikut ini
Sensor Kelembaban | Arduino | Relay Shield |
Aout | A0 | |
Vcc | 5v | vcc |
GND | GND | GND |
D8 | In |
Perlu di perhatikan di atas adalah vcc nya relay shield, kebetulan relay nya adalah relay 5volt, maka vcc nya kita hubungkan ke 5volt, jika menggunakan 12v, maka hubungkan vcc nya ke 12volt, pada Arduino adalah di pin Vin.
yuk kita lihat program keseluruhan nya di bawah ini
#include <Wire.h> // I2C INTERFACE #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // alamat i2c lcd dan type lcd 16x2 const byte pump = 8; #define LIMIT 600 void setup() { // put your setup code here, to run once: Serial.begin(9600); lcd.begin(); lcd.backlight(); pinMode(A0, INPUT_PULLUP); pinMode(pump, OUTPUT); pinMode(LED_BUILTIN, OUTPUT); lcd.setCursor(0,0); lcd.print("PENYIRAMAN CABAI"); lcd.setCursor(0,1); lcd.print("OTOMATIS..."); delay(3000); lcd.clear(); } void loop() { // put your main code here, to run repeatedly: int s_soil = analogRead(A0); Serial.println(s_soil); if ( s_soil > LIMIT){ lcd.setCursor(0,0); lcd.clear(); lcd.print("Ukur: "); lcd.print(s_soil); lcd.setCursor(0,1); lcd.print("POMPA HIDUP.."); digitalWrite(pump, HIGH); digitalWrite(LED_BUILTIN, HIGH); Serial.println("POMPA HIDUP"); } else{ lcd.clear(); lcd.setCursor(0,0); lcd.print("Ukur: "); lcd.print(s_soil); lcd.setCursor(0,1); lcd.print("POMPA MATI..."); digitalWrite(pump, LOW); digitalWrite(LED_BUILTIN, LOW); Serial.println("POMPA MATI"); } delay(250); }
Untuk mengatur nilai kadar kelembeban Tanah, kapan pompa harus hidup, kapan pompa harus menyala, cukup teman-teman berubah nilai LIMIT pada program,
#define LIMIT 600
Program penyiram tanaman otomatis di atas sudah kami uji dan berhasil, jadi teman-teman tidak perlu ragu dengan tutorial ini, semoga bermanfaat,
Thanks