• Tidak ada hasil yang ditemukan

IV. HASIL DAN PEMBAHASAN

4.3 Pengujian Algoritma dan Program

Pembahasan ini bertujuan untuk mengulas serta malihat bagaimmana sistem yang telah dirancang dapat bekerja dengan baik. Pada pembahasan ini akan diuraikan beberapa proses pada sistem sehingga dapat dilihat sejauh mana keberhasilan sistem yang dirancang. Adapun proses tersebut adalah proses koneksi ke jaringan local (wifi), proses baca data sensor, proses pengiriman data

Program Koneksi Wifi

Controller menghubungkan sistem dengan jaringan wifi, apabila pada area sekitar tidak ada wifi yang sesuai dengan script kodingan (program) yang telah dibuat maka sistem tidak akan dapat bekerja, namun jika sistem berhasil terhubung ke jaringan wifi maka sistem akan menampilkan status IoT dan akan

siap melakukan proses selanjutnya.

Gambar 40. Script Koneksi Wifi

Terlihat pada gambar 40 potongan Script jaringan wifi yang akan digunakan pada sistem, Script yang berwana kuning adalah Usernama dan password dari jaringan wifi tersebut. Dibawah ini akan ditampilkan gambaran Controller yang sudah terhubung dan yang belum terhubung dengan jaringan wifi.

(a) (b)

Gambar 41.(a) Sistem Koneksi Wifi (b) Sistem Menampilkan Status IoT Program Pembacaan Data Sensor dan Proses Kirim Ke Serve

Proses ini meliputi beberapa bagian yang akan penulis jelaskan berdasarkan alur kerja yang sistem butuhkan. Bagian-bagian tersebut adalah proses pembacaan data sensor dan proses pengiriman data ke Server.

//Node MCU

ESP8266WiFiMulti WiFiMulti;

HTTPClient http;

float vref = 3.3;

float resolusi = vref*100/1023;

String payload;

const char* ssid = "alim123";

const char* password = "alim123";

52

a) Baca Data Sensor

Pada bagian ini proses utama yang akan dilakukan oleh Controller yaitu pembacaan data sensor dan pengiriman data ke Sercer, data sensor yang dibaca adalah sensor kelembaban tanah dan sensor suhu.

1. Baca Sensor Suhu int baca_dht()

{

delay(100);

float h = dht.readHumidity();

float t = dht.readTemperature();

float f = dht.readTemperature(true);

float hif;

float hic;

if (isnan(h) || isnan(t) || isnan(f)) {

Serial.println(F("Failed to read from DHT sensor!"));

} else {

hif = dht.computeHeatIndex(f, h);

hic = dht.computeHeatIndex(t, h, false);

}

return hic;

}

Gambar 42. Script Untuk Baca Sensor Suhu

Terlihat pada gambar 42 diatas merupakan potongan Script pada Nodemcu untuk membaca suhu area sekitar tanaman. Kemudian setelah sensor bekerja kemudian Controller akan mengirim data ke Server dan kemudian akan ditampilkan pada layar monitor.

2. Baca Sensor Kelembaban Tanah int baca_sensor(int port)

{ return (analogRead(port));

} int baca_tombol(int port) {

return (digitalRead(port));

}

Gambar 43. Script Untuk Baca Sensor Kelembaban Tanah

Terlihat pada gambar 43 diatas Script yang berwarna kuning merupakan potongan Script untuk membaca sensor kelembaban tanah dengan mengunakan pin analog pada Nodemcu, tujuan pengunaan pin analog agar bisa

menghasilkan keluaran nilai yang kontinu sehingga penulis dapat membuat parameter dari bacaan sensor.

b) Proses Kirim Data

Berikut dibawah ini akan dilampikran Script potongan program proses pengiriman data bacaan sensor, data akan dikirimkan ke Server sebagai informasi bagi penguna atau client.

void kirim_internet(int nilai,String nilai2,float nilai3) {

if((WiFiMulti.run() == WL_CONNECTED)) { USE_SERIAL.print("[HTTP] Memulai...\n");

http.begin("http://penyiramanbibit.com/

admin/admin3/tabel/data_realtime_sensor/baca.php?

data=" + (String) nilai + "&data2=" + nilai2 + "&data3=" + (String) nilai3 );

USE_SERIAL.print("http://penyiramanbibit.com/admin/admin3/

tabel/data_realtime_sensor/

baca.php?data=" + (String) nilai + "&data2=" + nilai2 + "&data3=" + (String) nilai3 );

USE_SERIAL.print("[HTTP] Melakukan GET ke server...\n");

int httpCode = http.GET();

if(httpCode > 0) {

USE_SERIAL.printf("[HTTP] kode response GET: %d\n", httpCode);

if(httpCode == HTTP_CODE_OK) { payload = http.getString();

//USE_SERIAL.println(payload);

const size_t capacity = JSON_OBJECT_SIZE(3) + JSON_ARRAY_SIZE(2) + 60;

DynamicJsonBuffer jsonBuffer(capacity);

JsonObject& root = jsonBuffer.parseObject(payload);

if (!root.success()) {

USE_SERIAL.println(F("Parsing failed!"));

lcd_view("Server Error ",0,1,0);

Gambar 44. Script Pengiriman Data ke Server

Setelah controller mendapatkan data, maka controller akan mengirimkan data sensor tersebut ke dalam server. Perintah script yang digunakan untuk controller mengirimkan data tersebut pada Gambar 44, Alamat IP menjadi patokan kemana data tersebut akan dikirim, pada penelitian ini penulis telah

54

mengantikan alamat IP dengan nama domain http://penyiramanbibit.com.

Dengan demikian server dapat digunakan secara onile (realtime), dengan jangka waktu yang digunakan selama satu tahun, jika waktu telah melewati batas maka server harus diaktifkan kembali dengan memperpanjang masa hosting dan domain server.

Setelah proses pembacaan sensor selesai dan data dikirim ke Server, kemudian PHP akan menetukan parameter dari bacaan sensor kelembaban tanah tersebut.

1. PHP Menentukan Parameter Masukan Sensor Kelembapan Tanah if($s < 301)

{

echo "Tanah Basah";

}

else if($s > 300 && $s<801) {

echo "Tanah Lembab";

}

Gambar 45. Script Proses penentuan Parameter Sensor

Terlihat pada gambar 45 diatas potongan Script PHP untuk membaca parameter sensor, pada Script tersebut terdapat tiga parameter yang penulis buat yaitu jika kecil dari 301 maka parameter nya “Tanah Basah”, jika besar dari 300

& kecil dari 801 maka parameter nya “Tanah Lembab” dan jika besar dari 801 maka parameter nya “Tanah Kering”. Setelah PHP menentukan parameter dari sensor kemudian akan ditampilkan pada layar monitor.

Program Penampilan Data Sensor

Setelah proses baca data dan proses pengiriman data sensor selesai kemudian sistem menampilkan hasil pada layar monitor, penampilan data sangat penting dilakukan karena data bacaan sensor ini berguna sebagai informasi bagi pengguna. Berikut akan ditampilkan potongan Script penampilan data:

Highcharts.chart('grafik', {

Gambar 46. Script Proses Penampilan Data

Terlihat pada gambar 46 potongan script dari proses penampilan data, dari script diatas dapat dilihat data sensor yang ditampilkan dalam bentuk grafik dengan bertipe line, kemudian selanjutnya sistem juga akan ditampilkan riwayat dari data sensor yang ditampilkan dalam berbentuk tabel. Berikut akan dilampirkan potongan script penampilan riwayat pengiriman data:

<div style="overflow-x:auto;">

<table <?php tabel(100,'%',1,'left'); ?> >

<tr>

<th>No</th>

<th>Id&nbsp;realtime&nbsp;sensor</th>

<th align="center" class="th_border cell" >Tanggal</th>

<th align="center" class="th_border cell" >Jam</th>

<th align="center" class="th_border cell" >Sensor1</th>

<th align="center" class="th_border cell" >Status</th>

<th align="center" class="th_border cell" >Sensor2</th>

<th align="center" class="th_border cell" >Status</th>

<th align="center" class="th_border cell" >Sensor3</th>

Gambar 47. Script Penampilan Tabel Riwayat Data Sensor

56

Terlihat pada gambar 47 potongan script untuk menampilkan riwayat data sensor, script yang berwarna kuning menjelaskan beberapa riwayat yang ditampilkan diantaranya adalah riwayat ID realtime sensor, riwayat tanggal, riwayat waktu/jam data sensor dikirim, riwayat sensor kelembaban, riwayat sensor suhu dan yang terkahir riwayat parameter (status) sensor kelembaban tanah, penampilan data ini bertujuan agar penguna dapat melihat riwayat data sensor sebelumnya.

Gambar 48. Dokumentasi Tampilan Grafik dan Tabel Data Sensor

Program Penyiraman Manual

Penyiraman merupakan proses utama yang dilakukan oleh sistem, karna ini sesuai dengan tujuan dari penulisan penelitian ini yaitu membuat perangkat penyiraman yang dapat di kontrol dari jarak jauh, dibawah ini akan dilampirkan potongan script program dari proses penyiraman, pada proses penyiraman manual ini terdapat dua proses yaitu pada sisi server dan pada sisi Controller.

1. Script Pada Server

</script>

<center>

<a class="btn btn-success" href="manual.php" >PENYIRAMAN MANUAL</a>

<!--<a class="btn btn-primary" href="../data_penyiraman_otomatis/index.php"

>PENYIRAMAN OTOMATIS</a> -->

<a class="btn btn-warning" href="../data_penyiraman_terjadwal/index.php"

>PENYIRAMAN TERJADWAL</a>

<a class="btn btn-danger" href="hapus.php" >HAPUS SEMUA DATA REALTIME SENSOR</a>

</center>

<br>

<br>

Gambar 49. Script Untuk Tombol Penyiraman Manual

Terlihat pada gambar 49 script yang berwarna kuning program untuk proses penyiraman secara manual, ketika tombol telah ditekan maka Server akan mengirim perintah ke controller untuk melakukan proses penyiraman, setelah perintah diterima controller akan melakukan penyiraman, berikut dibawah ini akan dilampirkan script proses penyiraman.

2. Script Pada Controller delay(2000);

}

void aktifkan(int port) {

digitalWr ite(port,HIGH);

}

void matikan(int port) {

digitalWrite(port,LOW);

}

58

Gambar 50. Script Proses Penyiraman Manual

Terlihat pada gambar 50 script program penyiraman manual pada controller, script yang berwarna merah menunjukan proses mengaktifkan dan mematikan pompa¸ jika relay menerima signal HIGH, maka pompa akan aktif dan jika relay menerima signal LOW, maka pompa akan mati. Kemudian terlihat pada script yang berwarna kuning adalah proses lama waktu penyiramanan yaitu selama dua detik, jika waktu menyiram telah sesuai dengan waktu yang di setting maka pompa akan berhenti menyiram.

Program Proses Penjadwalan Penyiraman

<a class="btn btn-warning"

href="../data_penyiraman_terjadwal/index.php">PENYIRAMAN

$query=mysql_query("insert into data_penyiraman_terjadwal values ( '$id_penyiraman_terjadwal'

Gambar 51. Script Penjadwalan Penyiraman

Terlihat pada gambar 51 script program penyiraman terjadwal, script yang berwarna kuning untuk tombol penyiraman terjadwal. Ketika tombol ditekan User akan diarahkan untuk mengisi jadwal sesuai waktu yang diinginkan, pada script yang berwarna merah terdapat beberapa kolom teks yang harus diisi yaitu, mengisi waktu/jam, pesan, memilih pompa, buzzer, dan yang terakhir status. Setelah semua selesai diisi kemudian data akan disimpan pada database, script yang berwarna hijau merupakan script program proses kirim simpan jadawal ke database.

$id_realtime_sensor=id_otomatis("data_realtime_sensor","id_realtime_sensor","10

");

$tanggal=date("Y-m-d H:i:s");

$jam=date("H:i:s");

$query=mysql_query("insert into data_realtime_sensor values ( '$id_realtime_sensor'

,'$tanggal' ,'$jam' ,'Stop alarm'

Gambar 52. Script Penyiraman Terjadwal

Jika jadwal telah dibuat dan dimasukan ke database, sistem akan menyesuaikan proses penyiraman sesuai dengan waktu yang telah ditentukan, ketika jadwal telah sesuai maka sistem akan menyiram secara otomatis, sistem akan menyiram selama satu menit dari jadwal yang telah ditentukan, apabila telah menyiram selama satu menit sistem akan berhenti dengan sendiri.

(a)

60

(b)

Gambar 53. (a) Pengisian Jadwal Penyiraman dan (b) Jadwal penyiraman Program Pengelolaan Penyiraman Otomatis

<a class="btn btn-blue"

href="../data_penyiraman_otomatis/index.php">PENYIRAMAN OTOMTIS</a>

$id_penyiraman_otomatis=id_otomatis("data_penyiraman_otomatis","id_penyira man_otomatis","10");

$min_sensor_kelembapan1=xss($_POST['min_sensor_kelembapan1']);

$min_sensor_kelembapan2=xss($_POST['min_sensor_kelembapan2']);

$min_sensor_suhu=xss($_POST['min_sensor_suhu']);

$status=xss($_POST['status']);

$query=mysql_query("insert into data_penyiraman_otomatis values ( '$id_penyiraman_otomatis'

,'$min_sensor_kelembapan1' ,'$min_sensor_kelembapan2' ,'$min_sensor_suhu'

,'$status'

Gambar 54. Script Pengelolaan Penyiraman Otomatis

Terlihat pada gambar 54 script program penyiraman otomatis, script yang berwarna kuning untuk tombol pengelolaan penyiraman otomatis. Ketika tombol ditekan User akan diarahkan untuk mengisi kolom teks pengelolaan penyiraman otomatis, pada script yang berwarna merah terdapat beberapa kolom teks yang harus diisi yaitu, mengisi setpoint minimal sensor kelembaban satu dan dua, minimal sensor suhu kemudian status. Setelah semua selesai diisi kemudian data akan disimpan pada database, script yang berwarna hijau merupakan script program proses kirim simpan setpoint penyiraman ke database.

$id_realtime_sensor=id_otomatis("data_realtime_sensor","id_realtime_sensor","10

");

$tanggal=date("Y-m-d H:i:s");

$jam=date("H:i:s");

$query=mysql_query("insert into data_realtime_sensor values ( '$id_realtime_sensor'

,'$tanggal' ,'$jam' ,'1024' ,'Stop alarm'

)");

Gambar 55. Script Penyiraman Otomatis

Jika setpoint sensor telah dibuat dan dimasukan ke database, sistem akan menyesuaikan nilai masukan sensor yang terbaca, ketika nilai masukan sensor lebih tinggi dari nilai setpoint sensor maka alat akan melakukan penyiraman secara otomatis, penyiraman akan dilakukan secara terus menerus ketika nilai masukan sensor belum sesuai dengan nilai setpoint yang telah dibuat.

62

(a)

(b)

Gambar 56. (a) Proses Pengelolaan Penyiraman otomatis, (b) setpoint sensor yang telah disimpan

Program Proses Hapus Data Sensor

Proses hapus data sensor bertujuan untuk menghapus semua data masukan sensor yang dikirim oleh controller pada server, menghapus data sensor agar data yang di simpan ke database tidak menumpuk dan terlalu penuh, jika terlalu penuh ini akan berpengaruh terhadap kerja sistem.

<a class="btn btn-danger" href="hapus.php" >HAPUS SEMUA DATA REALTIME SENSOR</a>

</center>

<br>

<br>

<?php include '../../../include/all_include.php';

$query=mysql_query("DELETE from data_realtime_sensor");

header('Location:index.php');

?>

Gambar 57. Script Proses Hapus Data Sensor

Terlihat pada gambar 57 diatas potongan Script hapus data sensor, ketika tombol hapus data realtime sensor dihapus maka sistem akan menghapus semua data sensor pada database. Script yang berwarna kuning merupakan peroses penghapusan data sensor dari database. Dibawah ini dapat dilihat tampilan gambar proses penghapusan data sensor.

(a)

64

(b)

Gambar 58. (a) Tombol Hapus Data Sensor (b) Halaman Setelah Hapus Data Sensor

Dokumen terkait