1. Tujuan [Kembali]
A. Praktikan dapat menerapkan sebuah sistem menggunakan mikrokontroller.
B. Praktikan dapat mengkombinasikan berbagai macam output, akumulator, display, dan berbagai media output lainnya menjadi sebuah alat.
C. Praktikan dapat merancang suatu sistem menjadi sebuah alat.
D. Untuk mendeteksi kelembaban tanah menggunakan sensor.
E. Untuk meningkatkan kelembaban tanah yang kurang.
1. Soil Moisture Sensor YL-69
2. Arduino Uno
3. LCD 16x2
4. Water Pump
5. Battery 9V
6. Potensiometer
7. Jumper
8. Relay
9. NRF24L01
3. Landasan Teori [Kembali]
A. Soil Moisture Sensor YL-69
Sensor soil moisture YL-69 adalah sensor yang mampu mengukur kelembaban suatu tanah. Cara menggunakannya cukup mudah, yaitu membenamkan probe sensor ke dalam tanah dan kemudian sensor akan langsung membaca kondisi kelembaban tanah.
Modul sensor ini memiliki 4-pin, yaitu :
1. GND (untuk Ground)
2. VCC (3.3 - 5 Volt)
3. AO (keluaran analog yang akan dibaca oleh Arduino)
4. DO (dapat diatur sensitivitasnya menggunakan knb pengatur, dan menghasilkan logika digital HIGH/LOW pada level kelembaban tertentu).
4. DO (dapat diatur sensitivitasnya menggunakan knb pengatur, dan menghasilkan logika digital HIGH/LOW pada level kelembaban tertentu).
Nilai yang dibaca oleh sensor kelembaban tanah YL-69 menghasilkan nilai yang besar pada tanah dengan kandungan air yang rendah dan sebaliknya, menghasilkan nilai yang kecil pada tanah dengan kandungan air yang lebih banyak.
Sensor kelembaban tanah YL-69 merupakan sensor yang terdiri dari dua probe untuk melewatkan arus melalui tanah, kemudian membaca resistansinya untuk mendapatkan nilai tingkat kelembaban. Oleh karena itu, pada saat sensor dimasukkan ke tanah kering nilai yang terbaca oleh sensor lebih besar (resistansi besar) daripada nilai pada tanah yang memiliki kadar air lebih tinggi (resistansi kecil).
B. Arduino Uno
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.
Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :
Microcontroller
|
ATmega328P
|
Operating Voltage
|
5 V
|
Input Voltage (recommended)
|
7 – 12 V
|
Input Voltage (limit)
|
6 – 20 V
|
Digital I/O Pins
|
14 (of which 6 provide PWM output)
|
PWM Digital I/O Pins
|
6
|
Analog Input Pins
|
6
|
DC Current per I/O Pin
|
20 mA
|
DC Current for 3.3V Pin
|
50 mA
|
Flash Memory
|
32 KB of which 0.5 KB used by bootloader
|
SRAM
|
2 KB
|
EEPROM
|
1 KB
|
Clock Speed
|
16 MHz
|
- POWER USB
- POWER JACK
- Crystal Oscillator
Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
- Reset
- Digital Pins I / O
- Analog Pins
- LED Power Indicator
C. Liquid Crystal Display (LCD)
Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).
Gambar Penampang Komponen Penyusun LCD |
1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
Kaki - kaki yang terdapat pada LCD |
D. Motor DC
Pada dasarnya beberapa aplikasi yang menggunakan motor DC harus dapat mengatur kecepatan dan arah putar dari motor DC itu sendiri. Untuk dapat melakukan pengaturan kecepatan motor DC dapat menggunakan metode PWM (Pulse Width Modulation) sedangkan untuk mengatur arah putarannya dapat menggunakan rangkaian H-bridge yang tersusun dari 4 buah transistor. Tetapi dipasaran telah disediakan IC L293D sebagai driver motor DC yang dapat mengatur arah putar dan disediakan pin untuk input yang berasal dari PWM untuk mengatur kecepatan motor DC.
Sebelum membahas tentang IC L293D, alangkah baiknya jika kita membahas driver motor DC menggunakan rangkaian analog terlebih dahulu.
Jika diinginkan sebuah motor DC yang dapat diatur kecepatannya tanpa dapat mengatur arah putarnya, maka kita dapat menggunakan sebuah transistor sebagai driver. Untuk mengatur kecepatan putar motor DC digunakan PWM yang dibangkitkan melalui fitur Timer pada mikrokontroler. Sebagian besar power supply untuk motor DC adalah sebesar 12 V, sedangkan output PWM dari mikrokontroler maksimal sebesar 5 V. Oleh karena itu digunakan transistor sebagai penguat tegangan. Dibawah ini adalah gambar driver motor DC menggunakan transistor.
Sedangkan jika diinginkan sebuah motor DC yang dapat diatur kecepatan atau arah putarnya maka digunakanlah rangkaian H-brigde yang tersusun dari 4 buah transistor.
Dari gambar diatas jika diinginkan motor DC berputar searah jarum jam maka harus mengaktifkan transistor1 dan transistor4 dengan cara memberikan logika high pada kaki Basis transistor tersebut. Sedangkan untuk berputar berlawanan arah jarum jam maka harus mengaktifkan transistor2 dan transistor 3 dengan cara memberikan logika high pada kaki Basis transistor tersebut. Untuk lebih jelasnya perhatikan gambar dibawah ini.
Dari gambar diatas terlihat jelas bahwa dengan mengaktifkan transistor1 dan transistor4 akan menyebabkan motor DC berputar searah jarum jam. Dimana arus listrik akan mengalir dari power supply (12 V) melalui transistor1, lalu ke motor DC, lalu ke transistor4 dan akan berakhir di ground. Begitu juga sebaliknya untuk putaran berlawanan arah jarum jam.
Sedangkan untuk pengaturan kecepatannya anda dapat menghubungkan output PWM ke kaki basis transistor1 untuk putaran searah jarum jam. Dan untuk putaran berlawanan arah jarum jam, output PWM dapat dihubungkan kekaki basis transistor- transistor.
Berikut adalah rangkaian dari driver L293D :
Berikut adalah rangkaian dari driver L293D :
- Input dan Output
- Pin Enable
- VCC 1 dan VCC 2
Apakah VCC1 dan VCC2 bisa disambungkan?
Bisa saja, jika motor DC yang ingin kita kontrol membutuhkan tegangan hanya sebanyak 5v saja, lebih dari itu antara VCC1 dan VCC 2 tidak dapat dihubungkan karna akan menyebabkan IC L293D panas dan kebakar.
E. Module Wireless nRF24L01
Module Wireless nRF24L01 merupakan module yang mempunyai fungsi untuk komunikasi jarak jauh atau nirkabel yang memanfaatkan gelombang RF 2.4 GHz yang biasanya diaplikasikan untuk Scientific , Industrial, maupun Medical.
Pada modul ini menggunakan antarmuka SPI (Serial Parallel Interface) untuk berkomunikasi dengan mikrokontroler dalam hal ini Arduino. Tegangan operasional normal untuk mengakses module ini yaitu 3.3Vdc, yang biasanya dibantu dengan regulator AMS1117.
Module nRF24L01 memiliki perangkat keras yang berupa baseband logic Enhanced ShockBurst dan protocol accelerator yang memungkinan untuk berkomunikasi dalam kecepatan tinggi.
Selain itu, module ini juga memiliki fitur true ULP solution, yang berfungsi sebagai penghemat konsumsi daya sehingga hemat energi. Dan bisa digunakan juga sebagai pembuatan perangkat fitnes dan olahraga, pendukung PC, mainan anak-anak, piranti perangkat untuk permainan, dan lainnya.
Kesimpulan dari beberapa fitur Modul Wireless RF nRF24L01 :
Pada modul ini menggunakan antarmuka SPI (Serial Parallel Interface) untuk berkomunikasi dengan mikrokontroler dalam hal ini Arduino. Tegangan operasional normal untuk mengakses module ini yaitu 3.3Vdc, yang biasanya dibantu dengan regulator AMS1117.
Module nRF24L01 memiliki perangkat keras yang berupa baseband logic Enhanced ShockBurst dan protocol accelerator yang memungkinan untuk berkomunikasi dalam kecepatan tinggi.
Selain itu, module ini juga memiliki fitur true ULP solution, yang berfungsi sebagai penghemat konsumsi daya sehingga hemat energi. Dan bisa digunakan juga sebagai pembuatan perangkat fitnes dan olahraga, pendukung PC, mainan anak-anak, piranti perangkat untuk permainan, dan lainnya.
Kesimpulan dari beberapa fitur Modul Wireless RF nRF24L01 :
- Data rate mencapai 2Mbps
- Penanganan transaksi paket otomatis
- Beroperasi pada pada pita ISM 2.4 GHZ
- Konsumsi daya yang rendah
- Penanganan paket data otomatis
- Jarak komunikasinya 1100 meter
4. Flowchart [Kembali]
MASTER
SLAVE
5. Listing Program [Kembali]
PROGRAM MASTER
#define sensor A0 //Definisi pin input sensor
#include<LiquidCrystal.h>
#include <Wire.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // Definsi pin untuk lcd
int nilai;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
char data;
void setup() {
lcd.begin(16, 2);
pinMode(sensor, INPUT);
Serial.begin(115200);
radio.begin();
radio.openWritingPipe(addresses[0]); // 00002
radio.openReadingPipe(1, addresses[1]); // 00001
radio.setPALevel(RF24_PA_MAX);
}
void loop()
{
// Menjalankan perintah sesuai keadaan
int kelembaban_tanah;
int nilai = analogRead(sensor);
kelembaban_tanah = (100 - ((nilai/1023.00) * 100));
Serial.print(nilai);
Serial.print('\t');
delay(200);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Kelembaban : ");
lcd.setCursor(13, 0);
lcd.print(kelembaban_tanah);
lcd.setCursor(15,0);
lcd.print("%");
delay(200);
radio.stopListening();
if (nilai <= 600) {
data = '1';
lcd.setCursor(0, 1);
lcd.print("Tanah Lembab");
delay(100);
radio.write(&data, sizeof(data));
Serial.println(data);
delay(100);
}
else {
data = '2';
lcd.setCursor(0, 1);
lcd.print("Tanah Kering");
delay(100);
radio.write(&data, sizeof(data));
Serial.println(data);
delay(100);
}
delay(100);
}
PROGRAM SLAVE
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define rel 8 //Definisi pin relay
char data;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
void setup() {
Serial.begin(115200);
pinMode(rel, OUTPUT);
radio.begin();
radio.openWritingPipe(addresses[1]); // 00001
radio.openReadingPipe(1, addresses[0]); // 00002
radio.setPALevel(RF24_PA_MAX);
delay(5);
}
void loop() {
//Menjalankan perintah untuk menghasilkan output
radio.startListening();
while (!radio.available()) {
Serial.println("No Data Received");
}
radio.read(&data, sizeof(data));
Serial.print("Data Received : ");
Serial.println(data);
switch (data) {
case '1' :
digitalWrite(rel, LOW);
break;
case '2' :
digitalWrite(rel, HIGH);
break;
}
radio.stopListening();
delay(300);
}
6. Rangkaian Simulasi [Kembali]
7. Foto Alat [Kembali]
8. Video Rangkaian [Kembali]
9. Video Alat [Kembali]
10. Analisa [Kembali]
Pada rangkaian modul 4 ini, merupakan percobaan pembuatan alat dan simulasi penyiram tanaman otomatis. Rangkaian ini menggunakan 2 arduino yang berkomunikasi secara Asyncronus Receiver Transmiter (UART) dengan perantara Wireless NRF24L01, LCD sebagai display yang menampilkan nilai kelembaban dalam bentuk persentase, Sensor YL-69 yang berfungsi untuk mengukur kelembaban tanah dan sebagai input analog terhadap arduino Master.
Sensor YL-69 akan mengukur kelembaban tanah yang menghasilkan data analog berupa nilai tegangan, dan kemudian menjadi input pada kaki analog (A0) pada arduino Master yang masih berupa nilai analog. Data yang diterima dari analogpin diolah oleh arduino dengan fungsinya dengan Analog Digital Converter (ADC) dan akhirnya bisa dibaca oleh arduino. Kemudian data tersebut dikirmkan ke Arduino Slave secara Wireless dengan perantara NRF24L01.
Lalu pada arduino Slave akan diterima data serial yang dikirimkan oleh arduino Master. Saat data serial yang dibaca = 1 yaitu nilai persentase kelembaban besar dari 42%, maka Tampil tulisan "Tanah Lembab" pada LCD, Relay menjadi LOW dan Water Pump Mati.
Saat data serial yang dibaca = 2 yaitu nilai persentase kelembaban kecil dari 42%, maka Tampil tulisan "Tanah Kering" pada LCD, Relay menjadi HIGH dan Water Pump Hidup.
Link Download untuk HTML
Link Download untuk Rangkaian Proteus
Link Download untuk Video Simulasi Rangkaian
Link Download untuk Video Alat
Link Download untuk Program Arduino
Link Download untuk Flowchart
Link Download untuk Seluruh Datasheet
Link Download untuk Seluruh Library
Tidak ada komentar:
Posting Komentar