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
Kemajuan dan perkembangan dunia ini terjadi di berbagai bidang, baik di bidang ekonomi, sosial budaya, maupun bidang-bidang eksakta dan teknologi. Hal ini mendorong manusia untuk menemukan hal-hal yang baru guna mempermudah dan mengoptimalkan aktivitas manusia sehari-hari.
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.
2. Smart Building
Smart Building sudah menjadi salah satu
topik pembahasan dalam karya tulis fiksi ilmiah
selama bertahun-tahun, namun baru mulai dicoba untuk diwujudkan pada awal abad ke 20 ketika pemakaian energi listrik telah meluas hingga ke rumah-rumah dan mulai majunya teknologi informasi.
Smart Building mengacu pada penggunaan
teknologi informasi dan komputer untuk mengendalikan peralatan yang berada di dalam bangunan tersebut (seperti jedela atau lampu). Sistem yang beropersi dalam smart building dapat berupa sistem kontrol jarak jauh yang sederhana dari lampu-lampu hingga sebuah sistem yang berbasis komputer atau mikrokontroler yang memiliki tingkat kecerdasan yang bervariasi yang secara otomatis mengontrol peralatan yang berada di dalam bangunan.
Elemen dalam sebuah sistem smart building terdiri dari sensor(seperti sensor cahaya atau sensor suhu), pengontrol (seperti komputer atau mikrokontroler) dan aktuator (seperti motor, relay, servo atau sakelar lampu). Sebuah antarmuka antara manusia dengan mesin diperlukan, agar pemilik bangunan dapat
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.
3. Arduino Uno
Arduino Uno adalah arduino board yang menggunakan mikrokontroler ATmega328.. Arduino Uno memuat segala hal yang dibutuhkan untuk mendukung sebuah
mikrokontroler. Hanya dengan
menhubungkannya ke sebuah komputer melalui USB atau memberikan tegangan DC dari baterai atau adaptor AC ke DC sudah dapat membuanya bekerja. Arduino Uno menggunakan ATmega16U2 yang diprogram sebagai
USB-to-serial converter untuk komunikasi USB-to-serial ke
computer melalui port USB. Tampak atas dari arduino uno dapat dilihat pada gambar 1 [1].
Gambar 1 Arduino uno
4. Arduino Ethernet Shield
Ethernet Shield menambah kemampuan arduino board agar terhubung ke jaringan komputer. Ethernet shield berbasiskan cip ethernet Wiznet W5100. Ethernet library digunakan dalam menulis program agar arduino board dapat terhubung ke jaringan dengan menggunakan arduino ethernet shield.
Arduino board berkominikasi dengan W5100 SPI (Serial Peripheral Interface). Komunikasi ini diatur oleh library SPI.h dan 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 menggunakan ethernet shield [2].
DFRduino Ethernet shield adalah sebuah
clone dari arduino Ethernet shield yang dibuat
oleh DFRobot. Penampakan DFRduino Ethernet shield dapat dilihat pada gambar 2.
Gambar 2 Ethernet Shield
5. HTTP Request Message
Ketika web browser menjemput sebuah berkas dari web server, web browser
menggunakan Hypertext Transfer Protocol (HTTP). HTTP adalah sebuah protokol
request/respond, yang berarti computer mengirimkan sebuah permintaan (request) untuk berkas dan kemudian web server mengirim balik sebuah jawaban (respond) [3].
Sebuah HTTP request message terdiri dari beberapa bagian yaitu:
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). Karakter CR (carriage return) dan LF (line
feed). hanya boleh dipakai untuk menandai akhir
dari request-line. Token method menunjukkan method yang dilaksanakan pada resource yang ditunjukkan oleh request-URI. Request-URI adalah sebuah Uniform Resource Identifier (URI), yaitu sebuah string yang memperkenalkan (menunjukkan) resource
melalui nama, lokasi atau karakteristik yang lain. Bagian header manunjukkan informasi tambahan kepada server mengenai permintaan (request) yang dikirim dan juga informasi mengenai client yang mengirimkan permintaan (request). Contoh HTTP Request sederhana dapat dilihat pada gambar 3:
Gambar 3 HTTP request sederhana
6. Query String
Dalam World Wide Web (WWW), sebuah
query string adalah bagian dari Uniform Resource Locator (URL) yang mengandung data
yang diteruskan kepada aplikasi web. Ketika sebuah halaman web diminta melalui HTTP,
server akan mencari sebuah berkas pada
kumpulan berkas yang berada dalam server tersebut berdasarkan URL yang diberikan. Berkas ini dapat berupa sebuah berkas biasa atau sebuah program.Penggunaan query string
mengijinkan data yang dikirim dari HTTP client (biasanya berupa sebuah web browser) ke
server. Contoh URL yang memiliki sebuah query string dapat dilihat pada gambar 4:
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
query string akan diabaikan. Sebagai contoh
ketika browser meminta halaman http://server/utama.html?31231 maka server
akan mengirimkan halaman utama.html dan mengabaikan apa saja yang mengikuti tanda tanya (?). Tetapi query string 31231 tersebut tetap diterima oleh server dan dapat digunakan untuk keperluan lain seperti untuk identifikasi atau sebuah perintah untuk server tergantung pada sistem yang berjalan pada server. Karena
query string adalah bagian dari URL maka query string juga akan ada di HTTP request message[4].
7. Perancangan Perangkat 7.1. Arduino Web Server
Arduino Web Server adalah gabungan antara arduino uno dan ethernet shield. Ethernet shield dipasang di atas arduino uno. Gambar arduino web server dapat dilihat pada gambar 5.
Gambar 5 Arduino Web Server
Arduino uno berkomunikasi dengan ethernet shield menggunakan bus SPI. Komunikasi SPI ini diatur oleh library SPI.h dan Ethernet.h. Bus SPI pada arduino uno menggunakan pin digital 11, 12 dan 13. Konfigurasi bus SPI pada arduino uno untuk berkomunikasi dengan ethernet shield dapat dilihat pada gambar 6. Pin-pin arduino uno yang dipakai untuk berkomunikasi dengan ethernet shield tidak dapat digunakan untuk kemperluan yang lain [5].
Gambar 6 Konfigurasi Bus SPI Untuk
Ethernet Shield
Arduino Web Server bertindak sebagai sebuah embedded web server, yang menyimpan halaman web sederhana yang menampilkan status peralatan listrik yang berada di dalam
smart building dan tombol untuk mematikan
atau menghidupkan peralatan listrik tersebut. Selain sebagai embedded web server arduino
web server jugalah yang mengendalikan relay
yang dihubungkan dengan peralatan listrik yang ingin dikendalikan. Dalam prototipe smart
building, relay yang dikendalikan berjumlah 4
buah. Relay tersebut dihubungkan ke pin digital 2,3,5 dan 5 pada arduino uno.
7.2. Rangkaian Pengendali Relay
Tegangan keluaran pin arduino uno untuk 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 7 Rangkaian Pengendali Relay
Dari hasil pengukuran dengan menggunakan multimeter tahanan koil relay adalah 410 ohm, sehingga arus yang mengalir pada koil adalah:
= = Ω ≈ 0,029 (1)
Keterangan:
= arus minimum koil = tegangan relay
= tahanan koil
Agar relay dapat bekerja optimal maka arus kolektor transistor (Ic) harus lebih besar dari arus minimum koil, untuk memudahkan perhitungan digunakan 60 mA sebagai arus kolektor. Transistor 2N2222 memiliki penguatan arus DC (hFE) sebesar 100 dan VBE maksimal sebesar 2,6 volt. Sehingga arus minimum basis (Ib) dan besar tahanan basis (Rb) maksimum adalah:
= = = 0,6 (2)
= =( , , ) = 4 Ω (3)
Keterangan:
= arus basis minimum = arus kolektor
ℎ = penguatan arus DC = tahanan basis maksimum
= tegangan keluaran pin arduino uno = tegangan saturasi basis − emiter Pada prototipe digunakan tahanan basis sebesar 1 kΩ yang masih memenuhi perhitungan diatas. Kumparan pada relay akan menghasilkan tegangan singkat yang besar ketika relay diputus dan ini dapat merusak rangkaian pengendali dan arduino uno. Untuk mencegah kerusakan sebuah dioda harus dihubungkan ke relay tersebut. Dioda dihubungkan secara terbalik sehingga dioda bekerja secara reverse dan menahan tegangan singkat yang dihasilkan relay tadi. Dioda yang digunakan adalah dioda 1N4004.
Pin keluaran digital 2, 3, 5 dan 6 arduino uno dihubungkan ke rangkaian pengendali relay. Pin digital 2, 3, 5 dan 6 mengendalikan secara berurutan relay 1, relay 2, relay 3 dan relay 4.
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 yang mengalir pada LED adalah:
= =( , Ω, ) = 1,45 (4)
Keterangan:
= arus yang mengalir pada LED = tegangan keluaran pin arduino uno = tegangan jatuh LED
= tahanan seri LED
7.3. Perancangan Perangkat Lunak
Perangkat lunak dibuat dengan menggunakan bahasa pemrograman arduino. Library-library yang digunakan dimasukkan pada inisialisasi program. Library yang digunakan pada perangkat lunak yang dibuat adalah SPI.h, Ethernet.h dan pgmspace.h.
Variabel-variable yang digunakan dideklarasikan pada inisialisasi program. Varibel array relay memuat angka pin digital yang digunakan sebagai pin keluaran untuk mengendalikan relay. Varibel array statusRelay berisi status setip relay, 0 untuk relay terhubung dan 1 untuk relay tidak terhubung. Variabel buffer digunakan sebagai tempat sementara yang digunakan untuk mengambil variabel yang disimpan dalam memori program agar dapat digunakan. Objek string readString digunakan untuk menympan 14 karakter pertama dari
HTTP request message. Varibel cRelay dan
cCmd digunakan untuk menyimpan nomor relay dan perintah yang akan dilakukan terhadap relay tersebut. Variabel LcRelay dan LcCmd menyimpan nomor relay dan perintah yang telah dilakukan. Kode HTML untuk halaman web
smart building disimpan di memori program
dengan menggunakan variable modifier
PROGMEM. Konfigurasi jaringan juga tulis pada inisialisasi program.
Pada fungsi setup pin digital 2,3,5 dan 6 diset sebagai pin keluaran dengan fungsi pinMode. Karena angka pin digital tersebut sudah disimpan di dalam array relay[] maka untuk memudahkan digunakan instruksi for untuk menset pin-pin tersebut. Setelah itu program akan menginisialisasi pengaturan
jaringan dengan Ethernet.begin(mac,ip) dan mulai mendengarkan permintaan dari client dengan server.begin().
Pada fungsi loop program akan mengecek apakah ada client yang melakukan permintaan. Jika ada client yang melakukan permintaan maka arduino uno akan menerima HTTP request
message dari client dan menyimpan tiap karakter
ke variabel c lalu mengecek variabel c untuk mendapatkan akhir dari HTTP request message. Akhir dari HTTP request message adalah sebuah baris kosong. Arduino Uno juga menyimpan 14 karakter pertama dari HTTP request message kesebuah objek string yang bernama readString. Perintah untuk mematikan atau menghidupkan relay terdapat pada 14 karakter pertama dari
HTTP request message tersebut.
Setelah akhir dari HTTP request message diterima, arduino uno akan mengecek apakah terdapat perintah yang valid dari object readString. Jika terdapat perintah yang valid maka arduino akan menyimpan karakter kesebelas ke variabel cRelay dan karakter keduabekas ke variabel cCmd. Variabel cRelay menunjukkan relay yang akan dikontrol sedangkan variabel cCmd menunjukkan perintah yang akan dilakukan. Jika kedua variabel tersebut valid maka fungsi kerjakan akan dipanggil.
Kemudian arduino uno akan mengirimkan halaman web smart building ke client. Pertama-tama setiap kode HTTP respond message dan HTML yang berada di memori program disali ke variabel buffer, setelah itu variabel buffer isi dari variabel buffer akan dikirimkan ke client. Setelah halaman web smart building dikirim ke
client arduino uno akan menutup koneksi ke client dah membersihkan isi dari objek
readString. Kemudian arduino uno bersiap untuk melayani client berikutnya.
Pada fungsi kerjakan program akan menset nilai HIGH atau LOW pada pin-pin digital yang terhubung ke pengendali relay berdasarkan 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 cRelay bukan karakter ‘a’ maka program
mengubah karakter angka yang berada dalam cRelay menjadi bilangan decimal dengan cara mengurangkannya dengan dengan karakter ‘0’ dan menyimpannya di variabel k. Kemudian program akan memberi nilai HIGH dan menset statusnya menjadi 1 jika isi dari variabel cCmd adalah karakter ‘1’ dan member nilai LOW dan menset statusnya menjadi 0 jika isi dari variable cCmd adalah karakter ‘0’ ke relay (pin) yang ditunjuk oleh variabel k. Setelah itu program akan menyimpan isi cRelay ke LcRelay dan cCmd ke LcCmd. Variabel LcRelay dan LcCmd digunakan untuk mengecek agar tidak terjadi pengulangan perintah di koneksi berikutnya. 8. Pengujian dan Analisa
8.1. Pengujian Perangkat
Pengujian perangkat dilakukan dengan menggabungkan semua bagian-bagian yang diperlukan sesuai dengan rancangan rangkaian yang dilakukan dan juga sesuai dengan program yang terdapat dalam arduino uno. Ketika perajgkat diberi catu daya, arduino uno akan menunggu client yang meminta untuk dilayani. Kemudian pengujian dilakukan dengan membuka membuka halaman web smart
building melalui aplikasi web browser pada
komputer yang terhubung dengan arduino web
server. Ketika tombol ON pada relay 1 diklik
maka relay akan aktif dan hal ini akan menyebabkan lampu yang terhubung pada relay tersebut menyala. Ketika tombol OFF pada relay 1 diklik maka relay akan tidak aktif dan menyebabkan lampu yang terhubung pada relay tersebut padam. Jika tombol on setiap relay diklik maka seluruh lampu akan hidup. Pada kolom status dapat dilihat keadaan setiap lampu. Tampilan halaman web Smart building jika seluruh lampu hidup dapat dilihat pada gambar 8.
Gambar 8 Tampilan Halaman Web Ketika
8.2. Analisa Prototipe Smart Building
Arduino uno memiliki 14 pin masukan/keluaran digital dan 6 pin masukan analog. Pin masukan analog dapat dikonfigurasi menjadi pin masukan/keluaran digital sehingga total arduino memiliki 20 pin masukan/keluaran digital. Pada prototipe smart building pin digital 10, 11, 12 dan 13 digunakan arduino uno untuk berkomunikasi dengan arduino ethernet shield. Jadi jumlah pin yang tersisa yang bisa digunakan sebagai keluaran digital adalah 16 pin.
Pada prototipe smart building digunakan tahanan basis sebesar 1 KΩ sehingga arus yang mengalir pada basis menurut gambar 5 dapat dihitung sebagai berikut:
= − =(5 − 2,6)
1 Ω = 1,4 Keterangan:
= arus basis = tahanan basis
= tegangan keluaran pin arduino uno = tegangan saturasi basis − emiter Arus total yang ditarik dari setiap pin keluaran arduino uno yang digunakan untuk mengendalikan relay adalah arus LED ditambah dengan arus basis. Dari persamaan 4 arus LED adalah 1,45 mA. Jadi arus total yang ditarik adalah 2,85 mA.
Jika pada protipe smart bulding, tiap 16 pin yang tersisa digunakan untuk sebagai keluaran maka total arus yang digunakan adalah 45,6 mA. Arus sebesar 45,6 mA masih bisa disediakan oleh arduino uno. Jika ke setiap pin ini digunakan untuk mengendalikan relay yang dihubukan ke sebuah peralatan listrik, maka protipe smart bulding dapat mengendalikan 16 peralatan listrik.
Protipe smart bulding menggunakan jaringan komputer untuk terhubung ke perangkat yang mengendalikannya. Jika protipe smart
bulding berada pada jaringan yang sama dengan
perangkat yang mengendalikannya maka protipe
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.
Kesimpulan
Berdasarkan pembahasan, maka dapat diambil kesimpulan sebagai berikut:
1. Prototipe yang dirancang dapat menghidupkan atau mematikan peralatan listrik dari jarak jauh melalui jaringan internet menggunakan aplikasi web browser. 2. Prototipe dapat mengendalikan 16 peralatan
listik jika masing-masing peralatan listik tersebut terhubung ke satu relay yang dikendalikan oleh prototipe.
3. Smart building sangat bermanfaat bagi banyak pihak yang mengedepankan kepraktisan, efisiensi dan efektivitas, misalnya bidang industri, perkantoran, kehidupan sehari-hari dan lain sebagainya. Referensi
[1] Wheat, Dale. 2011. “Arduino Internals”. New York:Apress.
[2] “Arduino Ethernet Shield”. Diakses
Agustus 16, 2012, dari
http://arduino.cc/en/Main/ArduinoEthernet Shield.
[3] “HTTP Request”. Diakses September 18,
2012 dari
http://www.w3.org/Protocols/rfc2616/rfc26 16-sec5.html.
[4] “Query String”. Diakses Nopember 1,
2012, dari
http://en.wikipedia.org/wiki/Query_string. [5] “Arduino Ethernet Library”. Diakses
Agustus 16, 2012, dari
http://arduino.cc/en/Reference/Ethernet. [6] Banzi, Massimo. 2008. “Getting Started
with Arduino”. Sebastopol:O’Reilly Media.
[7] Suyadhi, Taufiq Dwi Septian. 2010. Buku
Pintar Robotika. Yogyakarta:Penerbit Andi.
[8] Margolis, Michael. 2011. “Arduino Cookbook”. Sebastopol:O’Reilly Media.