Kontrol Produksi Pada Kebun Kakao
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
- 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
- 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
6). Sensor Rain- 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 LM358). Sensor PHSpesifikasi :- 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). ResistorSpesifikasi :
- 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
- 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
10).Transistor NPN
12). LED
13) Motor DC
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Kristal Osilator: Kristal osilator digunakan untuk menghasilkan sinyal osilasi yang diperlukan oleh mikrokontroler untuk menjalankan perhitungan waktu dan operasi lainnya.
- Tombol Reset: Tombol reset memungkinkan Anda untuk mengulang proses booting papan Arduino atau menghentikan eksekusi program yang sedang berjalan.
- 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:
- 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.
- 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.
- 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.
- 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)
- begin() Untuk begin() digunakan dalam inisialisasi interface ke LCD dan mendefinisikan ukuran kolom dan baris LCD. Pemanggilan begin() harus dilakukan terlebih dahulu sebelum memanggil instruksi lain dalam library LCD. Untuk syntax penulisan instruksi begin() ialah sebagai berikut. lcd.begin(cols,rows) dengan lcd ialah nama variable, cols jumlah kolom LCD, dan rows jumlah baris LCD.
- clear() Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD.
- setCursor() 19 Instruksi ini digunakan untuk memposisikan cursor awal pesan text di LCD. Penulisan syntax setCursor() ialah sebagai berikut. lcd.setCursor(col,row) dengan lcd ialah nama variable, col kolom LCD, dan row baris LCD.
- print() Sesuai dengan namanya, instruksi print() ini digunakan untuk mencetak, menampilkan pesan text di LCD. Penulisan syntax print() ialah sebagai berikut.lcd.print(data) dengan lcd ialah nama variable, data ialah pesan yang ingin ditampilkan.
4. Sensor Infrared
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 :
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 :
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
Rumus dari Transitor adalah :
hFE = iC/iB
dimana, iC = perubahan arus kolektor
iB = perubahan arus basis
hFE = arus yang dicapai
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
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.
- Download library yang diperlukan pada bagian download dalam blog.
- Buka proteus yang sudah diinstal untuk membuat rangkaian.
- Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
- Buka Arduino IDE yang sudah diinstal.
- Di Arduino IDE, pergi ke menu "File" > "Preferences".Pastikan opsi
- "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
- Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
- Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
- Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
- Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
- Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
- Jalankan simulasi di Proteus.
#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 |
video simulasi rangkaian
- 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 disiniDownload HTML klik disini
Download listing program klik disini
Download video simulasi rangkaian klik disini
- Download Library
Download library Infrared Sensor klik disini
- Download datasheet