Modul 4



Kontrol Tanaman Selada Pada Rumah Kaca

Pendahuluan [KEMBALI]

Dalam era pertanian modern, penggunaan teknologi untuk mengoptimalkan produksi tanaman semakin penting. Salah satu penerapannya adalah dalam kontrol otomatis pada rumah kaca yang menanam selada di tanah. Selada, sebagai tanaman yang sensitif terhadap perubahan lingkungan, memerlukan kondisi yang optimal untuk pertumbuhan yang baik. Faktor-faktor seperti suhu, kelembaban, pencahayaan, dan kadar nutrisi tanah harus dipantau dan diatur secara ketat. Rumah kaca dengan sistem kontrol otomatis dapat menyediakan lingkungan yang konsisten dan stabil bagi tanaman selada, memungkinkan pertumbuhan yang lebih cepat dan hasil yang lebih tinggi. Sistem ini dapat mendeteksi perubahan kondisi lingkungan secara real-time dan melakukan penyesuaian yang diperlukan, seperti mengatur suhu melalui pemanas atau pendingin, menyesuaikan tingkat kelembaban dengan irigasi otomatis, dan mengatur pencahayaan dengan lampu grow lights.

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.

TUJUAN [KEMBALI]
 1.   Membuat prototype Kontrol Tanaman Bayam pada Rumah Kaca yang dapat mempermudah dalam mengontrol kelembaban tanah dan kecukupan air pada tanaman bayam
2.   Untuk menghasilkan alat yang dapat bekerja secara otomatis berbasis mikroprosesor dan mikrokontroler

ALAT DAN BAHAN [KEMBALI]

1) Alat
1. Baterai 
 
Spesifikasi:
2) Bahan 
    1. Arduino  Uno

   Spesifikasi:

 2. LCD
   
         Spesifikasi :
  • 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
   
3. Motor DC
 
Spesifikasi:

 
     4.Motor Servo
 
Spesifikasi:

 
     5. LED
 
Spesifikasi:
datasheet - Reference to understand LED data sheet specification,  characteristic and way to use them - Electrical Engineering Stack Exchange
6. Resistor
 
Spesifikasi:
 
     7. Kapasitor
 
Spesifikasi:
 
 
     8. Induktor 
 
Spesifikasi:
 
     9. Potensiometer
 
Spesifikasi:
 

     7. Sensor
a. Sensor Touch
 
Spesifikasi:
 
b. Sensor LDR
LDR Sensor - Sari Teknologi - Robotik
Spesifikasi:
1. menggunakan tipe sensitif sensor resistensi fotosensitif
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

c. Sensor Soil Moisture

Spesifikasi:

d. Sensor DHT11

Spesifikasi:
e. Sensor Rain
Rain Sensor - Sari Teknologi - Robotik
Spesifikasi:
- Bit distribusi untuk mengatur sensitivitas
-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

DASAR TEORI [KEMBALI]

1) PWM (Pulse Width Modulation) 

PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).
 
 

·       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.

 

2) ADC (Analog to Digital Converter)

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);.

 

3) ARDUINO

 
 

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.

 

4) KOMUNIKASI
4.1 Universal Asynchronous Receiver Transmitter (UART)
UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.
 
 

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.

 

4.2 Serial Peripheral Interface (SPI)

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.

 
4.3 Inter Integrated Circuit (I2C)
Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.
 

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.

 
5) LCD 
 

 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: 

  1. 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. 
  2. clear() Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD.
  3. 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. 
  4. 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.
6) LED
 
LED adalah suaatu semikonduktor yang memancarkan cahaya,  LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati  LED. Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.
 
7) Resistor

 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

8. Motor DC

  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.

10) Sensor Touch


         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.

 

11) Sensor Soil Moisture

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

Pinout: 



Grafik Respon: 



 
12) Sensor LDR


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

 
13) Sensor DHT11
Sensor kelembaan adalah suatu alat ukur yang digunakan untuk membantu dalam proses pengukuran atau pendifinisian yang suatu kelembaban uap air yang terkandung dalam udara.

Pinout: 
Grafik:
 
14) Sensor Rain

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



   Grafik diatas merupakan invers output dari sensor hujan sebelum masuk ke converter digital



        Grafik diatas menunjukkan bahwa Output dari sensor yang telah dikonversikan ke sinyal digital, pada hujan ringan dengan 400cc/menit dan untuk hujan biasa berupa 900cc/menit.

Apabila tingkat intensitas tegangan hujan semakin kecil, maka resistansinya meningkat dan tegangan ouput semakin besar.

a) Prosedur
  1. Download library yang diperlukan pada bagian download dalam blog.     
  2. Buka proteus yang sudah diinstal untuk membuat rangkaian.
  3. Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
  4. Buka Arduino IDE yang sudah diinstal.
  5. Di Arduino IDE, pergi ke menu "File" > "Preferences".Pastikan opsi
  6. "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
  7. Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
  8. Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
  9. Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
  10. Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
  11. Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
  12. Jalankan simulasi di Proteus.
b) Hardware


c) Rangkaian Simulasi dan Prinsip kerja

Rangkaian saat mati:

Rangkaian Saat hidup:


Program Kerja:
Sistem kontrol otomatis pada greenhouse untuk tanaman bayam memanfaatkan berbagai sensor untuk memantau dan mengatur kondisi lingkungan secara real-time, memastikan lingkungan optimal bagi pertumbuhan tanaman. Berikut adalah prinsip kerja dari masing-masing sensor yang digunakan dalam sistem ini:
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. 
 
d) Flowchart dan Program

Master Arduino

 
 

 

Slave Arduino

 
 


Program Aktif Function Flowchart

    Listing Code
//MASTER 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);
}
 
//SLAVE ARDUINO
#include <Servo.h>
#include <Wire.h>

#define LAMP_PIN 11
#define FAN_PIN 10
#define WATER_PUMP_PIN 8
#define FERTILIZER_SERVO_PIN 7
#define ROOF_SERVO_PIN 6

Servo fertilizerServo;
Servo roofServo;

void setup() {
  pinMode(LAMP_PIN, OUTPUT);
  pinMode(FAN_PIN, OUTPUT);
  pinMode(WATER_PUMP_PIN, OUTPUT);
  pinMode(FERTILIZER_SERVO_PIN, OUTPUT);
  pinMode(ROOF_SERVO_PIN, OUTPUT);

  Wire.begin(9);                // Alamat Arduino Slave
  Wire.onReceive(receiveEvent); // Panggil fungsi saat menerima data
  Serial.begin(9600);
  fertilizerServo.attach(FERTILIZER_SERVO_PIN);
  roofServo.attach(ROOF_SERVO_PIN);
}

void loop() {
  // Loop kosong karena komunikasi dilakukan melalui interupsi
}

void receiveEvent(int numBytes) {
  if (numBytes >= 5) { // Pastikan semua data telah dikirim
    // Baca data dari Arduino Master
    int touchValue = Wire.read();
    int rainValue = Wire.read();
    int dht22Value = Wire.read();
    int soilMoistureValue = Wire.read();
    int ldrValue = Wire.read();

    // Kontrol output berdasarkan nilai sensor
    digitalWrite(LAMP_PIN, ldrValue > 64 ? HIGH : LOW); // 64 adalah 1 volt setelah dibagi 4
    digitalWrite(FAN_PIN, dht22Value > 28 ? HIGH : LOW);
    digitalWrite(WATER_PUMP_PIN, soilMoistureValue < 550 ? HIGH : LOW);
    if (touchValue == HIGH) {
      fertilizerServo.write(90); // Jika sensor sentuh aktif, putar servo pupuk cair
    } else {
      fertilizerServo.write(0); // Jika sensor sentuh tidak aktif, stop servo pupuk cair
    }
    if (rainValue == HIGH) {
      roofServo.write(90); // Jika sensor hujan aktif, putar servo atap
    } else {
      roofServo.write(0); // Jika sensor hujan tidak aktif, stop servo atap
    }
  }
}

e) Video Demo [KEMBALI]





f) Download File [KEMBALI]

Download Rangkaian klik disini
Download HMTL klik disini
Download Listing Program klik disini
Download Video simulasi rangkaian klik disini
Download Flowchart klik disini
Download Video Demo klik disini

  • Download Library
Download library Arduino klik disini
Download library Rain
sensor klik disini
Download library Soil Moisture sensor klik disini
Download library Touch Sensor klik disini
Download library LCD klik disini
  • Download datasheet
Download datasheet Baterai klik disini
Download datasheet Arduino UNO klik disini
Download datasheet Rain Sensor klik disini
Download datasheet Soil Moisture Sensor klik disini
Download datasheet DHT11 Sensor klik disini
Download datasheet LDR Sensor klik disini
Download datasheet Touch Sensor klik disini
Download datasheet LCD klik disini
Download datasheet LED klik disini
Download datasheet Kapasitor klik disini
Download datasheet Induktor klik disini
Download datasheet Resistor klik disini
Download datasheet Motor DC klik disini
Download datasheet Motor Servo klik disini
 
 
 
 





Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022 Oleh : Anugrah Illahi NIM. 2110951013   Dosen Pengampu : Dr. Darwison, S. T., M. T. NIDN...