Modul 4
Kontrol Tanaman Selada Pada Rumah Kaca
Implementasi sistem kontrol pada rumah kaca untuk tanaman selada juga membantu dalam penggunaan sumber daya yang lebih efisien. Dengan teknologi ini, air dan pupuk dapat diberikan secara tepat sesuai dengan kebutuhan tanaman, mengurangi pemborosan dan dampak lingkungan. Selain itu, deteksi dini terhadap masalah potensial seperti serangan hama atau penyakit dapat dilakukan lebih cepat, memungkinkan tindakan korektif segera diambil untuk mencegah kerugian lebih lanjut. Dengan demikian, penggunaan kontrol otomatis dalam rumah kaca tidak hanya meningkatkan produktivitas dan kualitas tanaman selada, tetapi juga mendukung praktik pertanian yang berkelanjutan. Petani dapat memanfaatkan data yang dikumpulkan dari sistem ini untuk terus mengoptimalkan proses pertanian mereka, memastikan pasokan selada yang stabil dan berkualitas tinggi untuk memenuhi permintaan pasar yang terus meningkat.
2. Untuk menghasilkan alat yang dapat bekerja secara otomatis berbasis mikroprosesor dan mikrokontroler
- Tegangan operasi LCD ini adalah 4.7V-5.3V
- Ini mencakup dua baris di mana setiap baris dapat menghasilkan 16 karakter.
- Pemanfaatan arus adalah 1mA tanpa lampu latar
- Setiap karakter dapat dibangun dengan kotak 5×8 piksel
- Alfanumerik LCD alfabet & angka
- Apakah tampilan dapat bekerja pada dua mode seperti 4-bit & 8-bit
- Ini dapat diperoleh dalam Lampu Latar Biru & Hijau
- Ini menampilkan beberapa karakter yang dibuat khusus
2. keluaran komparator, sinyal bersih, bentuk gelombang bagus, kemampuan mengemudi kuat, lebih dari 15 ma.
3. dengan potensiometer yang dapat disesuaikan untuk menyesuaikan kecerahan cahaya
4. tegangan kerja 3,3 V hingga 5 V
5. format keluaran: keluaran saklar digital (0 dan 1)
6. memiliki lubang baut tetap, pemasangan mudah
7. ukuran PCB papan kecil: 3,2 cm x 1,4 cm
8. LM393, penggunaan komparator tegangan lebar
-Lubang baut tetap untuk memudahkan pemasangan
-Indikator daya, indikator LED sinyal keluaran
-Keluaran komparator, sinyalnya bersih, bentuk gelombang, kemampuan mengemudi lebih dari 15mA
- Komparator LM393 tegangan lebar
- Area papan hujan yang luas, lebih kondusif untuk mendeteksi hujan
-Papan dengan lubang posisi untuk memudahkan pemasangan
- Tetesan air hujan dan panel kontrol terpisah, mudah untuk dihubungkan dengan kabel
1) PWM (Pulse Width Modulation)
· Duty Cycle = tON / ttotal
· tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1)
· tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0)
· ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut juga dengan “periode satu gelombang”
Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite();.
PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 x 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik.
ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.
Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang diawali dengan kode A (A0- A5 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);.
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, serta tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang ke adaptor DC atau baterai untuk menjalankannya.
Setiap 14 pin digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Fungsi – fungsi tersebut beroperasi di tegangan 5 volt. Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm.
Cara Kerja Komunikasi UART :
Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudian ditransfer secara parallel ke data bus penerima.
Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroler maupun antara mikrokontroler dengan peripheral lain di luar mikrokontroler.
· MOSI : Master Output Slave Input artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.
· MISO : Master Input Slave Output artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.
· SCLK : Clock jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.
· SS/CS : Slave Select / Chip Select adalah jalur master memilih slave mana yang akan dikirimkan data.
Cara Kerja Komunikasi SPI :
Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO.
Cara Kerja Komunikasi I2C :
Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2, dan kondisi Stop.
· Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.
· Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL.
· R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave)
· ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telah diterima receiver.
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. Adapun fitur yang disajikan dalam LCD ini adalah terdiri dari 16 karakter dan 2 baris, mempunyai 192 karakter tersimpan, terdapat karakter generator terprogram, dapat dialamati dengan mode 4 bit dan 8 bit, dilengkapi dengan back light.
Proses inisialisasi pin arduino yang terhubung ke pin LCD RS, Enable, D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal (2, 3, 4, 5, 6, 7), dimana LCD merupakan variabel yang dipanggil setiap kali intruksi terkait LCD akan digunakan.
Pada Proyek Akhir ini LCD dapat menampilkan karakternya dengan menggunakan library yang bernama LiquidCrystal. Berikut ada beberapa fungsifungsi dari library LCD:
- begin() Untuk begin() digunakan dalam inisialisasi interface ke LCD dan mendefinisikan ukuran kolom dan baris LCD. Pemanggilan begin() harus dilakukan terlebih dahulu sebelum memanggil instruksi lain dalam library LCD. Untuk syntax penulisan instruksi begin() ialah sebagai berikut. lcd.begin(cols,rows) dengan lcd ialah nama variable, cols jumlah kolom LCD, dan rows jumlah baris LCD.
- clear() Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD.
- setCursor() 19 Instruksi ini digunakan untuk memposisikan cursor awal pesan text di LCD. Penulisan syntax setCursor() ialah sebagai berikut. lcd.setCursor(col,row) dengan lcd ialah nama variable, col kolom LCD, dan row baris LCD.
- print() Sesuai dengan namanya, instruksi print() ini digunakan untuk mencetak, menampilkan pesan text di LCD. Penulisan syntax print() ialah sebagai berikut.lcd.print(data) dengan lcd ialah nama variable, data ialah pesan yang ingin ditampilkan.
Resistor mempunyai nilai resistansi (tahanan) tertentu yang dapat memproduksi tegangan listrik di antara kedua pin dimana nilai tegangan terhadap resistansi tersebut berbanding lurus dengan arus yang mengalir, berdasarkan persamaan Hukum OHM :
Dimana V adalah tegangan, I adalah kuat arus, dan R adalah Hambatan.
Di dalam resistor, terdapat ketentuan untuk membaca nilai resistor yang diwakili dengan kode warna dengan ketentuan di bawah ini :
Sebagian besar resistor yang kita lihat memiliki empat pita berwarna . Oleh karena itu ada cara membacanya seperti ketentuan dibawah ini :
1. Dua pita pertama dan kedua menentukan nilai dari resistansi
2. Pita ketiga menentukan faktor pengali, yang akan memberikan nilai resistansi.
3. Dan terakhir, pita keempat menentukan nilai toleransi.
Rumus Resistor:
Seri : Rtotal = R1 + R2 + R3 + ….. + Rn
Dimana :
Rtotal = Total Nilai Resistor
R1 = Resistor ke-1
R2 = Resistor ke-2
R3 = Resistor ke-3
Rn = Resistor ke-n
Paralel: 1/Rtotal = 1/R1 + 1/R2 + 1/R3 + ….. + 1/Rn
Dimana :
Rtotal = Total Nilai Resistor
R1 = Resistor ke-1
R2 = Resistor ke-2
R3 = Resistor ke-3
Rn = Resistor ke-n
Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor. Stator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya adalah Yoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan medan magnet), ArmatureWinding (Kumparan Jangkar), Commutator (Komutator)dan Brushes (kuas/sikat arang).
Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan kumparan berhenti.
Untuk menggerakannya lagi, tepat pada saat kutub kumparan berhadapan dengan kutub magnet, arah arus pada kumparan dibalik. Dengan demikian, kutub utara kumparan akan berubah menjadi kutub selatan dan kutub selatannya akan berubah menjadi kutub utara. Pada saat perubahan kutub tersebut terjadi, kutub selatan kumparan akan berhadap dengan kutub selatan magnet dan kutub utara kumparan akan berhadapan dengan kutub utara magnet. Karena kutubnya sama, maka akan terjadi tolak menolak sehingga kumparan bergerak memutar hingga utara kumparan berhadapan dengan selatan magnet dan selatan kumparan berhadapan dengan utara magnet. Pada saat ini, arus yang mengalir ke kumparan dibalik lagi dan kumparan akan berputar lagi karena adanya perubahan kutub. Siklus ini akan berulang-ulang hingga arus listrik pada kumparan diputuskan.
9) Motor Servo
Motor servo adalah jenis motor listrik yang dirancang untuk memberikan output yang presisi dalam menyelesaikan pergerakan tertentu. Motor ini dilengkapi dengan kontroler yang memungkinkan presisi tinggi dalam mengatur posisi atau sudut rotor. Prinsip kerja motor servo didasarkan pada umpan balik atau feedback yang terus-menerus dari posisi rotor.
Prinsip kerja motor servo:
1. Umpan Balik (Feedback): Motor servo menggunakan sensor umpan balik, seperti potensiometer, enkoder, atau resolver, untuk terus memonitor posisi atau sudut rotor.
2. Kontroler:
· Kontroler servo menerima sinyal perintah untuk mencapai posisi tertentu.
· Kontroler membandingkan posisi aktual (yang diberikan oleh sensor umpan balik) dengan posisi yang diminta.
3. Error Signal:
· Jika terdapat perbedaan antara posisi aktual dan yang diminta, tercipta sinyal kesalahan (error signal).
4. Sinyal Penggerak (Drive Signal):
· Kontroler menghasilkan sinyal penggerak yang disesuaikan berdasarkan error signal.
· Sinyal penggerak mengontrol daya yang disuplai ke motor untuk mengoreksi perbedaan posisi.
5. Pergerakan Presisi:
· Motor servo merespons dengan mengubah posisi rotor untuk mengurangi error posisi.
· Proses ini berlanjut sampai posisi yang diminta tercapai.
Motor servo sering digunakan dalam aplikasi yang membutuhkan presisi tinggi, seperti robotika, peralatan CNC (Computer Numerical Control), peralatan audio profesional, dan banyak lagi. Keunggulan motor servo meliputi kemampuan untuk mengontrol kecepatan, torsi, dan posisi dengan sangat presisi, membuatnya ideal untuk aplikasi yang memerlukan akurasi dan kontrol yang tinggi.
Digital Touch Sensor inilah salah satu saklar modern. Digital Touch Sensor merupakan sebuah modul sensor yang berfungsi seperti tombol/saklar, namun cara penggunaanya hanya perlu dengan menyentuhnya menggunakan jari kita. Pada saat disentuh oleh jari, sensor akan mendeteksi aliran arus listrik pada tubuh manusia karena tubuh manusia dapat mengalirkan listrik. Data akan berlogika 1 (HIGH) saat disentuh oleh jari dan akan berlogika 0 (LOW) saat tidak disentuh.
Digital touch sensor dapat digunakan untuk switching suatu alat atau sistem. Seperti untuk menghidupkan lampu, menghidupkan motor, menyalakan sistem keamanan, dan lain-lain.
Grafik respon sensor :
Digital touch sensor dapat digunakan untuk switching suatu alat atau sistem. Seperti untuk menghidupkan lampu, menghidupkan motor, menyalakan sistem keamanan, dan lain-lain.
Soil Moisture Sensor merupakan module untuk mendeteksi kelembaban tanah, yang dapat diakses menggunakan microcontroller seperti arduino.Sensor kelembaban tanah ini dapat dimanfaatkan pada sistem pertanian, perkebunan, maupun sistem hidroponik mnggunakan hidroton.
Soil Moisture Sensor dapat digunakan untuk sistem penyiraman otomatis atau untuk memantau kelembaban tanah tanaman secara offline maupun online. Sensor yang dijual pasaran mempunyai 2 module dalam paket penjualannya, yaitu sensor untuk deteksi kelembaban, dan module elektroniknya sebagai amplifier sinyal.
Jika menggunakan pin Digital Output maka keluaran hanya bernilai 1 atau 0 dan harus inisalisasi port digital sebagai Input (pinMode(pin, INPUT)). Sedangkan jika menggunkan pin Analog Output maka keluaran yang akan muncul adalah sebauah angka diantara 0 sampai 1023 dan inisialisasi hanya perlu menggunkan analogRead(pin).
CARA KERJA SENSOR
Pada
saat diberikan catudaya dan disensingkan pada tanah, maka nilai Output
Analog akan berubah sesuai dengan kondisi kadar air dalam tanah.
Pada saat kondisi tanah :
- Basah : tegangan output akan turun
- Kering : tegangan output akan naik
Tegangan tersebut dapat dicek menggunakan voltmeter DC. Dengan pembacaan pada pin ADC pada microcontroller dengan tingkat ketelitian 10 bit, maka akan terbaca nilai dari range 0 – 1023. Sedangkan untuk Output Digital dapat diliat pada nyala led Digital output menyala atau tidak dengan mensetting nilai ambang pada potensiometer.
- Kelembaban tanah melebihi dari nilai ambang maka led akan padam
- Kelembaban tanah kurang dari nilai ambang maka led akan menyala
LDR (Light Dependent Resistor)
adalah salah satu jenis resistor yang dapat mengalami perubahan
resistansinya apabila mengalami perubahan penerimaan cahaya. Modul
sensor cahaya bekerja manghasilkan output yang mendeteksi nilai
intensitas cahaya. Perangkat ini sangat cocok digunakan untuk project
yang berhubungan dengan cahaya seperti nyala mati lampu.
Spesifikasi :
- 1. Supply : 3.3 V – 5 V (arduino available)
- 2. Output Type: Digital Output (0 and 1)
- 3. Inverse output
- 4. Include IC LM393 voltage comparator
- 5. Sensitivitasnya dapat diatur
- 6. Dimensi PCB size: 3.2 cm x 1.4 cm
Modul sensor cahaya ini memudahkan Anda dalam menggunakan sensor LDR (Light Dependent Resistor) untuk mengukur intensitas cahaya. Modul LDR ini memiliki pin output analog dan pin output digital dengan label AO dan DO pada PCB. Nilai resistansi LDR pada
pin analog akan meningkat apabila intensitas cahaya meningkat dan
menurun ketika intensitas cahaya semakin gelap. Pada pin digital, pada
batas tertentu DO akan high atau low, yang dikendalikan sensitivitas nya
menggunakan on-board potensiometer.
• Input Voltage: DC 3.3V - 5V
• Output: Digital - Sensitivitas bisa diatur, dan analog
• Ukuran PCB : 33 mm x 15 mm
LDR atau Light Dependent Resistor merupakan
salah satu komponen jenis resistor dengan nilai resistansi yang terus
berubah sesuai intensitas cahaya yang mengenai sensor. Semakin banyak
cahaya yang mengenai sensor LDR, maka akan semakin menurun nilai
resistansinya. Nah, semakin sedikit cahaya yang mengenai sensor (gelap),
maka nilai resistansinya akan semakin besar, jadi arus listrik yang
mengalir akan terhambat.
Pada umumnya, sensor LDR mempunyai
nilai resistansi sebesar 200 KOhm di tengah kegelapan dan akan turun
menjadi 500 Ohm saat terkena banyak cahaya. Oleh karena itu, menjadi hal
biasa apabila komponen elektronika yang peka cahaya ini sering
digunakan untuk lampu alarm, kamar tidur, penerangan jalan dan lain
sebagainya.
LDR memiliki
peran sebagai sensor cahaya di dalam aneka rangkaian elektronika
seperti saklar otomatis berdasarkan cahaya. Jadi jika sensor terkena
cahaya, maka arus listrik akan mengalir (ON) dan jika sensor berada di
dalam kondisi minim cahaya alias gelap, maka aliran listrik akan
terhambat (OFF). LDR sering digunakan untuk sensor lampu kamar tidur, penerangan jalan otomatis, alarm dan lain sebagainya.
Cara kerja sensor LDR
LDR
dapat dipasang pada aneka rangkaian elektronika untuk memutuskan dan
menyambungkan aliran listrik berdasarkan cahaya. Semakin banyak cahaya
yang mengenai LDR, maka nilai resistansinya akan menurun. Semakin
sedikit cahaya yang mengenai LDR, maka nilai resistansinya akan
meningkat.
Grafik Sensor LDR terhadap intensitas cahaya
LDR (Light Dependent Resistor) adalah salah satu jenis resistor yang dapat mengalami perubahan resistansinya apabila mengalami perubahan penerimaan cahaya. Modul sensor cahaya bekerja manghasilkan output yang mendeteksi nilai intensitas cahaya. Perangkat ini sangat cocok digunakan untuk project yang berhubungan dengan cahaya seperti nyala mati lampu.
Spesifikasi :
- 1. Supply : 3.3 V – 5 V (arduino available)
- 2. Output Type: Digital Output (0 and 1)
- 3. Inverse output
- 4. Include IC LM393 voltage comparator
- 5. Sensitivitasnya dapat diatur
- 6. Dimensi PCB size: 3.2 cm x 1.4 cm
Modul sensor cahaya ini memudahkan Anda dalam menggunakan sensor LDR (Light Dependent Resistor) untuk mengukur intensitas cahaya. Modul LDR ini memiliki pin output analog dan pin output digital dengan label AO dan DO pada PCB. Nilai resistansi LDR pada pin analog akan meningkat apabila intensitas cahaya meningkat dan menurun ketika intensitas cahaya semakin gelap. Pada pin digital, pada batas tertentu DO akan high atau low, yang dikendalikan sensitivitas nya menggunakan on-board potensiometer.
• Input Voltage: DC 3.3V - 5V
• Output: Digital - Sensitivitas bisa diatur, dan analog
• Ukuran PCB : 33 mm x 15 mm
LDR atau Light Dependent Resistor merupakan salah satu komponen jenis resistor dengan nilai resistansi yang terus berubah sesuai intensitas cahaya yang mengenai sensor. Semakin banyak cahaya yang mengenai sensor LDR, maka akan semakin menurun nilai resistansinya. Nah, semakin sedikit cahaya yang mengenai sensor (gelap), maka nilai resistansinya akan semakin besar, jadi arus listrik yang mengalir akan terhambat.
Pada umumnya, sensor LDR mempunyai nilai resistansi sebesar 200 KOhm di tengah kegelapan dan akan turun menjadi 500 Ohm saat terkena banyak cahaya. Oleh karena itu, menjadi hal biasa apabila komponen elektronika yang peka cahaya ini sering digunakan untuk lampu alarm, kamar tidur, penerangan jalan dan lain sebagainya.
LDR memiliki peran sebagai sensor cahaya di dalam aneka rangkaian elektronika seperti saklar otomatis berdasarkan cahaya. Jadi jika sensor terkena cahaya, maka arus listrik akan mengalir (ON) dan jika sensor berada di dalam kondisi minim cahaya alias gelap, maka aliran listrik akan terhambat (OFF). LDR sering digunakan untuk sensor lampu kamar tidur, penerangan jalan otomatis, alarm dan lain sebagainya.
Cara kerja sensor LDR
LDR dapat dipasang pada aneka rangkaian elektronika untuk memutuskan dan menyambungkan aliran listrik berdasarkan cahaya. Semakin banyak cahaya yang mengenai LDR, maka nilai resistansinya akan menurun. Semakin sedikit cahaya yang mengenai LDR, maka nilai resistansinya akan meningkat.
Grafik Sensor LDR terhadap intensitas cahaya
Sensor Hujan FC-37 ini bilamana terkena hujan maka akan meningkatkan resistansinya sehingga tegangan output yang dikeluarkan oleh sensor ini akan semakin kecil bila tingkat intensitas hujan semakin tinggi.
Rain Sensor ini memiliki teori mendasar yang diambil dari Resistive Humadity Sensor, dimana sensor ini tersusun secara paralel dari konduktor-konduktor yang diletakan pada sebuah papan film pada jarak tertentu, dengan kata lain dengan tersusunnya konduktor-konduktor tersebut pada jarak yang telah ditentukan maka seolah-olah kita memberikan resistansi yang besar bagi arus listrik yang mengalir pada konduktor-konduktor tersebut, berdasarkan rumus V = IR, kita dapat memainkan tegangan dengan resistasi yang berubah-ubah tersebut. Bentuk gambar papan film seperti berikut :
Prinsip kerja dari Film board ini- Ketika konduktor-konduktor yang tersusun secara paralel tersebut terkena mengenai air, maka arus listrik yang mengalir akan lebih mudah dibandingkan tidak ada air, karena celah-celah yang diberikan kepada konduktor-konduktor tersebut berkurang sehingga resistanis yang awalnya cukup besar menjadi berkurang sesuai dengan kadar air yang tersentuh konduktor-konduktor papan film tersebut
- Semakin banyak air yang tersentuh oleh konduktor-konduktor papan film tersebut, maka semakin kecil pula resistansinya, sehingga berdasarkan Hukum Khirchoff :
V = I . R
Tegangan yang dihasilkan semakin kecil, dan begitu sebaliknya.
Grafik Sensor
- Download library yang diperlukan pada bagian download dalam blog.
- Buka proteus yang sudah diinstal untuk membuat rangkaian.
- Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
- Buka Arduino IDE yang sudah diinstal.
- Di Arduino IDE, pergi ke menu "File" > "Preferences".Pastikan opsi
- "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
- Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
- Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
- Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
- Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
- Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
- Jalankan simulasi di Proteus.
Sensor soil digunakan untuk mengukur kelembaban tanah, yang merupakan indikator utama kebutuhan air tanaman. Sensor ini terus-menerus memantau tingkat kelembaban tanah dan mengirimkan data ke sistem. Jika nilai kelembaban tanah yang terbaca lebih dari 700, sistem akan menampilkan kondisi tanah kering pada LCD, mengindikasikan bahwa tanaman membutuhkan penyiraman. Sebaliknya, jika nilai kelembaban tanah kurang dari atau sama dengan 700, sistem akan menampilkan kondisi tanah basah, menunjukkan bahwa kelembaban tanah masih cukup untuk tanaman.
Sensor DHT11 berfungsi untuk memantau suhu udara di dalam greenhouse. Sensor ini mengukur suhu secara berkala dan mengirimkan data ke sistem. Jika suhu udara yang terukur kurang dari 28°C, sistem akan mematikan kipas pendingin untuk menghemat energi dan menjaga suhu stabil. Namun, jika suhu udara lebih dari atau sama dengan 28°C, sistem akan menghidupkan kipas pendingin secara otomatis untuk menurunkan suhu dan menjaga lingkungan yang nyaman bagi tanaman bayam.
Rain sensor digunakan untuk mendeteksi keberadaan hujan di luar greenhouse. Sensor ini memantau intensitas curah hujan dan mengirimkan data ke sistem. Jika intensitas hujan yang terdeteksi lebih atau sama dengan 550, sistem akan menutup atap greenhouse secara otomatis untuk melindungi tanaman dari hujan berlebih yang dapat merusak tanaman atau mengganggu kelembaban tanah yang sudah diatur.
LDR (Light Dependent Resistor) berfungsi untuk mengukur intensitas cahaya yang masuk ke dalam greenhouse. Sensor ini sangat penting untuk memastikan tanaman bayam mendapatkan cahaya yang cukup untuk proses fotosintesis. Berdasarkan data intensitas cahaya yang terdeteksi oleh LDR, sistem dapat menyesuaikan pencahayaan dalam greenhouse. Jika intensitas cahaya kurang dari kebutuhan tanaman, sistem dapat menyalakan lampu tambahan untuk memastikan tanaman mendapatkan cahaya yang cukup.
Touch sensor memungkinkan adanya interaksi manual yang lebih efisien dan user-friendly untuk kontrol sistem. Sensor ini memberikan kemampuan kepada pengguna untuk melakukan kontrol manual pada sistem, seperti menghidupkan atau mematikan perangkat tertentu dengan sentuhan sederhana. Hal ini memberikan fleksibilitas tambahan dan kemudahan dalam pengoperasian sistem, memungkinkan pengguna untuk melakukan penyesuaian cepat sesuai kebutuhan.
Secara keseluruhan, dengan kombinasi sensor soil, DHT11, rain sensor, LDR, dan touch sensor, sistem kontrol otomatis pada greenhouse dapat memantau dan mengatur kelembaban tanah, suhu udara, intensitas cahaya, dan proteksi dari hujan secara real-time. Sistem ini memastikan kondisi lingkungan yang optimal untuk pertumbuhan tanaman bayam, memaksimalkan efisiensi dan produktivitas dalam pengelolaan greenhouse.
Master Arduino
Slave Arduino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); // menginisialisasi objek lcd dari kelas LiquidCrystal_I2
// 0x27 adalah alamat I2C dari layar LCD.
// 20 adalah jumlah kolom pada layar LCD.
// 4 adalah jumlah baris pada layar LCD.
#define SOIL A0
#define DHT A2
#define RAIN A1 //mendefinisikan pin pin analog dan digital
#define TOUCH 2
#define LDR 7
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
lcd.init();
lcd.backlight(); //Deklarasi pin A0 -A3 dan pin 8 sebagai INPUT
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(7, INPUT);
pinMode(2, INPUT);
lcd.begin(16, 2); //Dimensi LCD yang digunakan
Serial.begin(9600); //Set baud rate 9600 (baud rate standar)
}
void loop() //Semua kode dalam fungsi ini dieksekusi berulang
{
int nilaiRAIN;
int nilaiSOIL;
int nilaiDHT; //mendeklarasikan variabel bertipe integer yang
int nilaiTOUCH; //untuk menyimpan nilai yang dibaca sensor
int nilaiLDR;
nilaiDHT = analogRead(DHT); //membaca nilai analog dari sensor water
if (nilaiDHT < 28);
{
Serial.write("1");
delay(100); //jeda atau delay 100ms
}
if (nilaiDHT >= 28);
{
Serial.write ("2");
delay(100);
}
//SOIL
nilaiSOIL = analogRead(SOIL); //membaca nilai analog dari sensor soil
if (nilaiSOIL > 700) {
Serial.write("3"); //mengirim kondisi 1 melalui komunikasi bahwa tanah kering
delay(100);
//lcd.clear();
lcd.setCursor(0, 0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Kering"); //Menampilkan text pada LCD
}
if(nilaiSOIL<=700) {
Serial.write("4"); //mengirim kondisi 3 melalui komunikasi bahwa tanah basah
delay(100);
//lcd.clear();
lcd.setCursor(0, 0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Basah."); //Menampilkan text pada LCD
}
delay(200);
//RAIN
nilaiRAIN = analogRead(RAIN); //membaca nilai analog dari sensor rain
if(nilaiRAIN <550) {
Serial.write("5"); // mengirim kondisi 2 melalui komunikasi bahwa keadaan ada hujan
delay(100);
}
if(nilaiRAIN>=550) {
Serial.write("6"); //mengirim kondisi 6 melalui komunikasi bahwa keadaan tidak ada hujan
delay(100);
}
nilaiTOUCH = digitalRead(TOUCH); //membaca nilai digital dari sensor touch
if (digitalRead(TOUCH) == HIGH) { //mengecek apakah sensor high atau low
Serial.write("7"); // Mengirimkan sinyal ke Slave Arduino kondisi 7 bahwa Touch Sensor aktif
delay(100);
}
if (digitalRead(TOUCH) == LOW) { //mengecek apakah sensor high atau low
Serial.write("8"); // Mengirimkan sinyal ke Slave Arduino kondisi 7 bahwa Touch Sensor aktif
delay(100);
}
nilaiLDR = digitalRead(LDR); //membaca nilai analog dari sensor LDR
if (digitalRead(LDR) == HIGH) { //mengecek apakah sensor high atau low
Serial.write("9"); // Mengirimkan sinyal ke Slave Arduino kondisi 8 bahwa LDR Sensor aktif untuk menutup atap
delay(100);
}
if (digitalRead(LDR) == LOW) { //mengecek apakah sensor high atau low
Serial.write("#"); // Mengirimkan sinyal ke Slave Arduino kondisi 8 bahwa LDR Sensor aktif untuk menutup atap
delay(100);
}
delay(100);
}
#include <Servo.h> //memasukkan library pada program
Servo servorain; //mendeklarasikan objek servo tutup atap
Servo servopupuk; //sda mengeluarkan air
//untuk motor DC
#define in1 2 // Deklarasi pin 2 sebagai input 1
#define in2 4 // Deklarasi pin 3 sebagai input 2
#define in3 6 // Deklarasi pin 2 sebagai input 1
#define in4 7 // Deklarasi pin 3 sebagai input 2
#define led 12
#define duration 2000 // Deklarasi durasi 2000 ms lama waktu motor dc berputar
int data; //mendeklarasikan variabel integer data, untuk menyimpan data yang dibaca sensor
void setup() // Semua kode dalam fungsi ini dieksekusi sekali
{
servopupuk.attach(3); //menginisiasi servo dan menghubungkan ke pin 10
servorain.attach(5); //menginisiasi servo dan menghubungkan ke pin 9
pinMode(in1, OUTPUT); // Deklarasi in1 sebagai OUTPUT
pinMode(in2, OUTPUT); // Deklarasi in2 sebagai OUTPUT
pinMode(in3, OUTPUT); // Deklarasi in1 sebagai OUTPUT
pinMode(in4, OUTPUT);
pinMode(led, OUTPUT);
Serial.begin(9600); // Set baud rate 9600
}
void loop() // Semua program dalam fungsi ini dieksekusi berulang
{
if (Serial.available() > 0) //memeriksa apakah ada data diterima dari master
{
data = Serial.read();
if (data == '1')
{
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
else if (data == '2')
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
}
else if (data == '3')
{
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
else if (data == '4')
{
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
else if (data == '5') {
servorain.write(90);
delay(100);
}
else if (data == '6') {
servorain.write(0);
delay(100);
}
else if (data == '7')
{
servopupuk.write(90);
delay(100); //
}
else if (data == '8')
{
servopupuk.write(0);
delay(100); //
}
else if (data == '9')
{
digitalWrite(led, 0);
delay(10); //
}
else if (data == '#')
{
digitalWrite(led, 1);
delay(10); //
}
}
}
f) Download File [KEMBALI]
Download Rangkaian klik disiniDownload HMTL klik disini
Download Listing Program klik disini
Download Video simulasi rangkaian 1 klik disini
- Download Library
Download library Rain sensor klik disini
- Download datasheet
Download datasheet Soil Moisture Sensor klik disini