Anda di halaman 1dari 23

BAB III

PERANCANGAN ALAT DAN ANALISA


Rancang Bangun Monitoring Tempat Sampah berdasarkan Aroma dan
Volume sampah Berbasis IOT. Terdiri dari dua tahap yaitu tahap analisa
perangkat keras, dimana alat tersebut mendapatkan input hingga menghasilkan
output yang sesuai, dan tahap analisa perangkat lunak yaitu bentuk pemograman
yang akan ditanamkan pada mikrokontroler. Dibawah ini merupakan penjelasan
secara detail serta logika pada pemrograman.

3.1. Analisa Perancangan Perangkat Keras


Pada subbab ini menjelaskan tahapan analisa rangkaian secara blok
diagram dan tahapan analisa rangkaian secara detail.

3.1.1 Rancangan Rangkaian Secara Blok Diagram

Gambar 3.1 Blok Diagram


Berdasarkan gambar diatas dapat dilihat rancangan rangkaian secara blok
proses terdiri dari 4 blok yaitu blok aktifator, blok input, blok proses dan blok
output. Blok aktifator menjelaskan catu daya yang digunakan untuk mengaktifkan
seluruh komponen pada rangkaian, blok input menjelaskan masukan untuk

1
2

mikrokontroler serta media masukannya, blok proses menjelaskan pemrosesan


yang didapat dari masukan agar mendapatkan output yang sesuai, sedangkan blok
output menjelaskan keluaran yang dihasilkan serta media keluarannya.

3.1.2 Blok Input

Gambar 3.2 Sensor Ultrasonic


Didalam blok input ini terdapat beberapa masukan yaitu dari 2 sensor
ultrasonic, pada sensor pertama berfungsi sebagai pendeteksi suatu pergerakan
seseorang yang hendak membuang sampah yang akan langsung di respon oleh
motor servo yang akan membuka tutup dari tempat sampah, sensor ultrasonic
kedua berfungsi sebagai pendeteksi volume sampah yang ada di dalam tempat
sampah dan bila penuh maka akan terkirim notifikasi ke app blynk yang ada di hp.

Gambar 3.3 Sensor MQ-2


Input terakhir adalah sensor MQ-2 yaitu suatu sensor yang berfungsi untuk
mendeteksi kualitas udara di dalam tempat sampah, sensor ini di atur bila ppm
atau tingkat kualitas udara di dalam tempat sampah buruk yang bisa saja di
karenakan oleh bau tidak sedap atau pun resiko lainnya maka akan mengirim
notifikasi ke app blynk yang ada pada smartphone.
3

3.1.3 Blok Proses

Gambar 3.4 Wemos D1


Blok proses adalah blok yang berfungsi untuk mengontrol kerja dari
keseluruhan komponen yang ada pada tempar sampah pintar ini. Pada Wemos ini
terdapat IC ESP8266 yang berperan sebagai prosesor untuk mengatur kinerja dari
alat ini serta melalui ic ini alat dapat terhubung ke internet yang digunakan untuk
menyambungkan alat kepada smartphone melalui jaringan wifi yang berfungsi
untuk memberi notifikasi yang akan mucul di smartphone jika salah satu kondisi
terpenuhi.

3.1.4 Blok Output


Pada blok output terdapat dua komponen yaitu motor servo dan blynk app ,
motor servo sendiri merupakan output dari hasil input sensor ultrasonic pertama
yang berfungsi sebagai pendeteksi pergerakan seseorang yang akan membuang
sampah dan servo berfungsi sebagai pembuka tutup dari tempat sampah tersebut.

Gambar 3.5 Motor Servo


Output berikutnya adalah blynk app yang merupakan aplikasi pada smartphone
yang merupakan platform untuk aplikasi OS Mobile (iOS dan Android) yang
bertujuan untuk kendali module Arduino, Raspberry Pi, ESP8266, WEMOS D1,
4

dan module sejenisnya melalui Internet. Dengan catatan terhubung dengan


internet dengan koneksi yang stabil dan inilah yang dinamakan dengan sistem
Internet of Things (IOT). Fungsi dari blynk pada alat ini adalah sebagai penerima
notifikasi dari tempat sampah bila salah satu kondisi terpenuhi.

Gambar 3.6 BLYNK

3.2 Rancangan Rangkain Secara Detali

Gambar 3.7 Rangkaian Alat Tempat Sampah Pintar


Pada rangkaian diatas memerlukan tengangan +5V sd +12V untuk dapat
mengaktifkan Wemos D1, yang merupakan tempat pemrosesan data dari alat ini.
Tegangan tersebut akan di alirkan ke beberapa komponen pendukung seperti 2
sensor ultrasonic, sensor kualitas udara, dan motor servo. Media input dari
rangkaian diatas adalah 2 sensor ultrasonic HC-SR04 dan sensor kulaitas udara
MQ-2, pada sensor ultrasonic pertama terletak pada bagian luar dari tempat
5

sampah yang akan mendeteksi objek sejauh +-15cm, yang terhubung dengan
Wemos D1 pada pin D6 sebagain triger dan D5 sebagai echo, triger sebagi
pemantul sinyal dan echo sebagi penerima sinyal bila triger mengenai suatu objek
maka penerimanya echo akan mengetahuinya dan akan mengirim input kepada
Wemos kemudian diproses dan akan mengeluarkan output motor servo yang
terhubung pada pin D7 wemos yang akan berputar 180 derajat membuka tutup
tempat sampah secara otomatis.
Sedangkan sensor ultrasonic kedua ditempatkan dalam tempat sampah
dan terhubung dengan pin D4 dan D3 dari Wemos yang berfungsi untuk
mendeteksi volume sampah yang ada, kondisi nya seperti jika kedalaman sampah
diantara 10-15 cm maka Wemos akan mengirim notifikasi lampu putih menyala
pada aplikasi blynk dan pada kedalaman 5-10 cm warna hijau, 3-5 cm warna
kuning, serta kedalaman 2-3 cm warna merah yang disertai notifikasi tambahan
yang menyatakan bahwa “tempat sampah sudah penuh”. Input yang terakhir yaitu
sensor kualitas udara MQ-2 yang terhubung melalui pin A0 pada wemos cara
kerjanya dengan mendeteksi kualitas udara di dalam tempat sampah jika melebihi
250 ppm maka Wemos akan menginring notifikasi langsung ke smartphone.

3.3 Analisis Perancangan Perangkat Lunak


Analisa secara perangkat lunak terbagi menjadi 3 yaitu analisa perangkat
lunak secara diagram alur, analisa perangkat lunak secara program dan Pembuatan
Aplikasi.
33

3.3.1 Analisa Secara Diagram Alur (Flowchart)

Gambar 3.8 Diagram Alur (Flowchart) Alat


34

Diagram alur (flowchart) merupakan cara untuk menjelaskan alur kerja


program yang berfungsi menentukan input dan output pada alat. Berikut adalah
diagram alur (flowchart) alat Tempat Sampah Pintar berdasarkan Volume dan
Aroma Berbasis Wemos D1:
1. Alat berada pada posisi power on artinya rangkaian alat sudah menyala
melalui aliran daya dari adaptor sebesar 5 sd 9 volt untuk
Mikrokontroler ESP8266 (Wemos D1).
2. Jika “ya” yang berarti ada orang yang berada di jarak sensor 10cm
sekitar tempat sampah yang hendak membuang sampah, maka tutup
tempat sampah akan terbuka dan akan mengulang kondisi dari awal
kembali, jika “tidak” maka akan maju ke kondisi selanjutnya.
3. Jika “ya” yang berarti walau pun sampah mungkin belum penuh akan
tetapi aroma didalam tempat sampah mungkin akan menggangu daerah
sekitaran dari tempat sampah tersebut, maka Wemos akan mengirim
data ke aplikasi blynk dan akan mengirim notifikasi langsung yang
menyatakan bahwa aroma didalam tempat sampah sudah melebihi 250
ppm yang telah tetapkan , jika “tidak” maka akan maju ke kondisi
berikutnya.
4. Jika “ya” yang berarti kedalaman sampah ada di batas terendahnya
yaitu 10-15cm maka Wemos akan mengirim data ke aplikasi blynk dan
akan menyalakan indicator warna putih , jika “tidak” maka akan maju
ke kondisi berikutnya.
5. Jika “ya” yang berarti tempat sampah sudah mulai terisi di jarak sensor
5-10cm, maka Wemos akan mengirim data ke aplikasi blynk dan akan
menyalakan indicator warna hijau , jika “tidak” maka akan maju ke
kondisi berikutnya.
6. Jika “ya” yang berarti samapah mulai memenuhi tempat sampah di
jarak sensor 3-5cm, maka Wemos akan mengirim data ke aplikasi
blynk dan akan menyalakan indicator warna kuning , jika “tidak”
maka akan maju ke kondisi berikutnya.
7. Jika “tidak” yang berarti sampah yang ada ditempat sampah sudah
penuh pada jarak sensor 2-3cm dan perlu dilakuakn tindakan, maka

33
35

Wemos akan mengirim data ke aplikasi blynk dan akan menyalakan


indikator warna merah sekaligus menampilkan notifikasi langsung
yang menandakan bahwa tempat sampah sudah penuh dan akan
kembali mengulang ke kondisi awal.

3.3.2 Flash Program pada Mikrokontroler ESP8266 (Wemos D1)


Berikut cara melakukan flash program pada Mikrokontroler ESP8266
(Wemos D1):
1. Buka Software Arduino IDE yang sudah terinstal pada komputer.
2. Untuk Board Wemos D1 bisa di unduh pada link berikut
http://arduino.esp8266.com/stable/package_esp8266com_index.json.
3. Kemudian buka preferences dan isi kan link sebelumnya di kolom additional
boards manager URLs

Gambar 3.9 Memasukan Board Wemos pada Arduino IDE


35

4. Buka menu tools – Board manager kemudian ketik Wemos D1 dikotak


search

Gambar 3.10 Menginstal Board Wemos pada Arduino IDE


5. Kemudian klik install
6. Setelah itu buka kembali menu tools –board ,maka board Wemos D1 sudah
muncul dan siap digunakan

Gambar 3.11 Letak Board Wemos pada Arduino IDE


35

7. Selanjutnya cari serial port dengan cara menghubungkan komputer dan


Wemos D1, kemudian klik tools pada menu toolbar dan klik serial port.

Gambar 3.12 Serial Port yang Terhubung dengan Komputer


8. Ketik program yang akan di compile ke dalam Mikrokontroler ESP8266
(Wemos D1)

Gambar 3.13 Compile ke Mikrokontroler ESP8266 (Wemos D1)


35

9. Setelah program berhasil di compile maka akan muncul pernyataan ‘Done


Compilling’ artinya program di dalam Mikrokontroler ESP8266 (Wemos D1)
berhasil tertanam dan siap dioperasikan.

Gambar 3.14 Program yang Berhasil di Compile

3.3.3 Analisa Program pada Mikrokontroler ESP8266 (Wemos D1)


Pada pemrograman alat proses menulis, menguji dan memperbaiki
(debug), dan memelihara kode yang membangun sebuah program komputer akan
dijelaskan pada bagian ini. Untuk membuat sebuah program sederhana ini
mengunakan software Arduino IDE.
Berikut ini merupakan sintaks program dari pemrograman Arduino IDE
beserta dengan penjelasannya, antara lain:
35

Sintaks Program Penjelasan

#include <Servo.h> Baris kedua sebagai header


Modul Motor Servo. Header
tersebut merupakan
pembuka Modul Motor
Servo.

#include <Blynk.h> sebagai header Blynk.


#include<BlynkSimpleEsp8266.h> Header tersebut digunakan
#define BLYNK_PRINT Serial untuk intruksi notifikasi. ,
header tersebut berfungsi
untuk menampilkan print
serial dari blynk itu sendiri.
Dan sebagai pendifinisi
Blynk
char auth[] = sebagai inisialisasi dari akun
"BojKtaqL5eCjhsx7An_eJbfBYSXFqpw"; blynk yang berada pada
char ssid[] = "Hallo"; baris pertama dan baris
char pass[] = "hay12345"; kedua, ketiga merupakan
jaringan yang akan
terhubung dengan Wemos
D1.
Servo myservo; adalah inisialiasi servo
dengan nama “myservo”.

Sintaks Program Penjelasan


const int eko = D5; merupakan insialisasi nama dari sensor
const int trig = D6; ultrasonik beserta pin yang digunakan
35

const int eko2 = D3; pada Wemos D1.


const int trig2 = D4;

Sintaks Program Penjelasan

WidgetLCD lcd (A0); Merupakan inisialisasi nama dari lcd yang


WidgetLED led1(V2); digunakan pada aplikasi blynk dengan
WidgetLED led2(V3); analog pin yang digunakannya dan juga
WidgetLED led3(V4); inisialisasi nama dari led yang digunakan
WidgetLED led4(V5); pada aplikasi blynk beserta virtual pin
yang dingunkannya.
int id = 1; menginisialisakan id sebagai integer
int sensorValue; dengan nilai satu. Dan inisialisasi dari
sensor MQ-2 yang menyatakan bahwa
nilai yang dipakai oleh sensor merupakan
integer.

Sintaks Program Penjelasan

void setup() { Pada baris void setup pertama


myservo.attach(D7); merupakan perintah yang menjukan
Serial.begin(115200); bila motor servo berada pada pin
Blynk.begin(auth, ssid, pass); D7 Wemos D1.
pinMode(trig, OUTPUT); Baris kedua menyatakan baud rate
pinMode(eko, INPUT); yang digunakan untuk serial
pinMode(trig2, OUTPUT); monitor adalah 115200.
pinMode(eko2, INPUT); Baris ketiga untuk menghubungkan
} alat dengan aplikasi blynk
Baris keempat sampai ketujuh
perupakan perintah yang
menujukan peran dari pin echo
sebagai input dan triger sebagai
35

output.

Sintaks Program Penjelasan


void loop() { Baris pertama dan kedua merupakan
Blynk.run(); perintah untuk memulai komunikasi
delay(300); dengan aplikasi blynk.
myservo.write(0); Baris ketiga merupakan perintah
untuk motor servo dengan posisi
int cm = sensor_ping(D6, D5);
derajat nol.
int cm2 = sensor_ping2(D4, D3);
Baris keempat dan lima merupakan
sensorValue = analogRead(A0);
menyatakan cm dan cm2 bertipe data
integer dan berhubungan langsung
dengan sensor_ping ultrasonic pada
pin yang telah dideklarasikan
sebelumnya.
Baris keenam menyatakan sensor
dengan pin analog yang berada di pin
A0.
if (cm >= 2 && cm < 10) { Pada perintah if berisikan perintah
myservo.write(180); jika cm (sensor ultrasonik 1) berjarak
delay(7000); diantara 2 hingga 10 cm maka servo
} akan berputar 180 derajat dan akan
berhenti 7 detik karena adanya
else if (cm2 >= 2 && cm2 < 3) {
perinta delay(7000) untuk melakukan
volumemerah();
perintah berikutnya.
sendNotifSampahPenuh();
Pada perintah else if berisikan
}
perintah sensor ultrasonik 2 yang
else if (cm2 >= 3 && cm2 < 5) { memantau ketinggian volume
volumekuning(); sampah.
35

} Pada else if pertama menyatakan bila


volume sampah sudah penuh maka
else if (cm2 >= 5 && cm2 < 10)
akan mengirim notifikasi ke
{
smartphone dan led warna merah dan
volumehijau();
semua led menyala pada tampilan
}
widget aplikasi.
else if (cm2 >= 10 && cm2 < 15) Pada else if kedua hanya
{ menampilkan nyala widget led
volumeputih(); kuning pada smartphone yang
} menandakan volume sampah hampir
penuh.
Pada else if ketiga hanya
menampilkan nyala widget led hijau
pada smartphone yang menandakan
volume sampah terisi setengah.
Pada else if ketiga hanya
menampilkan nyala widget led putih
pada smartphone yang menandakan
tempat sampah masih kosong.

Sintaks Program Penjelasan

else if (sensorValue > 250) Pada kodingan else if merupakan


{Serial.print("tingkat polusi kondisi untuk sensor MQ-2 bila PPM
dalam tempat sampah 1 = "); melebihi 250 maka aka nada
peringatan pada serial monitor dan
Serial.print(sensorValue, DEC);
notifikasi pada smartphone.

Serial.println(" PPM");
Pada kodingan else merupakan

Blynk.notify("tingkat PPM perintah motor servo untuk kembali


tempat sampah melebihi batas!!! pada posiis awal yaitu 0 derajat bila
");
35

} tidak ada kondisi yang terpenuhi.

else {

myservo.write(0);

}}

Sintaks Program Penjelasan

void volumemerah() { Pada serangkain kodingan di atas


adalah void yang akan terpanggil di
int cm2 = sensor_ping2(D4, D3);
void loop bila ada salah satu kondisi

if (cm2 >= 2 && cm2 < 3) { yang terpenuhi.

led1.on();
Pada void volume merah akan
led2.on();
tepanggil bila sampah sudah sangat
led3.on();
dekat (2 cm sampai 3 cm ) dengan
led4.on();
sensor ultrasonik yang berada
}
diatas tempat sampah.
else {
led1.off(); Pada void volume kuning akan
} tepanggil bila sampah hampir
} penuh (3 cm sampai 5 cm ).

void volumekuning() { Pada void volume hijau akan


tepanggil bila sampah terisi
int cm2 = sensor_ping2(D4, D3);
setengah (5 cm sampai 10 cm ).

if (cm2 >= 3 && cm2 < 5) {


Pada void volume putih akan
led2.on();
tepanggil bila tempat sampah baru
led3.on();
terisi sedikit (10 cm sampai 15
35

led4.on(); cm ).
}
else {
led1.off();
led2.off();
}
}

void volumehijau() {

int cm2 = sensor_ping2(D4, D3);

if (cm2 >= 5 && cm2 < 10) {


led3.on();
led4.on();
}
else {
led1.off();
led2.off();
led3.off();
}
}

void volumeputih() {

int cm2 = sensor_ping2(D4, D3);

if (cm2 >= 10 && cm2 < 15)


{
led4.on();
}

else {
35

led1.off();
led2.off();
led3.off();
led4.off();
}
}

Sintaks Program Penjelasan

void sendNotifSampahPenuh() { Void diatas akan terpanggil jika


kondisi sampah penuh terpenuhi yang
Serial.println("tempat sampah
akan terpanggil di void loop.
penuh");

Blynk.virtualWrite(V1, id, 1);


Blynk.notify("tempat sampah
penuh");

Sintaks Program Penjelasan

int sensor_ping(const int trigPin, const Kodingan disamping


int echoPin) { menjelasakan prosedur dari
sejnsor ultrasonik 1 dan sensor
long duration, cm;
kedua
35

pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
cm =
microsecondsToCentimeters(duration);
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100);
return (cm);
}

int sensor_ping2(const int trigPin2,


const int echoPin2) {
long duration2, cm2;
pinMode(trigPin2, OUTPUT);
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
pinMode(echoPin2, INPUT);
duration2 = pulseIn(echoPin2, HIGH);
cm2 =
35

microsecondsToCentimeters(duration2);
Serial.print(cm2);
Serial.print("cm");
Serial.println();
delay(100);
return (cm2);
}

long microsecondsToCentimeters(long
microseconds) {
return microseconds / 29 / 2;
}

3.3.4 Pembuatan Aplikasi Blynk

Pada pembuatan alat ini menggunakan aplikasi blynk yang digunakan


untuk memantau tempat sampah melalui smartphone. Komunikasi antara
smartphone dengan melewati media jaringan yang menggunakan chipset esp8266
yang terdapat di dalam board Wemos D1. Pembuatan aplikasi ini dapat di
download pada playstore atau appstore yang terdapat pada smartphone.
1. Langkah pertama yaitu buka playstore / appstore pada smartphone kemudian
ketik blynk pada bar pencarian.
35

Gambar 3.15 Search keyword “Blynk”

2. Lalu klik download pada blynk dan tunggu hingga proses download selesai..

Gambar 3.16 Downlaod Blynk

3. Jika proses download telah selesai, silahkan buka aplikasi blynk kemudian
ketikan email untuk mendapatkan kode auth blynk tersebut. Lalu Masukan nama
proyek, pilih device yang digunakan, pilih tipe koneksi yang di pakai serta tema
35

yang diinginkan. Jika semua telah terisi klik tomblo klik dan dapatkan kode
token auth pada email yang telah di daftarkan.

Gambar 3.17 New Project Blynk

4. Selanjutnya tambahkan widget led dan widget notification pada menu “+” yang
terdapat pada pojok kanan atas aplikasi blynk, tambahkan 4 led untuk warna
red, yellow, green, white. Untuk mengubah warna pada masing masing led dapat
di ubah dengan cara menekan widget led dan tentukan pin inputan untuk led nya
seperti gambar berikut.
35

Gambar 3.18 Widget Led, Widget Lcd & Notification


5. Setelah selesai, project aplikasi blynk yang tadi sudah di buat akan otomatis
tersimpan dan siap untuk digunakan.

Gambar 3.19 Tampilan Blynk

Anda mungkin juga menyukai