SlideShare a Scribd company logo
1 of 15
Download to read offline
1
MODUL
WORKSHOP MIKROKONTROLLER
KAMPUS PUTRI MANTINGAN
“KONTROL PENYIRAMAN TANAMAN OTOMATIS”
Disusun Oleh :
Shoffin Nahwa Utama, M.T
Jurusan Teknik Informatika
Fakultas Sains dan Teknologi
Universitas Darussalam Gontor
2020
2
1. TEORI
1.1 Arduino
Dalam diskusi sehari-hari dan di forum internet, mikrokontroller sering dikenal dengan
sebut μC atau MCU. Terjemahan bebas dari pengertian tersebut, bisa dikatakan bahwa
mikrokontroller adalah komputer yang berukuran mikro dalam satu chip IC (integrated
circuit) yang terdiri dari processor, memory, dan antarmuka yang bisa diprogram. Jadi
disebut komputer mikro karena dalam IC atau chip mikrokontroller terdiri dari CPU,
memory, dan I/O yang bisa kita kontrol dengan memprogramnya. I/O juga sering
disebut dengan GPIO (General Purpose Input Output Pins) yang berarti : pin yang bisa
kita program sebagai input atau output sesuai kebutuhan.
Gambar 1.1 Board Arduino Uno
Dalam modul workshop ini kita akan menggunakan board Arduino Uno (Gambar 1.1).
Board Arduino terdiri dari hardware / modul mikrokontroller yang siap pakai dan
software IDE yang digunakan untuk memprogram sehingga kita bisa belajar dengan
mudah. Kelebihan dari Arduino yaitu kita tidak direpotkan dengan rangkaian minimum
sistem dan programmer karena sudah built in dalam satu board.
1.2 Projek Board / Breadboard
3
Project board (ada yang menyebutnya dengan istilah bread board) dan beberapa
kabel jumper untuk menghubungkan antara komponen dan Arduino (Gambar 1.2).
Dengan project board kita tidak perlu menyolder rangkaian sehingga relatif mudah dan
cepat dalam merangkai. Project board memungkinkan kita untuk membangun dan
membongkar rangkaian dengan cepat, Tapi jika kita ingin membuat rangkaian yang
permanen, maka kita harus menggunakan PCB.
Gambar 1.2 Jalur pada Projek board
yang terpenting adalah, kita harus memahami jalur-jalur pada project board.
Project board terdiri dari jalur vertikal dan jalur horisontal. Jalur vertikal ada di bagian
tengah yang terdiri dari 2 x 64 jalur. Masing-masing jalur terdiri dari 5 titik vertikal,
misal jalur 1A-1B-1C-1D-1E dan jalur 1F-1G-1H-1I-1J yang kedua tidak saling
tersambung. Jalur horisontal sebanyak 8 jalur, 4 jalur ada di bagian atas dan 4 jalur lagi
di bagian bawah. Jalur ini bisa digunakan untuk power supply (VCC dan GND) untuk
rangkaian. Untuk lebih jelasnya, silakan perhatikan Gambar 1.2. Garis merah
menunjukkan bahwa lubang tersebut terhubung secara fisik.
1.3 Instalasi Arduino IDE
Anda bisa mendownload Arduino IDE di website Arduino.org. Pada saat
penyusunan modul ini, Arduino IDE sudah versi 1.8.5. Software Arduino ada yang versi
installer (hanya untuk Windows) dan versi terkompres dalam zip. Jika memilih versi
tanpa install (format .zip), maka Anda hanya perlu mengekstraknya di folder mana saja
dan Anda bisa langsung menjalankannya.
Jika Anda pengguna Linux, maka sedikit tantangan untuk Anda karena proses
instalasi tidak semudah instalasi di Windows dan Mac. Panduan untuk menginstall di
4
Linux bisa Anda pelajari di bagian instalasi Linux3. Sedangkan untuk pengguna
Windows, Anda bisa menginstall dengan mengikuti instruksi dalam modul ini.
1.4 Arduino IDE
Untuk memprogram board Arduino, kita butuh aplikasi IDE (Integrated
Development Environment) bawaan dari Arduino. Aplikasi ini berguna untuk membuat,
membuka, dan mengedit source code Arduino (Sketches, para programmer menyebut
source code arduino dengan istilah "sketches"). Selanjutnya, jika kita menyebut source
code yang ditulis untuk Arduino, kita sebut "sketch" juga ya :). Sketch merupakan
source code yang berisi logika dan algoritma yang akan diupload ke dalam IC
mikrokontroller (Arduino).
Gambar 1.3 interface arduino IDE
Interface Arduino IDE tampak seperti gambar 1.3. Dari kiri ke kanan dan atas ke
bawah, bagian-bagian IDE Arduino terdiri dari:
Verify: pada versi sebelumnya dikenal dengan istilah Compile. Sebelum aplikasi
diupload ke board Arduino, biasakan untuk memverifikasi terlebih dahulu
5
sketch yang dibuat. Jika ada kesalahan pada sketch, nanti akan muncul error.
Proses Verify / Compile mengubah sketch ke binary code untuk diupload ke
mikrokontroller
Upload: Upload kode anda ke board/kontroler. Asumsi bahwa board dan serial
port telah disetting dengan benar.
New: Membuka window dan membuat sketch baru.
Open: Buka proyek yang telah ada atau dari contoh-contoh/examples.
Save: Simpan proyek anda.
Serial Monitor: Membuka serial port monitor untuk melihat feedback/umpan
balik dari mikrokontroller anda.
 Keterangan Aplikasi : pesan-pesan yang dilakukan aplikasi akan muncul di
sini, misal "Compiling" dan "Done Uploading" ketika kita mengcompile dan
mengupload sketch ke board Arduino
 Konsol : Pesan-pesan yang dikerjakan aplikasi dan pesan-pesan tentang sketch
akan muncul pada bagian ini. Misal, ketika aplikasi mengcompile atau ketika
ada kesalahan pada sketch yang kita buat, maka informasi error dan baris akan
diinformasikan di bagian ini.
 Baris Sketch : bagian ini akan menunjukkan posisi baris kursor yang sedang
aktif pada sketch.
 Informasi Port : bagian ini menginformasikan port yang dipakah oleh board
Arduino.
2. PRAKTIK
2.1 Rangkaian Led Berkedip
LED merupakan kependekan dari Light Emiting Diode, yaitu diode yang mampu
mengubah listrik menjadi cahaya. Sebagaimana sifat diode, lampu LED memiliki kaki
positif dan negatif. Sehingga pemasangannya tidak boleh terbaik, jika dipasang terbalik
maka tidak akan ada arus yang mengalir dan LED pun tidak akan menyala.
Arduino bekerja pada tegangan 5-12 volt dengan arus yang relatif besar yang
sanggup memutuskan LED. Sehingga jika kita ingin menyambungkan LED, maka kita
6
butuh tahanan (resistor) untuk membatasi arus yang masuk ke LED. LED memiliki
tegangan kerja yang disebut dengan forward voltage (vf) yang mana tegangan ini adalah
tegangan yang dibutuhkan LED untuk bisa menyala dengan baik.
Ukuran resistor yang bisa dipakai adalah 100Ω hingga 1KΩ (Ω dibaca ohm, satuan
dari resistansi/hambatan), makin besar nilai resistor maka nyala LED akan semakin
redup. Pada Arduino, tegangan yang keluar dari pin-pinnya adalah 0-5 volt. Sementara
catu daya untuk Arduino antara 5-12 volt. Oleh sebab itu, pemilihan resistor tergantung
tegangan mana yang akan kita gunakan.
Gambar 2.1 Rangkaian led
Silakan buatlah Rangkaian dari gambar 1.4 dengan langkah-langkah sebagai berikut:
1. Pasang kaki positif LED di G4 dan kaki negatifnya di G3,
2. Setelah itu, hubungkan salah satu kaki resistor pada lubang J3, kemudian kaki
satunya ke lubang di kolom pertama dari kanan,
3. Ambil kabel jumper, lalu sambungkan lubang J4 ke lubang di kolom kedua dari
kanan,
4. Ambil kabel jumper, sambungkan salah satu lubang di kolom pertama ke socket
GND pada board Arduino,
5. Ambil kabel jumper, sambungkan salah satu lubang di kolom kedua ke pin 8 di
board Arduino
6. Hubungkan USB Arduino ke komputer/laptop.
7
Ketika Anda pertama kali membuka Arduino IDE, maka secara otomatis akan
muncul sketch seperti berikut:
Sketch 1.1 Fungsi wajib
Fungsi setup() dan fungsi loop() merupakan fungsi wajib dan harus ada. Fungsi
setup() digunakan untuk inisialisasi program, fungsi ini hanya dijalankan sekali yaitu
ketika program pertama kali dijalankan (ketika arduino pertama kali dihidupkan).
Sedangkan fungsi loop() akan dijalankan terus-menerus (looping forever) hingga
Arduino dimatikan
const int pinLED = 8;
void setup() {
pinMode(pinLED, OUTPUT);
}
void loop() {
digitalWrite(pinLED, HIGH);
delay(500);
digitalWrite(pinLED, LOW);
delay(500);
}
Sketch 1.2 Sketch LED Berkedip
Fungsi pinMode() memberi tahu bahwa pinLED adalah Output. Dengan demikian
mikrokontroller tidak akan “membaca” logika pin tersebut, akan tetapi dia hanya akan
“menulis” logika pada pin tersebut. Dengan kata lain, jika kita ingin mendefinisikan
bahwa pin ini adalah input, maka kita tinggal mengubah OUTPUT menjadi INPUT.
Fungsi delay() digunakan untuk berhenti selama sekian milidetik. Karena 1 detik =
1000 milidetik, maka pemberian nilai 500 berarti Arduino akan jeda selama ½ detik
8
ketika LED nyala dan ½ detik ketika LED padam. Lalu bagaimana jika program yang
Anda coba tidak berjalan dan error? Begini, ada beberapa yang perlu diperhatikan
ketika Anda memprogram:
1. Penulisan sketch itu case sensitive, artinya, tulisan “pinLED” tidak sama dengan
“PinLED”. Jika terjadi error, coba perhatikan apakah ada penulisan yang keliru?
2. Jika Anda copy-paste sketch dari file PDF ke Arduino IDE, maka kemungkinan
akan ada perubahan whitespace (spasi, tab, blank line). Jika spasi tergantikan
denan karakter tab atau blank line, maka sketch akan error. Silakan Anda cek
setiap spasi, jika ukuran space-nya berbeda dengan spasi yang lain, silakan
dihapus dan ganti dengan spasi.
3. Setiap blok kode harus diapit dengan kurung kurawal „{‟ dan „}‟. Jika
kurungnya kurang satu, maka akan error.
4. Setiap ada kurung buka „(‟, harus ada kurung tutup „)‟. Jadi jika ternyata
kurungnya kurang, itu bisa menyebabkan error.
5. Penulisan angka tanpa embel-embel koma. Misal Anda ingin menulis 1000,
maka tidak perlu menulis dengan 1,000 atau 1.000. Penulisan dengan 1,000 akan
terjadi error, sedangkan jika Anda menulis dengan 1.000 akan dianggap 1,
bukan 1000.
6. Setiap baris kode akan ditutup dengan titik koma (semicolon) „;‟, kecuali di
akhir blokkode yang ditutup dengan kurung kurawal „}‟
2.2 Rangkaian Sensor Kelembapan Tanah
Pada penyiraman tanaman secara otomatis, kita memerlukan informasi mengenai
kelembaban tanah untuk tanaman kita. Karena pengaruh suhu lingkungan, proses
penguapan akan berpengaruh pada tingkat kelembaban tanah.
Saat ini telah banyak sensor kelembaban tanah yang beredar di pasaran dengan
harga yang relatif terjangkau, salah satunya adalah kombinasi dari YL-39 (modul
pengkondisian sinyal) dan YL-69 (probe sensor). Amatilah Gambar 2.2
9
Gambar 2.2 Komponen sensor kelembapan tanah
Modul sensor ini memiliki 4-pin, yaitu GND (untuk ground), VCC (3.3 -
5Volt), AO (keluaran analog yang akan dibaca oleh Arduino), dan DO (dapat diatur
sensitivitasnya menggunakan knb pengatur, dan menghasilkan logika digital
HIGH/LOW pada level kelembaban tertentu). Untuk saat ini, hanya tiga pin yang kita
manfaatkan, yaitu GND, VCC dan AO
10
Gambar 2.3 Pemasangan kabel sensor kelembaban pada Arduino
Dalam penggunaan jangka panjang, memberikan tegangan terus-menerus pada
probe akan mempercepat rusaknya probe tersebut, terutama saat tanah dominan dalam
keadaan lembab. Oleh karena itu, salah satu alternatifnya adalah menempatan pin VCC
pada salah satu pin digital (pada tutorial kali ini di pin 6), dan akan diaktifkan sesaat
sebelum sensor mengambil data kelembaban. Berikut Sketch aplikasi sensor kelembapan
tanah dapat dilihat pada Sketch2.3 berikut
int sensorPin = A0; // pin sensor
int powerPin = 6; // untuk pengganti VCC
void setup() {
// jadikan pin power sebagai output
pinMode(powerPin, OUTPUT);
// default bernilai LOW
digitalWrite(powerPin, LOW);
// mulai komunikasi serial
Serial.begin(9600);
}
void loop() {
Serial.print("Nilai kelembaban: ");
Serial.println(bacaSensor());
// baca setiap 5 detik
delay(5000);
}
int bacaSensor() {
// hidupkan power
digitalWrite(powerPin, HIGH);
delay(500);
// baca nilai analog dari sensor
int nilaiSensor = analogRead(sensorPin);
digitalWrite(powerPin, LOW);
// makin lembab maka makin tinggi nilai outputnya
return 1023 - nilaiSensor;
}
Sketch 1.2 Sketch sensor kelembapan tanah
2.3 Menampilkan informasi pada LCD 16x2
Pada umumnya LCD karakter di kendalikan dengan metode paralel, metode ini
banyak menggunakan pin Mikrokontroler Arduino, biasanya menggunakan 6 sampai 7
Pin, dengan jumlah Pin Arduino Uno yg terbatas sering terjadi pin nya kurang.
11
Arduino uno sudah mendukung komunikasi I2C dengan module I2C lcd, kita
dapat mengkontrol LCD Karakter 16x2 hanya menggunakan 2 Pin yaitu Analog
Input Pin 4(SDA) dan Analog Input Pin 5 (SCL).
Module ini memiliki 4 pin, 2 pin untuk power dan 2 pin untuk komunikasi I2C,
Untuk mengontrol kontras ada potensio trimpot di belakang lcd.
gambar 2.4 Pin sda dan scl pada i2c menggunakan pin analog A4 danA5
gambar 2.5 Pin sda dan scl pada i2c menggunakan pin SDA dan SCL
12
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2); // Set the LCD I2C address
void setup()
{
Serial.begin(9600);
Lcd.init(); // initialize the lcd for 16 chars 2 lines, turn on backlight
lcd.backlight();
delay(250);
lcd.noBacklight();
delay(250);
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(" Welcome ");
delay(1000);
lcd.setCursor(0,1);
lcd.print(" Workshop Asik ");
delay(8000);
}
void loop()
{
}
13
2.4 Relay
Relay memiliki fungsi sebagai saklar elektrik. Namun jika diaplikasikan ke dalam
rangkaian elektronika, relay memiliki beberapa fungsi yang cukup unik.
Berikut contoh aplikasi relay dalam kehidupan sehari-hari.
1. Menjalankan fungsi logika dalam sistem mikrokontroller
2. sebagai sarana mengendalikan rangkaian tegangan tinggi mempergunakan tegangan
rendah
3. Memberikan fungsi time delay function
4. Memberikan proteksi motor atau komponen lainnya dari kelebihan tegangan
penyebab korsleting
Gambar 2.6 Komponen pada relay
Rangkaian relai dengan arduino dapat dilihat pada gambar 2.7 berikut ini :
Gambar 2.7 Rangkaian kabel relai dengan arduino
14
2.5 Tugas Workshop
Rangkailah keseluruhan komponen yang telah di coba menjadi satu kesatuan
system penyiraman tanaman otomatis.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int soil=A0;
int powerPin=9;
int pinPompa=3;
void setup() {
// put your setup code here, to run once:
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("System Pengairan Otomatis");
lcd.setCursor(0,1);
lcd.print("TI UNIDA Gontor");
lcd.clear();
pinMode(powerPin, OUTPUT);
pinMode (pinPompa, OUTPUT);
digitalWrite(powerPin, HIGH);
digitalWrite(pinPompa, HIGH);
Serial.begin(9600);
}
void loop() {
lcd.setCursor(0,0);
int tanah=bacaSensorSoil();
if(tanah>100)
{
digitalWrite(pinPompa, LOW);
}
//digitalWrite(pinPompa, LOW);
lcd.setCursor (2,0); //kol ke 3 baris ke 1
lcd.print("Soil : ");
lcd.print( tanah);
delay(100);
}
int bacaSensorSoil(){
digitalWrite(powerPin, HIGH);
delay(500);
int nilaiSensor =analogRead(soil);
digitalWrite(powerPin, LOW);
return 1023-nilaiSensor;
}
15

More Related Content

Similar to OPTIMASI PENYIRAMAN TANAMAN

Yuk kita kenali arduino uno
Yuk kita kenali arduino unoYuk kita kenali arduino uno
Yuk kita kenali arduino unoKania Sawitri
 
Makalah Arduino
Makalah ArduinoMakalah Arduino
Makalah ArduinoWahyus31
 
Pertemuan 6 Mikroprosessor dan Mikrokontroler
Pertemuan 6 Mikroprosessor dan MikrokontrolerPertemuan 6 Mikroprosessor dan Mikrokontroler
Pertemuan 6 Mikroprosessor dan MikrokontrolerAhmad Nawawi, S.Kom
 
Octave dan Mikrokontroller Communication
Octave dan Mikrokontroller CommunicationOctave dan Mikrokontroller Communication
Octave dan Mikrokontroller CommunicationLusiana Diyan
 
Makalah tentang ARDUINO dan cara penggunaannya.
Makalah tentang ARDUINO dan cara penggunaannya.Makalah tentang ARDUINO dan cara penggunaannya.
Makalah tentang ARDUINO dan cara penggunaannya.MuhammadRizky26222
 
Perancangan simulasi prototipe jaringan sensor cahaya memanfaatkan jaringan wifi
Perancangan simulasi prototipe jaringan sensor cahaya memanfaatkan jaringan wifiPerancangan simulasi prototipe jaringan sensor cahaya memanfaatkan jaringan wifi
Perancangan simulasi prototipe jaringan sensor cahaya memanfaatkan jaringan wifiRiki Ardoni
 
ARIN CANTIKA MUSI-1901082027.pptxppppppppp
ARIN CANTIKA MUSI-1901082027.pptxpppppppppARIN CANTIKA MUSI-1901082027.pptxppppppppp
ARIN CANTIKA MUSI-1901082027.pptxpppppppppAhnafGaming
 
Arduino_pptx.pptx
Arduino_pptx.pptxArduino_pptx.pptx
Arduino_pptx.pptxSiwoHonkai
 
Arduino_pptx.pptx
Arduino_pptx.pptxArduino_pptx.pptx
Arduino_pptx.pptxabinemesio
 
Tugas akhir silalahi afrina c
Tugas akhir silalahi afrina cTugas akhir silalahi afrina c
Tugas akhir silalahi afrina cAfrinaClarissa
 
PID Implementation on Octave
PID Implementation on OctavePID Implementation on Octave
PID Implementation on OctaveLusiana Diyan
 
Arduino.ppt
Arduino.pptArduino.ppt
Arduino.pptapri38
 
Arduino.ppt
Arduino.pptArduino.ppt
Arduino.pptapri38
 
Percobaan 12 led berbasis ATMega16 - BascomeAVR
Percobaan 12 led berbasis ATMega16 - BascomeAVRPercobaan 12 led berbasis ATMega16 - BascomeAVR
Percobaan 12 led berbasis ATMega16 - BascomeAVRMaesaroh9
 
Running LED dengan Kontrol AT-Mega 16
Running LED dengan Kontrol AT-Mega 16Running LED dengan Kontrol AT-Mega 16
Running LED dengan Kontrol AT-Mega 16Yazid98
 

Similar to OPTIMASI PENYIRAMAN TANAMAN (20)

Yuk kita kenali arduino uno
Yuk kita kenali arduino unoYuk kita kenali arduino uno
Yuk kita kenali arduino uno
 
Makalah Arduino
Makalah ArduinoMakalah Arduino
Makalah Arduino
 
Pertemuan 6 Mikroprosessor dan Mikrokontroler
Pertemuan 6 Mikroprosessor dan MikrokontrolerPertemuan 6 Mikroprosessor dan Mikrokontroler
Pertemuan 6 Mikroprosessor dan Mikrokontroler
 
Microcontroller
MicrocontrollerMicrocontroller
Microcontroller
 
Teknik Kendali
Teknik KendaliTeknik Kendali
Teknik Kendali
 
Octave dan Mikrokontroller Communication
Octave dan Mikrokontroller CommunicationOctave dan Mikrokontroller Communication
Octave dan Mikrokontroller Communication
 
Makalah tentang ARDUINO dan cara penggunaannya.
Makalah tentang ARDUINO dan cara penggunaannya.Makalah tentang ARDUINO dan cara penggunaannya.
Makalah tentang ARDUINO dan cara penggunaannya.
 
Laporan led
Laporan ledLaporan led
Laporan led
 
dasar Arduino_pptx.pptx
dasar Arduino_pptx.pptxdasar Arduino_pptx.pptx
dasar Arduino_pptx.pptx
 
Perancangan simulasi prototipe jaringan sensor cahaya memanfaatkan jaringan wifi
Perancangan simulasi prototipe jaringan sensor cahaya memanfaatkan jaringan wifiPerancangan simulasi prototipe jaringan sensor cahaya memanfaatkan jaringan wifi
Perancangan simulasi prototipe jaringan sensor cahaya memanfaatkan jaringan wifi
 
ARIN CANTIKA MUSI-1901082027.pptxppppppppp
ARIN CANTIKA MUSI-1901082027.pptxpppppppppARIN CANTIKA MUSI-1901082027.pptxppppppppp
ARIN CANTIKA MUSI-1901082027.pptxppppppppp
 
Arduino_pptx.pptx
Arduino_pptx.pptxArduino_pptx.pptx
Arduino_pptx.pptx
 
Arduino_pptx.pptx
Arduino_pptx.pptxArduino_pptx.pptx
Arduino_pptx.pptx
 
Tugas akhir silalahi afrina c
Tugas akhir silalahi afrina cTugas akhir silalahi afrina c
Tugas akhir silalahi afrina c
 
PID Implementation on Octave
PID Implementation on OctavePID Implementation on Octave
PID Implementation on Octave
 
Arduino.ppt
Arduino.pptArduino.ppt
Arduino.ppt
 
Arduino.ppt
Arduino.pptArduino.ppt
Arduino.ppt
 
Percobaan 12 led berbasis ATMega16 - BascomeAVR
Percobaan 12 led berbasis ATMega16 - BascomeAVRPercobaan 12 led berbasis ATMega16 - BascomeAVR
Percobaan 12 led berbasis ATMega16 - BascomeAVR
 
Running LED dengan Kontrol AT-Mega 16
Running LED dengan Kontrol AT-Mega 16Running LED dengan Kontrol AT-Mega 16
Running LED dengan Kontrol AT-Mega 16
 
Bab 1 5
Bab 1 5Bab 1 5
Bab 1 5
 

Recently uploaded

MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxmariaboisala21
 
kesalahan tipe 1 dan 2 pada statistik.pptx
kesalahan tipe 1 dan 2 pada statistik.pptxkesalahan tipe 1 dan 2 pada statistik.pptx
kesalahan tipe 1 dan 2 pada statistik.pptxAhmadSyajili
 
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS AcehSKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS AcehBISMIAULIA
 
Metode penelitian Deskriptif atau Survei
Metode penelitian Deskriptif atau SurveiMetode penelitian Deskriptif atau Survei
Metode penelitian Deskriptif atau Surveikustiyantidew94
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxrikosyahputra0173
 
415418921-statistika- mean media modus data tunggal dan data kelompok
415418921-statistika- mean media modus data tunggal dan data kelompok415418921-statistika- mean media modus data tunggal dan data kelompok
415418921-statistika- mean media modus data tunggal dan data kelompokelmalinda2
 
pertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptpertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptAhmadSyajili
 
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiManajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiCristianoRonaldo185977
 
PPT Olah Nilai Kurikulum merdeka belajar.pptx
PPT Olah Nilai Kurikulum merdeka belajar.pptxPPT Olah Nilai Kurikulum merdeka belajar.pptx
PPT Olah Nilai Kurikulum merdeka belajar.pptxnursariheldaseptiana
 

Recently uploaded (9)

MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
 
kesalahan tipe 1 dan 2 pada statistik.pptx
kesalahan tipe 1 dan 2 pada statistik.pptxkesalahan tipe 1 dan 2 pada statistik.pptx
kesalahan tipe 1 dan 2 pada statistik.pptx
 
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS AcehSKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
 
Metode penelitian Deskriptif atau Survei
Metode penelitian Deskriptif atau SurveiMetode penelitian Deskriptif atau Survei
Metode penelitian Deskriptif atau Survei
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
 
415418921-statistika- mean media modus data tunggal dan data kelompok
415418921-statistika- mean media modus data tunggal dan data kelompok415418921-statistika- mean media modus data tunggal dan data kelompok
415418921-statistika- mean media modus data tunggal dan data kelompok
 
pertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptpertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.ppt
 
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiManajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
 
PPT Olah Nilai Kurikulum merdeka belajar.pptx
PPT Olah Nilai Kurikulum merdeka belajar.pptxPPT Olah Nilai Kurikulum merdeka belajar.pptx
PPT Olah Nilai Kurikulum merdeka belajar.pptx
 

OPTIMASI PENYIRAMAN TANAMAN

  • 1. 1 MODUL WORKSHOP MIKROKONTROLLER KAMPUS PUTRI MANTINGAN “KONTROL PENYIRAMAN TANAMAN OTOMATIS” Disusun Oleh : Shoffin Nahwa Utama, M.T Jurusan Teknik Informatika Fakultas Sains dan Teknologi Universitas Darussalam Gontor 2020
  • 2. 2 1. TEORI 1.1 Arduino Dalam diskusi sehari-hari dan di forum internet, mikrokontroller sering dikenal dengan sebut μC atau MCU. Terjemahan bebas dari pengertian tersebut, bisa dikatakan bahwa mikrokontroller adalah komputer yang berukuran mikro dalam satu chip IC (integrated circuit) yang terdiri dari processor, memory, dan antarmuka yang bisa diprogram. Jadi disebut komputer mikro karena dalam IC atau chip mikrokontroller terdiri dari CPU, memory, dan I/O yang bisa kita kontrol dengan memprogramnya. I/O juga sering disebut dengan GPIO (General Purpose Input Output Pins) yang berarti : pin yang bisa kita program sebagai input atau output sesuai kebutuhan. Gambar 1.1 Board Arduino Uno Dalam modul workshop ini kita akan menggunakan board Arduino Uno (Gambar 1.1). Board Arduino terdiri dari hardware / modul mikrokontroller yang siap pakai dan software IDE yang digunakan untuk memprogram sehingga kita bisa belajar dengan mudah. Kelebihan dari Arduino yaitu kita tidak direpotkan dengan rangkaian minimum sistem dan programmer karena sudah built in dalam satu board. 1.2 Projek Board / Breadboard
  • 3. 3 Project board (ada yang menyebutnya dengan istilah bread board) dan beberapa kabel jumper untuk menghubungkan antara komponen dan Arduino (Gambar 1.2). Dengan project board kita tidak perlu menyolder rangkaian sehingga relatif mudah dan cepat dalam merangkai. Project board memungkinkan kita untuk membangun dan membongkar rangkaian dengan cepat, Tapi jika kita ingin membuat rangkaian yang permanen, maka kita harus menggunakan PCB. Gambar 1.2 Jalur pada Projek board yang terpenting adalah, kita harus memahami jalur-jalur pada project board. Project board terdiri dari jalur vertikal dan jalur horisontal. Jalur vertikal ada di bagian tengah yang terdiri dari 2 x 64 jalur. Masing-masing jalur terdiri dari 5 titik vertikal, misal jalur 1A-1B-1C-1D-1E dan jalur 1F-1G-1H-1I-1J yang kedua tidak saling tersambung. Jalur horisontal sebanyak 8 jalur, 4 jalur ada di bagian atas dan 4 jalur lagi di bagian bawah. Jalur ini bisa digunakan untuk power supply (VCC dan GND) untuk rangkaian. Untuk lebih jelasnya, silakan perhatikan Gambar 1.2. Garis merah menunjukkan bahwa lubang tersebut terhubung secara fisik. 1.3 Instalasi Arduino IDE Anda bisa mendownload Arduino IDE di website Arduino.org. Pada saat penyusunan modul ini, Arduino IDE sudah versi 1.8.5. Software Arduino ada yang versi installer (hanya untuk Windows) dan versi terkompres dalam zip. Jika memilih versi tanpa install (format .zip), maka Anda hanya perlu mengekstraknya di folder mana saja dan Anda bisa langsung menjalankannya. Jika Anda pengguna Linux, maka sedikit tantangan untuk Anda karena proses instalasi tidak semudah instalasi di Windows dan Mac. Panduan untuk menginstall di
  • 4. 4 Linux bisa Anda pelajari di bagian instalasi Linux3. Sedangkan untuk pengguna Windows, Anda bisa menginstall dengan mengikuti instruksi dalam modul ini. 1.4 Arduino IDE Untuk memprogram board Arduino, kita butuh aplikasi IDE (Integrated Development Environment) bawaan dari Arduino. Aplikasi ini berguna untuk membuat, membuka, dan mengedit source code Arduino (Sketches, para programmer menyebut source code arduino dengan istilah "sketches"). Selanjutnya, jika kita menyebut source code yang ditulis untuk Arduino, kita sebut "sketch" juga ya :). Sketch merupakan source code yang berisi logika dan algoritma yang akan diupload ke dalam IC mikrokontroller (Arduino). Gambar 1.3 interface arduino IDE Interface Arduino IDE tampak seperti gambar 1.3. Dari kiri ke kanan dan atas ke bawah, bagian-bagian IDE Arduino terdiri dari: Verify: pada versi sebelumnya dikenal dengan istilah Compile. Sebelum aplikasi diupload ke board Arduino, biasakan untuk memverifikasi terlebih dahulu
  • 5. 5 sketch yang dibuat. Jika ada kesalahan pada sketch, nanti akan muncul error. Proses Verify / Compile mengubah sketch ke binary code untuk diupload ke mikrokontroller Upload: Upload kode anda ke board/kontroler. Asumsi bahwa board dan serial port telah disetting dengan benar. New: Membuka window dan membuat sketch baru. Open: Buka proyek yang telah ada atau dari contoh-contoh/examples. Save: Simpan proyek anda. Serial Monitor: Membuka serial port monitor untuk melihat feedback/umpan balik dari mikrokontroller anda.  Keterangan Aplikasi : pesan-pesan yang dilakukan aplikasi akan muncul di sini, misal "Compiling" dan "Done Uploading" ketika kita mengcompile dan mengupload sketch ke board Arduino  Konsol : Pesan-pesan yang dikerjakan aplikasi dan pesan-pesan tentang sketch akan muncul pada bagian ini. Misal, ketika aplikasi mengcompile atau ketika ada kesalahan pada sketch yang kita buat, maka informasi error dan baris akan diinformasikan di bagian ini.  Baris Sketch : bagian ini akan menunjukkan posisi baris kursor yang sedang aktif pada sketch.  Informasi Port : bagian ini menginformasikan port yang dipakah oleh board Arduino. 2. PRAKTIK 2.1 Rangkaian Led Berkedip LED merupakan kependekan dari Light Emiting Diode, yaitu diode yang mampu mengubah listrik menjadi cahaya. Sebagaimana sifat diode, lampu LED memiliki kaki positif dan negatif. Sehingga pemasangannya tidak boleh terbaik, jika dipasang terbalik maka tidak akan ada arus yang mengalir dan LED pun tidak akan menyala. Arduino bekerja pada tegangan 5-12 volt dengan arus yang relatif besar yang sanggup memutuskan LED. Sehingga jika kita ingin menyambungkan LED, maka kita
  • 6. 6 butuh tahanan (resistor) untuk membatasi arus yang masuk ke LED. LED memiliki tegangan kerja yang disebut dengan forward voltage (vf) yang mana tegangan ini adalah tegangan yang dibutuhkan LED untuk bisa menyala dengan baik. Ukuran resistor yang bisa dipakai adalah 100Ω hingga 1KΩ (Ω dibaca ohm, satuan dari resistansi/hambatan), makin besar nilai resistor maka nyala LED akan semakin redup. Pada Arduino, tegangan yang keluar dari pin-pinnya adalah 0-5 volt. Sementara catu daya untuk Arduino antara 5-12 volt. Oleh sebab itu, pemilihan resistor tergantung tegangan mana yang akan kita gunakan. Gambar 2.1 Rangkaian led Silakan buatlah Rangkaian dari gambar 1.4 dengan langkah-langkah sebagai berikut: 1. Pasang kaki positif LED di G4 dan kaki negatifnya di G3, 2. Setelah itu, hubungkan salah satu kaki resistor pada lubang J3, kemudian kaki satunya ke lubang di kolom pertama dari kanan, 3. Ambil kabel jumper, lalu sambungkan lubang J4 ke lubang di kolom kedua dari kanan, 4. Ambil kabel jumper, sambungkan salah satu lubang di kolom pertama ke socket GND pada board Arduino, 5. Ambil kabel jumper, sambungkan salah satu lubang di kolom kedua ke pin 8 di board Arduino 6. Hubungkan USB Arduino ke komputer/laptop.
  • 7. 7 Ketika Anda pertama kali membuka Arduino IDE, maka secara otomatis akan muncul sketch seperti berikut: Sketch 1.1 Fungsi wajib Fungsi setup() dan fungsi loop() merupakan fungsi wajib dan harus ada. Fungsi setup() digunakan untuk inisialisasi program, fungsi ini hanya dijalankan sekali yaitu ketika program pertama kali dijalankan (ketika arduino pertama kali dihidupkan). Sedangkan fungsi loop() akan dijalankan terus-menerus (looping forever) hingga Arduino dimatikan const int pinLED = 8; void setup() { pinMode(pinLED, OUTPUT); } void loop() { digitalWrite(pinLED, HIGH); delay(500); digitalWrite(pinLED, LOW); delay(500); } Sketch 1.2 Sketch LED Berkedip Fungsi pinMode() memberi tahu bahwa pinLED adalah Output. Dengan demikian mikrokontroller tidak akan “membaca” logika pin tersebut, akan tetapi dia hanya akan “menulis” logika pada pin tersebut. Dengan kata lain, jika kita ingin mendefinisikan bahwa pin ini adalah input, maka kita tinggal mengubah OUTPUT menjadi INPUT. Fungsi delay() digunakan untuk berhenti selama sekian milidetik. Karena 1 detik = 1000 milidetik, maka pemberian nilai 500 berarti Arduino akan jeda selama ½ detik
  • 8. 8 ketika LED nyala dan ½ detik ketika LED padam. Lalu bagaimana jika program yang Anda coba tidak berjalan dan error? Begini, ada beberapa yang perlu diperhatikan ketika Anda memprogram: 1. Penulisan sketch itu case sensitive, artinya, tulisan “pinLED” tidak sama dengan “PinLED”. Jika terjadi error, coba perhatikan apakah ada penulisan yang keliru? 2. Jika Anda copy-paste sketch dari file PDF ke Arduino IDE, maka kemungkinan akan ada perubahan whitespace (spasi, tab, blank line). Jika spasi tergantikan denan karakter tab atau blank line, maka sketch akan error. Silakan Anda cek setiap spasi, jika ukuran space-nya berbeda dengan spasi yang lain, silakan dihapus dan ganti dengan spasi. 3. Setiap blok kode harus diapit dengan kurung kurawal „{‟ dan „}‟. Jika kurungnya kurang satu, maka akan error. 4. Setiap ada kurung buka „(‟, harus ada kurung tutup „)‟. Jadi jika ternyata kurungnya kurang, itu bisa menyebabkan error. 5. Penulisan angka tanpa embel-embel koma. Misal Anda ingin menulis 1000, maka tidak perlu menulis dengan 1,000 atau 1.000. Penulisan dengan 1,000 akan terjadi error, sedangkan jika Anda menulis dengan 1.000 akan dianggap 1, bukan 1000. 6. Setiap baris kode akan ditutup dengan titik koma (semicolon) „;‟, kecuali di akhir blokkode yang ditutup dengan kurung kurawal „}‟ 2.2 Rangkaian Sensor Kelembapan Tanah Pada penyiraman tanaman secara otomatis, kita memerlukan informasi mengenai kelembaban tanah untuk tanaman kita. Karena pengaruh suhu lingkungan, proses penguapan akan berpengaruh pada tingkat kelembaban tanah. Saat ini telah banyak sensor kelembaban tanah yang beredar di pasaran dengan harga yang relatif terjangkau, salah satunya adalah kombinasi dari YL-39 (modul pengkondisian sinyal) dan YL-69 (probe sensor). Amatilah Gambar 2.2
  • 9. 9 Gambar 2.2 Komponen sensor kelembapan tanah Modul sensor ini memiliki 4-pin, yaitu GND (untuk ground), VCC (3.3 - 5Volt), AO (keluaran analog yang akan dibaca oleh Arduino), dan DO (dapat diatur sensitivitasnya menggunakan knb pengatur, dan menghasilkan logika digital HIGH/LOW pada level kelembaban tertentu). Untuk saat ini, hanya tiga pin yang kita manfaatkan, yaitu GND, VCC dan AO
  • 10. 10 Gambar 2.3 Pemasangan kabel sensor kelembaban pada Arduino Dalam penggunaan jangka panjang, memberikan tegangan terus-menerus pada probe akan mempercepat rusaknya probe tersebut, terutama saat tanah dominan dalam keadaan lembab. Oleh karena itu, salah satu alternatifnya adalah menempatan pin VCC pada salah satu pin digital (pada tutorial kali ini di pin 6), dan akan diaktifkan sesaat sebelum sensor mengambil data kelembaban. Berikut Sketch aplikasi sensor kelembapan tanah dapat dilihat pada Sketch2.3 berikut int sensorPin = A0; // pin sensor int powerPin = 6; // untuk pengganti VCC void setup() { // jadikan pin power sebagai output pinMode(powerPin, OUTPUT); // default bernilai LOW digitalWrite(powerPin, LOW); // mulai komunikasi serial Serial.begin(9600); } void loop() { Serial.print("Nilai kelembaban: "); Serial.println(bacaSensor()); // baca setiap 5 detik delay(5000); } int bacaSensor() { // hidupkan power digitalWrite(powerPin, HIGH); delay(500); // baca nilai analog dari sensor int nilaiSensor = analogRead(sensorPin); digitalWrite(powerPin, LOW); // makin lembab maka makin tinggi nilai outputnya return 1023 - nilaiSensor; } Sketch 1.2 Sketch sensor kelembapan tanah 2.3 Menampilkan informasi pada LCD 16x2 Pada umumnya LCD karakter di kendalikan dengan metode paralel, metode ini banyak menggunakan pin Mikrokontroler Arduino, biasanya menggunakan 6 sampai 7 Pin, dengan jumlah Pin Arduino Uno yg terbatas sering terjadi pin nya kurang.
  • 11. 11 Arduino uno sudah mendukung komunikasi I2C dengan module I2C lcd, kita dapat mengkontrol LCD Karakter 16x2 hanya menggunakan 2 Pin yaitu Analog Input Pin 4(SDA) dan Analog Input Pin 5 (SCL). Module ini memiliki 4 pin, 2 pin untuk power dan 2 pin untuk komunikasi I2C, Untuk mengontrol kontras ada potensio trimpot di belakang lcd. gambar 2.4 Pin sda dan scl pada i2c menggunakan pin analog A4 danA5 gambar 2.5 Pin sda dan scl pada i2c menggunakan pin SDA dan SCL
  • 12. 12 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16,2); // Set the LCD I2C address void setup() { Serial.begin(9600); Lcd.init(); // initialize the lcd for 16 chars 2 lines, turn on backlight lcd.backlight(); delay(250); lcd.noBacklight(); delay(250); lcd.backlight(); lcd.setCursor(0,0); lcd.print(" Welcome "); delay(1000); lcd.setCursor(0,1); lcd.print(" Workshop Asik "); delay(8000); } void loop() { }
  • 13. 13 2.4 Relay Relay memiliki fungsi sebagai saklar elektrik. Namun jika diaplikasikan ke dalam rangkaian elektronika, relay memiliki beberapa fungsi yang cukup unik. Berikut contoh aplikasi relay dalam kehidupan sehari-hari. 1. Menjalankan fungsi logika dalam sistem mikrokontroller 2. sebagai sarana mengendalikan rangkaian tegangan tinggi mempergunakan tegangan rendah 3. Memberikan fungsi time delay function 4. Memberikan proteksi motor atau komponen lainnya dari kelebihan tegangan penyebab korsleting Gambar 2.6 Komponen pada relay Rangkaian relai dengan arduino dapat dilihat pada gambar 2.7 berikut ini : Gambar 2.7 Rangkaian kabel relai dengan arduino
  • 14. 14 2.5 Tugas Workshop Rangkailah keseluruhan komponen yang telah di coba menjadi satu kesatuan system penyiraman tanaman otomatis. #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); int soil=A0; int powerPin=9; int pinPompa=3; void setup() { // put your setup code here, to run once: lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); lcd.setCursor(0,0); lcd.print("System Pengairan Otomatis"); lcd.setCursor(0,1); lcd.print("TI UNIDA Gontor"); lcd.clear(); pinMode(powerPin, OUTPUT); pinMode (pinPompa, OUTPUT); digitalWrite(powerPin, HIGH); digitalWrite(pinPompa, HIGH); Serial.begin(9600); } void loop() { lcd.setCursor(0,0); int tanah=bacaSensorSoil(); if(tanah>100) { digitalWrite(pinPompa, LOW); } //digitalWrite(pinPompa, LOW); lcd.setCursor (2,0); //kol ke 3 baris ke 1 lcd.print("Soil : "); lcd.print( tanah); delay(100); } int bacaSensorSoil(){ digitalWrite(powerPin, HIGH); delay(500); int nilaiSensor =analogRead(soil); digitalWrite(powerPin, LOW); return 1023-nilaiSensor; }
  • 15. 15