Anda di halaman 1dari 6

SINGUDA ENSIKOM VOL. 2 NO.

2/Mei 2013

PERANCANGAN PROTOTIPE SMART BUILDING BERBASIS


ARDUINO UNO

Maratur Gabe Simanjuntak, F. Rizal Batubara


Konsentrasi Teknik Komputer, Departemen Teknik Elektro
Fakultas Teknik Universitas Sumatera Utara (USU)
Jl. Almamater, Kampus USU Medan 20155 INDONESIA
e-mail: gabe.simanjuntak@students.usu.ac.id

Abstrak

Terkadang kita harus meninggalkan rumah dalam keadaan kosong untuk waktu yang lama dan kita
sering berpikir untuk menghidupkan lampu di suatu ruangan di rumah kita ketika malam hari dan
mematikannya ketika pagi hari. Tekadang kita juga lupa untuk mematikan sebuah alat elektronik ketika
kita meninggalkan rumah dan kita tidak memiliki waktu yang cukup untuk kembali dan mematikannya.
Kita dapat mengatasi masalah tersebut dengan membangun sebuah smart building. Tulisan ini membahas
perancangan prototipe smart builing. Smart building yang dirancang yaitu sebuah bangunan yang
terintegrasi dengan sebuah perangkat yang dapat dapat memantau dan mengontrol peralatan listrik pada
bangunan tersebut. Perangkat tersebut terhubung ke jaringan komputer, sehingga dapat dikendalikan
melalui jarak jauh. Prototipe yang dirancang akan bertindak sebagai sebuah web server yang
menampilkan sebuah halaman web kepada client yang berisi status peralatan listrik dan tombol untuk
mengatur peralatan listrik tersebut. Prototipe akan mengontrol peralatan listrik berdasarkan perintah yang
dikirim oleh client. Client adalah aplikasi web browser yang ada pada perangkat yang digunakan untuk
mengontrol prototipe. Hasil dari proses perancangan adalah sebuah prototipe yang dapat menghidupkan
atau mematikan peralatan listrik dari jarak jauh melalui jaringan internet menggunakan aplikasi web
browser.

Kata Kunci: smart building, arduino uno, ethernet shield

1. Pendahuluan selama bertahun-tahun, namun baru mulai


dicoba untuk diwujudkan pada awal abad ke 20
Kemajuan dan perkembangan dunia ini
ketika pemakaian energi listrik telah meluas
terjadi di berbagai bidang, baik di bidang
hingga ke rumah-rumah dan mulai majunya
ekonomi, sosial budaya, maupun bidang-bidang
teknologi informasi.
eksakta dan teknologi. Hal ini mendorong
Smart Building mengacu pada penggunaan
manusia untuk menemukan hal-hal yang baru teknologi informasi dan komputer untuk
guna mempermudah dan mengoptimalkan mengendalikan peralatan yang berada di dalam
aktivitas manusia sehari-hari. bangunan tersebut (seperti jedela atau lampu).
Terkadang kita harus meninggalkan rumah
Sistem yang beropersi dalam smart building
dalam keadaan kosong untuk waktu yang lama
dapat berupa sistem kontrol jarak jauh yang
dan kita sering berpikir untuk menghidupkan
sederhana dari lampu-lampu hingga sebuah
lampu di suatu ruangan di rumah kita ketika sistem yang berbasis komputer atau
malam hari dan mematikannya ketika pagi hari. mikrokontroler yang memiliki tingkat
Tekadang kita juga lupa untuk mematikan
kecerdasan yang bervariasi yang secara otomatis
sebuah alat elektronik ketika kita meninggalkan
mengontrol peralatan yang berada di dalam
rumah dan kita tidak memiliki waktu yang
bangunan.
cukup untuk kembali dan mematikannya. Kita
Elemen dalam sebuah sistem smart building
dapat mengatasi masalah tersebut dengan terdiri dari sensor(seperti sensor cahaya atau
membangun sebuah smart building. sensor suhu), pengontrol (seperti komputer atau
mikrokontroler) dan aktuator (seperti motor,
2. Smart Building relay, servo atau sakelar lampu). Sebuah
Smart Building sudah menjadi salah satu antarmuka antara manusia dengan mesin
topik pembahasan dalam karya tulis fiksi ilmiah diperlukan, agar pemilik bangunan dapat

78 copyright @ DTE FT USU


SINGUDA ENSIKOM VOL. 2 NO. 2/Mei 2013

berinteraksi dengan sistem untuk memonitor


atau mengontrolnya. Antarmuka ini dapat
berupa terminal khusus atau aplikasi yang
berjalan pada telepon genggam atau komputer
tablet. Antarmuka tersebut berkomunikasi
dengan sitem melalui jaringan kabel atau
wireless menggunakan satu atau lebih protokol.
Gambar 2 Ethernet Shield
3. Arduino Uno
Arduino Uno adalah arduino board yang 5. HTTP Request Message
menggunakan mikrokontroler ATmega328..
Arduino Uno memuat segala hal yang Ketika web browser menjemput sebuah
dibutuhkan untuk mendukung sebuah berkas dari web server, web browser
mikrokontroler. Hanya dengan menggunakan Hypertext Transfer Protocol
menhubungkannya ke sebuah komputer melalui (HTTP). HTTP adalah sebuah protokol
USB atau memberikan tegangan DC dari baterai request/respond, yang berarti computer
atau adaptor AC ke DC sudah dapat membuanya mengirimkan sebuah permintaan (request) untuk
bekerja. Arduino Uno menggunakan berkas dan kemudian web server mengirim balik
ATmega16U2 yang diprogram sebagai USB-to- sebuah jawaban (respond) [3].
serial converter untuk komunikasi serial ke Sebuah HTTP request message terdiri dari
computer melalui port USB. Tampak atas dari beberapa bagian yaitu:
arduino uno dapat dilihat pada gambar 1 [1]. a) Request-line
b) Header
c) Sebuah baris kosong
d) Beberapa pesan opsional

Request-line dimulai dengan sebuah token


method, diikuti oleh request-URI dan versi
protocol, dan diakhiri dengan CRLF. Tiap
elemen dipisahkan oleh karakter SP (spasi).
Gambar 1 Arduino uno Karakter CR (carriage return) dan LF (line
feed). hanya boleh dipakai untuk menandai akhir
dari request-line. Token method menunjukkan
4. Arduino Ethernet Shield method yang dilaksanakan pada resource yang
ditunjukkan oleh request-URI. Request-URI
Ethernet Shield menambah kemampuan adalah sebuah Uniform Resource Identifier
arduino board agar terhubung ke jaringan (URI), yaitu sebuah string yang
komputer. Ethernet shield berbasiskan cip
memperkenalkan (menunjukkan) resource
ethernet Wiznet W5100. Ethernet library
melalui nama, lokasi atau karakteristik yang
digunakan dalam menulis program agar arduino
lain. Bagian header manunjukkan informasi
board dapat terhubung ke jaringan dengan
tambahan kepada server mengenai permintaan
menggunakan arduino ethernet shield.
(request) yang dikirim dan juga informasi
Arduino board berkominikasi dengan mengenai client yang mengirimkan permintaan
W5100 SPI (Serial Peripheral Interface).
(request). Contoh HTTP Request sederhana
Komunikasi ini diatur oleh library SPI.h dan
dapat dilihat pada gambar 3:
Ethernet.h. Bus SPI menggunakan pin digital 11,
12 dan 13 pada Arduino Uno. Pin digital 10
digunakan untuk memilih cip W5100. Pin-pin
yang sudah disebutkan sebelumnya tidak dapat
digunakan untuk input/output umum ketika kita
Gambar 3 HTTP request sederhana
menggunakan ethernet shield [2].
DFRduino Ethernet shield adalah sebuah 6. Query String
clone dari arduino Ethernet shield yang dibuat
Dalam World Wide Web (WWW), sebuah
oleh DFRobot. Penampakan DFRduino Ethernet
query string adalah bagian dari Uniform
shield dapat dilihat pada gambar 2.
Resource Locator (URL) yang mengandung data

79 copyright @ DTE FT USU


SINGUDA ENSIKOM VOL. 2 NO. 2/Mei 2013

yang diteruskan kepada aplikasi web. Ketika Arduino uno berkomunikasi dengan
sebuah halaman web diminta melalui HTTP, ethernet shield menggunakan bus SPI.
server akan mencari sebuah berkas pada Komunikasi SPI ini diatur oleh library SPI.h dan
kumpulan berkas yang berada dalam server Ethernet.h. Bus SPI pada arduino uno
tersebut berdasarkan URL yang diberikan. menggunakan pin digital 11, 12 dan 13.
Berkas ini dapat berupa sebuah berkas biasa atau Konfigurasi bus SPI pada arduino uno untuk
sebuah program.Penggunaan query string berkomunikasi dengan ethernet shield dapat
mengijinkan data yang dikirim dari HTTP client dilihat pada gambar 6. Pin-pin arduino uno yang
(biasanya berupa sebuah web browser) ke dipakai untuk berkomunikasi dengan ethernet
server. Contoh URL yang memiliki sebuah shield tidak dapat digunakan untuk kemperluan
query string dapat dilihat pada gambar 4: yang lain [5].

Gambar 4 Contoh query string pada URL

Ketika server menerima permintaan untuk


halaman tersebut, server mungkin menjalankan
sebuah program, meneruskan query_string tanpa
terjadi perubahan ke program tersebut. Tanda
Tanya digunakan sebagai pemisah dan bukan
bagian dari query string.
Jika URL yang diminta cocok dengan
sebuah file bukan sebuah program maka seluruh
Gambar 6 Konfigurasi Bus SPI Untuk
query string akan diabaikan. Sebagai contoh
Ethernet Shield
ketika browser meminta halaman
http://server/utama.html?31231 maka server
Arduino Web Server bertindak sebagai
akan mengirimkan halaman utama.html dan
sebuah embedded web server, yang menyimpan
mengabaikan apa saja yang mengikuti tanda
halaman web sederhana yang menampilkan
tanya (?). Tetapi query string 31231 tersebut
status peralatan listrik yang berada di dalam
tetap diterima oleh server dan dapat digunakan
smart building dan tombol untuk mematikan
untuk keperluan lain seperti untuk identifikasi
atau menghidupkan peralatan listrik tersebut.
atau sebuah perintah untuk server tergantung
Selain sebagai embedded web server arduino
pada sistem yang berjalan pada server. Karena
web server jugalah yang mengendalikan relay
query string adalah bagian dari URL maka
yang dihubungkan dengan peralatan listrik yang
query string juga akan ada di HTTP request
ingin dikendalikan. Dalam prototipe smart
message[4].
building, relay yang dikendalikan berjumlah 4
7. Perancangan Perangkat buah. Relay tersebut dihubungkan ke pin digital
2,3,5 dan 5 pada arduino uno.
7.1. Arduino Web Server
Arduino Web Server adalah gabungan
7.2. Rangkaian Pengendali Relay
antara arduino uno dan ethernet shield. Ethernet
shield dipasang di atas arduino uno. Gambar Tegangan keluaran pin arduino uno untuk
arduino web server dapat dilihat pada gambar 5. logika 0 berkisar antara 0-2 volt dan untuk
logika 1 berkisar antara 3-5 volt, sedangkan
relay beroperasi pada tegangan 12 volt, maka
dibutuhkan sebuah rangkaian pengendali relay,
agar relay dapat bekerja. Rangkaian pengendali
relay menggunakan transistor NPN 2N2222
sebagai sebuah sakelar yang dikendalikan oleh
arus. Rangkaian pengendali relay dapat dilihat
pada gambar 7.

Gambar 5 Arduino Web Server

80 copyright @ DTE FT USU


SINGUDA ENSIKOM VOL. 2 NO. 2/Mei 2013

Relay kemudian dihubungkan ke peralatan yang


ingin diatur. Sebagai sebuah petunjuk bahwa
relay sedang berada pada posisi terhubung
(peralatan listrik sedang menyala) maka sebuah
LED juga dihubungkan ke setiap pin keluaran
digtal 2, 3 ,5 dan 6. Agar arus yang mengalir
pada LED sangat kecil tetapi cukup untuk
menghidupkan LED digunakan tahanan sebesar
2,2 k untuk membatasi arus. Sehingga arus
Gambar 7 Rangkaian Pengendali Relay yang mengalir pada LED adalah:
( , )
= = = 1,45 (4)
Dari hasil pengukuran dengan ,
menggunakan multimeter tahanan koil relay Keterangan:
adalah 410 ohm, sehingga arus yang mengalir = arus yang mengalir pada LED
pada koil adalah: = tegangan keluaran pin arduino uno
= = 0,029 (1) = tegangan jatuh LED

= tahanan seri LED
Keterangan:
= arus minimum koil
= tegangan relay 7.3. Perancangan Perangkat Lunak
= tahanan koil
Agar relay dapat bekerja optimal maka arus Perangkat lunak dibuat dengan
kolektor transistor (Ic) harus lebih besar dari arus menggunakan bahasa pemrograman arduino.
minimum koil, untuk memudahkan perhitungan Library-library yang digunakan dimasukkan
digunakan 60 mA sebagai arus kolektor. pada inisialisasi program. Library yang
Transistor 2N2222 memiliki penguatan arus DC digunakan pada perangkat lunak yang dibuat
(hFE) sebesar 100 dan VBE maksimal sebesar adalah SPI.h, Ethernet.h dan pgmspace.h.
2,6 volt. Sehingga arus minimum basis (Ib) dan Variabel-variable yang digunakan
besar tahanan basis (Rb) maksimum adalah: dideklarasikan pada inisialisasi program. Varibel
array relay memuat angka pin digital yang
= = = 0,6 (2)
digunakan sebagai pin keluaran untuk
( , )
= = =4 (3) mengendalikan relay. Varibel array statusRelay
,
Keterangan: berisi status setip relay, 0 untuk relay terhubung
= arus basis minimum dan 1 untuk relay tidak terhubung. Variabel
buffer digunakan sebagai tempat sementara yang
= arus kolektor
digunakan untuk mengambil variabel yang
= penguatan arus DC
disimpan dalam memori program agar dapat
= tahanan basis maksimum
digunakan. Objek string readString digunakan
= tegangan keluaran pin arduino uno
untuk menympan 14 karakter pertama dari
= tegangan saturasi basis emiter
HTTP request message. Varibel cRelay dan
cCmd digunakan untuk menyimpan nomor relay
Pada prototipe digunakan tahanan basis
dan perintah yang akan dilakukan terhadap relay
sebesar 1 k yang masih memenuhi perhitungan
tersebut. Variabel LcRelay dan LcCmd
diatas. Kumparan pada relay akan menghasilkan
menyimpan nomor relay dan perintah yang telah
tegangan singkat yang besar ketika relay diputus
dilakukan. Kode HTML untuk halaman web
dan ini dapat merusak rangkaian pengendali dan
smart building disimpan di memori program
arduino uno. Untuk mencegah kerusakan sebuah
dengan menggunakan variable modifier
dioda harus dihubungkan ke relay tersebut.
PROGMEM. Konfigurasi jaringan juga tulis
Dioda dihubungkan secara terbalik sehingga
pada inisialisasi program.
dioda bekerja secara reverse dan menahan
Pada fungsi setup pin digital 2,3,5 dan 6
tegangan singkat yang dihasilkan relay tadi.
diset sebagai pin keluaran dengan fungsi
Dioda yang digunakan adalah dioda 1N4004.
pinMode. Karena angka pin digital tersebut
Pin keluaran digital 2, 3, 5 dan 6 arduino
sudah disimpan di dalam array relay[] maka
uno dihubungkan ke rangkaian pengendali relay.
untuk memudahkan digunakan instruksi for
Pin digital 2, 3, 5 dan 6 mengendalikan secara
untuk menset pin-pin tersebut. Setelah itu
berurutan relay 1, relay 2, relay 3 dan relay 4.
program akan menginisialisasi pengaturan

81 copyright @ DTE FT USU


SINGUDA ENSIKOM VOL. 2 NO. 2/Mei 2013

jaringan dengan Ethernet.begin(mac,ip) dan mengubah karakter angka yang berada dalam
mulai mendengarkan permintaan dari client cRelay menjadi bilangan decimal dengan cara
dengan server.begin(). mengurangkannya dengan dengan karakter 0
Pada fungsi loop program akan mengecek dan menyimpannya di variabel k. Kemudian
apakah ada client yang melakukan permintaan. program akan memberi nilai HIGH dan menset
Jika ada client yang melakukan permintaan statusnya menjadi 1 jika isi dari variabel cCmd
maka arduino uno akan menerima HTTP request adalah karakter 1 dan member nilai LOW dan
message dari client dan menyimpan tiap karakter menset statusnya menjadi 0 jika isi dari variable
ke variabel c lalu mengecek variabel c untuk cCmd adalah karakter 0 ke relay (pin) yang
mendapatkan akhir dari HTTP request message. ditunjuk oleh variabel k. Setelah itu program
Akhir dari HTTP request message adalah sebuah akan menyimpan isi cRelay ke LcRelay dan
baris kosong. Arduino Uno juga menyimpan 14 cCmd ke LcCmd. Variabel LcRelay dan LcCmd
karakter pertama dari HTTP request message digunakan untuk mengecek agar tidak terjadi
kesebuah objek string yang bernama readString. pengulangan perintah di koneksi berikutnya.
Perintah untuk mematikan atau menghidupkan
relay terdapat pada 14 karakter pertama dari
HTTP request message tersebut. 8. Pengujian dan Analisa
Setelah akhir dari HTTP request message
diterima, arduino uno akan mengecek apakah
terdapat perintah yang valid dari object 8.1. Pengujian Perangkat
readString. Jika terdapat perintah yang valid Pengujian perangkat dilakukan dengan
maka arduino akan menyimpan karakter menggabungkan semua bagian-bagian yang
kesebelas ke variabel cRelay dan karakter diperlukan sesuai dengan rancangan rangkaian
keduabekas ke variabel cCmd. Variabel cRelay yang dilakukan dan juga sesuai dengan program
menunjukkan relay yang akan dikontrol yang terdapat dalam arduino uno. Ketika
sedangkan variabel cCmd menunjukkan perintah perajgkat diberi catu daya, arduino uno akan
yang akan dilakukan. Jika kedua variabel menunggu client yang meminta untuk dilayani.
tersebut valid maka fungsi kerjakan akan Kemudian pengujian dilakukan dengan
dipanggil. membuka membuka halaman web smart
Kemudian arduino uno akan mengirimkan building melalui aplikasi web browser pada
halaman web smart building ke client. Pertama- komputer yang terhubung dengan arduino web
tama setiap kode HTTP respond message dan server. Ketika tombol ON pada relay 1 diklik
HTML yang berada di memori program disali ke maka relay akan aktif dan hal ini akan
variabel buffer, setelah itu variabel buffer isi menyebabkan lampu yang terhubung pada relay
dari variabel buffer akan dikirimkan ke client. tersebut menyala. Ketika tombol OFF pada relay
Setelah halaman web smart building dikirim ke 1 diklik maka relay akan tidak aktif dan
client arduino uno akan menutup koneksi ke menyebabkan lampu yang terhubung pada relay
client dah membersihkan isi dari objek tersebut padam. Jika tombol on setiap relay
readString. Kemudian arduino uno bersiap untuk diklik maka seluruh lampu akan hidup. Pada
melayani client berikutnya. kolom status dapat dilihat keadaan setiap lampu.
Pada fungsi kerjakan program akan menset Tampilan halaman web Smart building jika
nilai HIGH atau LOW pada pin-pin digital yang seluruh lampu hidup dapat dilihat pada gambar
terhubung ke pengendali relay berdasarkan 8.
variabel cRelay dan cCmd. Pertama-tama
program akan mengecek apakah variabe cRelay
menunjuk ke semua relay atau tidak. Jika
variabel cRelay menunjuk ke semua relay
ditandai dengan cRely berisi karakter a maka
program akan menset seluruh relay (pin)
menjadi HIGH dan menset statusnya menjadi 1
jika isi dari variabel cCmd adalah karakter 1
dan menset seluruh relay (pin) menjadi LOW
dan menset statusnya menjadi 0 jika isi dari
variable cCmd adalah karakter 0. Jika isi Gambar 8 Tampilan Halaman Web Ketika
cRelay bukan karakter a maka program Seluruh Lampu Hidup

82 copyright @ DTE FT USU


SINGUDA ENSIKOM VOL. 2 NO. 2/Mei 2013

8.2. Analisa Prototipe Smart Building Kesimpulan


Arduino uno memiliki 14 pin Berdasarkan pembahasan, maka dapat diambil
masukan/keluaran digital dan 6 pin masukan kesimpulan sebagai berikut:
analog. Pin masukan analog dapat dikonfigurasi 1. Prototipe yang dirancang dapat
menjadi pin masukan/keluaran digital sehingga menghidupkan atau mematikan peralatan
total arduino memiliki 20 pin masukan/keluaran listrik dari jarak jauh melalui jaringan
digital. Pada prototipe smart building pin digital internet menggunakan aplikasi web browser.
10, 11, 12 dan 13 digunakan arduino uno untuk 2. Prototipe dapat mengendalikan 16 peralatan
berkomunikasi dengan arduino ethernet shield. listik jika masing-masing peralatan listik
Jadi jumlah pin yang tersisa yang bisa tersebut terhubung ke satu relay yang
digunakan sebagai keluaran digital adalah 16 dikendalikan oleh prototipe.
pin. 3. Smart building sangat bermanfaat bagi
Pada prototipe smart building digunakan banyak pihak yang mengedepankan
tahanan basis sebesar 1 K sehingga arus yang kepraktisan, efisiensi dan efektivitas,
mengalir pada basis menurut gambar 5 dapat misalnya bidang industri, perkantoran,
dihitung sebagai berikut: kehidupan sehari-hari dan lain sebagainya.
(5 2,6)
= = = 1,4
1 Referensi
Keterangan:
[1] Wheat, Dale. 2011. Arduino Internals.
= arus basis New York:Apress.
= tahanan basis
= tegangan keluaran pin arduino uno [2] Arduino Ethernet Shield. Diakses
= tegangan saturasi basis emiter Agustus 16, 2012, dari
http://arduino.cc/en/Main/ArduinoEthernet
Arus total yang ditarik dari setiap pin Shield.
keluaran arduino uno yang digunakan untuk [3] HTTP Request. Diakses September 18,
mengendalikan relay adalah arus LED ditambah 2012 dari
dengan arus basis. Dari persamaan 4 arus LED http://www.w3.org/Protocols/rfc2616/rfc26
adalah 1,45 mA. Jadi arus total yang ditarik 16-sec5.html.
adalah 2,85 mA.
Jika pada protipe smart bulding, tiap 16 pin [4] Query String. Diakses Nopember 1,
yang tersisa digunakan untuk sebagai keluaran 2012, dari
maka total arus yang digunakan adalah 45,6 mA. http://en.wikipedia.org/wiki/Query_string.
Arus sebesar 45,6 mA masih bisa disediakan [5] Arduino Ethernet Library. Diakses
oleh arduino uno. Jika ke setiap pin ini Agustus 16, 2012, dari
digunakan untuk mengendalikan relay yang http://arduino.cc/en/Reference/Ethernet.
dihubukan ke sebuah peralatan listrik, maka
protipe smart bulding dapat mengendalikan 16 [6] Banzi, Massimo. 2008. Getting Started
peralatan listrik. with Arduino. Sebastopol:OReilly Media.
Protipe smart bulding menggunakan [7] Suyadhi, Taufiq Dwi Septian. 2010. Buku
jaringan komputer untuk terhubung ke perangkat Pintar Robotika. Yogyakarta:Penerbit Andi.
yang mengendalikannya. Jika protipe smart
bulding berada pada jaringan yang sama dengan [8] Margolis, Michael. 2011. Arduino
perangkat yang mengendalikannya maka protipe Cookbook. Sebastopol:OReilly Media.
smart bulding dapat diakses oleh perangkat
tersebut. Jika protipe smart bulding tehubung ke
jaringan internet maka protipe smart bulding
dapat diakses dari mana saja selama perangkat
yang digunakan untuk mengendalikannya juga
terhubung ke jaringan internet.

83 copyright @ DTE FT USU