UNTUK APLIKASIspmi.poltekba.ac.id/spmi/fileTA/140309248793_2017.pdf · Gambar 4.9 Remote Kipas...

Post on 11-Mar-2019

236 views 0 download

Transcript of UNTUK APLIKASIspmi.poltekba.ac.id/spmi/fileTA/140309248793_2017.pdf · Gambar 4.9 Remote Kipas...

PERANCANGAN REGISTRATION SERVER

UNTUK APLIKASI

INTERNET OF THINGS

TUGAS AKHIR

ARIEF NUR MUHAMMAD

NIM : 140309248793

POLITEKNIK NEGERI BALIKPAPAN

JURUSAN TEKNIK ELEKTRONIKA

BALIKPAPAN

2017

ARIEF NUR MUHAMMAD

NIM : 140309248793

POLITEKNIK NEGERI BALIKPAPAN

JURUSAN TEKNIK ELEKTRONIKA

BALIKPAPAN

2017

i

PERANCANGAN REGISTRATION SERVER

UNTUK APLIKASI

INTERNET OF THINGS

JUDUL

TUGAS AKHIR

KARYA TULIS INI DIAJUKAN SEBAGAI SALAH SATU SYARAT

UNTUK MEMPEROLEH GELAR AHLI MADYA DARI POLITEKNIK

NEGERI BALIKPAPAN

ARIEF NUR MUHAMMAD

NIM : 140309248793

POLITEKNIK NEGERI BALIKPAPAN

JURUSAN TEKNIK ELEKTRONIKA

BALIKPAPAN

2017

ARIEF NUR MUHAMMAD

NIM : 140309248793

POLITEKNIK NEGERI BALIKPAPAN

JURUSAN TEKNIK ELEKTRONIKA

BALIKPAPAN

2017

iv

LEMBAR PERSEMBAHAN

Karya ilmiah ini kupersembahkan kepada

Ayahanda dan Ibunda tercinta

Budiarto dan Kartilah

Saudaraku yang kusayangi

Nur Fitriana

Hafizzuddin Nur

Abdurrahman As Shiddiq

Nur ‘Aini Az Zahra

Naura Meutia Azizah

Dosen Pembimbing Tugas Akhir Saya

Bapak Ali Abrar, S.Si., M.T.

Sahabat Yang Kusayangi

Dwi Imam Rohmadi

Dwi Kadarianto

Handoko Puji Renggono

vi

ABSTRACT

Along with the development of the times and the increasing economy of the

community the demand for safe and comfortable home is increasingly increasing,

and the use of the internet that we unknowingly present in our lives sehai day makes

us as a society that is in the round of IoE (Internet of Everything) so I am interested

to Developing smart home with the concept of Internet of Thing as a smaller scale

of the Internet of Everything. In this report the author wishes to convey that there

are many ways to learn the internet of things, such as by using the PL-App

application from cisco.

Key Words : Internet Of Everything (IOE), Internet Of Things (IOT), Smart

Home, Raspberry PI

vii

ABSTRAK

Seiring dengan perkembangan zaman dan meningkatnya ekonomi

masyarakat permintaan akan kebutuhan rumah yang aman dan nyaman kian

meningkat, serta penggunaan internet yang tanpa kita sadari hadir pada kehidupan

kita sehari hari menjadikan kita sebagai masyarakat yang berada dalam putaran IoE

(Internet of Everything) sehingga saya tertarik untuk mengembangkan smart home

dengan konsep Internet of Things sebagai skala yang lebih kecil dari Internet of

Everything. Pada laporan ini penulis ingin menyampaikan bahwa banyak cara untuk

mempelajari internet of things, seperti dengan menggunakan aplikasi PL-App dari

cisco.

Kata Kunci : Internet Of Everything (IOE), Internet Of Things (IOT), Smart

Home, Raspberry PI

viii

KATA PENGANTAR

Puji syukur saya panjatkan kepada Tuhan Yang Maha Esa yang telah

memberikan rahmat dan karunianya, sehingga penulis dapat menyelesaikan Tugas

Akhir. Pembuatan Tugas Akhir ini merupakan sebuah syarat kelulusan pada

program D3 di Politeknik Negeri Balikpapan.

Dengan selesainya Tugas Akhir ini tidak terlepas dari bantuan banyak pihak. Untuk

itu penulis mengucapkan banyak terima kasih, kepada :

1. Ramli, SE., M.M. selaku Direktur Politeknik Negeri Balikpapan.

2. Drs. Suhaedi, M.T. selaku Kaprodi Jurusan Teknik Elektronika.

3. Ali Abrar, S.Si., M.T. selaku Dosen Pembimbing 1 atas bimbingan dan

saran-sarannya.

4. Drs. Armin, M.T. selaku Dosen Pembimbing 2 atas bimbingan dan saran-

sarannya.

5. Seluruh Dosen, staff, dan karyawan di Politeknik Negeri Balikpapan atas

seluruh bantuannya.

6. Seluruh Mahasiswa Politeknik Negeri Balikpapan terutama Jurusan

Teknik Elektronika konsentrasi Teknik Komputer dan Jaringan atas

seluruh bantaunnya.

7. Kedua Orang Tua dan Saudara-Saudara ku Tercinta atas doa dan motivasi.

Penulis menyadari bahwa Tugas Akhir ini bukanlah karya yang sempurna,

dan masih banyak ditemui kekurangan dan kelemahan. Oleh karena itu, saran dan

masukan yang membangun sangat diharapkan.

Balikpapan, 06 Juli 2017

Penulis

ix

DAFTAR ISI

Halaman

JUDUL ..................................................................................................................... i

LEMBAR PENGESAHAN .................................................................................... ii

SURAT PERNYATAAN....................................................................................... iii

LEMBAR PERSEMBAHAN ................................................................................ iv

SURAT PERNYATAAN PUBLIKASI .................................................................. v

ABSTRACT ........................................................................................................... vi

ABSTRAK ............................................................................................................ vii

KATA PENGANTAR ......................................................................................... viii

DAFTAR ISI .......................................................................................................... ix

DAFTAR GAMBAR ............................................................................................. xi

DAFTAR TABEL ................................................................................................. xii

DAFTAR LAMPIRAN ........................................................................................ xiii

BAB I PENDAHULUAN 1

1.1 Latar Belakang ............................................................................................... 1

1.2 Runusan Masalah ........................................................................................... 1

1.3 Batasan Masalah ............................................................................................ 2

1.4 Tujuan Penelitian ........................................................................................... 2

1.5 Manfaat Penelitian ......................................................................................... 2

BAB II LANDASAN TEORI 3

2.1 Internet Of Things ......................................................................................... 3

2.1.1 Definisi Internet Of Things ......................................................................... 3

2.2 Raspberry ....................................................................................................... 4

2.2.1 Definisi Raspberry Pi .................................................................................. 4

2.2.2 Bagian Fisik Raspberry ............................................................................... 5

2.2.3 Macam-Macam Raspberry Pi ...................................................................... 6

2.3 Bahasa Pemrograman .................................................................................... 6

2.3.1 Python .......................................................................................................... 6

2.4 Micro SD ....................................................................................................... 7

2.5 Breadboard ..................................................................................................... 8

x

BAB III METODOLOGI PENELITIAN 9

3.1 Jenis Penelitian .............................................................................................. 9

3.2 Tempat dan Waktu Penelitian ........................................................................ 9

3.3 Perangkat Keras dan Perangkat Lunak Yang Dibutuhkan ............................ 9

3.3.1 Perangkat Keras ........................................................................................... 9

3.3.2 Perangkat Lunak ........................................................................................ 10

3.6.1 Proses Menentukan Judul TA ................................................................... 12

3.6.2 Proses Membuat Konsep Dan Proposal TA .............................................. 12

3.6.3 Sidang Proposal TA .................................................................................. 12

3.6.4 Pelaksanaan Pembuatan dan Uji Coba TA ................................................ 12

3.6.5 Proses Membuat Laporan TA ................................................................... 12

3.6.5 Sidang Akhir TA ....................................................................................... 12

BAB IV HASIL DAN PEMBAHASAN 13

4.1 Hasil Penelitian ............................................................................................ 13

4.1.1 Tampilan Untuk Halaman Login Cisco PL-App Launcher....................... 13

4.1.2 Perancangan Registration Server............................................................... 16

BAB V KESIMPULAN DAN SARAN 20

5.1 Kesimpulan .................................................................................................. 20

5.2 Saran ............................................................................................................ 20

DAFTAR PUSTAKA ........................................................................................... 21

LAMPIRAN .......................................................................................................... 22

xi

DAFTAR GAMBAR

Halaman

Gambar 2.1 Logo Raspberry PI 4

Gambar 2.2 Bagian Fisik Raspberry 6

Gambar 2.3 Bentuk Micro SD 7

Gambar 2.4 Breadboard 8

Gambar 3.1 Flowchart 11

Gambar 4.1 Halaman Login Pada Cisco PL-App Launcher 13

Gambar 4.2 Interface Cisco PL-App Launcher 14

Gambar 4.3 Menu Tab "New" 14

Gambar 4.4 Tampilan Menu "Python 2" 15

Gambar 4.5 Tampilan Blockly 15

Gambar 4.6 Konsep Penerapan Registration Server 16

Gambar 4.7 Halaman Login Untuk User 17

Gambar 4.8 Halaman Home 18

Gambar 4.9 Remote Kipas Angin 18

Gambar 4.10 Tombol Low Hidup Pada Remote Kipas Angin 18

Gambar 4.11 Tombol High Hidup Pada Remote Kipas Angin 19

Gambar 4.12 Keadaan Kipas Angin 19

Gambar 4.13 Remote Pemanas Air, Pintu Garasi, dan CCTV 19

Gambar 4.14 Remote Jendela Rumah, Pintu Rumah, dan Lampu 19

xii

DAFTAR TABEL

Halaman

Tabel 2.1 Daftar Bagian Fisik Raspberry Pi 5

Tabel 3.1 Daftar Perangkat Keras 9

Tabel 3.2 Spesifikasi Notebook Asus A556U 10

Tabel 3.3 Daftar Perangkat Lunak 10

Tabel 4.1 Konfigurasi IP Registration Server 16

Tabel 4.2 IP Address Alat-Alat Elektronik Rumah Tangga 17

xiii

DAFTAR LAMPIRAN

Lampiran 1 Menghilangkan Format Drive Pada Micro SD

Lampiran 2 Memformat Micro SD Dengan SD Formatter

Lampiran 3 Penginstallan Server Internet Of Things

Lampiran 4 Script Untuk Kipas Angin

Lampiran 5 Script Untuk Pemanas Air

Lampiran 6 Script Untuk Pintu Garasi

Lampiran 7 Script Untuk CCTV

Lampiran 8 Script Untuk Jendela Rumah

Lampiran 9 Script Untuk Pintu Rumah

Lampiran 10 Script Untuk Lampu

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Penggunaan internet dari masa ke masa sudah sangat berkembang pesat.

Internet tidak hanya digunakan masyarakat untuk sekedar keperluan browsing

ataupun mencari informasi terkini. Namun sekarang internet memiliki peranan

dalam mempermudah kegiatan sehari-hari bagi kalangan masyarakat itu sendiri.

Sebagai contoh dari peranan internet dalam kehidupan sehari-hari masyarakat

adalah, dengan mengontrol atau memantau alat-alat elektronik di rumah melalui

jaringan internet, atau bisa dikatakan menggunakan konsep Smart Home. Konsep

ini sendiri juga memanfaatkan papan komputer tunggal atau biasa disebut SBC

(Single Board Computer) seperti Raspberry PI, Arduino, dan papan computer

tunggal lainnya untuk memberikan akses jaringan ke alat-alat elektronik tersebut.

Dengan menggunakan papan komputer tunggal tersebut, alat-alat elektronik

tersebut tidak hanya bisa diberi akses jaringan, namun bisa dipantau keadaan dari

alat-alat tersebut dengan membuat sebuah program pada papan computer tunggal

tersebut. Pembuatan Registration Server juga dilakukan guna mempermudah ketika

ingin menambahkan suatu alat elektronik kedalam jaringan. Dengan adanya

Registration Server tersebut kita tidak perlu mensetting dari awal ketika

menambahkan alat elektronik kedalam jaringan.

Oleh sebab itu, maka pada Tugas Akhir ini penulis akan membuat aplikasi

pada Registration Server yang dapat memantau semua keadaan alat-alat elektronik

pada rumah, dan juga membuat sebuah Registration Server yang mana dapat

memudahkan dalam menambahkan alat-alat elektronik ke dalam jaringan.

1.2 Runusan Masalah

Sesuai dengan latar belakang yang telah diuraikan diatas, maka rumusan

masalah yang akan diselesaikan adalah : Saat ini pembuatan Server Internet Of

Things masih sangat sedikit. Padahal dengan pembuatan server tersebut, konsep

2

Internet of Things dapat diperluas, dan tidak hanya terfokus pada alat-alat yang

biasa seperti lampu, namun dapat merambah semua alat-alat elektronik rumah

tangga. Dan juga server itu sendiri dapat digunakan untuk mendata alat-alat internet

of things.

1.3 Batasan Masalah

Dalam perancangan aplikasi ini terdapat beberapa batasan masalah. Hal ini

dilakukan agar aplikasi dapat terfokus/sesuai kebutuhan. Batasan masalah tersebut

sebagai berikut :

1. Membuat registration server yang dapat diakses melalui jaringan luar maupun

jaringan local.

2. Perancangan dilakukan dengan menggunakan papan komputer tunggal dan

membuat program yang akan digunakan untuk mengendalikan serta

memantau alat elektronik yang akan didaftarkan pada registration server.

1.4 Tujuan Penelitian

Tujuan dari penelitian tugas akhir ini adalah untuk membuat server pada

internet of things yang mana dapat mempermudah pendataan alat-alat elektronik

tersebut.

1.5 Manfaat Penelitian

Manfaat dari penelitian tugas akhir ini adalah memaksimalkan penggunaan

internet dalam kehidupan sehari-hari atau bisa dikatakan mempermudah kehidupan

manusia dalam memantau alat-alat elektronik khususnya di Indonesia.

3

BAB II

LANDASAN TEORI

2.1 Internet Of Things

2.1.1 Definisi Internet Of Things

Menurut analisa McKinsey Global Institute, internet of things adalah

sebuah teknologi yang memungkinkan kita untuk menghubungkan mesin,

peralatan, dan benda fisik lainnya dengan sensor jaringan dan aktuator untuk

memperoleh data dan mengelola kinerjanya sendiri, sehingga memungkinkan

mesin untuk berkolaborasi dan bahkan bertindak berdasarkan informasi baru

yang diperoleh secara independen.

Sebuah publikasi mengenai Internet of things “In 2020” menjelaskan

bahwa internet of things adalah suatu keadaan ketika benda memiliki

identitas, bisa beroperasi secara intelijen, dan bisa berkomunikasi dengan

sosial, lingkungan, dan pengguna.

Dengan demikian, dapat kita simpulkan bahwa internet of things

membuat kita membuat suatu koneksi antara mesin dengan mesin, sehingga

mesin-mesin tersebut dapat berinteraksi dan bekerja secara independen sesuai

dengan data yang diperoleh dan diolahnya secara mandiri. Tujuannya adalah

untuk membuat manusia berinteraksi dengan benda dengan lebih mudah,

bahkan supaya benda juga bisa berkomunikasi dengan benda lainnya.

Teknologi internet of things sangat luar biasa. Jika sudah

direalisasikan, teknologi ini tentu akan sangat memudahkan pekerjaan

manusia. Manusia tidak akan perlu lagi mengatur mesin saat

menggunakannya, tetapi mesin tersebut akan dapat mengatur dirinya sendiri

dan berinteraksi dengan mesin lain yang dapat berkolaborasi dengannya. Hal

ini membuat mesin-mesin tersebut dapat bekerja sendiri dan manusia dapat

menikmati hasil kerja mesin-mesin tersebut tanpa harus repot-repot mengatur

mereka.

4

2.2 Raspberry

2.2.1 Definisi Raspberry Pi

Raspberry Pi adalah sebuah komputer kecil, kira-kira seukuran

sabun mandi besarnya. Karena Raspberry Pi adalah sebuah komputer, maka

secara fungsi tidak berbeda dengan komputer ukuran besar yang ada di

sekolah, rumah, kantor, atau laptop. Artinya, Raspberry Pi bisa digunakan

untuk membuat dokumen, menghitung, menggambar, browsing internet,

download, mencetak dokumen, menonton film, memutar musik, bermain

game, dan apa saja. Karena ukurannya yang kecil, Raspberry Pi dapat dibawa

ke mana saja. Beratnya juga tidak lebih dari dua bungkus mie instan. Saking

kecilnya, dia bisa masuk ke dalam saku atau tas dengan mudah.

Raspberry pi juga membutuhkan listrik yang sangat sedikit untuk

beroperasi. Bandingkan dengan komputer di rumah atau sekolah yang

membutuhkan daya listrik mulai dari 220 watt. Oleh karena ini, Raspberry Pi

dapat dinyalakan dengan charger handphone. Artinya, jika kita ingin

menyalakan Raspberry pi semalaman untuk download, maka beban biaya

listrik menjadi sangat kecil. Besarnya listrik yang dibutuhkan oleh Raspberry

Pi untuk menyala adalah lebih kecil dari lampu tidur kamar kita. Powerbank

pun bisa digunakan untuk menyalakan Raspberry Pi, sehingga meningkatkan

portabilitas. Ini berarti, dengan Raspberry Pi, kita juga menghemat biaya

penggunaan listrik.

Raspberry Pi diciptakan oleh sekelompok orang di Inggris. Awalnya,

Raspberry Pi digunakan untuk membantu orang-orang di Afrika untuk belajar

Gambar 2.1 Logo Raspberry PI

Sumber : https://www.raspberrypi.org/

5

komputer dengan biaya murah. Sehingga, orang-orang yang tidak mampu

juga dapat belajar komputer tanpa harus mengeluarkan biaya besar. Dalam

perkembangannya, Raspberry Pi menarik banyak minat orang karena

kemampuannya yang lebih dari sekedar komputer.

2.2.2 Bagian Fisik Raspberry

Bagian-bagian fisik yang terdapat di komputer dapat kita temuin

juga pada Raspberry Pi, berikut daftar bagian fisik Raspberry Pi :

Tabel 2.1 Daftar Bagian Fisik Raspberry Pi

BAGIAN FISIK FUNGSI

4 Buah Port USB

Untuk menyambngkan device

dengan Raspberry Pi yang

mendukung USB.

1 Port Lan Untuk terhubung ke internet melalui

kabel LAN.

1 Port HDMI

Untuk menampilkan output

Raspberry Pi pada layar monitor

khususnya HDMI.

1 Port Composite Audio & Video Untuk dihubungkan ke speaker atau

media penghasil suara lainnya.

1 Slot Micro SD

Sebagai tempat untuk memasukkan

Micro SD yang mana berfungsi

sebagai media penyimpanan.

Pin GPIO

(General Purpose Input Output)

Pin yang berfungsi sebagai pintu

masuk dan keluarnya data atau

sinyal.

1 Port Display Sebagai penghubung ke layar sentuh

namun berukuran 7 inchi.

1 Port Kamera Raspberry Pi menyediakan modul

kamera yang terpisah.

6

2.2.3 Macam-Macam Raspberry Pi

Untuk memenuhi kebutuhan di banyak bidang, maka pembuat

Raspberry Pi memproduksinya dalam berbagai macam model untuk

menyesuaikannya dengan kebutuhan penggunanya. Jika kita mencari

Raspberry di internet, kita akan menemui model A dan model B. Model 1A

dan 1B adalah model yang pertama kali dikembangkan. Awalnya mereka

merencanakan akan ada model 2A, 2B, 3A, 3B, dan seterusnya. Tetapi, tidak

pernah dibuat model A selanjutnya, hanya model 2B dan 3B. Model A

digunakan untuk aplikasi yang membutuhkan daya kecil dengan memori yang

kecil juga. Ada kemungkinan jika Raspberry akan mengembangkan model A

yang baru lagi. Model B adalah penyempurnaan dari model A baik dari sisi

kemampuan komputasi maupun kelengkapannya. Model B sudah

dikembangkan menjadi Raspberry Pi 2B, Pi 3B, dan Pi Zero.

2.3 Bahasa Pemrograman

2.3.1 Python

Python merupakan bahasa pemrograman yang digunakan di banyak

aplikasi, termasuk pemrograman web, ilmu pengetahuan, dan juga

kecerdasan buatan (artificial intelligence).

Kamera

USB

LAN

Port

Display

Pin GPIO

HDMI Micro USB Composite

Gambar 2.2 Bagian Fisik Raspberry

Sumber : https://www.raspberrypi.org/

7

Pada awalnya, motivasi pembuatan bahasa pemrograman ini adalah

untuk bahasa skrip tingkat tinggi pada sistem operasi terdistribusi Amoeba.

Bahasa pemrograman ini menjadi umum digunakan untuk kalangan engineer

seluruh dunia dalam pembuatan perangkat lunaknya, bahkan beberapa

perusahaan menggunakan python sebagai pembuat perangkat lunak

komersial.

Pada buku Dini Triasanti Python adalah “Bahasa pemrograman yang

freeware atau perangkat bebas dalam arti sebenarnya, tidak ada batasan dalam

penyalinannya atau mendistribusikannya. Lengkap dengan source codenya,

debugger dan profiler, antarmuka yang terkandung di dalamnya untuk

pelayanan antarmuka, fungsi sistem, GUI (antarmuka pengguna grafis), dan

basis datanya.

2.4 Micro SD

Gambar 2.3 Bentuk Micro SD

Sumber : https://www.androidpit.com/how-to-pick-the-right-microsd-card-for-

your-android-phone

MicroSD singkatan dari Micro Secure Digital yang merupakan memory card

dengan ukuran terkecil yang beredar dipasaran untuk konsumsi umum. Ukurannya

yang kecil membuat MircoSD banyak dipakai sebagai memory card handphone dan

gadget-gadget lain yang mengutamakan ukuran kecil, ukurannya hanya sebesar

8

15mm x 11mm x 1 mm (tebal), kira-kira sebesar kuku jari tangan. (Sudjojo Marcus,

Tak-Tik Fotografi, 2010 hal : 30)

Sebenarnya sebelum MikroSD dikeluarkan atau popular, ada jenis memori

card lain yang berukuran lebih kecil dari SD, dan lebih besar dari microSD, yaitu

miniSD. Namun sejak berkembangnya microSD, secara berangsur miniSD mulai

jarang digunakan.

2.5 Breadboard

Gambar 2.4 Breadboard

Sumber : https://www.adafruit.com/product/64

Breadboard atau yang sering disebut sebagai Project Board adalah dasar

konstruksi sebuah sirkuit elektronik dan merupakan prototype dari suatu rangkaian

elektronik tanpa harus menyolder. Dengan memanfaatkan breadboard, komponen-

komponen elektronik yang dipakai tidak akan rusak dan dapat digunakan kembali

untuk membuat rangkaian yang lain. Breadboard umumnya terbuat dari plastik

dengan banyak lubang-lubang diatasnya. Lubang-lubang pada breadboard diatur

sedemikian rupa membentuk pola sesuai dengan pola jaringan koneksi di dalamnya.

9

BAB III

METODOLOGI PENELITIAN

3.1 Jenis Penelitian

Jenis penelitian yang dilakukan merupakan pembuatan atau perancangan

resgistration server dengan menggunakan aplikasi dari Cisco, yang mana server

tersebut di install pada Raspberry Pi.

3.2 Tempat dan Waktu Penelitian

Tempat penelitian dilaksanakan di Politeknik Negeri Balikpapan khususnya

pada Lab. Cisco Lantai 3 Gedung Elektronika. Untuk waktu penelitian dilakukan

mulai dari April 2017 sampai dengan sekarang.

3.3 Perangkat Keras dan Perangkat Lunak Yang Dibutuhkan

Terdapat beberapa perangkat keras maupun perangkat lunak yang digunakan

dalam proses pengerjaan dan penelitian tugas akhir ini.

3.3.1 Perangkat Keras

Berikut adalah daftar perangkat keras yang dibutuhkan, beserta

daftar harganya :

Tabel 3.1 Daftar Perangkat Keras

No. Perangkat Keras Harga

1. Notebook Asus A556U Milik Pribadi

2. Raspberry Pi 3 Pinjaman Dari Kampus

3. Micro SD 16 GB Pinjaman Dari Kampus

4. Card Reader 20.000,00

5. Breadboard Pinjaman Dari Kampus

10

6. Kabel Jumper Pinjaman Dari Kampus

Total Harga 20.000,00

Notebook Asus A556U yang digunakan memilki spesifikasi sebagai

berikut ini :

Tabel 3.2 Spesifikasi Notebook Asus A556U

Sistem Operasi Windows 10

Processor Intel Core i5-6200U

RAM 4 GB

VGA Nvidia Geforce 930M

HDD 1 TB

3.3.2 Perangkat Lunak

Berikut adalah daftar perangkat lunak yang dibutuhkan, beserta

daftar harganya :

Tabel 3.3 Daftar Perangkat Lunak

No. Perangkat Lunak Harga

1. PL-App Launcher -

2. SD Formatter -

3. Mozilla Firefox -

4. Packet Tracer -

Total Harga 0,00

3.4 Metode Pembuatan Server

Metode dalam pembuatan Server ini cukup sederhana, yakni dengan

mendownload semua bahan yang dibutuhkan, dan menyiapkan semua alat.

Kemudian melakukan penginstalisasian pada laptop dan juga pada raspberry.

11

Gambar 3.1 Flowchart

Ditolak

Diterima

Menentukan Judul TA

Mulai

Membuat Konsep

Dan Proposal TA

Ditolak Proposal TA

Pelaksanaan Pembuatan TA

dan Uji Coba

Membuat Laporan TA

Diterima

Laporan TA

Selesai

3.5 Flowchart

Terdapat beberapa alur sebelum melakukan pembuatan tugas akhir hingga

sidang akhir TA sebagai berikut :

12

3.6.1 Proses Menentukan Judul TA

Pada tahap flowchart ini, penulis bersama dengan Dosen

Pembimbing menentukan judul TA yang sesuai dengan kemampuan penulis

maupun Dosen Pembimbing, sehingga mempermudah dalam pengerjaan TA.

3.6.2 Proses Membuat Konsep Dan Proposal TA

Pada tahap ini, penulis mulai mencari referensi maupun sumber

materi yang dibutuhkan untuk pengerjaan TA. Penulisan Proposal juga telah

dilakukan untuk menghadapi sidang.

3.6.3 Sidang Proposal TA

Pada tahap ini, sidang dilakukan untuk membuktikan kelayakan dari

judul yang sudah ditentukan. Apabila judul diterima, maka melanjutkan ke

tahap pelaksanaan pembuatan TA, namun jika ditolak maka harus kembali ke

dalam proses menentukan Judul TA.

3.6.4 Pelaksanaan Pembuatan dan Uji Coba TA

Pada tahap ini penulis melaksanakan pembuatan TA serta

melakukan uji coba. Pada tahap ini juga penulis sudah mulai mempersiapkan

laporan TA.

3.6.5 Proses Membuat Laporan TA

Sama halnya dengan proses membuat konsep dan proposal TA, pada

tahap ini penulisan laporan TA serta mempersiapkan presentasi untuk sidang

akhir TA

3.6.5 Sidang Akhir TA

Pada tahap ini, penulis melakukan sidang atau presentasi yang mana

apabila diterima maka penulis lulus, dan jika ditolak maka penulis

menyiapkan kembali presentasi serta materi TA yang bersangkutan

13

BAB IV

HASIL DAN PEMBAHASAN

4.1 Hasil Penelitian

4.1.1 Tampilan Untuk Halaman Login Cisco PL-App Launcher

Gambar 4.1 Halaman Login Pada Cisco PL-App Launcher

Pada tampilan ini user atau pengguna aplikasi Cisco PL-App

Launcher harus melakukan login dengan cara memasukkan password yang

didapat setelah pengguna selesai melakukan proses instalasi aplikasi Cisco

PL-App Launcher. Dimana tata cara pelaksaan instalasi aplikasi Cisco PL-

App Launcher terlampir pada lampiran. Setelah user selesai melakukan

proses login maka aplikasi akan menampilkan tampilan interface dari aplikasi

ini.

14

Gambar 4.2 Interface Cisco PL-App Launcher

Tampilan interface Cisco PL-App Launcher ini akan tampil atau

muncul setelah user/pengguna telah berhasil melakukan proses login pada

halaman login awal aplikasi ini. Dimana pada interface Cisco PL-App

Launcher ini terdapat fitur atau fungsi berupa materi IOT maupun fitur untuk

membuat suatu project IOT.

Gambar 4.3 Menu Tab "New"

Pada menu tab “New” terdapat beberapa fitur yang digunakan untuk

membuat program ataupun membuat folder ketika kita ingin membuat suatu

15

project. Ketika ingin membuat project baru, cukup dengan memilih “Python

2”, maka akan muncul tampilan seperti di bawah ini.

Gambar 4.4 Tampilan Menu "Python 2"

Pada tampilan ini, kita dapat membuat script dari project yang akan

dibuat. Terdapat tampilan lainnya yang lebih atraktif dalam membuat script

project, dengan menekan tombol yang di tandai dengan kotak merah diatas

atau biasa disebut dengan blockly, dan akan menghasilkan tampilan seperti di

bawah ini.

Gambar 4.5 Tampilan Blockly

16

4.1.2 Perancangan Registration Server

Setelah selesai menginstall aplikasi diatas penulis mulai membuat

konsep Registration Server yang mana server tersebut digunakan untuk

mengendalikan alat-alat rumah tangga melalui suatu jaringan seperti lampu,

pintu rumah, jendela rumah, kipas angin, CCTV, pintu garasi, dan pemanas

air.

Sebelum menyambungkan alat-alat elektronik rumah tangga ke

registration server, konfigurasi terlebih dahulu server tersebut dengan

membuat konfigurasi ip pada tabel dibawah.

REGISTRATION SERVER

IP Address 192.168.0.2

Subnet Mask 255.255.255.0

Default Gateway 192.168.0.1

DNS Server -

Tabel 4.1 Konfigurasi IP Registration Server

Gambar 4.6 Konsep Penerapan Registration Server

17

Sedangkan untuk ip address pada alat-alat elektronik rumah tangga

dapat dilihat pada tabel berikut.

Alat-Alat Elektronik IP Address

Kipas Angin 192.168.0.17

Pemanas Air 192.168.0.19

Pintu Garasi 192.168.0.18

CCTV 192.168.0.20

Jendela Rumah 192.168.0.21

Pintu Rumah 192.168.0.23

Lampu 192.168.0.22

Tabel 4.2 IP Address Alat-Alat Elektronik Rumah Tangga

Setelah berhasil mensetting ip address mulai dari server hingga alat-

alat elektronik tersebut kita masuk kedalam halaman login user dengan

memasukkan ip address registration server. Hal ini dilakukan agar user dapat

menambahkan, mengedit, atau mengolah dari alat-alat elektronik yang sudah

diberi ip address sebelumnya. Disini penulis membuat username : admin dan

password : admin, agar mempermudah dalam pengerjaan.

Gambar 4.7 Halaman Login Untuk User

Catatan :

User dapat ditambah dengan mendaftarkan pada registration server, jadi user

tidak hanya terpaku dengan admin saja, namun bisa dengan user lain namun

dengan keterbatasan akses, sedangkan admin memiliki full akses kontrol

kendali alat-alat tersebut.

18

Setelah memasukkan username dan password, dapat dilihat terdapat

daftar alat-alat elektronik yang sudah diberi ip sebelumnya. Pada halaman ini

juga dapat menambahkan atau membuat script baru dengan mengklik pilihan

editor pada sudut kanan atas.

Gambar 4.8 Halaman Home

Sama halnya seperti remote pada umumnya terdapat tombol yang dapat

digunakan untuk menggendalikan alat tersebut, kita ambil contoh kipas angin.

Gambar 4.9 Remote Kipas Angin

Jika dilihat dari remote diatas, dengan tombol off menyala, maka

keadaan kipas adalah tidak hidup. Jika tombol Low hidup maka kipas

berputar dengan kecepatan rendah, dan jika tombol High hidup maka kipas

berputar dengan kecepatan tinggi, untuk script penulis meletakkan di

lampiran.

Gambar 4.10 Tombol Low Hidup Pada Remote Kipas Angin

19

Gambar 4.11 Tombol High Hidup Pada Remote Kipas Angin

Gambar 4.12 Keadaan Kipas Angin

Sama halnya seperti remote kipas angin, remote dari alat-alat

elektronik lainnya tidak jauh berbeda, seperti gambar dibawah ini.

Gambar 4.13 Remote Pemanas Air, Pintu Garasi, dan CCTV

Gambar 4.14 Remote Jendela Rumah, Pintu Rumah, dan Lampu

Off Low High

20

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Setelah membuat server Internet Of Things atau IOT dapat disimpulkan

bahwa :

1. Server ini dapat digunakan sebagai pembelajaran khususnya di bidang IOT

itu sendiri

2. Mempermudah mahasiswa dalam mempelajari IOT

3. Terdapat beberapa contoh sederhana IOT yang dapat dibuat dari server ini

5.2 Saran

Saran yang dapat penulis sampaikan adalah :

1. Untuk pengembangan agar tampilan lebih dibuat semenarik mungkin

2. Dibuat kan user admin yang, sehingga tidak sembarang orang bisa

masuk

21

DAFTAR PUSTAKA

Agus Eka Pratama, I Putu. (2014) : Smarty City beserta Cloud Computing dan

Teknologi-Teknologi Pendukung Lainnya, Bandung, Informatika.

Behmann, Fawzi . Kwok Wu. (2015) : Collaborative Internet of Things for Future

Smart Connected Life and Business, United Kingdom, Wiley.

Dinata, Andi. (2017) : Physical Computing dengan Raspberry Pi, Jakarta,

Elex Media Komputindo.

Sudjojo, Marcus. (2010) : Tak-Tik Fotografi, Jakarta, Bukune.

The Raspberry PI Foundation. “Teach, Learn and Make With Raspberry PI”.

https://www.raspberrypi.org/

22

LAMPIRAN

Lampiran 1 Menghilangkan Format Drive Pada Micro SD

Buka cmd, dan “Run as administrator”.

Ketik diskpart untuk masuk dalam sub bagian drive.

23

Kemudian ketik list disk untuk melist drive yang ada, cari yang sesuai dengan

ukuran micro SD dan ketik lagi select disk .... (sesuai micro SD).

Kemudian ketikkan perintah clean untuk menghilangkan format yang ada pada

micro SD.

24

Lampiran 2 Memformat Micro SD Dengan SD Formatter

Pilih drive yang sesuai dengan mikro sd berada atau sesuaikan size nya kemudian

klik Format, proses berlangsung selama kurang dari 5 menit.

Klik OK untuk menyelesaikan proses format.

25

Setelah selesai, maka micro sd akan kosong dan siap untuk di install.

Lampiran 3 Penginstallan Server Internet Of Things

Siapkan semua bahan aplikasi untuk penginstallan server Internet Of Things

26

Run admin pada “PL-App_Launcher”

Accept the agreement kemudian klik next

27

Centang create to desktop kemudian next

Klik install kemudian tunggu hingga selesai

28

Centang kemudian klik finish untuk masuk kedalam aplikasi

Pada kolom nomor 1 pilih drive micro sd, kemudian pada kolom 2 pilih tempat file

zip server berada. Untuk kolom nomor 3 digunakan untuk memberikan nama pada

raspberry server, disini penulis memberi nama “TA-myRP” dengan password

“ta2017”.

29

Pada kolom WiFi SSID dan WiFi Password, isikan sesuai dengan hotspot atau wifi

yang ada, disini penulis menggunakan hostspot handphone dengan SSID TA dan

tugas2017 sebagai passwordnya kemudian klik Write Disk Image

Tunggu hingga beberapa saat sampai mendapat notif berikut

30

Tunggu hingga proses penginstallan selesai hingga device sudah terdaftar

31

Lampiran 4 Script Untuk Kipas Angin

var FAN_SPEED_LOW = 0.4;

var FAN_SPEED_HIGH = 0.8;

var COOLING_RATE = -1/3600;

var HUMDITY_REDUCTION_RATE = -1/3600;

var VOLUME_AT_RATE = 100000;

var state = 0; // 0 off, 1 low, 2 high

var level = 0;

function setup() {

IoEClient.setup({

type : "Ceiling Fan",

states : [

{

32

name : "Status",

type : "options",

options : {

"0" : "Off",

"1" : "Low",

"2" : "High"

},

controllable : true

}

]

});

IoEClient.onInputReceive = function(input) {

processData(input, true);

};

attachInterrupt(0, function() {

processData(customRead(0), false);

});

setState(state);

}

function mouseEvent(pressed, x, y, firstPress) {

if (firstPress)

toggleState();

33

}

function processData(data, bIsRemote)

{

if ( data.length <= 0 )

return;

data = data.split(",");

setState(parseInt(data[0]));

}

function sendReport()

{

var report = state;

customWrite(0, report);

IoEClient.reportStates(report);

setDeviceProperty(getName(), "state", state);

}

function setState(newState)

{

analogWrite(A1, newState);

state = newState;

34

sendReport();

updateEnvironment();

}

function toggleState()

{

++state;

if ( state >= 3 )

state = 0;

setState(state);

}

function updateEnvironment()

{

var volumeRatio = VOLUME_AT_RATE / Environment.getVolume();

if ( state === 0){

Environment.setContribution("Wind Speed", 0, 0);

Environment.setContribution("Ambient Temperature", 0, 0);

Environment.setContribution("Humidity", 0,0);

}

else if ( state == 1 )

35

{

Environment.setContribution("Wind Speed", FAN_SPEED_LOW,

FAN_SPEED_LOW, false);

Environment.setContribution("Ambient Temperature",

COOLING_RATE/2*volumeRatio,

Environment.getCumulativeContribution("Ambient Temperature")-100);

Environment.setContribution("Humidity",

HUMDITY_REDUCTION_RATE/2*volumeRatio,

Environment.getCumulativeContribution("Humidity")-100);

}

else if ( state == 2)

{

Environment.setContribution("Wind Speed", FAN_SPEED_HIGH,

FAN_SPEED_HIGH, false);

Environment.setContribution("Ambient Temperature",

COOLING_RATE/2*volumeRatio,

Environment.getCumulativeContribution("Ambient Temperature")-100);

Environment.setContribution("Humidity",

HUMDITY_REDUCTION_RATE*volumeRatio,

Environment.getCumulativeContribution("Humidity")-100);

}

}

36

Lampiran 5 Script Untuk Pemanas Air

var state = 0;

function setup() {

IoEClient.setup({

type : "Appliance",

states : [{

name : "On",

type : "bool",

controllable : true

}]

});

IoEClient.onInputReceive = function(input) {

processData(input, true);

};

attachInterrupt(0, function() {

processData(customRead(0), false);

});

setState(state);

}

37

function mouseEvent(pressed, x, y, firstPress) {

if (firstPress)

setState(state ? 0 : 1);

}

function processData(data, bIsRemote) {

if ( data.length <= 0 )

return;

setState(parseInt(data));

}

function setState(newState) {

state = newState;

if ( state === 0 )

digitalWrite(1, LOW);

else

digitalWrite(1, HIGH);

customWrite(0, state);

IoEClient.reportStates(state);

setDeviceProperty(getName(), "state", state);

38

}

Lampiran 6 Script Untuk Pintu Garasi

var ENVIRONMENTS = ["Argon", "CO", "CO2", "Hydrogen", "Helium",

"Methane", "Nitrogen", "O2", "Ozone", "Propane", "Smoke"];

var ENVIRONMENT_MAX_IMPACT = -0.04; // 4% max when door opens

var TEMPERATURE_TRANSFERENCE_MULTIPLIER = 1.50; // increase

speed 25% when door open

var HUMIDITY_TRANSFERENCE_MULTIPLIER = 1.50;

var GASES_TRANSFERENCE_MULTIPLIER = 2;

var state = 0; // 0 off, 1 on

function setup() {

IoEClient.setup({

type : "Garage Door",

states : [{

name : "On",

type : "bool",

controllable : true

}]

});

IoEClient.onInputReceive = function(input) {

39

processData(input, true);

};

attachInterrupt(0, function() {

processData(customRead(0), false);

});

setState(state);

}

function mouseEvent(pressed, x, y, firstPress) {

if (firstPress)

setState(state ? 0 : 1);

}

function updateEnvironment()

{

var rate,max;

if ( state == 1)

{

for(var i=0; i<ENVIRONMENTS.length; i++){

max = Environment.get(ENVIRONMENTS[i]) *

ENVIRONMENT_MAX_IMPACT;

rate = max / 3600 * 100000 / Environment.getVolume();

40

Environment.setContribution(ENVIRONMENTS[i], rate, max);

Environment.setTransferenceMultiplier(ENVIRONMENTS[i],

GASES_TRANSFERENCE_MULTIPLIER);

}

Environment.setTransferenceMultiplier("Ambient Temperature",

TEMPERATURE_TRANSFERENCE_MULTIPLIER);

Environment.setTransferenceMultiplier("Humidity",

HUMIDITY_TRANSFERENCE_MULTIPLIER);

}

else

{

for(var j=0; j<ENVIRONMENTS.length; j++){

Environment.setContribution(ENVIRONMENTS[j], 0, 0);

Environment.removeCumulativeContribution(ENVIRONMENTS[j]);

Environment.setTransferenceMultiplier(ENVIRONMENTS[j], 1);

}

Environment.setTransferenceMultiplier("Ambient Temperature", 1);

Environment.setTransferenceMultiplier("Humidity", 1);

}

}

function processData(data, bIsRemote) {

if ( data.length <= 0 )

41

return;

setState(parseInt(data));

}

function setState(newState) {

state = newState;

digitalWrite(1, state ? HIGH : LOW);

customWrite(0, state);

IoEClient.reportStates(state);

setDeviceProperty(getName(), "state", state);

updateEnvironment();

}

Lampiran 7 Script Untuk CCTV

var state = 0;

//set up client to talk and listen to IoE registration server

function setup() {

IoEClient.setup({

type: "Webcam",

42

states: [{

name: "On",

type: "bool",

controllable: true

},

{

name: "Image",

type: "image"

}]

});

IoEClient.onInputReceive = function(input) {

processData(input, true);

};

attachInterrupt(0, function() {

processData(customRead(0), false);

});

setState(state);

sendReport();

}

43

function mouseEvent(pressed, x, y, firstPress) {

if (firstPress)

setState(state ? 0 : 1);

}

//send captured image file path to registration server

function loop() {

sendReport();

delay(1000);

}

//process data received from server

function processData(data, bIsRemote)

{

if ( data.length <= 0 )

return;

data = data.split(",");

setState(parseInt(data[0]));

}

//send image path to server

var imageLoop=0;

function sendReport()

44

{

var report = state + ",";

if (state === 0)

report += '../art/IoE/SmartDevices/camera_off.png';

else{

report +=

'../art/IoE/SmartDevices/camera_image'+imageLoop+'.png';

imageLoop++;

if ( imageLoop >= 3)

imageLoop =0;

}

customWrite(0, report);

IoEClient.reportStates(report);

setDeviceProperty(getName(), "state", state);

}

//set state and update component image to reflect the current state

function setState(newState)

{

if ( newState === 0 )

digitalWrite(1, LOW);

else

digitalWrite(1, HIGH);

45

state = newState;

}

Lampiran 8 Script Untuk Jendela Rumah

var ENVIRONMENTS = ["Argon", "CO", "CO2", "Hydrogen", "Helium",

"Methane", "Nitrogen", "O2", "Ozone", "Propane", "Smoke"];

var ENVIRONMENT_MAX_IMPACT = -0.01; // 2% max when door opens

var TEMPERATURE_TRANSFERENCE_MULTIPLIER = 1.20; // increase

speed 25% when door open

var HUMIDITY_TRANSFERENCE_MULTIPLIER = 1.20;

var GASES_TRANSFERENCE_MULTIPLIER = 2;

var state = 0;

//set up client to talk and listen to IoE registration server

function setup() {

IoEClient.setup({

type: "Window",

states: [{

name: "Status",

type: "bool",

controllable: true

}]

46

});

IoEClient.onInputReceive = function(input) {

processData(input, true);

};

attachInterrupt(0, function() {

processData(customRead(0), false);

});

setState(state);

}

function mouseEvent(pressed, x, y, firstPress) {

if (firstPress)

setState(state ? 0 : 1);

}

function loop() {

updateEnvironment();

delay(1000);

}

47

//process data received from server

function processData(data, bIsRemote)

{

if ( data.length <= 0 )

return;

data = data.split(",");

setState(parseInt(data[0]));

}

//set state and update component image to reflect the current state

function setState(newState)

{

if ( newState === 0 )

digitalWrite(1, LOW);

else{

digitalWrite(1, HIGH);

}

state = newState;

customWrite(0, state);

IoEClient.reportStates(state);

setDeviceProperty(getName(), "state", state);

}

48

function updateEnvironment()

{

var rate,max;

if ( state == 1)

{

for(var i=0; i<ENVIRONMENTS.length; i++){

max = Environment.get(ENVIRONMENTS[i]) *

ENVIRONMENT_MAX_IMPACT;

rate = max / 3600 * 100000 / Environment.getVolume();

Environment.setContribution(ENVIRONMENTS[i], rate,

max);

Environment.setTransferenceMultiplier(ENVIRONMENT

S[i], GASES_TRANSFERENCE_MULTIPLIER);

}

Environment.setTransferenceMultiplier("Ambient Temperature",

TEMPERATURE_TRANSFERENCE_MULTIPLIER);

Environment.setTransferenceMultiplier("Humidity",

HUMIDITY_TRANSFERENCE_MULTIPLIER);

}

else

{

for(var j=0; j<ENVIRONMENTS.length; j++){

Environment.setContribution(ENVIRONMENTS[j], 0, 0);

Environment.removeCumulativeContribution(ENVIRONM

ENTS[j]);

49

Environment.setTransferenceMultiplier(ENVIRONMENT

S[j], 1);

}

Environment.setTransferenceMultiplier("Ambient Temperature",

1);

Environment.setTransferenceMultiplier("Humidity", 1);

}

}

Lampiran 9 Script Untuk Pintu Rumah

var ENVIRONMENTS = ["Argon", "CO", "CO2", "Hydrogen", "Helium",

"Methane", "Nitrogen", "O2", "Ozone", "Propane", "Smoke"];

var ENVIRONMENT_MAX_IMPACT = -0.02; // 2% max when door opens

var TEMPERATURE_TRANSFERENCE_MULTIPLIER = 1.25; // increase

speed 25% when door open

var HUMIDITY_TRANSFERENCE_MULTIPLIER = 1.25;

var GASES_TRANSFERENCE_MULTIPLIER = 2;

var doorState = 0; // 0 is closed, 1 is opened

var lockState = 0; // 0 is unlocked, 1 is locked

function setup() {

IoEClient.setup({

type: "Door",

states: [{

50

name: "Open",

type: "bool"

}, {

name: "Lock",

type: "options",

options: {

"0": "Unlock",

"1": "Lock"

},

controllable: true

}]

});

IoEClient.onInputReceive = function(input) {

processData(input, true);

};

attachInterrupt(0, function() {

processData(customRead(0), false);

});

setDoorState(doorState);

setLockState(lockState);

}

51

function mouseEvent(pressed, x, y, firstPress) {

if (firstPress) {

if ( isPointInRectangle(x, y, 10,40,5,10) )

{

if ( lockState === 0 )

setLockState(1);

else

setLockState(0);

}

else

{

if ( doorState === 0 )

openDoor();

else

closeDoor();

}

}

}

function loop() {

}

52

function processData(data, bIsRemote)

{

if ( data.length <= 0 )

return;

Serial.println(data);

data = data.split(",");

var doorStateData = parseInt(data[0]);

var lockStateData = parseInt(data[1]);

if ( lockStateData > -1 )

setLockState(lockStateData);

if ( doorStateData > -1 && !bIsRemote ){

if ( doorStateData === 0 )

closeDoor();

else

openDoor();

}

}

function sendReport()

{

var report = doorState+","+lockState;

customWrite(0, report);

53

IoEClient.reportStates(report);

setDeviceProperty(getName(), "door state", doorState);

setDeviceProperty(getName(), "lock state", lockState);

}

function closeDoor()

{

setDoorState(0);

updateEnvironment();

}

function openDoor()

{

if (lockState===0)

{

setDoorState(1);

updateEnvironment();

}

else

{

Serial.println("can't open locked door");

}

}

54

function setDoorState(state)

{

if ( state === 0){

digitalWrite(1, LOW);

setComponentOpacity("led", 1);

}

else{

digitalWrite(1, HIGH);

setComponentOpacity("led", 0);

}

doorState = state;

sendReport();

}

function setLockState(state)

{

if ( state === 0 )

digitalWrite(2, LOW);

else

digitalWrite(2, HIGH);

lockState = state;

55

sendReport();

}

function updateEnvironment()

{

var rate,max;

if ( doorState == 1)

{

for(var i=0; i<ENVIRONMENTS.length; i++){

max = Environment.get(ENVIRONMENTS[i]) *

ENVIRONMENT_MAX_IMPACT;

rate = max / 3600 * 100000 / Environment.getVolume();

Environment.setContribution(ENVIRONMENTS[i], rate,

max);

Environment.setTransferenceMultiplier(ENVIRONMENT

S[i], GASES_TRANSFERENCE_MULTIPLIER);

}

Environment.setTransferenceMultiplier("Ambient Temperature",

TEMPERATURE_TRANSFERENCE_MULTIPLIER);

Environment.setTransferenceMultiplier("Humidity",

HUMIDITY_TRANSFERENCE_MULTIPLIER);

}

else

{

for(var i=0; i<ENVIRONMENTS.length; i++){

56

Environment.setContribution(ENVIRONMENTS[i], 0, 0);

Environment.removeCumulativeContribution(ENVIRONM

ENTS[i]);

Environment.setTransferenceMultiplier(ENVIRONMENT

S[i], 1);

}

Environment.setTransferenceMultiplier("Ambient Temperature",

1);

Environment.setTransferenceMultiplier("Humidity", 1);

}

}

function isPointInRectangle(x,y, rx, ry, width, height) {

if (width <= 0 || height <= 0) {

return false;

}

return (x >= rx && x <= rx + width && y >= ry && y <= ry + height);

}

Lampiran 10 Script Untuk Lampu

var ENVIRONMENT_IMPACT_DIM = 10;

var VOLUME_AT_RATE = 100000;

var state = 0; // 0 off, 1 low, 2 high

57

var lastTimeInSeconds = 0;

function setup() {

IoEClient.setup({

type: "Light",

states: [

{

name: "Status",

type: "options",

options: {

"0": "Off",

"1": "Dim",

"2": "On"

},

controllable: true

}

]

});

IoEClient.onInputReceive = function(input) {

processData(input, true);

};

attachInterrupt(0, function() {

58

processData(customRead(0), false);

});

setState(state);

}

function mouseEvent(pressed, x, y, firstPress) {

if (firstPress)

setState(state+1);

}

function loop() {

updateEnvironment();

delay(1000);

}

function processData(data, bIsRemote) {

if ( data.length <= 0 )

return;

setState(parseInt(data));

}

function setState(newState) {

if (newState >= 3)

59

newState = 0;

state = newState;

analogWrite(A1, state);

customWrite(0, state);

IoEClient.reportStates(state);

setDeviceProperty(getName(), "state", state);

}

function updateEnvironment()

{

var volumeRatio = VOLUME_AT_RATE / Environment.getVolume();

if ( state === 0 )

Environment.setContribution("Visible Light", 0,0);

else if ( state === 1)

Environment.setContribution("Visible Light",

ENVIRONMENT_IMPACT_DIM*volumeRatio,

ENVIRONMENT_IMPACT_DIM*volumeRatio, false);

else if ( state === 2 )

Environment.setContribution("Visible Light",

ENVIRONMENT_IMPACT_DIM*2*volumeRatio,

ENVIRONMENT_IMPACT_DIM*2*volumeRatio, false);

}