• Tidak ada hasil yang ditemukan

Sistem ini dibangun dengan mengembangkan software, hardware dan infrastruktur jaringan yang telah tersedia. Pengembangan disisi software dapat dijelaskan pada diagram konteks sistem kendali & akuisisi jarak jauh peralatan elektronik berbasis IP (SKAPEI) berikut (Gambar 14).

Gambar 14 Diagram konteks sistem SKAPEI

Diagram konteks di atas menjelaskan interaksi pengguna dengan sistem dan interaksi sistem dengan peralatan rumah (home appliance). Pengguna berinteraksi dengan sistem melalui antar muka yang bersifat GUI (graphical user interace), pengguna dapat memberikan masukan berupa parameter–parameter yang diperlukan sistem untuk mengakses peralatan rumah dan penggunapun mendapatkan informasi tentang status dan nilai dari peralatan yang terpasang baik secara realtime maupun historical.

PROTOKOL

Komunikasi antar modul baik itu perangkat keras maupun perangkat lunak memerlukan suatu bentuk pemahaman bersama yang biasa disebut protokol. Protokol pada sistem ini mengatur atau mengijinkan terjadinya hubungan,

diterapkan pada Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras. Protokol yang digunakan di dalam sistem ini dibagi menjadi dua bagian yaitu protokol untuk hubungan serverembedded host (jaringan Internet) dan embedded

host device driver (jaringan rumah).

1. PROTOKOL SERVEREMBEDDED HOST

Media yang digunakan untuk komunikasi hubungan antara server dan

embedded host adalah Internet. Pengguna dapat menggunakan penyedia jaringan

Internet baik jalur kabel maupun jalur udara (wireless). Protokol yang digunakan adalah HTTP (Hype Text Transfer Protocol).

HTTP digunakan untuk meminta/menjawab antar klien HTTP (dalam hal ini embedded host), akan memulai permintaan dengan

membuat hubungan keserveport

yang biasa digunakan untuk browsing Internet. Klien yang mengirimkan permintaan HTTP juga dikenal dengan user agent. Server yang meresponsnya, yang menyimpan sumber daya seperti berkas HTML dan gambar, dikenal juga sebagai origin server. Di antara user agent dan juga origin server, bisa saja ada penghubung, seperti halnya

Embedded host akan membuka koneksi ke server saat diberi catu listrik

(proses inisialisasi), setelah server dan embedded host terkoneksi embedded host

akan meminta (request) ke server dengan menggunakan metode Get, pengiriman

request disertai dengan data status dan nilai hasil pengumpulan seluruh alat yang

terpasang. Data yang diterima server akan disimpan di dalam database, dari

database ini pula data status dan nilai alat rumah terkait beserta status request

dipaketkan menjadi jawaban (respons) ke embedded host. Gambar 15 merupakan gambaran transaksi embedded host-server.

Gambar 15 Transaksi http antara embedded host dan server

2. PROTOKOL EMBEDDED HOST – DEVICE DRIVER

Protokol embedded host - device driver ini merupakan protokol pengembang sendiri sesuai kebutuhan dalam hal ini disebut defined protocol, protokol ini digunakan untuk komunikasi yang dapat dimengerti oleh device driver dalam melakukan fungsinya baik untuk mengubah data digital ke bentuk lain (kinetik maupun logika high atau low) dan mengubah nilai suatu bentuk analog (cahaya , tegangan, arus listrik atau kinetik) ke bentuk digital menggunakan sensornya. Data berisi perintah yang didapat dari server dikirim embedded host ke seluruh

device driver yang terhubung jaringan rumah persatuan waktu peralat dan

perstuan waktu pula embedded host menunggu response dari alat yang berisi data status dan nilai Bentuk protokol ini dapat dilihat pada Gambar 16.

Gambar 16. a. Protokol dari embedded host ke alat, b. dari alat ke embedded host

$ Id Alatn Perintah Nilai Check sum !

# Id Alat Perintah Nilai Check sum !

a

Pengiriman data dari embedded host ke alat diawali dengan tanda $ sebagai

header sehingga alat yang menerima mulai menyimpan data yang dikirim setelah

tanda $ hingga tanda ! diterima. Ketika seuntaian data sudah diterima alat dalam hal ini software device driver dengan ditandai tanda ! device driver akan melakukan validasi terhadap nilai check sum, jika data valid maka device driver

akan memeriksa isi dari Id alat untuk menentukan apakah data ini ditujukan kepadanya, ketika Id alat sesuai device driver akan mengekstrak perintah dan nilai yang terkandung dalam untaian data tersebut untuk menentukan apa yang harus dilakukan dan sebesar apa perlakuan tersebut berdasarkan nilai yang diberikan. Setelah mengeksekusi perintah device driver mengirimkan status atau nilai alat ke

embedded host diawali dengan header # dilanjutkan dengan asal Id alat, perintah

(jenis nilai), nilai dari hasil sensor, kemudian nilai check sum dari seluruh byte mulai dari id alat hingga nilai dan diakhiri dengan tanda !.

Data yang dikirimkan device driver diterima embedded host dan disimpan ke dalam memory kemudian embedded host akan mengirimkan data dari alat lainnya kemudian menerima lagi data kiriman dari alat dan seterusnya hingga seluruhnya untuk alat yang terpasang. Data seluruh alat yang tersimpan di memory embedded host akan digabungkan dan dipaketkan untuk dikirimkan ke server di periodik waktu request berikutnya.

SOFTWARE

Software sistem ini berdasarkan letaknya dibagi menjadi tiga bagian yaitu : web application, embedded host, dan device driver (Gambar 17).

Gambar 17 Software SKAPEI.

Software–software tersebut dihubungkan secara fisik dengan jaringan Internet untuk web application dengan embedded host dan PLC antara embedded host dengan device driver. Sedangkan komunikasi antara software web

Web Application Embedded Host Device Driver Internet PLC HTTP Defined Protocol

application dengan embedded host menggunakan protokol HTTP pada tingkat application di OSI layer, defined protocol (protocol yang didefinisikan) merupakan protokol buatan yang digunakan untuk mengkomunikasikan antara embedded host dengan device driver.

Prinsip kerja ketiga software ini adalah sebagai berikut: web application memberikan interaksi terhadap pengguna berupa akses database baik mendapatkan (retrieve) informasi maupun memodifikasi (insert, edit, delete) data, embedded host secara periodik meminta (request) data dari server, data yang diterima berupa untaian instruksi terhadap peralatan rumah yang terpasang. Bersamaan dengan proses request embedded host mengirimkan untaian data status peralatan yang dikumpulkan dari peralatan yang terpasang. Komunikasi antara web application dengan embedded host menggunakan protokol HTTP melalui port 80. Kumpulan data yang diterima embedded host didapat dari pooling (meminta status/nilai masing-masing alat yang terpasang secara bergantian) embedded host secara periodik melalui jaringan PLC terhadap software device driver yang berada di masing-masing alat, sedangkan intruksi yang diterima embedded host dari web application diekstrak (dipecah berdasarkan intruksi untuk setiap alat) kemudian dipaketkan untuk dikirim ke masing – masing alat secara bergantian melalui satu jalur PLC. Komunikasi yang digunakan antara embedded host dan device driver menggunakan protokol buatan sendiri yang sudah telah didefinisikan (defined protocol). Command yang diterima device driver diinterpretasikan kealat bisa berupa gerakan kinetik (dengan menggunakan motor atau solenoid) maupun mengubah (on/off). Keadaan alat baik nilai maupun state (on/off) diterima sensor dipaketkan oleh device driver untuk siap dikirimkan ke embedded host.

1. WEB APPLICATION

Dari namanya sudah cukup jelas software ini merupakan aplikasi yang berbasis web, aplikasi ini diletakkan di server web hosting untuk mempermudah pengguna dalam mengaksesnya di mana pun dan kapan pun selama komputer maupun smart phone terhubung Internet. Aplikasi ini dibangun dengan menggunakan bahasa pemrograman PHP dan javascript dengan database

MYSQL, di aplikasi inilah pengguna berintraksi baik mendapat informasi status/history status maupun memberikan command (perintah) ke peralatan rumah, perintah terhadap peralatan disimpan di dalam database untuk siap diminta (request) software embedded host per satuan waktu (periodik), data yang diterima dari embedded host per satuan waktu disimpan ke dalam database untuk siap diakses pengguna.

Gambar 18 Interkasi client server

Interaksi pengguna dengan aplikasi web secara infrastruktur merupakan interaksi antara komputer client dengan komputer server, Gambar 18 menjelaskan interaksi tersebut. Web application merupakan aplikasi berbasis Web yang dapat diakses baik komputer maupun smart phone pengguna dengan menggunakan Web

browser misalnya Internet Explorer, Firefox Mozila, Opera, dan Chrome melalui

jaringan Internet, ketika diakses pengguna aplikasi ini terbagi dua menjadi server side (bagian server) dan client side (bagian klien), aplikasi ini menggunakan Ajax agar tidak semua halaman dimuat hanya untuk memuat satu bagian kecil (element) dalam halaman Web. Ajax pada aplikasi ini digunakan untuk memuat ulang

(refresh) status baik nilai ataupun keadaan on/off seluruh peralatan yang terpasang

.tanpa memuat seluruh halaman secara periodik, agar efek perubahan status terlihat real time.

Interaksi web application dengan embedded host sama halnya klien dan

server hanya saja pada embedded host memiliki resource (sumber daya) yang

terbatas sehingga tidak sekompleks dengan klien yang menggunakan komputer. Interaksi keduanya menggunakan protokol HTTP dengan metoda GET dan POST,

embedded host melakukan koneksi ke server dan meminta data, permintaan

menjawab (response) dengan untaian perintah ke embedded host, lebih jelas ada pada Gambar 19.

Gambar 19 Interaksi web application dengan embedded host

Untuk lebih jelas proses di request handler dapat dilihat pada flowchart Gambar 20.

Start

Ambil isi parameter id_rumah, id_alat, nilai dari data yang

dikirim melalui HTTP

Masukkan paramater id_rumah, id_alat, dan nilai kedalam database tabel status_alat disertai tanggal da jam dari server

Ambil id_alat, komand dan nilai dari database tabel

perintah yang belum dieksekusi dan id_rumahnya

= id_rumah yang dikirim embedded host

Gabungkan id_alat, komand dan nilai dengan header dan

tailnya Kirim hasil gabungan ke embedded host Ada perintah? Selesai

Gambar 20 Flowchart proses request handler

Request Handler Database Command set Status set Get & POST Function

Response & Command set

Request & Store status set

Fomat protokol yang diterima di proses handler bebentuk HTTP seperti ”GET update_alat.php?idrumah=2&idalat=1&nilai=1” parameternya berupa idrumah, idalat dan nilai alat sedangkan yang melakukan eksekusi parameter itu (request

hendler) adalah file update_alat.php. parameter yang diterima disimpan ke dalam

database tabel status_alat disertai dengan tanggal dan waktu penerimaan data setelah itu request handler melakukan pencarian data perintah (comand) pada tabel perintah sesuai parameter idalat dan idrumah yang diterima untuk dijadikan

response ke embedded host.

Hasil penelitian dari software ini memiliki tampilan utama seperti pada Gambar 21.

Gambar 21 Tampilan utama aplikasi web.

Tampilan utama yang tampak pada Gambar 21 akan muncul setelah pengguna melalui proses authorisasi dan autentikasi saat melakukan login, berdasarkan kedua proses tersebut akan dihasilkan hak akses pengguna terhadap rumah yang akan diakses. Seperti tampak pada Gambar 21 pengguna memiliki hak akses terhadap dua rumah dimana setiap rumah memiliki minimal satu atau lebih lantai, dengan memilih lantai suatu rumah pengguna akan diberi tampilan layout rumah beserta peralatan listrik dan elektronik yang terpasang di lantai tersebut sesuai

posisinya. Untuk mengatur atau mengubah suatu kondisi alat pengguna cukup menekan tombol sebelah kiri mouse sehingga muncul pop up menu yang terdiri dari perintah-perintah terhadap alat untuk peralatan yang hanya diatur on/off pop

up menu yang muncul terdiri dari: Aktifkan, Non aktifkan, dan History.

Sisi sebelah kanan menu utama terdapat penjelasan detail dari suatu peralatan, penjelasan ini berisi tanggal terakhir data masuk dari peralatan rumah, nama alat tersebut beserta nilainya, untuk peralatan yang hanya memberikan suatu nilai tidak diletakkan di layout ruangan melainkan di sisi kanan menu utama.

Data yang ditampilkan pada menu utama diambil dari database yang tersimpan di server web hosting, database ini dibangun menggunakan MySQL yang terdiri atas tabel-tabel, relasi dari tabel-tabel tersebut dapat dilihat pada Gambar 22. Master_rumah - Id (INT) - nm_rumah (Varchar) - alamat (Varchar) - ip (Varchar) - LT (INT) - LB (INT) Lantai_rumah - Id (INT) - id_rumah (INT) - nama (Varchar) Pengguna_rumah - Id (INT) - id_rumah (INT) - Id_pengguna (INT) Pengguna - Id (INT) - nama (Varchar) - sandi (Varchar) - telp (Varchar) Master_device - Id (INT) - device (Varchar) - id_tipe (INT) - Keterangan (Varchar) Device_rumah - Id (INT) - id_lantai_rumah (INT) - Id_device (INT) - command (Varchar) - Satuan (Varchar) - x (INT) - y (INT) - Keterangan (Varchar) - daya (INT) Perintah - Id (INT)

- tanggal (Date time) - id_device_rumah (INT) - komand (INT) - nilai (INT) - executed (INT) Status_alat - Id_device_rumah (INT) - tanggal (Date time) - nilai (INT) Tipe_device - Id (INT) - tipe (Varchar) - keterangan (Varchar) 1 1 1 1 1 1 1 1

Ketentuan yang diterapkan untuk membangun relasi tabel-tabel ini adalah: 1.Setiap pengguna dapat mengakses lebih dari satu rumah.

2. Setiap rumah bisa memiliki lebih dari satu lantai. 3. Satu lantai memiliki lebih dari satu alat (device).

4. Satu alat dalam suatu lantai memiliki lebih dari status / nilai. 5. Setiap alat memiliki satu tipe.

6. Setiap alat bisa diberikan perintah lebih dari satu dengan waktu masing-masing.

2. SOFTWARE EMBEDDED HOST

Embedded host software mengatur pooling data dari peralatan–peralatan

yang terpasang secara bergantian dengan menggunakan protokol yang telah didefinisikan (dibahas pada bagian protokol) agar bisa dimengerti oleh software

device driver, hasil pooling tersebut dipaketkan dengan beberapa byte sebagai

header, embedded host id dan byte CRC (Cyclic Redudancy Check), paket ini siap

dikirimkan ke server persatuan waktu yang telah ditentukan sesuai kebutuhan dengan menggunakan metode POST pada protokol HTTP. Bentuk fisik embedded host ini dibangun dengan komponen utama sebuah mikrokontroller dari keluarga AVR yang memiliki flash memory didalamnya, di flash memory inilah software

ditanamkan (embed). Software embedded host ini dibuat dengan menggunakan bahasa pemrograman C dan dilakukan compile dengan tools codevision AVR, secara struktur dapat dilihat pada Gambar 23.

Gambar 23 Struktur embedded host software.

Pool & Distribut Function Timer Package Get & POST Function Intepreter Devices commands web application Device driver Embedded host

Blok timer berfungsi untuk memanggil fungsi Get & Post per satuan waktu (periodik) yang dapat ditentukan sesuai keperluan, sedangkan fungsi Get & Post

merupakan fungsi untuk merubah paket yang berisi untaian status alat menjadi format protokol HTTP untuk dikirimkan ke server, fungsi lainnya mengubah data yang diterima dari server berupa response dan command dalam bentuk protokol HTTP menjadi format yang berisi untaian perintah (command) untuk peralatan yang terpasang, untaian ini kemudian dipecah–pecah (intepreted) berdasarkan jumlah alat dari embedded host (satu embedded host memiliki labih dari satu alat), pecahan–pecahan ini berupa alamat (identifikasi) alat–alat yang terpasang beserta nilainya, kemudian ditampung dan diatur di fungsi devices commands untuk siap didistribusikan ke masing–masing alat.

Start

Timer Overflow ?

Paketkan Semua Data hasil akusisi dari variabel perangkat

elektronik yg terpasang

Kirim paket data ke server sekaligus request command End Time = time+1 Ya Tidak Fungsi Timer Interupt

Ada Command ? Taruh Command Bytes ke dalam masing2 varibel device_send_byte Ekstrak Command berdasarkan device id Start Konfigurasi Microcontroller Inisialisasi perangkat elektronik yang terpasang

didalam jaringan

Kirim Request nilai dan byte command yg ada ke perangkat

elektronik yang ke i For i= 1 to jumlah alat

yang terpasang

Ada data jawaban dari perangkat elektronik yg ke I ?

Waktu Req= Waktu req +1

Apakah waktu tunggu req = waktu

yg ditentukan ?

Set nilai perangkat elektronik yg ke I = null

Set variable nilai perangkat elektronik yg ke i End Ya Ya Tidak Tidak Fungsi Utama Ya Tidak

Fungsi pool & distribut bekerja mengatur waktu pengiriman instruksi untuk mengirim command dan menerima data dari dan ke alat secara bergantian, jadi sekali embedded host mengirimkan (distribute) command saat itu pula embedded host meminta status dan nilai alat, status dan nilai alat yang diterima dari hasil

pooling dilanjutkan ke proses pemaketan (package) untuk dipaketkan bersama–

sama dengan id embedded host, beberapa byte header dan hasil perhitungan CRC. Hasil pemaketan ini kemudian siap untuk diubah menjadi format protokol HTTP di fungsi Get & Post. Secara garis besar flowchart nya dapat dilihat pada Gambar 24.

2. SOFTWARE DEVICE DRIVER

Device driver merupakan software yang berinteraksi langsung terhadap

peralatan rumah yang mengubah dari byte–byte perintah menjadi sinyal–sinyal listrik yang dapat mengubah kondisi peralatan listrik baik berupa aktuator ataupun keadaan on/off. Setiap jenis peralatan memiliki device driver yang berbeda dan belum tentu bisa digunakan di jenis peralatan listrik lainnya, misalnya device

driver untuk mengubah keadaan on/off tidak bisa digunakan untuk mengubah

gerakan motor stepper karena keluaran dari device driver berbeda, device driver

juga memiliki tugas untuk membaca status dan nilai peralatan listrik dengan menggunakan sensor yang sesuai dengan kondisi peralatan listrik yang digunakan, hasil pembacaan sensor ini dipaketkan untuk siap dikirim ke embedded host.

Gambar 25 Struktur software device driver.

Sensor Pulse generator Package Intepreter Req & Response function Pool & Distribut Function Embedded host Device driver

Gambar 25 menampilkan blok diagram prinsip kerja software device driver,

software ini menunggu request dari embedded host, ketika embedded host

memancarkan (broadcast) data, masing–masing device driver akan melakukan pemeriksaan apakah alamat data yang dituju sesuai dengan alamat device driver

tersebut, ketika sesuai device driver akan menerjemahkan (interpreter) protokol yang diterima menjadi perintah (command) untuk mengaktifkan pulse generator

(untuk alat tipe switch on/off, untuk aktuator dapat berupa pulsa PWM), perubahan status akibat perintah yang telah dilaksanakan dibaca sensor yang kemudian data hasil pembacaannya dipaketkan dengan id alat beserta CRC dalam bentuk protokol yang telah didefenisikan sebelumnya, paket ini diteruskan ke

embedded host melalui fungsi request & response sebagai jawaban atas data yang

dikirimkan embedded host lebih jelas tampak pada flowchart Gambar 26. Start

Set parameter mikrokontroller Cek masukan port

serial Ada Byte masuk? Byte yang masuk = ‘$’? Receive flag aktif?

Set Receive flag aktif

Data=data + Byte Byte yg masuk

= ‘!’?

Parsing Data menjadi: Alamat, komand, nilai

Alamat Sesuai? Jalankan komand dengan nilainya A A

Cek nilai sensor Gabungkan dengan

byte alamat dan komand kirim nilai

Hitung CRC

CRC sesuai? Set receive flag = 0 dan data = null

Hitung CRC Gabungkan hasil gabungan

nilai, alamat, komand dengan Header, tail dan

CRC Kirim data Selesai Tidak Ya Ya Ya Ya Ya Ya Tidak Tidak Tidak Tidak Tidak

Dokumen terkait