Senin, 15 Januari 2024

Tugas Besar



 Kontrol Produksi Pada Kebun Kakao

Pendahuluan [KEMBALI]

    Kakao adalah salah satu komoditas utama dalam industri pertanian dan pangan global. Kehadirannya memberikan kontribusi signifikan terhadap perekonomian banyak negara, sementara sektor kebun kakao menjadi tulang punggung bagi industri cokelat. Dalam konteks ini, pengelolaan produksi kakao menjadi krusial untuk memastikan kualitas dan kuantitas yang optimal. Kontrol produksi pada kebun kakao menjadi langkah strategis untuk meningkatkan hasil, efisiensi, dan berkelanjutan lingkungan.

    Pohon kakao dapat tumbuh dilingkungan kering, namun tidak menutup kemungkinan terjadinya kemarau sehingga dibutuhkan air buat kebun kakao, maka di buat sensor yang diletakkan di atas kolam terpal untuk menampung air hujan. Selain itu agar didapatkan hasil panen yang berkualitas maka dibuat kontrol untuk menjaga kelembaban tanah, PH tanah, dan suhu pada kebun kakao. Kelembaban tanah yang cocok pada kebun kakao yaitu 60, sedangkan untuk PH sekitaran  6 - 7.5, dan untuk suhu yaitu 25 c - 30 c.

TUJUAN [KEMBALI]
  • Memenuhi tugas Mikroprosesor dan Mikrokontroler 
  • Mempelajari rangkaian aplikasi menggunakan arduino, keypad, dan LCD
  • Mempelajari prinsip kerja Sensor soil mosture, sensor ph, sensor infrared, sensor rain, dan sensor suhu LM35
  • Mempelajari simulasi rangkaian Sensor soil mosture, sensor ph, sensor infrared, sensor rain, dan sensor suhu LM35

ALAT DAN BAHAN [KEMBALI]

1. Alat
1. Power Supply


2. Bahan 
1). Arduino uno

               
     Spesifikasi 

2). Keypad

          Spesifikasi  :     
  • 12 tombol (dengan fungsi tergantung pada aplikasi).
  • Konfigurasi 4 baris (input scanning) dan 3 kolom (output scanning).
  • Kompatibel penuh dengan DT-51 Low Cost Series dan DT-AVR Low Cost Series. Mendukung DT-51 Minimum Systemver 3.0, DT-51 PetraFuz, DT-BASIC Series, dan sistem lain.
  • Dilengkapi dengan contoh program.
  • Dimensi : 9 cm (P) x 5,4 cm (L) x 1,8 cm (T)
  • Perlengkapan : 1 buah DT-I/O 3 x 4 Keypad Module

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

4). Sensor Infrared

    
5). Sensor Moisture
                               

spesifikasi



6). Sensor Rain
Spesifikasi :
  • Adoptshigh quality of RF-04 double sidedmaterial.
  • Area:5cm x 4cm nickel plateon side,
  • Anti-oxidation,anti-conductivity, with long use time;
  • Comparator output signal clean waveform is good, driving ability, over 15mA;
  • Potentiometer adjust the sensitivity;
  • Working voltage 5V;
  • Output format: Digital switching output (0 and 1) and analog voltage output AO;
  • With bolt holes for easy installation;
  • Small board PCB size: 3.2cm x 1.4cm;
  • Usesa wide voltage LM393 comparator
7). Sensor LM35

Spesifikasi :
8). Sensor PH

Spesifikasi :
  • Daya masuk: + 5.00V
  • Ukuran Modul: 43mm x 32mm
  • Rentang pengukuran: 0-14 PH
  • Mengukur ttemperatur: 0-60 ° C
  • Akurasi: ± 0.1 PH (25 °C)
  • Waktu tanggapan: ≤ 1 menit
9). Resistor
Spesifikasi :

10).Transistor NPN

Spesifikasi :

 11). Motor Servo PWM


12). LED



13) Motor DC

Spesifikasi Motor DC :



DASAR TEORI [KEMBALI]

1. Arduino Uno


Kontruksi 


Arduino adalah platform perangkat keras (hardware) yang dirancang untuk memudahkan pengembangan dan prototyping proyek-proyek elektronik. Ini terdiri dari papan sirkuit cetak berukuran kecil yang dilengkapi dengan mikrokontroler dan sejumlah pin input/output yang dapat digunakan untuk menghubungkan sensor, aktuator, dan komponen elektronik lainnya.

Mikrokontroler pada papan Arduino adalah otak utama yang mengontrol berbagai komponen yang terhubung dengannya. Papan Arduino biasanya dilengkapi dengan berbagai macam varian mikrokontroler dari berbagai produsen, seperti ATmega yang diproduksi oleh Microchip Technology. Meskipun demikian, Arduino lebih sering dikaitkan dengan platform open-source yang dikelola oleh Arduino.cc.

Arduino memiliki beberapa komponen utama yang membentuk papan sirkuit mikrokontroler. Berikut adalah penjelasan tentang komponen-komponen utama Arduino:

  1. Mikrokontroler: Ini adalah otak utama dari Arduino yang melakukan semua operasi pengolahan data dan kontrol. Arduino menggunakan mikrokontroler sebagai pusat kendali, yang berfungsi untuk membaca input, menjalankan kode program, dan mengontrol output. Beberapa varian Arduino menggunakan mikrokontroler dari berbagai produsen, seperti ATmega yang diproduksi oleh Microchip Technology.
  2. Pin I/O: Arduino memiliki sejumlah pin input/output (I/O) yang digunakan untuk menghubungkan sensor, aktuator, dan komponen lainnya. Pin ini bisa berfungsi sebagai input untuk membaca data dari sensor atau output untuk mengontrol aktuator. Ada pin digital dan pin analog. Pin digital dapat berupa input atau output dengan nilai logika 0 (LOW) atau 1 (HIGH), sementara pin analog digunakan untuk membaca nilai analog seperti sensor suhu atau cahaya.
  3. Papan Sirkuit: Papan Arduino adalah substrat fisik tempat semua komponen terhubung. Papan ini biasanya terbuat dari bahan tahan lama dan dilengkapi dengan jalur tembaga yang menghubungkan komponen-komponen elektronik.
  4. Konektor USB: Banyak varian Arduino dilengkapi dengan konektor USB. Ini memungkinkan Anda untuk menghubungkan papan Arduino ke komputer, sehingga Anda dapat mengunggah kode program ke mikrokontroler dan berkomunikasi dengan papan melalui koneksi serial.
  5. Catu Daya: Arduino memerlukan catu daya untuk beroperasi. Ini bisa berasal dari komputer melalui kabel USB atau dari sumber daya eksternal seperti baterai atau adaptor listrik. Beberapa papan Arduino memiliki regulator tegangan yang memungkinkan papan menerima berbagai tingkat tegangan masukan.
  6. Konektor Listrik: Arduino umumnya memiliki pin header atau konektor yang memungkinkan Anda untuk menghubungkan kabel atau kawat ke pin I/O. Ini memudahkan Anda dalam menghubungkan sensor, aktuator, dan komponen lainnya ke papan Arduino.
  7. Kristal Osilator: Kristal osilator digunakan untuk menghasilkan sinyal osilasi yang diperlukan oleh mikrokontroler untuk menjalankan perhitungan waktu dan operasi lainnya.
  8. Tombol Reset: Tombol reset memungkinkan Anda untuk mengulang proses booting papan Arduino atau menghentikan eksekusi program yang sedang berjalan.
  9. Indikator LED: Beberapa varian Arduino memiliki indikator LED yang terhubung ke pin tertentu. LED ini dapat diatur dalam kode program untuk memberi tahu status atau kondisi papan, seperti aktif atau dalam mode tidur.

Semua komponen ini bekerja bersama-sama untuk menciptakan platform Arduino yang kuat dan serbaguna untuk mengembangkan berbagai proyek elektronik dan pemrograman.

2. Keypad

Modul keypad 3x4 merupakan suatu modul keypad berukuran 3 kolom x 4 baris. Modul ini dapat difungsikan sebagai input dalam aplikasi seperti pengaman digital, absensi, pengendali kecepatan motor, robotik, dan sebagainya. Penggunaan keypad dilakukan dengan cara menjadikan tiga buah kolom sebagai output scanning dan empat buah baris sebagai input scanning.



Cara kerja rangkaian Keypad 3x4:

  1. Apabila Kolom 1 diberi logika ‘0’, kolom kedua dan kolom ketiga diberi logika ‘1’ maka program akan mengecek tombol 1, 4, 7, dan *, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan.
  2. Apabila Kolom 2 diberi logika ‘0’, kolom pertama dan kolom ketiga diberi logika ‘1’ maka program akan mengecek tombol 2, 5, 8, dan 0, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan.
  3. Apabila Kolom 3 diberi logika ‘0’, kolom pertama dan kolom kedua diberi logika ‘1’ maka program akan mengecek tombol 3, 6, 9, dan #, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan. 
  4. Kemudian kembali ke semula, artinya program looping terus mendeteksi data kolom dan data baris, cara ini disebut scaning atau penyapuan keypad untuk mendapatkan saklar mana yang ditekan. (blog dari Furinkazen)


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

4. Sensor Infrared

Infrared (IR) detektor atau sensor infra merah adalah komponen elektronika yang dapat mengidentifikasi cahaya infra merah (infra red, IR). Sensor infra merah atau detektor infra merah saat ini ada yang dibuat khusus dalam satu modul dan dinamakan sebagai IR Detector Photomodules. IR Detector Photomodules merupakan sebuah chip detektor inframerah digital yang di dalamnya terdapat fotodiode dan penguat (amplifier).

Sensor infared terdiri dari led infrared sebagai pemancar sedangkan pada bagian penerima biasanya terdapat foto transistor, fotodioda, atau inframerah modul yang berfungsi untuk menerima sinar inframerah yang dikirimkan oleh pemancar.

Prinsip Kerja Sensor Infrared


Ketika pemancar IR memancarkan radiasi, ia mencapai objek dan beberapa radiasi memantulkan kembali ke penerima IR. Berdasarkan intensitas penerimaan oleh penerima IR, output dari sensor ditentukan.


Prinsip kerja rangkaian sensor infrared berdasarkan pada gambar 2. Adalah ketika cahaya infra merah diterima oleh fototransistor maka basis fototransistor akan mengubah energi cahaya infra merah menjadi arus listrik sehingga basis akan berubah seperti saklar (swith closed) atau fototransistor akan aktif (low) secara sesaat seperti gambar 3:



Grafik Respon Sensor Infrared



Grafik menunjukkan hubungan antara resistansi dan jarak potensial untuk sensitivitas rentang antara pemancar dan penerima inframerah. Resistor yang digunakan pada sensor mempengaruhi intensitas cahaya inframerah keluar dari pemancar. Semakin tinggi resistansi yang digunakan, semakin pendek jarak IR Receiver yang mampu mendeteksi sinar IR yang dipancarkan dari IR Transmitter karena intensitas cahaya yang lebih rendah dari IR Transmitter. Sementara semakin rendah resistansi yang digunakan, semakin jauh jarak IR Receiver mampu mendeteksi sinar IR yang dipancarkan dari IR Transmitter karena intensitas cahaya yang lebih tinggi dari IR Transmitter.

5. Sensor 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.

 Bagian-bagian Sensor

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

atau
Vo=0-VCC tergantung kepada tingkat kelembaban tanah

Untuk membudidayakan pohon kakao maka diperlukan kelembahan tanah sebesar 80% agar pohon kakao dapat tumbuh dengan baik.

grafik sensor kelembaban



6.  Sensor Rain
     Rain sensor merupakan sensor yang berfungsi untuk mendeteksi hujan turun atau tidak. Intinya sensor ini jika terkena air pada papan sensornya maka resistansinya akan berubah, semakin banyak semakin kecil dan sebaliknya. Pada sensor ini, terdapat integrated circuit atau IC (komponen dasar yang terdiri dari resistor, transistor, dan lain-lain) komparator yang berfungsi memberikan sinyal berupa logika ‘on’ dan ‘off’.  


Grafik Rain Sensor
7. Sensor LM35


        Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan.

        Prinsip kerja sensor LM35 akan melakukan penginderaan pada saat perubahan suhu setiap suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Sinyal suhu di sekitar ruangan akan di deteksi oleh sensor LM35 dimana sensor LM35 mendeteksi sinyal dalam bentuk tegangan.

Suhu ideal untuk budidaya tanaman kakao adalag 25-27°, jika terjadu perubahan suhu disekiran kebun kakao maka sensor LM35 akan aktif dan nantinya akan menghidupkan motor berupa alat penyiram tanaman untuk mengembalikan suhu stabil.

Grafik Respon Sensor Suhu Lm35

8. Sensor PH
    Sensor Analog pH meter v1.0 adalah sensor pengukur kadar keasaman yang di disain khusus untuk Arduino controllers. Sensor ini menggunakan elektroda industri dan dibuat dengan sederhana, nyaman, koneksi yang praktis dan tahan lama, serta dapat juga untuk menganalisa kadar keasaman tanah. Sensor ini juga dilengkapi dengan LED yang berfungsi sebagai indikator power, sebuah penghubung BNC dan PH2.0 antarmuka sensor. Untuk menggunakannya cukup sambungkan sensor pH dengan penghubung BNC, lalu tancapkan antarmuka PH2.0 ke port masukkan analog pada Arduino controller. Jika terprogram maka akan mendapatkan nilai pH yang sesuai.     Industri elektroda kombinasi pH ini terbuat dari sensitive glass membrane dengan impedansi yang kecil. Sensor ini dapat digunakan pada bermacam-macam pengukuran pH dengan respon cepat, stabilitas suhu yang baik. Sensor ini juga memiliki reproduksibilitas yang baik, sulit untuk dihidrolisis, dan menghilangkan alkali error. Pada pH jarak 0 hingga 14, untuk budidaya tanaman kakao dibutuhkan Ph antara 6-7. voltase keluaran dari elektroda adalah linear. Referensi sistem yang terdiri dari gel electrolite salt bridge Ag/AgCl memiliki half-cell stabil yang berpotensi dan performa anti polusi yang sangat baik. Ring PTFE membrane tidak mudah untuk buntu, jadi elektroda sangat cocok untuk deteksi jangka panjang. Sensor ini sangat cocok untuk monitoring jangka panjang.


Grafik Respon


9). Resistor

Resistor merupakan komponen elektronika dasar yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian.Sesuai dengan namanya, resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Resistor memiliki simbol seperti gambar dibawah ini :


Simbol 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

10. Transistor NPN

Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung arus (switching), stabilisasi tegangan, dan modulasi sinyal. Transistor dapat berfungsi semacam kran listrik, di mana berdasarkan arus inputnya (BJT) atau tegangan inputnya (FET), memungkinkan pengaliran listrik yang sangat akurat dari sirkuit sumber listriknya. Kapasitor NPN memiliki simbol seperti gambar di bawah ini:
Simbol Transistor NPN BC547


Terdapat rumus rumus dalam mencari transistor seperti rumus di bawah ini:

Rumus dari Transitor adalah :

hFE = iC/iB

dimana, iC = perubahan arus kolektor 

iB = perubahan arus basis 

hFE = arus yang dicapai


Rumus dari Transitor adalah :

Karakteristik Input

Transistor adalah komponen aktif yang menggunakan aliran electron sebagai prinsip kerjanya didalam bahan. Sebuah transistor memiliki tiga daerah doped yaitu daerah emitter, daerah basis dan daerah disebut kolektor. Transistor ada dua jenis yaitu NPN dan PNP. Transistor memiliki dua sambungan: satu antara emitter dan basis, dan yang lain antara kolektor dan basis. Karena itu, sebuah transistor seperti dua buah dioda yang saling bertolak belakang yaitu dioda emitter-basis, atau disingkat dengan emitter dioda dan dioda kolektor-basis, atau disingkat dengan dioda kolektor.

Bagian emitter-basis dari transistor merupakan dioda, maka apabila dioda emitter-basis dibias maju maka kita mengharapkan akan melihat grafik arus terhadap tegangan dioda biasa. Saat tegangan dioda emitter-basis lebih kecil dari potensial barriernya, maka arus basis (Ib) akan kecil. Ketika tegangan dioda melebihi potensial barriernya, arus basis (Ib) akan naik secara cepat.

 Pemberian bias 
        Ada beberapa macam rangkaian pemberian bias, yaitu: 
 1. Fixed bias yaitu, arus bias IB didapat dari VCC yang dihubungkan ke kaki B melewati tahanan R seperti gambar 58. Karakteristik Output.


2.Self Bias adalah arus input didapatkan dari pemberian tegangan input VBB seperti gambar 60.


Sebuah transistor memiliki empat daerah operasi yang berbeda yaitu daerah aktif, daerah saturasi, daerah cutoff, dan daerah breakdown. Jika transistor digunakan sebagai penguat, transistor bekerja pada daerah aktif. Jika transistor digunakan pada rangkaian digital, transistor biasanya beroperasi pada daerah saturasi dan cutoff. Daerah breakdown biasanya dihindari karena resiko transistor menjadi hancur terlalu besar.

Gelombang I/O Transistor
                    


11). Motor Servo PWM
Motor servo menggunakan dengan sistem umpan balik tertutup, di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor DC, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Karena motor DC servo merupakan alat untuk mengubah energi listrik menjadi energy mekanik, maka magnit permanent motor DC servolah yang mengubah energi listrik ke dalam energi mekanik melalui interaksi dari dua medan magnit. Salah satu medan dihasilkan oleh magnit permanent dan yang satunya dihasilkan oleh arus yang mengalir dalam kumparan motor. Resultan dari dua medan magnit tersebut menghasilkan torsi yang membangkitkan putaran motor tersebut. Saat motor berputar, arus pada kumparan motor menghasilkan torsi yang nilainya konstan.

    Untuk dapat mengontrol motor servo kita perlu memberikan pulsa high dan pulsa low dengan lebar tertentu. Frekuensi yang diperlukan adalah 50 Hz. Pulsa ini dapat dihasilkan dengan port I/O biasa pada mikrokontroler. Namun terkadang dengan cara ini pergerakan servo menjadi kurang akurat. Oleh karena itu digunakan metode Pulse Width Modulation (PWM). Dengan metode PWM dapat dihasilkan gerakan servo yang cukup akurat dengan resolusi yang kita sesuaikan dengan keinginan kita

Berikut ini adalah salah satu contoh pulsa yang dihasilkan untuk menggerakan servo dengan sudut 0o,90o, dan 180o
 Pulsa ini dapat dihasilkan dari pin OCR pada mikrokontroler. Perlu pengaturan register timer pada mikrokontroler agar dapat dihasilkan pulsa dengan lebar yang sesuai kita inginkan. Hal yang sangat penting adalah pengaturan frekuensi dan lebar pulsa on dan pulsa off. Oleh karena itu perlu dihitung berapa konstanta-konstanta timer yang di atur pada mikrokontroler.

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

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 dan Diagram Blok

Hardware
  1. Arduino Uno
  2. Infrared Sensor
  3. LED
  4. Soilmoisture Sensor
  5. Rain sensor
  6. Jumper
  7. Keypad
  8. LM35 sensor
  9. PH sensor
Diagram Blok



c) Rangkaian Simulasi dan Prinsip kerja

Rangkaian sebelum disimulasikan


    Pada rangakain Kontrol Produksi pada kebun kakao menggunakan 5 buah sensor yaitu 2 buah sensor digital dan 3 buah sensor analog, aplikasi motor servo, aplikasi motor keypad, aplikasi lcd dan ic PCF8574. 
    
    Disini terdapat rain sensor yang berguna sebagai kontrol untuk tirai penutup kolam terpal, yang merupakan tempat cadangan air untuk kebun kakao. Sensor diletakkan di atas kolam terpal dimana akan aktif atau berlogika 1 saat terjadi hujan. Ketika sensor tidak aktif atau berlogika 0 maka motor servo tidak bergerak atau bernilai 0 sedangkan saat hari hujan dan terdeteksi oleh rain sensor maka motor servo akan berputar 180 derajat dan akan membuka tirai penutup kolam terpal.

    Lalu terdapat infrared sensor yang berguna untuk menghidupkan lampu pada kebun ketika malam, disini untuk lampu pada kebun tersebut disimbolkan dengan led. ketika infrared sensor mendeteksi adanya orang maka sensor akan aktif atau berlogika 1 lalu led akan menyala.

Selanjutnya terdapat sensor soil moisture yang digunakan untuk mendeteksi kelembaban tanah yang diletakkan ditanah sekitar akar pohon kakao. Kelembaban ideal pada kebun kakao yaitu sebesar 80%. Apabila tanah kering atau kelembaban tidak 80% maka motor pompa air akan menyala.

Untuk sensor PH, karena resistor 100% sedangkan yang kita tau PH hanya 14. maka 100 : 14 didapatkan hasil 7,1. Jadi setiap 7,1%  mewakili 1 PH pada 14 PH. Karena PH ideal kakao adalah 6-7 maka PH kakao sekitar 50% an. PH sensor diletakkan pada tanah, jadi ketika sensor mendeteksi tanah PH rendah maka akan hidup motor untuk menuangkan cairan calcium carbonat, sedangkan apabila sensor mendeteksi PH tinggi atau diatas PH ideal maka motor akan hidup dan menuangkan cairan sulfur pada tanah dekat akar pohon kakao.

Suhu ideal untuk pohon kakao sekitar 25-27. Jika suhu diatas 27 maka akan hidup spray untuk mendinginkan kembali kondisi lingkungan atau temperature di kebun kakao ini. Dan jika dibawah 25 maka spraynya akan mati.


d) Flowchart dan Listing Program
Flowchart




Listing code

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include <Servo.h>

Memanggil library LCD yang digunakan untuk mengaktifkan

const byte BARIS = 4;

const byte KOLOM = 3;

 

Mendefinisikan konstanta BARIS dengan nilai 4 dan KOLOM dengan nilai 3.

Mengindikasikan jumlah baris dan kolom pada matriks keypad.

char tombolKeypad[BARIS][KOLOM] = {

  {'1', '2', '3'},

  {'4', '5', '6'},

  {'7', '8', '9'},

  {'*', '0', '#'}

};

Membuat matriks 2D tombolKeypad berukuran BARIS x KOLOM yang berisi karakter tombol keypad.

Setiap elemen matriks merepresentasikan karakter yang akan ditampilkan pada tombol keypad.

byte pinBaris[BARIS] = {6, 5, 4, 3};

byte pinKolom[KOLOM] = {7, 8, 9};

Membuat array pinBaris dan pinKolom untuk menyimpan nilai pin yang terhubung dengan baris dan kolom keypad.

LiquidCrystal_I2C lcd(0x27, 16, 2);

Mendeklarasikan objek LCD menggunakan library LiquidCrystal_I2C untuk mengendalikan layar LCD berbasis I2C. Parameter konstruktor menentukan alamat I2C LCD (0x27), jumlah karakter per baris (16), dan jumlah baris (2).

const int rainPin = 12, servoPin = 11, irSensorPin = 13, outputPin = 10;

const int humSensorPin = A0, motorPin = 2, phSensorPin = A2, outputPin1 = 1, tempSensorPin = A1, outputPin0 = 0;

Servo servoMotor;

Mendeklarasikan pin untuk sensor hujan, motor servo, sensor infrared, dan output digital.

mendeklarasikan pin untuk sensor kelembaban (A0), motor DC, sensor pH (A2), dan sensor suhu (A1), serta output digital.

void setup() {

  lcd.begin(16, 2);

  lcd.backlight();

  lcd.setCursor(0, 0);

  lcd.print("Salam Sejahtera");

 

  servoMotor.attach(servoPin);

  setupPins();

}

 

void setupPins() {

  pinMode(rainPin, INPUT);

  pinMode(irSensorPin, INPUT);

  pinMode(outputPin, OUTPUT);

  pinMode(humSensorPin, INPUT);

  pinMode(motorPin, OUTPUT);

  pinMode(phSensorPin, INPUT);

  pinMode(outputPin1, OUTPUT);

  pinMode(tempSensorPin, INPUT);

  pinMode(outputPin0, OUTPUT);

}

Mendeklarasikan LCD dan beberapa pin diatur menjadi inputan

void loop() {

  checkRainSensor();

  checkInfraredSensor();

  controlHumidityMotor();

  controlPHOutput();

  controlTemperatureOutput();

 

  char keypadButton = readKeypad();

  if (keypadButton != '\0') {

    handleKeypadPress(keypadButton);

  }

}

Memantau kondisi sensor dan keypad di dalam loop utama dan mengambil tindakan yang sesuai berdasarkan kondisi yang terdeteksi.

void checkRainSensor() {

  int rainSensorValue = digitalRead(rainPin);

  rotateServo(rainSensorValue == HIGH ? 0 : 180);

}

 

void checkInfraredSensor() {

  int infraredSensorValue = digitalRead(irSensorPin);

  controlOutput(outputPin, infraredSensorValue == HIGH);

}

Memeriksa kondisi sensor hujan dan sensor infrared untuk mengambil tindakan tertentu, seperti menggerakkan motor servo atau mengontrol output digital.

void controlHumidityMotor() {

  int humidityPercentage = map(readAnalogSensor(humSensorPin), 0, 1023, 0, 100);

  controlOutput(motorPin, humidityPercentage > 80);

}

 

void controlPHOutput() {

  float phVoltage = readAnalogSensor(phSensorPin) * (5.0 / 1023.0);

  controlOutput(outputPin1, phVoltage >= 3.0);

}

 

void controlTemperatureOutput() {

  float tempVoltage = readAnalogSensor(tempSensorPin) * (5.0 / 1023.0);

  controlOutput(outputPin0, tempVoltage > 0.27);

}

 

int readAnalogSensor(int pin) {

  return analogRead(pin);

}

 

void controlOutput(int pin, bool state) {

  digitalWrite(pin, state);

}

Memberikan kontrol adaptif berdasarkan nilai sensor, memungkinkan sistem untuk menanggapi perubahan kelembaban, pH, dan suhu dengan mengaktifkan atau menonaktifkan perangkat output yang sesuai.

char readKeypad() {

  for (byte i = 0; i < KOLOM; i++) {

    pinMode(pinKolom[i], OUTPUT);

    digitalWrite(pinKolom[i], LOW);

 

    for (byte j = 0; j < BARIS; j++) {

      pinMode(pinBaris[j], INPUT_PULLUP);

      if (digitalRead(pinBaris[j]) == LOW) {

        delay(50);

        while (digitalRead(pinBaris[j]) == LOW);

        return tombolKeypad[j][i];

      }

      pinMode(pinBaris[j], INPUT);

    }

 

    digitalWrite(pinKolom[i], HIGH);

    pinMode(pinKolom[i], INPUT);

  }

 

  return '\0';

}

Membaca input dari keypad matriks dan mengembalikan karakter yang sesuai dengan tombol yang ditekan. Proses ini terus berulang dalam loop utama untuk terus memantau input dari keypad

void handleKeypadPress(char keypadButton) {

  lcd.clear();

  lcd.setCursor(0, 0);

 

  switch (keypadButton) {

    case '1':

      lcd.print("Kebun Kakao\nPak Siska");

      break;

    case '2':

      lcd.print("Assalamualaikum");

      break;

    case '3':

      lcd.print("Selamat Datang");

      break;

    default:

      lcd.print("Tombol tidak valid");

  }

 

  delay(2000);

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print("Salam Sejahtera");

}

Memberikan tanggapan visual yang bervariasi tergantung pada tombol yang ditekan pada keypad. Setelah menampilkan pesan selama 2 detik, layar dibersihkan dan pesan "Salam Sejahtera" ditampilkan kembali di posisi awal.

 

 

 

 

 

 

void rotateServo(int degrees) {

  servoMotor.write(degrees);

  delay(500);

}

Menggerakkan motor servo ke suatu posisi tertentu berdasarkan nilai derajat yang diberikan sebagai parameter


e) Kondisi

Ketika turun hujan maka sensor rain akan hidup, lalu motor menyala membuka tirai penutup kolam terpal
Ketika terdeteksi adanya orang disekitar lampu pada kebun kakao maka sensor infrared akan aktif sehingga led akan hidup
Ketika Kelembaban tanah dibawah 80% maka sensor soil moisture akan aktif sehingga motor akan menyala menghidupkan pompa air
Ketika PH tanah di atas 7 motor cairan kalsium carbonat akan menyala menuangkan ke tanah dekat akar pohon kakao, begitu pula saat PH tanah dibawah 6 maka motor cairan sulfur akan menyala.
Ketika Suhu di kebun kakao 27 keatas maka spray akan menyala untuk mendinginkan udara disekitar kebun, dan jika suhu dibawah 25 maka sensor akan mati.

f) Video Simulasi

VIDEO [KEMBALI]

video simulasi rangkaian



Video Teori
  • Video Teori LCD

  • Video Teori Arduino

  • Video Teori Sensor Infrared
  • Video Sensor Soil Moisture

  • Video Sensor Rain

  • Video Sensor LM35

  • Sensor PH

g). Download File [KEMBALI]

Download rangkaian klik disini
Download HTML klik disini
Download listing program klik disini
Download video simulasi rangkaian klik disini
Download Flowchart klik disini
  • Download Library
Download library Arduino klik disini
Download library LCD klik disini
Download library Infrared Sensor klik disini
Download library Soil Moisture Sensor klik disini
Download library Rain Sensor klik disini
  • Download datasheet 
Download datasheet Arduino UNO klik disini
Download datasheet LCD klik disini
Download datasheet Infrared Sensor klik disini
Download datasheet Soil Moisture Sensor klik disini
Download datasheet Rain  Sensor klik disini
Download datasheet LM35 Sensor klik disini
Download datasheet PH Sensor klik disini

Tugas Besar Machine Learning: Penerapan Penerapan Jaringan Syaraf Tiruan Backpropagation untuk Smart Control Early Warning System (EWS)

Referensi : Rahardi, G. A. (2023). Penerapan Jaringan Syaraf Tiruan Backpropagation untuk Smart Control Early Warning System (EWS).  CYCLOTR...