• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN PROGRAM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN PROGRAM"

Copied!
12
0
0

Teks penuh

(1)

BAB III

PERANCANGAN PROGRAM

Pada bab ini akan dilakukan pembahasan mengenai pembuatan bot aplikasi Telegram yang dapat melakukan perintah untuk memonitoring serta kontrol jarak jauh. Pembahasan mencakup deskripsi program aplikasi, diagram alir program aplikasi, dan cara kerja program aplikasi.

3.1 Gambaran Umum

Program yang dibuat pada tugas akhir ini adalah “Perancangan Aplikasi Telegram untuk Monitoring dan Kendali Penyiraman Tanaman” dengan pembahasan yang mencakup pemrograman dengan Python dan

Raspberry. Bentuk dari perancangan akan di jabarkan sebagai berikut.

a. Nama Sistem : Perancangan Aplikasi Telegram untuk Monitoring dan Kendali Penyiraman Tanaman

b. Fungsi Sistem : Secara garis besar aplikasi ini berfungsi sebagai pengontrol jarak jauh sekaligus memonitoring kelembaban tanah pada tanaman.

c. Diagram blok sistem aplikasi

Aplikasi Telegram pada

Smartphone Raspberry Arduino

Sensor Kelembaban Tanah

Solenoid Valve

Server Telegram

(2)

Dari gambar diagram blok di atas dijelaskan tentang sistem monitoring dan kendali penyiraman tanaman jarak jauh dengan menggunakan aplikasi telegram yang terhubung dengan internet. Dengan aplikasi Telegram pengguna dapat melakukan perintah kepada arduino melalu

raspberry sebagai penghubung dengan jaringan untuk melakukan

monitoring atau pengambilan data kelembaban tanah melalui sensor. Kemudian sensor akan mengirimkan data kelembaban tanah ke telegram melalui arduino. Jika data kelembaban tanah menunjukkan bahwa tanah kering dan butuh pengairan, maka pengguna dapat melakukan perintah kepada arduino melalui telegram untuk melakukan penyiraman tanaman.

3.2 Perancangan Perangkat Lunak

Perancangan perangkat lunak pada sistem monitoring dan kendali jarak jauh ini menggunakan bahasa pemograman python sebagai jembatan untuk mengirim dan menerima pesan ke telegram messenger yang sudah diintegrasi ke mikrokontroler. Untuk mengetahui proses cara kerja aplikasi diperlukan diagram alir sebagai garis besar ruang lingkup aplikasi. Adapun gambar diagram alir pada alat sebagai berikut :

(3)

Mulai

Telegram Messenger

Masukan Inputan

Input dari telegram masuk ke python pada

raspberry

Arduino membaca output dari telegram

melalui python

Arduino membuka selenoid valve

Arduino menutup selenoid valve Arduino mengirim nilai

kelembababan tanah Sensor Kelembaban Tanah Data “c” Data “a” Data “b” Tanah lembab/basah Tanah Kering Arduino tidak mengirim nilai kelembaban tanah Arduino tidak melakukan perintah membuka selenoid valve Arduino tidak melakukan perintah menutup selenoid valve Ya Ya Ya T T T

Gambar 3.2 Diagram Alir Program Aplikasi

Dari diagram alir di atas dapat dilihat terdapat 3 bagian dari program aplikasi yang dibuat, terdiri dari :

1. Program input pesan “Kontrol Device” pada aplikasi telegram messenger yang telah diintegrasi ke alat dengan tujuan agar pesan tersebut dapat mengontrol perangkat.

2. Program input pesan “Petunjuk” pada aplikasi telegram messenger yang telah diintegrasi ke alat dengan tujuan hanya menampilkan pesan pada bot telegram keterangan masing-masing button.

(4)

3. Program input pesan “Pemantauan” pada aplikasi telegram messenger yang telah diintegrasi ke alat yang bertujuan untuk memantau sensor kelembaban tanah.

Telegram tidak dapat menerima input dari sensor secara otomatis. Pengguna harus melakukan perintah dengan keyboard yang telah dibuat di dalam bot. Perintah yang dimaksudkan adalah input dari telegram yang masuk ke python pada raspberry. Kemudian arduino membaca output dari telegram melalui python. Dari diagram alir di atas dapat dilihat bahwa terdapat tiga inputan dari telegram yang terintegrasi dengan arduino. Ketiga data tersebut adalah:

 Data “a” yang pada keyboard aplikasi telegram adalah button “Siram Tanah” yang berfungsi agar arduino membuka solenoid valve sehingga dapat dilakukan penyiraman pada tanaman.

Data “b” yang pada keyboard aplikasi telegram adalah button “Berhenti” yang berfungsi agar arduino menutup solenoid valve sehingga pen

Data “c” yang pada keyboard aplikasi telegram adalah button “Monitoring” yang berfungsi agar arduino mengirimkan data berupa nilai kelembaban tanah yang diterima dari sensor kelembaban tanah.

Pada saat arduino mengirimkan nilai kelembaban tanah yang menunjukkan tanah dalam keadaan kering, maka pengguna aplikasi dapat melakukan perintah penyiraman tanaman dengan menekan button “Siram Tanah”.

Dengan aplikasi telegram, monitoring kelembaban tanah dan kontrol penyiraman tanaman dapat dilakukan dengan jarak jauh, karena terhubung dengan internet. Untuk dapat melakukan monitoring dan kontrol jarak jauh, pengguna perlu mengunduh aplikasi telegram di smartphone kemudian membuat bot baru. Yang dapat melakukan perintah di dalam bot tersebut hanya akun yang membuat bot dengan ID yang telah diberikan oleh telegram. Berikut ini adalah gambar dari proses pembuatan bot aplikasi di dalam telegram:

(5)

Gambar 3.3 Pembuatan Bot Aplikasi Peyiram Tanaman 3.2.1 Komunikasi Serial Python pada Raspberry

Komunikasi digunakan sebagai penghubung antara arduino dan telegram. Pada mikrokontroler yang digunakan yaitu Arduino Uno menggunakan bahasa pemograman C sebagai perintah untuk menjalankan fungsi arduino. Cara menghubungkan antara mikrokontroler dan telegram messenger yaitu menggunakan bahasa pemograman python yang terintegrasi pada raspberry dengan arduino melalui kabel serial-USB. Adapun skrip proses komunikasi serial melalui pemograman python sebagai berikut :

import telepot, time, serial

from twx.botapi import TelegramBot, ReplyKeyboardMarkup ser = serial.Serial('COM8', 9600, timeout = 1, write_timeout = 1)

(6)

Skrip diatas berfungsi sebagai tanda pengenal pemasangan komunikasi serial berada di „COM 8‟ dengan bitrate 9600 disamakan dengan pemograman pada arduino uno. Pada skrip pemograman pada arduino uno agar dapat berkomunikasi dengan pemograman python maka dibuat skrip sebagai berikut :

void setup(){

pinMode(relay,OUTPUT); //output triger relay Serial.begin(9600);

}

void perintah(){

while (Serial.available() != 0) { int inByte = Serial.read(); switch(inByte){ case 'a': digitalWrite(relay, LOW); break; case 'b': digitalWrite(relay, HIGH); break; case 'c': monitoring(); break; } } }

(7)

3.2.2 Program Monitoring dan Pengendalian Perangkat Melalui Telegram

Saat arduino terhubung pada raspberry melalui kabel serial-USB,. skrip program pada arduino akan inisialisasi secara otomatis sesuai dengan perintah. Apabila kita mengirim pesan melalui bot telegram maka akan memanggil fungsi bahasa pemograman python dan bahasa pemograman bahasa C pada arduino akan merespon dan menjalankan fungsi sesuai perintah. Berikut skrip perintah bahasa pemograman python yang terintegrasi pada raspberry sebagai kontrol perangkat :

#!/usr/bin/env python3 import telepot, time, serial

from twx.botapi import TelegramBot, ReplyKeyboardMarkup

ser = serial.Serial('COM8', 9600, timeout = 1, write_timeout = 1)

def handle(msg):

content_type, chat_type, chat_id = telepot.glance(msg)

userName = msg['from']['first_name']+" "+msg['from']['last_name']

if (chat_id == 312033690) :

if (content_type == 'text'): perintah = msg['text']

print ('Perintah : %s' % perintah)

(8)

bot.sendMessage(chat_id, "Hello "+userName+", Saya Bot Penyiram Tanaman")

elif '/mulai' in perintah: keyboard = [

['Kontrol', 'Monitoring',], ['EXIT']

]

reply_markup = ReplyKeyboardMarkup.create(keyboard) bot.sendMessage(chat_id, 'Menu Utama :',

reply_markup=reply_markup)

elif 'Kembali' in perintah: keyboard = [

['Kontrol', 'Monitoring',], ['EXIT']

]

reply_markup = ReplyKeyboardMarkup.create(keyboard) bot.sendMessage(chat_id, 'Menu Utama :',

reply_markup=reply_markup)

elif 'Kontrol' in perintah: keyboard = [

['Siram Tanah', 'Berhenti',], ['Kembali']

]

reply_markup = ReplyKeyboardMarkup.create(keyboard) bot.sendMessage(chat_id, 'Kendali Penyiraman :', reply_markup=reply_markup)

elif 'EXIT' in perintah:

(9)

bot.sendMessage(chat_id, 'Keyboard ditutup!', reply_markup=hide_keyboard)

elif 'Siram Tanah' in perintah: ser.write(b'a')

bot.sendMessage(chat_id, "Menyiram Tanah")

elif 'Stop' in perintah: ser.write(b'b')

bot.sendMessage(chat_id, "Berhenti")

elif 'Monitoring' in perintah: ser.write(b'c')

message = ser.read(300) print (message)

bot.sendMessage(chat_id, message)

else :

bot.sendMessage(chat_id, "Keyword tersebut tidak disetting!")

else :

bot.sendMessage(chat_id, "Maaf, sistem tidak mengenali ID anda ")

bot = telepot.Bot('290610931:AAEmTKW4iCaln1S5uoh1g8YuGPfHIbOxBJ0')

bot.message_loop(handle)

print ('Listening ...')

while 1:

(10)

Pemograman diatas menggunakan skrip penulisan komunikasi serial a-c sebagai kode unik kontrol perangkat ke arduino. Maka untuk dapat menjalankan fungsi dari sisi arduino menggunakan skrip sebagai berikut :

int relay = 3;

void setup(){

pinMode(relay,OUTPUT); //output triger relay Serial.begin(9600); } void loop(){ perintah(); } void perintah(){ while (Serial.available() != 0) { int inByte = Serial.read(); switch(inByte){ case 'a': digitalWrite(relay, LOW); break; case 'b': digitalWrite(relay, HIGH); break; case 'c': monitoring();

(11)

break; }

} }

void monitoring() {

float sensorValue = analogRead(A0);

if(sensorValue <= 300){

Serial.print("\nNilai Pada Sensor Air : "); Serial.print(sensorValue);

Serial.print("\nTanah Kering"); }

else if(sensorValue > 300 && sensorValue <= 700 ){ Serial.print("\nNilai Pada Sensor Air : ");

Serial.print(sensorValue); Serial.print("\nTanah Lembap"); }

else{

Serial.print("\nNilai Pada Sensor Air : "); Serial.print(sensorValue);

Serial.print("\nTanah Jenuh"); }

}

Pada program dijelaskan bahwa masing-masing case pada pemograman arduino akan menjalankan masing-masing fungsi untuk memutus dan menghidupkan arus perangkat melalui relay. Relay menggunakan LOW, yaitu bermakna kebalikan terhadap

active-HIGH.

Pada program Arduino dijelaskan bahwa terdapat tiga kategori keadaan tanah, yaitu saat sensor membaca nilai:

(12)

 301 sampai dengan 700 maka tanah dalam keadaan lembab  701 sampai dengan 950 maka tanah dalam keadaan jenuh

Gambar

Gambar 3.2 Diagram Alir Program Aplikasi
Gambar 3.3 Pembuatan Bot Aplikasi Peyiram Tanaman

Referensi

Dokumen terkait

Penelitian ini bertujuan untuk mengetahui keakuratan tajam penglihatan hasil biometri dengan hasil koreksi kacamata berdasarkan axial length pada pasien katarak

Penelitian ini bertujuan untuk menganalisis hubungan antara usia, masa kerja, pengetahuan tentang AR, penggunaan alat pelindung diri dengan Artritis Reumatoid (AR) pada pekerja di

Pada tugas akhir ini dibuatlah rancang bangun alat penyiram otomatis yang akan menyiram tanaman ketika keadaan tanah kering berdasarkan sensor kelembaban tanah dan pengusir

Perkembangan pada zaman ini semakin meningkat, manusia mengharapkan sebuah alat atau teknologi yang dapat membantu pekerjaan manusia, sehinga teknologi

Sehingga pada saat kondisi tanah yang dibaca oleh sensor kelembaban berubah, maka akan mengirimkan duty cycle yang berbeda sesuai dengan kondisi tanah yang

prediction(y), ini gambaran dari hasil prediksi yang dilakukan dengan menggunakan algoritma Naive Bayes berbasis Backward Elimination , contah data hasil prediksi

pada perancangan mobil robot dapat melakukan pekerjaan sesuai perintah yang di inginkan maka Module Arduino UNO di coding menggunkan aplikasi Arduino IDE dengan

Empati dalam komunikasi akan menimbulkan sikap penerimaan dan pengertian terhadap perasaan orang lain secara tepat, serta meningkatkan efektivitas dari komunikasi yang