Kamis, 13 Juni 2024

M4




"KONTROL TANAMAN SAWI PADA HIDPROPONIK FARM"


1. Pendahuluan
 [Kembali]

Teknologi pertanian modern telah berkembang pesat dalam beberapa dekade terakhir, menghadirkan berbagai inovasi yang bertujuan untuk meningkatkan efisiensi, produktivitas, dan keberlanjutan. Salah satu metode yang semakin populer adalah hidroponik, yaitu metode bercocok tanam tanpa tanah yang menggunakan larutan nutrisi sebagai media tanam. Hidroponik menawarkan berbagai keunggulan, seperti penggunaan air yang lebih efisien, kontrol lingkungan yang lebih baik, dan potensi hasil panen yang lebih tinggi. Di tengah-tengah perkembangan ini, kontrol tanaman secara otomatis menjadi elemen penting untuk mencapai hasil yang optimal.

Proyek "Kontrol Tanaman Sawi pada Hidroponik Farm" menggunakan mikrokontroler Arduino adalah salah satu upaya untuk mengintegrasikan teknologi dengan pertanian modern. Dengan memanfaatkan berbagai sensor dan aktuator yang dikendalikan oleh Arduino, sistem ini dapat mengotomatisasi berbagai aspek pertumbuhan tanaman sawi, mulai dari penyiraman, kelembapan, keasaman tanah, hingga pengendalian suhu. Hal ini tidak hanya meningkatkan efisiensi tetapi juga memungkinkan petani untuk memantau dan mengontrol kondisi pertanian dengan lebih akurat dan real-time.

2. Tujuan [Kembali]

1.     Memahami penggunaan mikroprosesor dan mikrokontroler dalam pembuatan prototipe.

2.     Menciptakan perangkat yang dapat beroperasi secara oromatis dengan menggunakan mikroprosesor dan mikrokontroler sebagai dasar sistemnya.


3. Alat dan Bahan [Kembali]

1.     Arduino 



2.     Touch Sensor

3.     Water Sensor 


4. PH Sensor

5. Temperature Sensor(DHT11)


6. Rain Sensor



7. Motor DC



8. Motor Servo



9. Battery



10. Motor Driver (L293D)



11. LCD



12. Kabel Jumper



13. Buzzer


14 Motor pump



4. Dasar Teori [Kembali]

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


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

2.     Mikrokontroler

 

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.

1.     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.1.  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.2.  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.     Sensor

a.     Touch Sensor



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.

 

Spesifikasi :

 

·       Tegangan catu daya VCC                       : 2 - 5 V

·       Tegangan keluaran tinggi VOH            : 0.8VCC

·       Tegangan keluaran rendah VOL          : 0.3VCC

·       Arus pin keluaran (@ VCC = 3V, VOL = 0.6V) : 8mA

·       Arus pin keluaran (@ VCC = 3V, VOH = 2.4V) : 4mA

·       Waktu respon (mode daya rendah)  : 220mS

·       Waktu respon (mode sentuh)             : 60mS

·       Tegangan operasi                                    : 3.3V- 5 V

 

Pin Out:

 

·       Pin VCC

·       Pin GND

·      Pin OUT




b.     Water Sensor



  Water sensor adalah controller yang bisa mendeteksi volume air, tinggi air, serta kualitas air di dalam tangki, sungai, danau, dan sejenisnya dengan akurat dan mudah. Sensor ini merupakan perangkat yang bisa mematikan atau mengobarkan pompa air secara otomatis andai air mulai berakhir atau sudah nyaris penuh.

 

Jumlah Pin pada Sensor ini berjumlah 3 Yaitu :

1.      Pin Negatif (-)

2.      Pin Positif (+)

3.      Pin Data (S)



     CPH Sensor


    pH merupakan suatu parameter yang digunakan untuk menyatakan tingkat keasaman atau basa yang dimiliki oleh suatu zat, larutan atau benda. Kadar pH diukur pada skala 0 sampai 14.

       Dapat dilihat pada gambar diatas skala pH netral memiliki sifat basa sedangkan nilai pH netral memiliki nilai pH , bila nilai pH >7 menunjukan zat tersebut memiliki sifat basa sedangkan nilai pH < 7 menunjukan derajat kebasaan tertinggi. 

 

Spesifikasi Sensor Asam 

       Pada perencanaa sensor pH yang akan digunakan adalah jenis Elektroda

(SKU : SEN0161) dari DF Robot dengan spesifikasi sebagai berikut : 

- Daya Modul : 5V

- Ukuran Modul : 43mm x 32mm

- Jarak pengukuran : 0-14.0 pH

- Pengukuran Suhu : 0-60 ºC

- Akurasi : ± 0.1pH (25ºC)

- Waktu tanggap : < 1 menit

- Ph Sensor dengan Kabel BNC

- Antarmuka pH 2.0 3 pin

- LED Indikator Data

 

 

Prinsip Kerja Sensor Ph 

 

    Prinsip kerja utama sensor pH meter terletak pada probe elektroda kaca (glass electrode) dengan jalan mengukur jumlah ion H3O+ di dalam larutan. Ujung elektroda kaca setebal 0,1 mm yang berbentuk bulat (bulb). Bulb ini dipasangkan dengan silinder kaca non-konduktor atau plastic memanjang diisi dengan larutan HCL. Didalam larutan HCL, terendam sebuah kawat elektrode panjang berbahan perak yang pada permukaannya terbentuk senyawa setimbang AgCL,kostantannya jumlah larutan HCL pada sistem ini membuat electrode Ag/AgCL memiliki nilai potemsial stabil. 

    

d. Temperature Sensor  (DHT11)




DHT11 adalah sensor digital berbiaya rendah untuk mendeteksi suhu dan kelembapan. Sensor ini dapat dengan mudah dihubungkan dengan pengontrol mikro apa pun seperti Arduino, Raspberry Pi, dll. Untuk mengukur kelembapan dan suhu secara instan.

Sensor kelembaban dan suhu DHT11 tersedia sebagai sensor dan modul. Perbedaan antara sensor dan modul ini adalah resistor pull-up dan LED power-on. DHT11 adalah sensor kelembaban relatif. Untuk mengukur udara sekitar sensor ini menggunakan termistor dan sensor kelembaban kapasitif.

Prinsip Kerja Sensor DHT11

Sensor DHT11 terdiri dari elemen penginderaan kelembaban kapasitif dan termistor untuk penginderaan suhu. Kapasitor penginderaan kelembapan memiliki dua elektroda dengan substrat penahan kelembapan sebagai dielektrik di antara keduanya. Perubahan nilai kapasitansi terjadi seiring dengan perubahan tingkat kelembapan. IC mengukur, mengolah nilai resistansi yang diubah ini dan mengubahnya menjadi bentuk digital.

Untuk mengukur suhu sensor ini menggunakan termistor koefisien Suhu Negatif yang menyebabkan nilai resistansinya menurun seiring dengan kenaikan suhu. Untuk mendapatkan nilai resistansi yang lebih besar bahkan untuk perubahan suhu terkecil sekalipun, sensor ini biasanya terbuat dari keramik atau polimer semikonduktor.

Kisaran suhu DHT11 adalah dari 0 hingga 50 derajat Celcius dengan akurasi 2 derajat. Kisaran kelembaban sensor ini adalah 20 hingga 80% dengan akurasi 5%. Tingkat pengambilan sampel dari sensor ini adalah 1Hz, yaitu memberikan satu pembacaan untuk setiap detik. DHT11 berukuran kecil dengan tegangan operasi 3 hingga 5 volt. Arus maksimum yang digunakan saat mengukur adalah 2,5mA.

Spesifikasi:

·       Tegangan operasi 3.5V hingga 5.5V

·       Arus operasi : 0,3mA (pengukuran) 60uA (siaga)

·       Keluaran: Data serial

·       Kisaran Suhu: 0°C hingga 50°C

·       Kisaran Kelembapan: 20% hingga 90%

·       Resolusi: Suhu dan Kelembapan keduanya 16-bit

DHT11 juga memiliki Termistor NTC untuk mengukur suhu. Termistor adalah resistor termal yang resistansinya sangat bergantung pada suhu. Istilah “NTC” berarti “Koefisien Suhu Negatif” yang berarti resistansinya menurun seiring dengan meningkatnya suhu.









c. Rain Sensor


Sensor hujan adalah salah satu jenis perangkat switching yang digunakan untuk mendeteksi curah hujan. Cara kerjanya seperti saklar dan prinsip kerja sensor ini adalah, setiap kali terjadi hujan maka saklar akan tertutup normal.

 

Modul Sensor Hujan

Modul/papan sensor hujan ditunjukkan di bawah ini. Pada dasarnya, papan ini mencakup garis berlapis nikel dan bekerja berdasarkan prinsip resistensi. Modul sensor ini memungkinkan untuk mengukur kelembapan melalui pin keluaran analog & memberikan keluaran digital saat ambang batas kelembapan terlampaui.

Konfigurasi pin:

·       Pin1 (VCC): Ini adalah pin 5V DC

·       Pin2 (GND): ini adalah pin GND (ground).

·       Pin3 (DO): Ini adalah pin keluaran rendah/tinggi

·       Pin4 (AO): Ini adalah pin keluaran analog

 

Spesifikasi:

·       Modul sensor ini menggunakan bahan dua sisi berkualitas baik.

·       Anti-konduktivitas & oksidasi dengan penggunaan jangka panjang

·   Luas sensor ini berukuran 5cm x 4cm dan dapat dibuat dengan pelat nikel di bagian sampingnya

·       Sensitivitasnya dapat diatur dengan potensiometer

·       Tegangan yang dibutuhkan adalah 5V

·       Ukuran PCB kecil adalah 3,2cm x 1,4cm

·       Untuk memudahkan pemasangan, menggunakan lubang baut

·       Ia menggunakan komparator LM393 dengan tegangan lebar

·   Output dari komparator adalah bentuk gelombang bersih dan kapasitas penggerak di atas 15mA




5.       LCD


LCD (Liquid-Crystal Display) atau Penampil Kristal Cair adalah layar panel datar atau perangkat optik elektronik termodulasi yang menggunakan sifat modulasi cahaya dari kristal cair (liquid crystal) yang dikombinasikan dengan polarizer. Kristal cair tidak memancarkan cahaya secara langsung, melainkan menggunakan lampu latar atau reflektor untuk menghasilkan gambar berwarna atau monokrom.

Spesifikasi :

 

·       Format tampilan : 16 x 2 karakter

·       Pengontrol bawaan : ST 7066 (atau setara)

·       Siklus kerja : 1/16

·       5 x 8 titik termasuk kursor

·       Supply + 5 V (juga tersedia untuk + 3 V)

·       LED dapat digerakkan oleh pin 1, pin 2, pin 15, pin 16 atau A dan K

·       N.V. opsional untuk supply + 3 V

6.      Buzzer


Buzzer adalah sebuah komponen elektronika yang dapat menghasilkan getaran suara berupa gelombang bunyi. Buzzer akan menghasilkan getaran suara ketika diberikan sejumlah tegangan listrik dengan taraf tertentu sesuai dengan spesifikasi bentuk dan ukuran buzzer itu sendiri. Pada umumnya, buzzer ini sering digunakan sebagai alarm karena penggunaannya yang cukup mudah yaitu dengan memberikan tegangan input maka buzzer akan menghasilkan getaran suara berupa gelombang bunyi yang dapat didengar.


Spesifikasi :

·       Nilai tegangan : 6V DC

·       Tegangan pengoperasian : 4 hingga 8V DC

·       Arus : ≤30mA

·       Keluaran suara pada 10cm : ≥85dB

·       Frekuensi resonansi : 2300 ±300Hz

·       Nada : Berkelanjutan

·       Suhu operasional : -25°C hingga +80°C

·       Suhu penyimpanan : -30°C hingga +85°C

·       Berat : 2g


7. Battery


Baterai merupakan alat listrik-kimiawi yang menyimpan energi serta mengeluarkan tenaganya dalam bentuk listrik. Baterai ialah perangkat yang mampu menghasilkan tegangan DC, yaitu dengan cara mengubah energi kimia yang terkandung di dalamnya menjadi energi listrik melalui suatu reaksi elektrokimia, Redoks (Reduksi  Oksidasi). Baterai yang biasa dijual

 

(disposable/sekali pakai) ini mempunyai tegangan listrik 1,5 volt. Baterai ada yang berbentuk tabung ataupun kotak.

Spesifikasi :

 

·       Kapasitas nominal : 2200mAh (0.2Ca, debit)

·       Kapasitas minimum : 2100mAh (0.2Ca, debit)

·       Tegangan nominal : 3.7V

·       Metode pengisian : CC – CV (tegangan konstan dengan arus terbatas)

·       Pengisian arus : a. Biaya standar : 1300mA

b. Pengisian cepat : 2600mA

·       Waktu pengisian daya : a. Biaya standar : 3jam

b. Pengisian cepat : 2.5jam

·       Maks. mengisi arus : 2600mA

·       Maks. debit saat ini : 5200mA

·       Tegangan cut-off discharge : 2.75V

·       Berat sel : maks. 47.0g

·       Dimensi sel : a. Diameter (maks.) : 18.40mm

b. Tinggi (maks.) : 65.00mm

 

 

2.     Motor Driver

Motor driver adalah sebuah modul yang sering sekali digunakan untuk mengendalikan motor DC. Dengan menggunakan motor driver dapat dengan mudah mengendalikan baik itu kecepatan maupun arah rotasi 2 motor sekaligus. Motor driver dirancang menggunakan IC L298 Dual H-Bridge Motor Driver berisikan gerbang gerbang logika yang sudah sangat populer dalam dunia elektronika sebagai pengendali motor.

Spesifikasi :

• Tegangan supply: 4,5 V hingga 36 V

• Arus Keluaran: 600 mA Per Saluran

• Arus Keluaran Puncak: 1,2 A Per Saluran

• Tegangan Pasokan ke IC: 4,5 V hingga 7 V

• Waktu transisi: 300 ns (pada 5 V dan 24 V)

• Ukuran: 44 mm * 40 mm * 20 mm (P * L)


9. Motor Pump


Motor pump / pompa air adalah alat untuk menggerakan air dari tempat bertekanan rendah ke tempat bertekanan yang lebih tinggi. Pada dasarnya motor pump sama dengan motor DC pada umumnya, hanya saja sudah di-packing sedemikian rupa sehingga dapat digunakan di dalam air.

Spesifikasi :

·       Nilai Tegangan : DC 12V

·       Beban : Air

·       Penyerapan air : 1L – 1.2L/min

·       Arus (dengan beban) : Kurang dari 320mA

·       Arus : 2.0LPM

·       Ukuran total : D27 x 75mm

·       Diameter lubang air : 6.5mm

·       Tekanan maksimum : Lebih dari 360mmHg

·       Kebisingan : Kurang dari <60dB


10. Relay


Relay merupakan salah satu komponen elektromekanis yang berfungsi sebagai saklar. Kumparan relay diberi energi DC sehingga saklar kontak dapat dibuka atau ditutup. Modul relai 5V saluran tunggal umumnya mencakup sebuah koil, dan dua kontak seperti biasanya terbuka (NO) dan biasanya tertutup (NC). Artikel ini membahas tentang gambaran umum modul relay 5V & cara kerjanya, namun sebelum membahas apa itu modul relay , terlebih dahulu kita harus mengetahui apa itu relay dan konfigurasi pinnya.

Relay 5v merupakan saklar otomatis yang biasa digunakan pada rangkaian kendali otomatis dan untuk mengendalikan arus tinggi menggunakan sinyal arus rendah. Tegangan input sinyal relai berkisar antara 0 hingga 5V.

 

Konfigurasi pin:

·       Pin1 (End 1): Digunakan untuk mengaktifkan relai; biasanya pin ini salah satu ujungnya dihubungkan ke 5Volt sedangkan ujung lainnya dihubungkan ke ground.

·       Pin2 (End 2): Pin ini digunakan untuk mengaktifkan Relay.

·       Pin3 (Common (COM)): Pin ini dihubungkan ke terminal utama Beban untuk mengaktifkannya.

·       Pin4 (Normally Closed (NC)): Terminal beban kedua ini terhubung ke salah satu pin NC/NO. Jika pin ini dihubungkan ke beban maka akan ON sebelum saklar.

·       Pin5 (Normally Open (NO)): Jika terminal kedua beban disejajarkan dengan pin NO, maka beban akan dimatikan sebelum sakelar.

 


Spesifikasi

·     Tegangan Normal  5V DC

·     Arus Normal 70mA

·     Arus beban AC Maks:10A pada 250VAC atau 125V AC

·     Arus beban DC Maks:10A pada 30V DC atau 28V DC

·     Ini termasuk 5-pin & dirancang dengan bahan plastik

·     Waktu pengoperasian: 10 ms

·     Waktu rilis: 5 ms

Peralihan maksimum: 300 pengoperasian per menit


a. Prosedur
  1. Siapkan semua alat dan komponen yang dibutuhhkan
  2. Rangkai semua komponen.
  3. Buka program pada arduino IDE dan upload pada arduino Master dan Slave.
  4. Setelah selesai proses upoad, jalankan rangkaian sesuai dengan prinsip kerja yang telah dibuat.
  5. Selesai

b. Hardware







c. Rangkaian Simulasi dan Prinsip kerja


Pada rangkaian ini, terdapat dua Arduino yang berkomunikasi dengan kominikasi UART untuk memonitor dan mengontrol beberapa sensor dan aktuator. Arduino master bertugas untuk mengumpulkan data dari berbagai sensor, menampilkan informasi pada layar LCD, dan mengirim data tersebut ke Arduino slave. Sementara itu, Arduino slave menerima data dari master dan menggunakan data tersebut untuk mengontrol servo dan buzzer.

Pada Arduino master, beberapa sensor terhubung untuk memantau kondisi lingkungan. Water level sensor terhubung ke pin A3 untuk mengukur ketinggian air, sementara sensor suhu terhubung ke pin A5 untuk mengukur suhu lingkungan. Sensor pH, yang terhubung ke pin A2, mengukur tingkat keasaman atau kebasaan cairan. Selain itu, sensor sentuh terhubung ke pin 2 untuk mendeteksi sentuhan, dan sensor hujan terhubung ke pin A1 untuk mengukur intensitas hujan.

Dalam loop utama, Arduino master membaca nilai dari semua sensor. Nilai level air dan suhu dikonversi dari nilai analog menjadi satuan yang lebih bermakna seperti liter dan derajat Celsius. Nilai pH dihitung menggunakan metode rata-rata dari beberapa bacaan untuk mendapatkan hasil yang lebih akurat. Informasi ini kemudian ditampilkan pada layar LCD. Jika sensor sentuh mendeteksi sentuhan, LCD akan menampilkan pesan "TOUCHED!!!", sedangkan jika tidak ada sentuhan, LCD akan bergantian menampilkan nilai hujan, suhu, level air, dan pH.

Motor drain, yang terhubung ke pin 6, dikendalikan berdasarkan kondisi sensor. Motor akan aktif jika level air di bawah 1 cm dan sensor sentuh mendeteksi sentuhan. Hal ini memungkinkan sistem untuk menguras air hanya ketika diperlukan, menghindari pengosongan yang tidak perlu. Selain itu, Arduino master mengirimkan data nilai pH dan intensitas hujan ke Arduino slave melalui komunikasi seria UART.

Arduino slave menerima data dari master dan menggunakannya untuk mengontrol aktuator. Servo, yang terhubung ke pin 9, dikendalikan berdasarkan nilai pH yang diterima. Jika nilai pH tinggi (≥ 8.0), servo bergerak ke posisi 0 derajat untuk menambahkan asam. Jika nilai pH rendah (≤ 5.0), servo bergerak ke posisi 180 derajat untuk menambahkan basa. Jika nilai pH berada dalam kisaran normal, servo bergerak ke posisi netral di 90 derajat. Buzzer, yang terhubung ke pin 13, diaktifkan jika intensitas hujan tinggi (≤ 400), menandakan adanya hujan, dan dinonaktifkan jika intensitas hujan rendah



d. Flowchart dan Listing Program

A. Master


//master
#include <LiquidCrystal_I2C.h>
#include <dht11.h>

#define WATER_LEVEL_SENSOR_PIN A3
#define TEMPERATURE_SENSOR_PIN A5
#define PH_SENSOR_PIN A2
#define TOUCH_SENSOR_PIN 2
#define RAIN_SENSOR_PIN A1

#define MOTOR_DRAIN_PIN 6

LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address of your LCD
dht11 DHT;

void setup() {
  lcd.init();
  lcd.backlight(); // Turn on the LCD backlight
  Serial.begin(9600);

  pinMode(WATER_LEVEL_SENSOR_PIN, INPUT);
  pinMode(TEMPERATURE_SENSOR_PIN, INPUT);
  pinMode(PH_SENSOR_PIN, INPUT);
  pinMode(TOUCH_SENSOR_PIN, INPUT_PULLUP);
  pinMode(RAIN_SENSOR_PIN, INPUT);
  pinMode(MOTOR_DRAIN_PIN, OUTPUT);
}

void loop() {
  // Read sensor values
  float waterLevel = analogRead(WATER_LEVEL_SENSOR_PIN) * 0.0048828125; 
  float temperature = analogRead(TEMPERATURE_SENSOR_PIN) * 0.48875855327;
  int touchValue = digitalRead(TOUCH_SENSOR_PIN);
  int rainValue = analogRead(RAIN_SENSOR_PIN);

  // pH Sensor Calculation
  int buf[10];
  for (int i = 0; i < 10; i++) {
    buf[i] = analogRead(PH_SENSOR_PIN);
    delay(10);
  }
  for (int i = 0; i < 9; i++) {
    for (int j = i + 1; j < 10; j++) {
      if (buf[i] > buf[j]) {
        int temp = buf[i];
        buf[i] = buf[j];
        buf[j] = temp;
      }
    }
  }
  unsigned long int avgValue = 0;
  for (int i = 2; i < 8; i++)
    avgValue += buf[i];
  float phValue = (float)avgValue * 5.0 / 1024 / 2.5;

  // Display sensor values on LCD
  if (touchValue == HIGH) {
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.print("TOUCHED!!!");
    delay(100);
  } else {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Rain = ");
    lcd.print(rainValue);
    lcd.print(" %");
    lcd.setCursor(0, 1);
    lcd.print("Temp = ");
    lcd.print(temperature);
    lcd.print(" C");
    delay(2000);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Water = ");
    lcd.print(waterLevel);
    lcd.print(" L");
    lcd.setCursor(0, 1);
    lcd.print("pH = ");
    lcd.print(phValue);
    delay(2000);
  }

  // Control outputs based on sensor values
  if (waterLevel < 1.0 && touchValue == HIGH) { // Activate drain motor only if water level > threshold and touch sensor is active
    digitalWrite(MOTOR_DRAIN_PIN, HIGH);
    Serial.println("Motor Drain ON");
  } else {
    digitalWrite(MOTOR_DRAIN_PIN, LOW);
    Serial.println("Motor Drain OFF");
  }

  // Send sensor values to                                       

  sendSensorDataToSlave(phValue, rainValue);

  delay(500);
}

void sendSensorDataToSlave(float ph, int rain) {
  // Communication with slave Arduino via UART


  Serial.write((uint8_t*)&ph, sizeof(ph));

  Serial.write((uint8_t*)&rain, sizeof(rain));
}


B. Slave


//slave
#include <Servo.h>
#include <Wire.h>

#define SERVO_PIN 9
#define BUZZER_PIN 13

Servo servo; // Create a servo object

void setup() {
  servo.attach(SERVO_PIN); // Attach the servo to the specified pin
  pinMode(BUZZER_PIN, OUTPUT);
  
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() >= sizeof(float) + sizeof(int) ) {

    float phValue;
    int rainValue;


\
    Serial.readBytes((byte*)&phValue, sizeof(phValue));
    Serial.readBytes((byte*)&rainValue, sizeof(rainValue));

    // Control servo based on pH value
    if (phValue >= 8.0) { 
      servo.write(0);  // Position for adding acid
    } 
    else if (phValue <= 5.0) {
      servo.write(180);  // Position for adding base
    }
    else {
      servo.write(90);  // Neutral position, no action
    }

    // Control buzzer based on rain sensor value
    if (rainValue <= 400) { // Adjust the threshold value as needed
      digitalWrite(BUZZER_PIN, HIGH);
    } 
    else {
      digitalWrite(BUZZER_PIN, LOW);
    }
  }

  delay(100);
}

e. video demo



f. Download File

Rangkaian Proteus [Klik]

Program Master [Klik]
Program Slave [Klik] 

Video [klik]
HTML [klik]

Datasheet Arduino Uno [klik]
Datasheet rain sensor [klik]
Datasheet touch sensor [klik]
Datasheet water level sensor [klik]
Datasheet pH sensor[klik]
Datasheet temperature and humidity sensor (DHT11) [klik]
Datasheet motor servo [klik]
Datasheet motor DC [klik]
Datasheet buzzer  [klik]
Datasheet LCD 16x2 [klik]
Datasheet motor driver (L293D) [klik]
Datasheet relay [klik]

Library rain sensor [klik]
Library touch sensor [klik]
Library water level sensor [klik]
Library pH sensor [klik]

Laporan [klik]



















M4

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori Percobaan a. ...