Lampu RGB alarm menggunakan ESP 8266

(1)

Diajukan untuk memenuhi salah satu syarat Memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro Jurusan Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

Disusun oleh :

KRISTIAN SANDI SUGITO

NIM : 145114058

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA


(2)

ii

FINAL PROJECT

RGB ALARM LIGHT BULB USING ESP-8266

In a partial fulfilment of the requirements For the degree of Sarjana Teknik Department of Electrical Engineering

Faculty of Science and Technology, Sanata Dharma University

KRISTIAN SANDI SUGITO

NIM : 145114058

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA


(3)

(4)

(5)

v

MOTTO :

GEMBALAKANLAH KAWANAN DOMBA YANG ADA PADAMU

DENGAN SUKACITA DAN PENUH PENGABDIAN DIRI

(1 Petrus 5:2)

Skripsi ini kupersembahkan untuk…..

Tuhan yang selalu menyertaiku

Bapak, Ibu, Kakak, dan Adik tercinta

Sahabat dan Teman-teman Seperjuangan

Trimakasih banyak...


(6)

vi


(7)

(8)

viii

INTISARI

Sebuah Lampu RGB alarm adalah sebuah lampu yang dipasang pada fiting lampu ac 220v, lampu ini dapat berubah warna, perubahan warna dapat dikendalikan melalui perangkat android secara remote kontrol, lampu ini mempunyai sistem alarm yang dapat diatur melalui remote, sistem alarm ini dapat menyalakan lampu secara otomatis pada waktu yang telah ditentukan dengan warna yang telah ditentukan pula.

Sistem mikrokontroler ESP-8266 12E dipilih sebagai kontroler utama lampu ini sebab mikrokontroler ini sudah dilengkapi dengan komunikasi wireless yang dapat terhubung pada perangkat android. Lampu led yang digunakan adalah led RGB 3w dengan transistor driver ULN2003. Perangkat android digunakan sebagai remote yang akan mengirimkan data meliputi data warna dan alarm untuk kemudian diterima oleh ESP-8266 12E, sistem alarm menggunakan RTC ds1307 sebagai acuan waktu.

Hasil akhir dari alat ini adalah dua buah lampu rgb alarm yang dapat dikendalikan secara bersamaan maupun individu. Perangkat android dapat mengirimkan data ke setiap IP yang berbeda pada setiap lampu sehingga sistem aplikasi pada android dapat mengendalikan satu atau dua lampu bersamaan. Pengendalian cukup baik pada jarak 25 meter.

Kata kunci : ESP8266 Android Studio, Android to ESP8266 Client, Arduino IDE, RTC1307, RGB LED


(9)

ix

on the light in automatically at a specified time with a predetermined color anyway.

ESP-8266 microcontroller system 12E been selected as the main controller of this lamp because the microcontroller is equipped with a wireless communication device that can connect to the android. LED lights used are LED RGB 3w with ULN2003 driver transistor. Android used as a remote device that will transmit the data include color data and alarms to subsequently accepted by the 8266 ESP-12E, alarm system using DS1307 RTC as a timing reference.

The final result of this tool is a two rgb light alarm that can be controlled simultaneously or individually. Android device can transmit data to any IP that is different for each light so that application on android system can control one or two lamps simultaneously.

Keyword : ESP8266 Android Studio, Android to ESP8266 Client, Arduino IDE, RTC1307, RGB LED


(10)

x

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas segala rahmat-Nya. Berkat Kasih dan KaruniaNya selama menjalani proses pembuatan tugas akhir ini, penulis dapat menyelesaikan tugas akhir dengan judul “Aplikasi HMI pada Mesin Pemilah Benda Otomatis”.

Tugas akhir ini disusun untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik (S.T) bagi mahasiswa program S-1 Jurusan Teknik Elektro Universitas Sanata Dharma Yogyakarta. Selama proses penyusunan proposal ini, penulis banyak mendapat bantuan dan dukungan dari berbagai pihak, untuk itu penulis mengucapkan terimakasih kepada:

1. Bapak Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elektro Universitas Sanata Dharma Yogyakarta.

2. Bapak Djoko Untoro Suwarno, S.Si., M.T. selaku Dosen Pembimbing tugas akhir yang telah banyak meluangkan waktu untuk memberikan bimbingan.

3. Bapak Martanto, M.T., Bapak Joko Untoro, S.Si., M.T., Ibu Ir Theresia Prima Ari Setiyani, M.T. yang telah memberikan saran dan kritik dalam menyelesaikan penulisan tugas akhir.

4. Seluruh dosen Teknik Elektro yang telah memberikan ilmu yang bermanfaat kepada penulis selama kuliah.

5. Bapak, ibu, kakak, dan adik yang telah memberikan perhatian dan dukungan.

6. Seluruh teman-teman prodi Teknik Elektro angkatan 2012 atas kerjasama dan kebersamaannya selama menjalani studi.

7. Semua pihak yang tidak bisa penulis sebutkan satu per satu atas bantuan, bimbingan, kritik dan saran.


(11)

xi

Yogyakarta, 24 Februari 2017 Penulis,


(12)

xii

DAFTAR ISI

Halaman Sampul(Bahasa Indonesia) ... i

Halaman Sampul(Bahasa Inggris) ... ii

Lembar Persetujuan ... iii

Lembar Pengesahan ... iv

Halaman Persembahan ... v

Lembar Pernyataan Keaslian Karya... vi

Lembar Pernyataan Persetujuan Publikasi Karya Ilmiah ... vii

Intisari ... viii

Abstract ... ix

Kata Pengantar ... x

Daftar Isi ... xi

Daftar Gambar ... ... xiii

Daftar Tabel ... xiv

BAB I PENDAHULUAN 1.1 Latar Belakang ... 1

1.2 Tujuan dan Manfaat ... 1

1.3 Batasan Masalah ... 2

1.4 Metodologi Penelitian ... 2

BAB II DASAR TEORI 2.1 High Power Led RGB ... 4

2.2 ESP 8266 12E... 4

2.3 RTC DS1307 ... 6

2.4 ULN2003 ... 7

2.5 Switching Power Supply ... 7

2.6 PWM (Pulse Witdh Modulation) ... 8

2.7 Model Warna RGB ... 9

2.8 WIFI (Wieless Fldelity) ... 10

2.9 Wireless LAN ... 10


(13)

xiii

2.15 ... 16

2.15.1 Cara kerja HTTP Komunikasi Client dan Server ... 17

BAB III RANCANGAN PENELITIAN 3.1 Proses kerja sistem... 20

3.2 Diagram Komunikasi ... 20

3.2.1 Diagram Blok ... 20

3.2.2 Diagram Alir Utama Pada ESP 8266 12E ... 22

3.3 Perancangan Perangkat keras ... 23

3.3.1 Perancangan Rangkaian ... 23

3.4 Perancangan Layout Perangkat Lunak pada Android ... 24

3.4.1 Tab 1 berisi Kontrol Warna ... 25

3.4.2 Tab 2 berisi Pengaturan Alarm ... 25

3.4.3 Tab 3 berisi Pengaktifan fading ... 27

3.5 Uploading program ESP 8266 dengan Android IDE ... 28

3.5.1 Pengkabelan ESP 8266 12E ke USB to TTL ... 27

3.6 Perancangan penyimpanan data EEPROM pada ESP 8266 12E ... 29

3.7 Perancangan pengiriman data Single IP dan Double IP Address ... 30

3.7.1 Pengendalian satu lampu (Single IP Address) ... 30

3.7.2 Pengendalian lampu secara bersamaan (Double IP Address) ... 31

3.8 Perancangan proses sinkronasi waktu Android ke RTC ... 31

BAB IV HASIL DAN PEMBAHASAN 4.1 Bentuk Fisik Lampu RGB Alarm ... 33

4.2 Penempatan posisi komponen ... 34

4.3 Pengujian Sistem Penyalaan Warna ... 36

4.4 Pengujian Sub Sistem ... 37


(14)

xiv

4.4.2 Pengujian sistem alarm dan sinkronasi waktu ... 38

4.4.3 Pengujian fading ... 45

4.5 Pengujian jarak jangkauan kontrol ... 48

4.6 Pengukuran tegangan setiap led ... 50

BAB V KESIMPULAN 5.1 Kesimpulan ... 51

5.2 Saran ... 51

DAFTAR PUSTAKA ... ... 52 LAMPIRAN


(15)

xv

Gambar 2.2 Tab Setting Alarm ... 2

Gambar 2.3 Tab Fading led... 2

Gambar 2.4 Tab Fading led ... 2

Gambar 2.5 Kontroler Led RGB... 3

Gambar 2.6 Power Supply 5v 2a ... 3


(16)

xvi

DAFTAR TABEL

Halaman

Tabel 4.1 Keterangan part lampu ... 35

Tabel 4.2 Pengujian warna ... 36

Tabel 4.3 Pengujian alarm ... 37

Tabel 4.4 Percobaan fading ... 39

Tabel 4.5 Pengujian jarak kontrol ... 39


(17)

xvii

L5 Program Tab 2 (alarm)... L119 L6 Program Tab 3 (fading)... L170 L7 Layout Main Activity ... L173 L8 Layout Main Activity Tab 1 ... L173 L9 Layout Main Activity Tab 2 ... L178 L10 Layout Main Activity Tab 3 ... L193


(18)

1

BAB I

PENDAHULUAN

1.1

. Latar Belakang

Seiring perkembangan desain interior pada sebuah arsitektur rumah, maka kebutuhan akan pencahayaan lampu pada suatu interior menjadi pilihan yang sangat dipertimbangkan pada rumah-rumah modern, sebab warna cahaya lampu mampu memberi suasana yang berbeda pada setiap ruangan yang berbeda pula, misalkan pada ruang tamu akan lebih cocok dengan lampu berwarna putih, ruang keluarga cocok dengan lampu berwarna kuning, ruang santai cocok dengan lampu berwarna biru atau hijau, dan warna kombinasi lain.

Kebutuhan penyesuaian pencahayaan lampu dapat berbeda-beda seiring aktifitas manusia yang berbeda dalam ruangan, maka untuk memenuhi keperluan tersebut, penulis

berusaha membuat lampu otomatis ini bernama “RGB Alarm”, beberbasis wireless mikrokontrol ESP 8266 12E yang diprogram menggunakan software berbasis Java yaitu

Arduino IDE, dimana cahaya lampu dapat dirubah warna secara manual dan kelebihan dari lampu yang penulis buat dibandingkan dengan lampu yang sudah ada dipasaran adalah lampu RGB Alarm ini dapat berubah warna secara otomatis pada jam tertentu setiap harinya berdasarkan jadwal penyalaan yang telah diatur sebelumnya dan dapat dikendalikan secara individu maupun bersama-sama melalui aplikasi yang dipasang pada platform android, aplikasi ini penulis buat menggunakan software Android Studio IDE yaitu pengembang aplikasi berbasis Java pada platform Andoid.

1.2. Tujuan dan Manfaat Penelitian

Tujuan :

1. Membuat lampu bernama RGB Alarm dengan wireless mikrokontrol ESP-8266 12E sebagai pengendali utama lampu.

2. Menciptakan warna penyalaan led sesuai dengan warna yang diperintahkan berdasarkan warna decimal code RGB.

3. Menciptakan fitur tambahan berupa pemprograman alarm.

4. Dapat megendalikan kedua ESP-8266 pada masing-masing lampu secara bersamaan melalui aplikasi android yang dibuat.


(19)

2

3. Menghemat waktu pengendalian lampu karena lampu dapat dikendalikan secara bersamaan.

1.3. Batasan Masalah

1. Memanfaatkan PWM output pada ESP-8266 12E sebagai kontrol kecerahan untuk setiap Led R,G,B.

2. Menggunakan RTC DS-1307 sebagai penghitung waktu ketika power lampu dimatikan.

3. Memanfaatkan EEPROM internal ESP 8266 12E untuk meyimpan Alarm. 4. Menetapkan ESP 8266 12E sebagai Client pada jaringan agar Server dapat

mengirimkan data yang diperlukan untuk 2 lampu.

5. Menetapkan Android sebagai Server agar sistem aplikasi kontrol lampu dapat dengan mudah membagi pengiriman data ke ESP 8266 12E baik multi IP address atau pada single IP address.

1.4. Metodologi Penelitian

Berdasarkan pada tujuan yang ingin dicapai metode-metode yang digunakan dalam penyusunan tugas akhir ini adalah:

1. Studi literatur,yaitu dengan cara mendapatkan data dengan membaca buku-buku dan jurnal-jurnal yang berkaitan dengan permasalahan yang dibahas dalam tugas akhir ini.

2. Dokumenter, yaitu dengan mendapatkan sumber infomasi berdasakan data atau arsip yang telah ada sehingga dapat membantu penulis dalam mengerjakan tugas akhir ini.

3. Eksperiment, yaitu dengan langsung melakukan praktek maupun pengujian tehadap hasil pembuatan alat dalam pembuatan tugas akhir ini

4. Perancangan subsistem hardware. Tahap ini bertujuan untuk mencari bentuk model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan dari berbagai faktor-faktor permasalahan dan kebutuhan yang telah ditentukan.


(20)

3

5. Pembuatan subsistem hardware. Alat akan bekerja setelah esp 8266 12E mendapat data masukan dari kontrol android melalui wifi.

6. Proses pengambilan data. Pengambilan data dilakukan dengan cara mengubah-ubah warna pada lampu. Data yang diambil adalah nilai frekuensi atau nilai desimal dari keluaran PWM.

7. Analisis dan penyimpulan hasil percobaan. Analisis data dilakukan dengan membandingkan hasil warna lampu pada 3 output pwm value R,G,B pada esp 8266 dengan data decimal code RGB pada gambar 1.1, untuk mendapatkan 3 data pwm R,G,B pada esp 8266 dilakukan dengan melihat melalui serial monitor komputer yang sudah terhubung dengan esp 8266 melalui usb serial.


(21)

4

Bab ini menjelaskan tentang dasar teori dan penjelasan detil peralatan yang digunakan. Hal yang akan dibahas adalah led RGB, ESP 8266, RTC DS1307, ULN 2003, Switching power supply, PWM, model warna RGB, WIFI, Access Point, sistem keamanan WLAN.

2.1. High Power led RGB

Lampu led yang digunakan seperti gambar 2.1, merupakan lampu RGB yang memiliki 3 buah led dalam satu kemasan.

Gambar 2.1 Led RGB [1

2.2. ESP 8266

ESP 8266 12E adalah module wifi yang banyak dipakai sebagai media komunikasi pada aplikasi mikrokontroler yang memiliki kecepatan frekuensi wireless sebesar 2.4G dengan fasilitas WPA/WPA2 dan dapat bekerja sebagai Acces Point maupun Client tegangan kerja sebesar 3.3v dengan clock processor 80 MHZ dilengkapi flash memory 1


(22)

5

Mb, module ini memiliki 11 pin GPIO dan satu input ADC 10bit, bentuk module pada gambar 2.3. Fungsi pin yang terdapat pada esp 8266 gambar 2.3 sebagai berikut:

1. GPIO 0 : I/O, PWM

2. TXDO : UART flash programming (GPIO 1)

3. GPIO 2 : I/O, PWM, UART flash programming

4. RXDO : UART flash programming (GPIO 3)

5. GPIO 4 : I/O, PWM, SDA

6. GPIO 5 : I/O, PWM, SCL

7. SCLK : I/O, GPIO 6

8. MISO : I/O, GPIO 7

9. MOSI : I/O, GPIO 8

10.GPIO 9 : I/O, PWM

11.GPIO 10 : I/O, PWM

12.CSO : I/O, GPIO 11

13.GPIO 12 : I/O, PWM

14.GPIO 13 : I/O, PWM

15.GPIO 14 : I/O, PWM

16.GPIO 15 : I/O, PWM

17.GPIO 16 : I/O, PWM

18.ADC : Analog to digital input (10 bit) 19.ENABLE : Chip enable, High:on, Low:off

20.RESET : Reset signal (Low voltage level:Active)

21.VCC : 3.3v power


(23)

6

Gambar 2.3. ESP 8266 12E module.

Gambar 2.4. ESP 8266 12E Blok Diagram [2].

Blok diagram pada esp 8266 12E pada gambar 2.4.

Seiring pengembangannya kini pemprograman ESP 8266 12E bisa dilakukan melalui software arduino IDE untuk memudahkan dalam pengendalian I/O.

2.3 RTC DS1307

RTC kepanjangan dari Real-Time Clock mempunyai clock sumber sendiri dan internal batery untuk menyimpan/menjalankan data waktu (detik, menit, jam) dan kalender (hari, bulan, tahun). Sehingga microcontroller dengan mudah mengambil data pemwaktuan melalui komunikasi i2c pada RTC, kelebihan dari penggunaan RTC ini adalah jika mikrokontroler mati maka waktu dan tanggal akan tetap berjalan karena terdapat baterai 3v sebagai backup daya pada RTC. Salah satu RTC yang sudah populer dan mudah penggunaanya adalah DS1307, komunikasi yang digunakan pada RTC menuju mikrokontrol adalah melalui SDA SCL, DS1307 terdapat 8 pin pada gambar 2.5.


(24)

7

Gambar 2.5 RTC ds1307 [3].

2.4 ULN2003

Pada gambar 2.6 terlihat didalam ic ULN2003 terdapat 8 buah Darlington Transistor Arrays, memiliki daya 500mA per driver, dilengkapi clamp dioda yang berfungsi sebagai dioda flyback untuk beban induksi seperti relay/switching, pada aplikasi lain biasa digunakan sebagai kontrol kecerahan pada led dan kontrol motor stepper.

Gambar 2.6 Blok diagram [4].

2.5

Switching Power Supply

Power supply yang digunakan adalah type switching penurun tegangan AC 220v menjadi 5v DC dengan output daya sebesar 5 watt, bentuk alat pada gambar 2.7.


(25)

8

Gambar 2.7 Switching Power Supply AC-DC 5v.

2.6. PWM (Pulse Witdh Modulation)

Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi lebar sinyal yang dinyatakan dengan pulsa dalam satu periode, untuk mendapatkan tegangan rata-rata yang berbeda. Bebarapa contoh aplikasi PWM adalah pemodulasian data untuk telekomunikasi, pengontrolan daya atau tegangan yang masuk ke beban, regulator tegangan, audio effect dan penguatan, serta aplikasi-aplikasi lainnya. Aplikasi PWM berbasis mikrokontroller biasanya berupa pengendalian kecepatan motor DC, pengendalian motor servo, dan pengaturan nyala terang LED.

Gambar 2.8. Duty Cycle [5].

Sinyal PWM pada umumnya memiliki amplitude dan frekuensi dasar yang tetap, namun memiliki lebar pulsa yang bervariasi. Lebar pulsa PWM berbanding lurus dengan amplitude sinyal asli yang belum termodulasi. Artinya, sinyal PWM memiliki frekuensi


(26)

9

gelombang yang tetap namun duty cycle bervariasi antara 0% hingga 100% seperti gambar 2.8.

PWM merupakan salah satu teknik untuk mendapatkan sinyal analog dari sebuah piranti digital. Sebenarnya sinyal PWM dapat dibangkitkan dengan banyak cara, secara analog menggunakan IC op-amp atau secara digital. Secara analog setiap perubahan PWM-nya sangat halus, sedangkan secara digital setiap perubahan PWM dipengaruhi oleh resolusi PWM itu sendiri. Resolusi adalah jumlah variasi perubahan nilai dalam PWM tersebut. Misalkan suatu PWM memiliki resolusi 8 bit, berarti PWM ini memiliki variasi perubahan nilai sebanyak 256 variasi mulai dari 0 – 225 perubahan nilai yang mewakili duty cycle 0%

– 100% dari keluaran PWM tersebut.

2.7. Model Warna RGB

Model warna RGB adalah model warna berdasarkan konsep penambahan kuat cahaya primer yang terdiri dari 3 warna berbeda yaitu merah, hijau, dan biru. Dalam sistem komputer warna tersebut mempunyai nilai value dari 0-255 dimana 0 adalah tidak ada cahaya, dan 255 adalah intensitas cahaya maksimum. Ketiga warna tersebut jika dikolaborasikan akan menciptakan warna yang berbeda dapat dilihat pada ilustrasi gambar 2.9 tercipta 3 warna baru yaitu yellow, magenta, dan cyan.

Gambar 2.9. Penggabungan warna [6].

Penggabungan warna pada RGB dapat menciptakan lebih banyak warna baru dengan menetapkan intensitas warna primer yang berbeda-beda seperti gambar 2.10.


(27)

10

Gambar 2.10 Kolaborasi intensitas warna primer [6].

2.8. WIFI (Wireless Fldelity)

Istilah WIFI diciptakan oleh sebuah organisasi bernama WIFI alliance yang bekerja menguji dan memberikan sertifikasi untuk perangkat-perangkat WLAN [7]. Teknologi WLAN menggunakan standar radio 802.11 yang sekarang disebut sebagai WIFI secara umum, yang telah menjadi teknologi yang handal dan penggunaan yang semakin luas. Perangkat wireless diuji berdasarkan kesesuaian fungsi terhadap penggunaanya dengan perangkat-perangkat wireless lain yang menggunakan standar yang sama. Setelah diuji dan lulus, maka perangkat tersebut diberi sertifikasi “WIFI certified”. Artinya perangkat ini dapat bekerja dengan baik dengan perangkat WIFI lain yang juga bersertifikasi. WIFI sudah banyak digunakan di berbagai sektor seperti bisnis, akademis, perumahan, dan masih banyak lagi. Teknologi WIFI ini dapat juga digunakan untuk kegiatan memindahkan partisi data secara cepat.

2.9.

Wireless LAN

Wireless LAN merupakan koneksi dengan cakupan LAN dengan menggunakan frekuensi radio sebagai medianya (Diane Teare, 2008, p.435). Berbeda dengan wired LAN yang menggunakan standar IEEE 802.3 [7]. Wireless LAN menggunakan standar IEEE 802.11. Wireless LAN menggunakan komunikasi half-duplex karena untuk transmisi dan


(28)

11

penerimaan menggunakan frekuensi yang sama. Nama populer dari wireless LAN adalah

Wireless Fidelity (Wi-Fi).

Accesspoint merupakan peralatan pada wireless LAN yang berfungsi untuk menyebarkan sinyal wireless (beacon) sehingga peralatan wirelessclient dapat mendeteksi

beacon [7]. Sinyal yang berasal dari wirelessclient dikenal dengan istilah probe. Jarak antara

wirelessclient dan accesspoint akan mempengaruhi datarate. Semakin dekat dengan

accesspoint, maka wirelessclient akan mendapatkan datarate yang lebihtinggi. Satu kosa kata cukup penting dalam jaringan nirkabel adalah ServiceSetIdentifier (SSID). SSID merupakan pengenal dari sebuah accesspoint yang menandakan kita sedang tergabung dengan jaringan yangfrekuensi radionya dipancarkan oleh accesspoint tertentu.

Wireless LAN memiliki beberapa standar yang diatur dalam IEEE802.11. Semua peralatan nirkabel harus mengikuti salah satu atau lebih dari standar yang ada. Standar ini mengatur operasi dari wireless LAN hanya pada physical layer dan data linklayer dari OSI. Beberapa standar dari wireless LAN adalah [7]:

1. 802.11b. Standar ini mendefinisikan wireless LAN untuk beroperasi pada frekuensi 2,4 GHz. Standar ini memiliki 14 channel, tetapi jika terjadi overlapping, maka harus cakupan area yang overlapped harus berbeda minimal 5 channel sehingga pada umumnya channel yang kerap digunakan adalah channel 1, 6, dan 11. Peralatan yang beroperasi pada standar 802.11b menggunakan modulasi Direct Sequence Spread Spectrum (DSSS). Transferrate yang mungkin untuk modulasi ini adalah 1, 2, 5,5 dan 11 Mbps. Semakin dekat dengan access point, maka semakin baik transferrate yang didapatkan.

2. 802.11g. Standar ini dibangun dari 802.11b dengan perbaikan pada transferrate yang lebih baik. Implikasinya, peralatan nirkabel yang beroperasi pada standar 802.11g memiliki backward compatibility dengan 802.11b. Perbedaan kedua buah standar ini adalah 802.11g menggunakan modulasi Orthogonal Frequency Division Multiplexing

(OFDM). Peralatan dapat memiliki transferrate dengan variasi 6, 9, 12, 18, 24, 36, 48, dan 54 Mbps. Namun jika pada satu SSID terdapat pengguna dengan peralatan nirkabel 802.11b, maka pengguna dengan peralatan nirkabel 802.11g akan menyesuaikan dengan


(29)

12

bekerja pada standar ini menggunakan modulasi (MIMO).(Felix ,2010)

2.10. Pengertian IEEE 802.11

Jaringan Wireless adalah jaringan tanpa kabel (nirkabel) yang artinya proses penyampaian data dilakukan melalui udara dengan memanfaatkan gelombang elektromagnetik. Karena menggunakan gelombang radio sebagai media transmisi datanya, maka komponen wireless yang akan Anda gunakan harus memiliki standart frekuensi yang sama. Sehingga walaupun berbeda vendor pembuatnya komponen wireless tersebut tetap dapat berkomunikasi asalkan menggunakan standar frekuensi yang sama. Standarisasi Jaringan Wireless didefinisikan oleh IEEE (institute of Electrical and Electronics Engineers) [8].

IEEE (Institute of Electrical and Electronic Engineers) merupakan institusi yang melakukan diskusi, riset dan pengembangan terhadap perangkat jaringan yang kemudian menjadi standarisasi untuk digunakan sebagai perangkat jaringan.

Standar dari IEE meliputi [8]:

1. 802.1 → LAN/MAN Management and Media Access Control Bridges 2. 802.2 → Logical Link Control (LLC)

3. 802.3 → CSMA/CD (Standar untuk Ehernet Coaxial atau UTP) 4. 802.4 → Token Bus

5. 802.5 → Token Ring (bisa menggunakan kabel STP) 6. 802.6 → Distributed Queue Dual Bus (DQDB) MAN 7. 802.7 → Broadband LAN

8. 802.8 → Fiber Optic LAN & MAN (Standar FDDI)

9. 802.9 → Integrated Services LAN Interface (standar ISDN) 10. 802.10 → LAN/MAN Security (untuk VPN)

11. 802.11 → Wireless LAN (Wi-Fi)

12. 802.12 → Demand Priority Access Method


(30)

13

14. 802.16 → Broadband Wireless Access (standar untuk WiMAX)

Standarisasi Jaringan Wireless meliputi [8]:

1. IEEE 802.11 Legacy yaitu standart jaringan wireless pertama yang bekerja pada frekuensi 2,4 GHz dengan kecepatan transfer data maksimum 2 Mbps.

2. IEEE 802.11b yaitu standart jaringan wireless yang masih menggunakan frekuensi 2,4 GHz dengan kecepatan trasfer datanya mencapai 11 Mbps dan jangkau sinyal sampai dengan 30 m.

3. IEEE 802.11a yaitu standart jaringan wireless yang bekerja pada frekuensi 5 GHz dengan kecepatan transfer datanya mencapai 58 Mbps.

4. IEEE 802.11g yaitu standart jaringan wireless yang merupakan gabungan dari standart 802.11b yang menggunakan frekuensi 2,4 GHz namun kecepatan transfer datanya bisa mencapai 54 Mbps.

5. IEEE 802.11n yaitu standart jaringan wireless masa depan yang bekerja pada frekuensi 2,4 Ghz dan dikabarkan kecepatan transfer datanya mencapai 100-200 Mbps.

2.11. Access Point

Access Point atau yang lebih sering disebut dengan istilah AP merupakan sebuah perangkat penghubung antara jaringan wire dengan wireless. Maksudnya sebuah AP akan bertugas mengubah data yang lalu lalang di media kabel menjadi sinyal-sinyal radio yang dapat ditangkap oleh perangkat wireless. AP akan menjadi gerbang bagi jaringan wireless

untuk dapat berkomunikasi dengan dunia luar maupun dengan antarsesama perangkat

wireless di dalamnya. Biasanya pada perangkat AP terdapat satu atau lebih interface untuk media kabel. Interface media kabel tadi akan di-bridging oleh AP tersebut ke dalam bentuk sinyal-sinyal radio, sehingga perangkat wireless dengan kabel tadi dapat terkoneksi.

Access Point sangat dibutuhkan jika ingin membuat sebuah infrastruktur jaringan

wireless. Dengan menggunakan AP, maka sebuah jaringan komunikasi akan terbentuk tidak hanya dua atau tiga perangkat saja yang dapat berkomunikasi tetapi cukup banyak yang dapat saling berbicara dengan perantara sinyal radio ini.

Pengaplikasian AP yang banyak dilakukan saat ini adalah melakukan pembagian


(31)

14

jaringan yang luas karena memang sifatnya yang .

Sistem WLAN, terlepas dari keterbatasan perangkat AP, dapat melayani pengguna dalam jumlah yang tidak terbatas. Para penggunanya dapat menambahkan AP baru jika memang jumlah pengguna yang akan dilayaninya semakin membengkak. Dengan memasang banyak AP, maka banyak sekali keuntungan yang didapat. Hal ini memanjakan

pengguna jaringan wireless dengan bandwidth yang lega, pengguna juga dapat bebas berkeliaran di manapun merekasuka karena area coverage-nya sudah pasti lebih luas, dan jumlah pengguna yang dapat dilayani oleh jaringan ini juga lebih banyak. Jadi sebenarnya sistem WLAN tidak pernah memberikan batasan berapa banyak yang dapat terkoneksi ke sebuah jaringan wireless. Semua tergantung pada kemampuan dan fasilitas perangkatnya. Gambar 2.11 adalah topology dari AP yang menghubungkan 3 komputer ke server jaringan.

Gambar 2.11 AP topology [8].

2.12. Server

Server adalah suatu sistem komputer yang menyediakan berbagai macam jenis-jenis layanan tertentu yang di tujukan untuk client dalam suatu sistem jaringan komputer. Server dilengkapi oleh sistem operasi (OS) yang khusus untuk mengontrol ataupun memonitor akses dan juga sumber daya yang terdapat di dalamnya. Lalu selain itu server didukung oleh prosesor yang bersifat scalable serta RAM yang berkapasitas besar, dan dilengkapi oleh sistem operasi yang khusus, disebut sebagai sistem operasi jaringan komputer. Server juga menjalankan perangkat-perangkat lunak administratif yang mengontrol akses terhadap jaringan komputer dan sumber daya yang ada di dalamnya, seperti misalnya berkas ataupun


(32)

15

pencetak, dan memberikan akses kepada stasiun kerja anggota-anggota jaringan komputer.

Gambar 2.12 adalah topology dari server sebagai penyedia data yang dibutuhkan client.

Gambar 2.12 Server-Client topology [8].

2.13. Client

Client adalah komputer yang terdapat dalam jaringan komputer, yang menggunakan berbagai macam sumber daya yang telah disediakan oleh server. Bisa juga definisi client adalah Pemakai layanan server. Pada prinsipnya client dan server merupakan suatu sistem yang merupakan aplikasi pada jaringan komputer yang saling terhubung atau berhubungan. Gambar 2.13 adalah aktifitas client ketikan terhubung ke server penyedia data yang dibutuhkan client.

Gambar 2.13 Client-server topology [8].

2.14. Sistem Keamanan WLAN

Untuk itu, ada beberapa teknik yang dapat digunakan untuk lebih mempersulit para pengganggu untuk mengacau jaringan wireless. Metode tersebut adalah WEP, WPA, dan


(33)

16

awal dan dipadukan dengan algoritma enkripsi RC4. Ketika fasilitas WEP diaktifkan, maka semua perangkat wireless (AP dan client) yang ada di jaringan harus dikonfigurasi dengan menggunakan key yang sama.

Hak akses dari seseorang atau sebuah perangkat akan ditolak jika key yang

dimasukkan tidak sama. • WIFI Protected Access atau disingkat dengan istilah WPA, merupakan teknik pengaman jaringan wireless LAN yang diklaim lebih canggih dari WEP. Dengan disertai teknik enkripsi yang lebih advanced dan tambahan pengaman berupa otentikasi dari penggunanya, maka WPA akan jauh lebih hebat mengamankan pengguna

WLAN. • 802.1x, Teknik pengaman yang satu ini akan mengharuskan semua pengguna

jaringan wireless untuk melakukan proses otentikasi terlebih dahulu sebelum dapat bergabung dalam jaringan. Sistem otentikasinya dapat dilakukan dengan banyak cara, namun sistem otentikasi menggunakan pertukaran key secara dinamis. Sistem pertukaran key secara dinamis ini dapat dibuat dengan menggunakan Extensible Authentication Protocol

(EAP).

2.15.

Hypertext Transfer Protocol (HTTP)

HTTP adalah protokol jaringan untuk didistribusikan, kolaboratif, sistem informasi hypermedia, HTTP adalah dasar dari komunikasi data untuk World Wide Web. Protokol yang mendasari oleh World Wide Web. Dalam pengertian HTTP menetapkan bagaimana pesan diformat dan ditransmisikan, dan apa tindakan dari Web server dan browser sebagai respon pada berbagai perintah [8].

2.15.1 Cara kerja HTTP Komunikasi Client dan Server

Klien HTTP seperti web browser terhubung ke server HTTP yang umumnya berjalan pada port 80. Server HTTP pada gilirannya menginterpretasikan permintaan, memprosesnya dan merespon kembali ke klien HTTP jika diperlukan.


(34)

17

Pesan Khas HTTP [8]:

1. Request line (Permintaan baris) 2. HTTP Headers

3. Empty line (Baris Kosong) 4. Optional (pilihan) message body. Metode Permintaan Klien HTTP[8]:

a. HEAD

Metode ini meminta informasi dari server sama halnya metode yang dilakukan GET, perbedaan mendasar adalah respon metode HEAD tidak mengandung respon body.

b. GET

Metode ini meminta sumber daya dari web server. Metode GET adalah salah satu metode yang paling umum digunakan di web sekarang ini

c. POST

Metode POST menyerahkan data ke web server untuk diproses. d. PUT

Upload sumber daya tertentu ke server HTTP.

e. DELETE

Menghapus sumber daya tertentu dari web server.

f. TRACE

Metode ini menggemakan kembali permintaan yang diterima sehingga klien HTTP dapat melihat apa server menengah menambahkan atau mengubah permintan.

g. OPTIONS

Metode ini membantu menentukan fungsi server seperti menentukan metode mana yang mendukung web server.


(35)

18 Skenario komunikasi HTTP sederhana

Gambar 2.14 Client Request

1. Gambar 2.14 HTTP klien membuat sambungan dan mengirim metode permintaan ke web server.

Gambar 2.15 Server mencari informasi

2. Gambar 2.15 HTTP server memproses permintaan klien, sementara klien menunggu respon dari server.


(36)

19

3. Gambar 2.16 Web server merespon dengan kode status dan data (jika tersedia) dan menutup sambungan.

2.16. APK file

APK adalah file mentah dari aplikasi android yang memiliki kepanjangan dari

Application Package File yaitu format berkas yang digunakan untuk mendistribusikan dan memasang software dan middleware ke ponsel dengan sistem operasi Android [9].

Didalam APK memiliki bagian file yang menjadi fondasi dalam sebuah apk. Beberapa strukturnya antara lain:

1. AndroidManifest.xml

Pada file ini terdapat sebuah deskripsi dari berbagai perintah dan informasi file lainnya. Sebagai master ke sub sistem.

2. Build.xml

File ini adalah sebuah script yang tugasnya mengkompile dan menginstalnya dalam sistem operasi android.

3. Bin/

Pada file bin terdapat hasil APK. 4. Res/

Didalam Res file terdapat berbagai sumber komponen, seperti GUI, User interference, layout, string gambar dan parameter tampilan lain yang akan ditampilkan pada layar aplikasi.

5. Scr/

Didalam src terdapat tempat Activity, direktori inilah ynag menjadi sumber class Activity, yang akan terakses ketika ada data imputan yang masuk.

6. Assets/

Memuat file static yang dikemas dalam aplikasi untuk device.

BAB III

RANCANGAN PENELITIAN

3.1. Proses kerja sistem

Sistem Lampu RGB ini akan mulai bekerja ketika mendapat supply 5v, lampu rgb akan menyala setelah perintah dikirimkam melalui remote android, yang meliputi pengaturan warna, hidup/mati lampu, dan pengaturan alarm. Lampu ini akan menyimpan semua perintah yang diberikan ke dalam eeprom memory sehingga ketika tegangan listrik


(37)

20 Mosfet

Mosfet 2 Mosfet 3 Transistor 1

Gambar 3.1. adalah gambar diagram blok yang menggambarkan tentang alur komunikasi yang terjadi antara lampu RGB Alarm (blok merah) dengan android (blok biru) melalui wifi dengan menggunakan topology Server-Client, dimana android sebagai Server dan lampu RGB Alarm adalah Client.

wifi

Gambar 3.1 Blok komunikasi

Diagram blok merah adalah rangkaian sistem pada bagian lampu dan blok biru adalah perangkat android yang berisi aplikasi android yang akan mengirimkan data ke lampu melalui wifi.

3.2.1 Diagram Blok

Gambar 3.2. adalah gambar diagram blok besar yang menggambarkan tentang alur kerja 2 buah lampu, pada satu buah lampu terdapat mikrokontroler esp 8266 sebagai pengontrol utama lampu RGB, IC uln2003 digunakan sebagai driver led dari output sinyal pwm esp 8266, RTC DS 1307 dapat disesuaikan waktunya melalui android dengan menekan

satu tombol di android yang akan mengirimkan data jam dan hari sesuai dengan waktu pada perangkat android.

Lampu 1

Lampu RGB ALARM

Android

Led Red Led Green Led Blue


(38)

21 Mosfet

Mosfet 2 Mosfet 3 Transistor 1

Lampu 2

Gambar 3.2 Diagram blok besar system

3.2.2 Diagram Alir Utama Pada ESP 8266 12E

ESP-8266

Supply 5v

Android RTC

ESP-8266

Led Red Led Green Led Blue

Supply 5v

RTC

Kalibrasi waktu denganAndroid Kalibrasi waktu denganAndroid


(39)

22

Gambar 3.3. Diagram alir utama

Diagram alir utama ESP 8266 12E ditunjukan pada gambar 3.3. Program utama pada esp8266 12E menunjukan proses mikrokontroler secara keseluruhan. Setelah start, program akan membaca inisialisasi terhadap port-port mikrokontroler yang digunakan untuk proses pengendalian alat. Proses pertama yaitu membaca value PWM dan data alarm yang tersimpan pada eeprom memori untuk kemudian dilakukan eksekusi data ke output. Proses kedua adalah menunggu data yang dikirim melalui android yang meliputi data PWM dan alarm. Program dilengkapi kalibrasi RTC dimana jika pewaktuan RTC tidak sesuai maka akan sistem akan mensinkronasi sesuai jam dan tanggal pada android.

3.3. Perancangan Perangkat keras


(40)

23

Gambar 3.5 Blok sistem

Perancangan alat ini terdiri dari beberapa bagian utama, yaitu wireless mikrokontroler esp 8266, RTC, transistor driver, led RGB. Wireless mikrokontroler esp 8266 12E berfungsi untuk mengatur dan memproses data dan untuk menerima dari yang dikirimkan dari android melalui sinyal wifi. Fungsi RTC adalah sebagai penghitung waktu berjalanya alarm ketika power lampu dimatikan, fungsi transistor sebagai penguat arus dari output digital esp 8266 12E ke led RGB, dan lampu RGB yang digunakan adalah type single high power RGB led 3 watt.

3.3.1 Perancangan Rangkaian

Pada gambar 3.6 merupakan rancangan rangkaian board utama pada lampu RGB alarm, esp 8266 12E disuplay oleh regulator 3.3v, keluaran driver uln2003 menuju led adalah negatif. Teg maximum led adalah 4v untuk mengurangi tegangan supply 5v yang menuju led digunakan dioda 1n4148 yang memiliki voltage drop sebesar 0.7 v.


(41)

24

Gambar 3.6 Rangkaian board utama

3.4

Perancangan Layout Perangkat Lunak pada Android

Pada gambar 3.7 adalah desain dari tab kontrol untuk mengubah warna lampu, lingkaran warna besar adalah lokasi pick colour apabila disentuh maka lampu RGB akan menyala sesuai warna yang disentuh.


(42)

25

Gambar 3.7 Tab1 Kontrol Warna

3.4.2 Tab 2 berisi Pengaturan Alarm

Tab2 Alarm pada gambar 3.8 adalah rancangan pengaturan RGB Alarm, dimana pada tab2 ini dapat melakukan pengaturan penyalaan lampu pada jam yang kita inginkan dengan penyalaan warna yang dapat diubah-ubah setiap jamnya, cakupan hari yang dapat diatur dari senin-minggu dan pada satu hari disediakan 5 kolom perintah waktu untuk kemudian alarm akan dieksekusi berurutan sesuai berjalanya waktu pada RTC. Misalkan pada gambar 3.8 lampu RGB telah diset Alarm pada hari senin lampu akan menyala pada jam 12.52 berwarna merah dan akan berganti warna ketika jam 15.54 dengan warna biru, untuk mematikan lampu dengan cara mengubah warna penyalaan berwarna hitam.

Terdapat tombol sinkronasi watktu pada tab 2 ini, fungsinya untuk melakukan penyamaan waktu pada RTC dengan waktu jam dan hari pada Android.

Tab 3 berisi Fading kontrol Tab 2 Berisi pengaturan Alarm

On-Off lampu manual

Pengubah warna lampu manual

Penampil value RGB Red Seekbar manual

Green Seekbar manual Blue Seekbar manual RGB brightness manual Sample warna nyala lampu Tab 1 kontrol (sekarang)


(43)

26

Gambar 3.8 Tab2 Pengaturan Alarm

Baca data alarm dari lampu

Kirim pengaturan alarm yang di atur

Jendela Pick Colors Alarm

Tekan kembali setelah pick color

AreaPick Colors sentuh warna yang diinginkan Warna sample yang dipilih


(44)

27

3.4.3 Tab 3 berisi Pengaktifan fading

Pada gambar 3.9 adalah tab3 Spesial, memiliki fungsi untuk fading led yaitu led akan fading berurutan mulai dari, merah, hijau, biru, dan kemudian mengulang dari merah lagi, untuk digunakan sebagai lampu hias. Ketika tombol fade led ditekan, maka lampu akan seketika fading dan mengabaikan fungsi alarm atau penyalaan sebelumnya, dan ketika tombol fade led ditekan lagi maka fungsi fading akan non aktif dan fungsi alarm akan berjalan lagi atau kembali ke penyalaan lampu sebelumnya.

Gambar 3.9 Tab3 Spesial Fading


(45)

28

adalah sebagai berikut:

3.5.1 Pengkabelan ESP 8266 12E ke USB to TTL

Lamgkah-langkah untuk me reflash ESP adalah sebagai berikut: a. Hubungkan Gnd pin ke ground supply.

b. Hubungkan GPIO15 pin ke ground supply. c. Hubungkan Enable pin pada 3.3v.

d. Hubungkan TXD pin ESP 8266 pada RX pin USB to TTL. e. Hubungkan RXD pin ESP 8266 pada TX pin USB to TTL.

f. Siapkan push button sebagai penghubung GPIO0 menuju ke GND, push button akan ditekan ketika power supply 3.3v mulai dihubungkan, sebagai gerbang pembuka reflash program agar Arduino IDE dapat mengirimkan program yang baru pada ESP.

g.

Sambungkan USB TTL ke port USB komputer, lihat port yang digunakan (COM1).

Konfigurasi pemasangan dapat dilihat pada gambar 3.10

Gambar 3.10 Konfigurasi ESP ke USB TTL


(46)

29

3.6

Perancangan penyimpanan data EEPROM pada ESP 8266 12E

Lampu RGB Alarm ini mempunyai fitur yang belum ada pada lampu Smart RGB yang ada dipasaran yaitu pemprograman alarm, kapasitas penyimpanan pewaktuan warna lampu membutuhkan EEPROM internal pada ESP 8266 12E sebab ketika power lampu dimatikan setingan alarm dan warna lampu tidak akan hilang, eeprom ini menjadi acuan pembacaan data pada program loop ESP 8266. Ilustrasi penyimpanan data warna lampu, hari dan jam pada gambar 3.11.

Gambar 3.11 Lokasi penyimpanan data Alarm.

EEPROM ESP 8266 12E memiliki eeprom sebesar 1024 byte yang dapat menyimpan value 0-255 pada setiap byte, pada gambar 3.11 adalah penyimpanan data penyalaan dan pemadaman lampu, ketika RTC sudah mencapai hari senin jam 7:12, maka lampu akan menyala berwarna orange berdasarkan kombinasi dari ketiga warna led dan akan padam 2 menit kemudian. Contoh pengalamatan data ke eeprom pada kotak merah gambar 3.22:

1. Address 0 digunakan sebagai penyimpanan value pwm led Merah. 2. Address 1 digunakan sebagai penyimpanan value pwm led Hijau. 3. Address 2 digunakan sebagai penyimpanan value pwm led Biru. 4. Address 3 digunakan sebagai penyimpanan value jam 0-24. 5. Address 4 digunakan sebagai penyimpanan value menit 0-59.

3.7

Perancangan pengiriman data

Single IP

Address dan

Double IP

Address.


(47)

30

maupun Alarm. Pada gambar 3.12 adalah aktifitas pencocokan data antara client dan server.

Gambar 3.12 Client dan Server

Dari basic gambar 3.12 maka dibuatlah metode komunikasi antara lampu RGB dengan android.

3.7.1 Pengendalian satu lampu (Single IP Address)

Untuk mengendalikan satu lampu saja tanpa mempengaruhi lampu lainnya maka penulis mensiasatinya dengan pengiriman HTTP respons untuk satu IP saja hal itu

dimaksutkan agar IP lain atau lampu lain tidak ikut terhubung. Gambar 3.13 sistem aplikasi android mengirimkan satu IP saja pada lampu yang mempunyai IP tersebut.

Gambar 3.13 Single IP ADDRESS 192.168.43.165

Pada gambar 3.13 sistem android mengirimkan data pwm led merah sebesar 255 (R=255) ketika client menerima value R=255 maka sistem mikrikontrol akan memerintahkan pengubahan value digital output pwm 255 maka led merah akan menyala maksimum.


(48)

31

Pengendalian lampu RGB dapat dilakukan serentak lebih dari satu lampu dengan melakukan pengaturan pengiriman multi IP pada aplikasi yang dibuat pada perangkat android. Gambar 3.14 adalah pengiriman dua IP yang dikirim dari android secara berurutan dari lampu satu kemudian ke lampu dua, dimana lampu satu mempunyai IP Address 192.168.43.165 dan lampu satunya mempunyai IP Address 192.168.1.43.168.

s

Gambar 3.14 Double IP ADDRESS 192.168.43.165 + 192.168.43.165

Pengendalian warna lampu menjadi warna merah secara serentak pada gambar 3.14 adalah dengan mengirimkan value pwm merah sebesar 255 (R=255) pada kedua IP Address yang berbeda data dikirimkan secara berurutan dari IP terendah ke IP tinggi secara cepat.

3.8

Perancangan proses sinkronasi waktu Android ke RTC

Pencocokan waktu pada RTC dilakukan ketika RTC baru pertama kali digunakan atau ketika baterai RTC mulai dipasang, karena pewaktuan RTC akan reset atau berhenti berjalan ketika baterai RTC dilepas, dan akan mengakibatkan alarm tidak sesuai.

Pada gambar 3.15 adalah diagram alir sinkronasi ketika tombol sinkronasi yang terdapat pada tab 2 ditekan.


(49)

32

Tombol sinkronasi

ditekan ? no

Baca data waktu pada system Android

Hari=xx; Jam=xx; Menit=xx; Detik=xx; yes

Kirim ke ESP 8266 Hari=xx; Jam=xx; Menit=xx; Detik=xx; UpdateTime=1; Apakah UpdateTime==1; ? RTC SetTime Hari=xx; Jam=xx; Menit=xx; Detik=xx; UpdateTime=0; yes Selesai no


(50)

BAB IV

HASIL DAN PEMBAHASAN

Suatu program dapat dikatakan bekerja dengan baik apabila telah disertai dengan pembuktian terhadap fungsi kerja dari alatan tersebut. Pada bab ini akan membahas tentang hasil perancangan perangkat keras, perangkat lunak, dan hasil pengujian sistem.

Hasil dari pengujian akan berguna untuk mengetahui sejauh mana keberhasilan perancangan serta kelebihan dan kekurangan sistem yang telah dibuat. Sehingga hasil tersebut dapat digunakan sebagai acuan dalam penyempurnaan kinerja, dan dapat digunakan dalam pengembangan selanjutnya.

4.1

Bentuk Fisik Lampu RGB Alarm

Bentuk lampu memanfaatkan casing lampu led ac 220v 9w yang telah di kosongkan isinya dan dimasukan komponen seperti power supply, module kontroler, dan lampu led rgb sebagai lampu RGB Alarm. Gambar 4.1. menunjukkan bentuk dari lampu RGB.

Gambar 4.1. Bentuk fisik lampu RGB dan aplikasi.

Lampu ini digunakan pada rumah fitting ac 220v, ketika sudah terhubung tegangan ac 220v lampu ini akan menunggu SSID yang tersedia pada jaringan wireless yang bernama “RGB”, SSID ini akan dipancarkan oleh perangkat android yang digunakan

sebagai hotspot dengan network SSID “RGB” dengan keamanan WPA2 PSK dengan password “12345678”, kemudian menjalankan aplikasi bernama “RGB” yang sudah dibuat,


(51)

Gambar 4.2 centang lampu yang akan dikendalikan.

4.2

Penempatan posisi komponen

Komponen yang ada akan dimasukan kedalam rumah lampu yang disusun secara bertingkat agar muat dimasukan kedalam body lampu. Komponen terdiri dari 3 bagian yaitu power supply, kontroler, dan led rgb beserta heatsink, setelah disusun kedalam bodi akan terlihat seperti gambar 4.3.

Gambar 4.3. Lampu RGB Alarm.

Body bekas lampu ini dipakai karena dapat di tempatkan pada fitting lampu ac 220v yang ada pada langit-langit rumah maupun lampu belajar selain itu juga mempermudah


(52)

pengujian alat karena komponen tersusun rapi dan aman. Urutan penempatan komponen seperti gambar 4.4 dimana A adalah body lampu sebagai tempat masuk komponen B yaitu power supply pada bagian bawah, lalu C kontroler lampu, kemudian D led beserta pendingin alumunium pada bagian atas. Setelah disusun akan terlihat bagian atas pada gambar 4.5.

Gambar 4.4 Komponen yang dimasukan kedalam body lampu.

Gambar 4.5 Komponen disusun bertingkat.

Tabel 4.1 Keterangan part lampu.

Huruf Keterangan

A Body lampu

B Power supply

C Controller

D LED RGB dan pendingin

Pada bagian casing lampu didapat dari lampu led 9w putih yang ada dipasaran, untuk power supply diambil dari charger hp 5v 2a, lalu pada bagian utama yaitu kontroler dijadikan


(53)

ESP 8266 merupakan otak utama dari kerja alat. Pengujian sistem yang pertama adalah dengan membandingkan kesesuaian penyalaan warna lampu dengan warna yang dikirimkan oleh android. Sample pengujian diambil sebanyak 5 warna yaitu red, green, blue, yellow, cyan, magenta, white. Pada bagian decimal code angka 255 merupakan nilai penyalaan led maksimum dan nilai 0 adalah led off.

Hasil perngujian sistem perintah penyalaan warna lampu akan di tunjukan pada Tabel 4.2. Pengujian dilakukan pada tab kontrol manual dengan menggeser 3 buah slider pada gambar 4.6 , warna dapat diatur sesuai desimal code RGB yang diinginkan.

Gambar 4.6 3 Slider Manual

Tabel 4.2 Pengujian warna.

Percobaan Warna

(Android)

Decimal Code R,G,B

Warna nyala lampu (foto cahaya lampu)

1 RED 255,0,0

2 GREEN 0,255,0

3 BLUE 0,0,255


(54)

Lanjutan Tabel 4.2 Pengujian Alarm

Percobaan Warna

(Android)

Decimal Code R,G,B

Warna nyala lampu (foto cahaya lampu)

5

MAGENTA 255,0,255

6

WHITE 255,255,255

Hasil percobaan sistem bisa terlihat dari tabel 4.2. Setelah membandingkan warna cahaya led dengan warna yang dikirimkan oleh perangkat android dapat terlihat bahwa warna cahaya led sudah sesuai dengan warna yang dikirimkan oleh perangkat android sebanyak 5 warna.

4.4

Pengujian Sub Sistem

4.4.1

Pengujian pada Tab Kontrol Manual

Pada bagian Tab ini terdapat fasilitas untuk menyalakan/mematikan lampu, mengubah warna lampu, dan membaca ip yang terhubung. Tampilan tab kontrol manual pada gambar 4.7.


(55)

4.4.2

Pengujian sistem alarm dan sinkronasi waktu

Pengujian Alarm dilakukan untuk membuktikan bahwa alarm RTC dapat bekerja dengan baik pada ESP8266. Pengaturan alarm dilakukan pada Tab Setting Alarm di Android seperti gambar 4.8. Agar sistem alarm dapat berjalan pada lampu, maka pemwaktuan lampu harus dicocokan dengan waktu pada perangkat android dengan cara menekan tombol

“Sinkronkan” pada aplikasi maka android akan mengirimkan data hari, jam, menit, detik, ke

esp 8266 sebagai setTime untuk RTC. Saat tombo “Sinkronkan” ditekan maka aplikasi akan mengambil waktu pada perangkat android, code pengambilan waktu seperti gambar 4.8.

Gambar 4.8 Sub Program Pengambilan Waktu pada Android Studio.

Kemudian ketika waktu sudah diperoleh maka selanjutnya adalah melakukan pengiriman data hari, jam, menit, detik ke esp 8266 dengan code pada gambar 4.9.


(56)

Gambar 4.9 Sub Program Pengiriman Waktu lampu 1 pada Android Studio.

Gambar 4.10 Sub Program Pengiriman Waktu pada Android Studio.

Tahap pengiriman kalibrasi waktu pada kedua lampu dikirimkan bergantian, ketika android sudah mengambil data waktu kemudian akan melakukan pengiriman kalibrasi waktu dimulai dari lampu 1 setelah selesai mengirim baru akan mengirim data waktu ke lampu 2 seperti pada sub program gambar 4.9 dan 4.10, sehingga terdapat perbedaan waktu antara lampu 1 dengan lampu 2 sekitar 0.5 detik.

Ketika data waktu dikirimkan ke esp 8266 maka program esp 8266 akan membaca data masuk seperti gambar 4.10


(57)

Gambar 4.10 Sub Program Pembacaan data sinkronasi pada Arduino IDE.

Pengiriman data jam pada lampu 1 adalah “192.168.43.165/jam=12”, pada gambar

4.10 “req.indexOf” menyatakan IP yang masuk kemudian ketika menerima string “/jam” maka dilanjutkan pembacaan string setelah “=”, arti “+1” adalah mulai membaca atau mengambil data dari baris pertama kemudian selanjutnya, hasilnya adalah “12” (jam 12), kemudian string “12” harus dikonversi menjadi int agar dapat dibaca oleh RTC dengan

code konversi “Jam.toInt” setelah itu barulah “rtc.ajust” (pengaturan waktu RTC).

Pada pengiriman data alarm akan diambil sample pada hari jumat, data yang akan dikirimkan pada satu perintah alarm adalah jam dan menit, code pengiriman pada android dapat dilihat pada gambar 4.11, pengiriman data ke dua lampu akan dikirimkan satu persatu pada masing-masing IP “IPlampu1 dan IPlampu2” apa bila kedua lampu di check atau dipilih pada aplikasi.


(58)

Gambar 4.11 Sub Program Tab Setting Alarm pada Android Studio.

Kode penerimaan alarm berupa jam dan menit pada Android IDE dapat dilihat pada gambar 4.12, pada code ini data alarm akan disimpan pada EEPROM agar ketika lampu tidak kehilangan data alarm ketika power dimatikan.

Gambar 4.12 Sub Program Tab Setting Alarm pada Android Studio.

Pada gambar 4.12 adalah bagian code untuk satu perintah waktu alarm pada hari jumat, terdapat 5 perintah pada satu hari, value jam yang akan disimpan adalah pada “Jumatjam1”, dan data value jam yang akan disimpan adalah “JUMATmenit1” value


(59)

Setelah mengatur jam dan waktu maka selanjutnya adalah mengatur warna dengan menekan image touch kotak kecil yang berada dikanan pengaturan jam seperti gambar 4.14, jika ditekan maka akan muncul window pilih warna seperti gambar 4.13

Gambar 4.13 Jendela Pilih Warna Alarm

Image pick colour yang berbentuk lingkaran pada gambar 4.13 adalah sebuah file png yang dapat disentuh untuk memilih warna alarm yang diinginkan, code yang

digunakan untuk mengambil value RGB yang disentuh dari sebuah file .png adalah seperti gambar 4.14.


(60)

Pick colour code pada gambar 4.15 bekerja dengan mendeteksi koordinat x dan y dari sentuhan tangan dan mengambil warna berdasarkan koordinat yang disentuh dengan value yang terdiri dari tiga buah warna yaitu merah, hijau, biru. Setelah memilih warna lalu tekan tombol “kembali”.

Gambar 4.15 Tab Setting Alarm.

Tahap pengujian dapat dilihat pada table 4.15, pengujian dilakukan pada hari senin-minggu, pada bagian setting waktu terdapat 5 perintah waktu alarm pada satu hari yang dimulai dari jam 7:00-7:04, 1 perintah awal adalah jam 7:00 dengan penyalaan warna red artinya lampu akan menyala merah pada jam 7:00, dan setelah perintah 1 sudah dilalui oleh lampu dengan penyalaan warna dan waktu yang tepat, dapat dinyatakan sistem alarm bekerja dengan baik, sambil menunggu menit berikutnya 7:01 lampu akan terus menyala merah dan akan berganti warna hijau pada jam 7:01, begitu seterusnya hingga perintah ke 5 jam 7:04 warna hitam atau lampu mati.

Sistem sinkronasi waktu bekerja dengan baik dan sistem ini sangat berguna pada sistem alarm sebab sinkronasi waktu menjadi acuan waktu untuk disesuaikan pada RTC.


(61)

7:02 BLUE 7:02 BLUE

7:03 YELLOW 7:03 YELLOW

7:04 OFF 7:04 OFF

Selasa 7:00 RED 7:00 RED

7:01 GREEN 7:01 GREEN

7:02 BLUE 7:02 BLUE

7:03 YELLOW 7:03 YELLOW

7:04 OFF 7:04 OFF

Rabu 7:00 RED 7:00 RED

7:01 GREEN 7:01 GREEN

7:02 BLUE 7:02 BLUE

7:03 YELLOW 7:03 YELLOW

7:04 OFF 7:04 OFF

Kamis 7:00 RED 7:00 RED

7:01 GREEN 7:01 GREEN

7:02 BLUE 7:02 BLUE

7:03 YELLOW 7:03 YELLOW

7:04 OFF 7:04 OFF

Jumat 7:00 RED 7:00 RED

7:01 GREEN 7:01 GREEN

7:02 BLUE 7:02 BLUE

7:03 YELLOW 7:03 YELLOW

7:04 OFF 7:04 OFF

Sabtu 7:00 RED 7:00 RED

7:01 GREEN 7:01 GREEN

7:02 BLUE 7:02 BLUE

7:03 YELLOW 7:03 YELLOW


(62)

Lanjutan Tabel 4.3 Pengujian Alarm.

Hari Setting Waktu Penyalaan warna Waktu nyala Warna nyala

Minggu 7:00 RED 7:00 RED

7:01 GREEN 7:01 GREEN

7:02 BLUE 7:02 BLUE

7:03 YELLOW 7:03 YELLOW

7:04 OFF 7:04 OFF

Pada pengujian system alarm hari senin-minggu dengan perubahan pergantian waktu setiap 1 menit penulis dapat mengetahui bahwa sistem alarm lampu rgb ini dapat bekerja dengan baik, penyalaan lampu sesuai dengan data alarm yang telah di atur baik waktu maupun warna.

Sistem penyimpanan data 5 perintah pada lampu tidak hilang saat lampu diputus tegangannya sebab data akan tersimpan pada eeprom dan akan dibaca ketika power kembali terhubung, dan sistem berjalanya waktu pada RTC bekerja dengan baik.

4.4.3

Pengujian Fading

Fungsi fading terdapat pada tab ketiga yaitu tab fading seperti gambar 4.16 terdapat dua tombol untuk memulai fading dan mengakhiri fading.


(63)

Gambar 4.17 Sub Program Mulai Fading pada Android Studio.

Pada gambar 4.17 adalah looping ketika tombol “mulai fading” ditekan, dan didalam loop tersebut terdapat dua buah pertanyaan if(lampu1kirim==1) dan if(lampu2kirim==1) dimana if tersebut menanyakan yang mana lampu yang akan dikendalikan, pada taskEsp.execute(); merupakan pengiriman data ke IP melalui http, pengiriman data dapat berjalan di background, sehingga dapat mengoprasikan menu lain di aplikasi saat pengiriman sedang berlangsung.


(64)

Pada gambar 4.19 Ketika string “fade” diterima oleh esp 8266 maka pada program esp

8266 akan merubah value eeprom “FADE=0” menjadi “FADE=1”, fade=1 adalah untuk

menjalankan looping fading dan fade=0 untuk menonaktifkan looping fading ketika string

“/stopfade” diterima seperti gambar 4.20, program looping fading keseluruhan dapat dilihat

pada gambar 4.21.

Gambar 4.19 Sub Program Mulai Fading pada Arduino IDE.

Gambar 4.20 Sub Program Stop Fading pada Arduino IDE.


(65)

Percobaan dilakukan sebanyak 3 kali dengan memperhatikan urutan warna fading dan juga kesetabilan terang redupnya apakah sesuai dengan program yang dibuat. Urutan penyalaan fading adalah merah lalu hijau kemudian biru.

Tabel 4.4. Percobaan fading.

No Percobaan Keterangan

1 Percobaan 1 (Red, Green, Blue) Berhasil

2 Percobaan 2 (Red, Green, Blue) Berhasil

3 Percobaan 3 (Red, Green, Blue) Berhasil

Setelah dilakukan ujicoba dapat diketahui bahwa program berjalan sesuai yang diinginkan maka pada bagian pengujian fading ini tingkat keberhasilan yang dicapai adalah 100%.

4.5

Pengujian jarak jangkauan kontrol.

Pada pengujian ini untuk mengetahui seberapa jauh lampu dapat dikontrol secara nirkabel melalui wifi pada handphone, dan akan diketahui berapa waktu yang diperlukan untuk lampu merespon pada jarak 5-40m, pada jarak 40 lebih kompunikasi sudah mulai terputus.

Tabel 4.5 Pengujian Jarak kontrol.

No Jarak (Meter)

Waktu (Detik)

Rata-

rata No

Jarak (Meter) Waktu (Detik) Rata- rata

0.13

0.36

1 5 0.15 0.14 4 20 0.31 0.34

0.14 0.35

0.22

0.46

2 10 0.25 0.23 5 25 0.51 0.53

0.24 0.62

0.27

0.82

3 15 0.32 0.29 6 30 1.16 2.94


(66)

Lanjutan Tabel 4.5 Pengujian Jarak

No Jarak (Meter)

Waktu (Detik)

Rata- rata

1.35

7 35 1.86 3.1

2.15

2.23

8 40 2.64 3.38

2.17

Pada tabel 4.4 dapat diketahui bahwa jarak pengendalian terjauh yang cukup baik pada 25 m, pengujian dilakukan dengan memperhatikan pergantian pengiriman data yang tampil pada text info seperti pada gambar 4.22 pada aplikasi android, jika pengiriman data baik maka text info status pengiriman bergerak cepat, jika kualitas respon buruk (jarak terlalu jauh) maka text info bergerak lambat , kualitas respon ini sangat bergantung pada kekuatan sinyal server (android) karena sebagai pemancarnya dan juga penghalang ruangan yang ada.


(67)

melihat tegangan masing-masing led. Pengukuran dilakukan sebanyak 7 sample warna yang meliputi 3 warna tunggal seperti red, green, blue, dan 4 warna kombinasi yaitu yellow, cyan, magenta, dan white pada table 4.4. Nilai 255 pada decimal code adalah penyalaan led maksimum, dan nilai 0 adalah penyalaan led minimum (off).

Pengukuran menggunakan multimeter tegangan dc yang dihubungkan langsung dengan output yang menuju led ketika led menyala sehingga dapat diketahui berapa tegangan yang masuk pada setiap led.

Tabel 4.6. Pengukuran Tegangan Led.

Nilai tegangan keluaran setiap led berbeda-beda karena mengikuti insensitas cahaya setiap led yang dibutuhkan, warna putih sebagai nilai acuan kalibrasi warna lampu, jika cahaya putih sudah dapat dihasilkan dengan baik maka untuk kombinasi warna apapun akan dapat dihasilkan sesuai dengan warna kombinasi sesuai yang diinginkan.

Tegangan max 1.42v untuk red, 2.22v untuk green, dan 2.41v untuk blue didapatkan dari hasil kalibrasi warna untuk menyala putih, pengaturan tegangan dipermudah berkat trimpot 10k yang terlihat pada gambar 4.10, trimpot 10k ini menghubungkan output pin esp8266 dengan transistor array uln2003 yang akan menuju led yang merupakan driver penguat led, terdapat 3 buah trimpot 10k untuk masing masing led, trimpot ini dapat

Percobaan Warna

(Android)

Decimal Code (R,G,B)

Tegangan setiap led (V) (R,G,B)

1 RED 255,0,0 1.42v, 0v, 0v

2 GREEN 0,255,0 0v, 2.22v, 0v

3 BLUE 0,0,255 0v, 0v, 2.41v

4 YELLOW 255,255,0 1.41v , 2.17v , 0v

5 CYAN 0,255,255 0v, 2.19v, 2.40v

6 MAGENTA 255,0,255 1.42v, 0v, 2.44v


(68)

menambah atau mengurangi gain yang masuk pada transistor array sehingga output penguatan dapat disesuaikan dengan kebutuhan setiap led.


(69)

51

5.1.

Kesimpulan

Setelah melakukan perancangan, pembuatan, dan pengujian alat lampu RGB Alarm dapat diambil kesimpulan sebagai berikut :

1. Led RGB Alarm dapat menghasilkan warna cahaya yang sesuai dengan warna RGB pada android.

2. Sistem alarm dapat bekerja sesuai perintah yang dikirim.

3. Fading led berjalan dengan baik sesuai dengan program yang dibuat. 4. Jarak pengendalian baik adalah 25m dengan delay kurang dari 1 detik. 5. Jarak maksimum adalah 40m dengan delay rata-rata 3.38.

6. Sistem kalibrasi waktu antara lampu 1 dan lampu 2 selisih 0.5 detik jika kedua lampu dikendalikan.

5.2.

Saran

Berdasarkan hasil implementasi yang diperoleh, untuk pengembangan lebih lanjut terdapat beberapa saran agar alat ini dapat bekerja lebih baik, yaitu :

1. Penambahan program read data alarm pada android dan penghapus data alarm. 2. RTC dilengkapi baterai 3v agar system alarm tetap berjalan ketika power

dimatikan, jadi system alarm sangat bergantung bada kesediaan tegangan baterai 3v sedangkan baterai tersebut semakin lama akan habis sebab tidak dilengkapi system pengisian baterai, jadi akan lebih baik jika dilengkapi dengan system pengisian baterai RTC pada kontroler lampu.


(70)

DAFTAR PUSTAKA

[1] https://www.superbrightleds.com/moreinfo/high-powered/vollong-3w-rgb-high-power-led/899/ diakses tanggal 11 Maret 2016

[2] http://download.arduino.org/products/UNOWIFI/0A-ESP8266-Datasheet-EN-v4.3.pdf diakses tanggal 11 Maret 2016

[3] http://datasheets.maximintegrated.com/en/ds/DS1307.pdf diakses tanggal 11 Maret 2016

[4] http://www.ti.com/lit/ds/symlink/uln2003a.pdf diakses tanggal 11 Maret 2016 [5] https://www.arduino.cc/en/Tutorial/PWM diakses tanggal 11 Maret 2016

[6] http://www.rapidtables.com/web/color/RGB_Color.htm diakses tanggal 13 Maret 2016

[7] https://id.wikipedia.org/wiki/Wi-Fi diakses tanggal 13 Maret 2016

[8] https://www.utopicomputers.com/pengertian-fungsi-serta-jenis-jaringan-komputer/ diakses tanggal 13 Maret 2016

[9] https://en.wikipedia.org/wiki/Android_application_package diakses tanggal 14 Maret 2016


(71)

L1


(72)

PROGRAM ESP-8266 DENGAN SOFTWARE ARDUINO IDE

#include <ESP8266WiFi.h> //int hardware esp8266 wifi module

#include <Wire.h> //int rtc i2c

#include <RTClib.h> //int hardware RTC RTC_DS1307 rtc;

int disable = 0;

#include <EEPROM.h> int onoff = 0;

int R = 1; //eeprom address 1 int G = 2; //eeprom address 2 int B = 3; //eeprom address 3 byte ONOFF;

byte MERAH; byte HIJAU; byte BIRU;

int fade = 179; //eeprom addres byte FADE;

int Rstate = 0; int Gstate = 0; int Bstate = 0; int cntstatefade = 0; int brightness = 0; int fadeAmount = 5; int tahun;

int bulan; int hari; int jam; int menit;


(73)

unsigned int intmenit; unsigned int intdetik;

int seninjam1 = 4; //eeprom addres int seninjam2 = 5;

int seninjam3 = 6; int seninjam4 = 7; int seninjam5 = 8; int seninmenit1 = 9; int seninmenit2 = 10; int seninmenit3 = 11; int seninmenit4 = 12; int seninmenit5 = 13; int selasajam1 = 14; int selasajam2 = 15; int selasajam3 = 16; int selasajam4 = 17; int selasajam5 = 18; int selasamenit1 = 19; int selasamenit2 = 20; int selasamenit3 = 21; int selasamenit4 = 22; int selasamenit5 = 23; int rabujam1 = 24;


(74)

int rabujam2 = 25; int rabujam3 = 26; int rabujam4 = 27; int rabujam5 = 28; int rabumenit1 = 29; int rabumenit2 = 30; int rabumenit3 = 31; int rabumenit4 = 32; int rabumenit5 = 33; int kamisjam1 = 34; int kamisjam2 = 35; int kamisjam3 = 36; int kamisjam4 = 37; int kamisjam5 = 38; int kamismenit1 = 39; int kamismenit2 = 40; int kamismenit3 = 41; int kamismenit4 = 42; int kamismenit5 = 43; int jumatjam1 = 44; int jumatjam2 = 45; int jumatjam3 = 46; int jumatjam4 = 47; int jumatjam5 = 48; int jumatmenit1 = 49; int jumatmenit2 = 50; int jumatmenit3 = 51; int jumatmenit4 = 52;


(75)

int sabtujam5 = 58; int sabtumenit1 = 69; int sabtumenit2 = 60; int sabtumenit3 = 61; int sabtumenit4 = 62; int sabtumenit5 = 63; int minggujam1 = 64; int minggujam2 = 65; int minggujam3 = 66; int minggujam4 = 67; int minggujam5 = 68; int minggumenit1 = 69; int minggumenit2 = 70; int minggumenit3 = 71; int minggumenit4 = 72; int minggumenit5 = 73; byte SENINJAM1; byte SENINJAM2; byte SENINJAM3; byte SENINJAM4; byte SENINJAM5; byte SENINMENIT1; byte SENINMENIT2;


(76)

byte SENINMENIT3; byte SENINMENIT4; byte SENINMENIT5; byte SELASAJAM1; byte SELASAJAM2; byte SELASAJAM3; byte SELASAJAM4; byte SELASAJAM5; byte SELASAMENIT1; byte SELASAMENIT2; byte SELASAMENIT3; byte SELASAMENIT4; byte SELASAMENIT5; byte RABUJAM1; byte RABUJAM2; byte RABUJAM3; byte RABUJAM4; byte RABUJAM5; byte RABUMENIT1; byte RABUMENIT2; byte RABUMENIT3; byte RABUMENIT4; byte RABUMENIT5; byte KAMISJAM1; byte KAMISJAM2; byte KAMISJAM3; byte KAMISJAM4; byte KAMISJAM5;


(77)

byte JUMATJAM1; byte JUMATJAM2; byte JUMATJAM3; byte JUMATJAM4; byte JUMATJAM5; byte JUMATMENIT1; byte JUMATMENIT2; byte JUMATMENIT3; byte JUMATMENIT4; byte JUMATMENIT5; byte SABTUJAM1; byte SABTUJAM2; byte SABTUJAM3; byte SABTUJAM4; byte SABTUJAM5; byte SABTUMENIT1; byte SABTUMENIT2; byte SABTUMENIT3; byte SABTUMENIT4; byte SABTUMENIT5; byte MINGGUJAM1; byte MINGGUJAM2; byte MINGGUJAM3;


(78)

byte MINGGUJAM4; byte MINGGUJAM5; byte MINGGUMENIT1; byte MINGGUMENIT2; byte MINGGUMENIT3; byte MINGGUMENIT4; byte MINGGUMENIT5; unsigned int SENINjam1; unsigned int SENINjam2; unsigned int SENINjam3; unsigned int SENINjam4; unsigned int SENINjam5; unsigned int SENINmenit1; unsigned int SENINmenit2; unsigned int SENINmenit3; unsigned int SENINmenit4; unsigned int SENINmenit5; unsigned int SELASAjam1; unsigned int SELASAjam2; unsigned int SELASAjam3; unsigned int SELASAjam4; unsigned int SELASAjam5; unsigned int SELASAmenit1; unsigned int SELASAmenit2; unsigned int SELASAmenit3; unsigned int SELASAmenit4; unsigned int SELASAmenit5; unsigned int RABUjam1;


(79)

unsigned int RABUmenit2; unsigned int RABUmenit3; unsigned int RABUmenit4; unsigned int RABUmenit5; unsigned int KAMISjam1; unsigned int KAMISjam2; unsigned int KAMISjam3; unsigned int KAMISjam4; unsigned int KAMISjam5; unsigned int KAMISmenit1; unsigned int KAMISmenit2; unsigned int KAMISmenit3; unsigned int KAMISmenit4; unsigned int KAMISmenit5; unsigned int JUMATjam1; unsigned int JUMATjam2; unsigned int JUMATjam3; unsigned int JUMATjam4; unsigned int JUMATjam5; unsigned int JUMATmenit1; unsigned int JUMATmenit2; unsigned int JUMATmenit3; unsigned int JUMATmenit4;


(80)

unsigned int JUMATmenit5; unsigned int SABTUjam1; unsigned int SABTUjam2; unsigned int SABTUjam3; unsigned int SABTUjam4; unsigned int SABTUjam5; unsigned int SABTUmenit1; unsigned int SABTUmenit2; unsigned int SABTUmenit3; unsigned int SABTUmenit4; unsigned int SABTUmenit5; unsigned int MINGGUjam1; unsigned int MINGGUjam2; unsigned int MINGGUjam3; unsigned int MINGGUjam4; unsigned int MINGGUjam5; unsigned int MINGGUmenit1; unsigned int MINGGUmenit2; unsigned int MINGGUmenit3; unsigned int MINGGUmenit4; unsigned int MINGGUmenit5; int seninr1 = 74;

int sening1 = 75; int seninb1 = 76; int seninr2 = 77; int sening2 = 78; int seninb2 = 79; int seninr3 = 80;


(81)

int seninr5 = 86; int sening5 = 87; int seninb5 = 88; int selasar1 = 89; int selasag1 = 90; int selasab1 = 91; int selasar2 = 92; int selasag2 = 93; int selasab2 = 94; int selasar3 = 95; int selasag3 = 96; int selasab3 = 97; int selasar4 = 98; int selasag4 = 99; int selasab4 = 100; int selasar5 = 101; int selasag5 = 102; int selasab5 = 103; int rabur1 = 104; int rabug1 = 105; int rabub1 = 106; int rabur2 = 107; int rabug2 = 108;


(82)

int rabub2 = 109; int rabur3 = 110; int rabug3 = 111; int rabub3 = 112; int rabur4 = 113; int rabug4 = 114; int rabub4 = 115; int rabur5 = 116; int rabug5 = 117; int rabub5 = 118; int kamisr1 = 119; int kamisg1 = 120; int kamisb1 = 121; int kamisr2 = 122; int kamisg2 = 123; int kamisb2 = 124; int kamisr3 = 125; int kamisg3 = 126; int kamisb3 = 127; int kamisr4 = 128; int kamisg4 = 129; int kamisb4 = 130; int kamisr5 = 131; int kamisg5 = 132; int kamisb5 = 133; int jumatr1 = 134; int jumatg1 = 135; int jumatb1 = 136;


(83)

int jumatb3 = 142; int jumatr4 = 143; int jumatg4 = 144; int jumatb4 = 145; int jumatr5 = 146; int jumatg5 = 147; int jumatb5 = 148; int sabtur1 = 149; int sabtug1 = 150; int sabtub1 = 151; int sabtur2 = 152; int sabtug2 = 153; int sabtub2 = 154; int sabtur3 = 155; int sabtug3 = 156; int sabtub3 = 157; int sabtur4 = 158; int sabtug4 = 159; int sabtub4 = 160; int sabtur5 = 161; int sabtug5 = 162; int sabtub5 = 163; int minggur1 = 164;


(84)

int minggug1 = 165; int minggub1 = 166; int minggur2 = 167; int minggug2 = 168; int minggub2 = 169; int minggur3 = 170; int minggug3 = 171; int minggub3 = 172; int minggur4 = 173; int minggug4 = 174; int minggub4 = 175; int minggur5 = 176; int minggug5 = 177; int minggub5 = 178;

byte SENINR1; byte SENING1; byte SENINB1; byte SENINR2; byte SENING2; byte SENINB2; byte SENINR3; byte SENING3; byte SENINB3; byte SENINR4; byte SENING4; byte SENINB4; byte SENINR5;


(85)

byte SELASAR2; byte SELASAG2; byte SELASAB2; byte SELASAR3; byte SELASAG3; byte SELASAB3; byte SELASAR4; byte SELASAG4; byte SELASAB4; byte SELASAR5; byte SELASAG5; byte SELASAB5; byte RABUR1; byte RABUG1; byte RABUB1; byte RABUR2; byte RABUG2; byte RABUB2; byte RABUR3; byte RABUG3; byte RABUB3; byte RABUR4; byte RABUG4;


(86)

byte RABUB4; byte RABUR5; byte RABUG5; byte RABUB5; byte KAMISR1; byte KAMISG1; byte KAMISB1; byte KAMISR2; byte KAMISG2; byte KAMISB2; byte KAMISR3; byte KAMISG3; byte KAMISB3; byte KAMISR4; byte KAMISG4; byte KAMISB4; byte KAMISR5; byte KAMISG5; byte KAMISB5; byte JUMATR1; byte JUMATG1; byte JUMATB1; byte JUMATR2; byte JUMATG2; byte JUMATB2; byte JUMATR3; byte JUMATG3; byte JUMATB3;


(87)

byte JUMATB5; byte SABTUR1; byte SABTUG1; byte SABTUB1; byte SABTUR2; byte SABTUG2; byte SABTUB2; byte SABTUR3; byte SABTUG3; byte SABTUB3; byte SABTUR4; byte SABTUG4; byte SABTUB4; byte SABTUR5; byte SABTUG5; byte SABTUB5; byte MINGGUR1; byte MINGGUG1; byte MINGGUB1; byte MINGGUR2; byte MINGGUG2; byte MINGGUB2; byte MINGGUR3;


(88)

byte MINGGUG3; byte MINGGUB3; byte MINGGUR4; byte MINGGUG4; byte MINGGUB4; byte MINGGUR5; byte MINGGUG5; byte MINGGUB5; unsigned int SENINr1; unsigned int SENINg1; unsigned int SENINb1; unsigned int SENINr2; unsigned int SENINg2; unsigned int SENINb2; unsigned int SENINr3; unsigned int SENINg3; unsigned int SENINb3; unsigned int SENINr4; unsigned int SENINg4; unsigned int SENINb4; unsigned int SENINr5; unsigned int SENINg5; unsigned int SENINb5; unsigned int SELASAr1; unsigned int SELASAg1; unsigned int SELASAb1; unsigned int SELASAr2; unsigned int SELASAg2;


(89)

unsigned int SELASAg4; unsigned int SELASAb4; unsigned int SELASAr5; unsigned int SELASAg5; unsigned int SELASAb5; unsigned int RABUr1; unsigned int RABUg1; unsigned int RABUb1; unsigned int RABUr2; unsigned int RABUg2; unsigned int RABUb2; unsigned int RABUr3; unsigned int RABUg3; unsigned int RABUb3; unsigned int RABUr4; unsigned int RABUg4; unsigned int RABUb4; unsigned int RABUr5; unsigned int RABUg5; unsigned int RABUb5; unsigned int KAMISr1; unsigned int KAMISg1; unsigned int KAMISb1;


(90)

unsigned int KAMISr2; unsigned int KAMISg2; unsigned int KAMISb2; unsigned int KAMISr3; unsigned int KAMISg3; unsigned int KAMISb3; unsigned int KAMISr4; unsigned int KAMISg4; unsigned int KAMISb4; unsigned int KAMISr5; unsigned int KAMISg5; unsigned int KAMISb5; unsigned int JUMATr1; unsigned int JUMATg1; unsigned int JUMATb1; unsigned int JUMATr2; unsigned int JUMATg2; unsigned int JUMATb2; unsigned int JUMATr3; unsigned int JUMATg3; unsigned int JUMATb3; unsigned int JUMATr4; unsigned int JUMATg4; unsigned int JUMATb4; unsigned int JUMATr5; unsigned int JUMATg5; unsigned int JUMATb5; unsigned int SABTUr1;


(91)

unsigned int SABTUr3; unsigned int SABTUg3; unsigned int SABTUb3; unsigned int SABTUr4; unsigned int SABTUg4; unsigned int SABTUb4; unsigned int SABTUr5; unsigned int SABTUg5; unsigned int SABTUb5; unsigned int MINGGUr1; unsigned int MINGGUg1; unsigned int MINGGUb1; unsigned int MINGGUr2; unsigned int MINGGUg2; unsigned int MINGGUb2; unsigned int MINGGUr3; unsigned int MINGGUg3; unsigned int MINGGUb3; unsigned int MINGGUr4; unsigned int MINGGUg4; unsigned int MINGGUb4; unsigned int MINGGUr5; unsigned int MINGGUg5;


(92)

unsigned int MINGGUb5;

const char* ssid = "RGB"; //ssid server/ap android const char* password = "12345678"; //password

IPAddress ip(192, 168, 43, 182); //ip lampu IPAddress gateway(192, 168, 1, 1);

IPAddress subnet(255, 255, 255, 0); unsigned int rColor;

unsigned int gColor; unsigned int bColor;

WiFiServer server(80); //port 80 void handleNotFound() {

}

void setup() { //init hardware delay(1000);

Serial.begin(115200);

Wire.begin(); // Initialisiere I2C RTC rtc.begin();

pinMode(13, OUTPUT); //led red pinMode(12, OUTPUT); //led green pinMode(14, OUTPUT); //led blue WiFi.begin(ssid, password);

WiFi.config(ip, gateway, subnet); server.begin();

EEPROM.begin(512);

ONOFF = EEPROM.read(onoff); //baca state tombol on/off if (ONOFF == 1) { //nyala


(93)

}

//baca eeprom waktu alarm saat power on SENINJAM1 = EEPROM.read(seninjam1); SENINMENIT1 = EEPROM.read(seninmenit1); SENINJAM2 = EEPROM.read(seninjam2); SENINMENIT2 = EEPROM.read(seninmenit2); SENINJAM3 = EEPROM.read(seninjam3); SENINMENIT3 = EEPROM.read(seninmenit3); SENINJAM4 = EEPROM.read(seninjam4); SENINMENIT4 = EEPROM.read(seninmenit4); SENINJAM5 = EEPROM.read(seninjam5); SENINMENIT5 = EEPROM.read(seninmenit5); SELASAJAM1 = EEPROM.read(selasajam1); SELASAMENIT1 = EEPROM.read(selasamenit1); SELASAJAM2 = EEPROM.read(selasajam2); SELASAMENIT2 = EEPROM.read(selasamenit2); SELASAJAM3 = EEPROM.read(selasajam3); SELASAMENIT3 = EEPROM.read(selasamenit3); SELASAJAM4 = EEPROM.read(selasajam4); SELASAMENIT4 = EEPROM.read(selasamenit4); SELASAJAM5 = EEPROM.read(selasajam5); SELASAMENIT5 = EEPROM.read(selasamenit5); RABUJAM1 = EEPROM.read(rabujam1);


(1)

Daftar perintah HTTP

Int Address

On HTTPS://192.168.43.165/on

Off HTTPS://192.168.43.165/off RED HTTPS://192.168.43.165/R=255 GREEN HTTPS://192.168.43.165/G=255 BLUE HTTPS://192.168.43.165/B=255 SeninJam1 HTTPS://192.168.43.165/seninjam1=7 SeninJam2 HTTPS://192.168.43.165/seninjam2=7 SeninJam3 HTTPS://192.168.43.165/seninjam3=7 SeninJam4 HTTPS://192.168.43.165/seninjam4=7 SeninJam5 HTTPS://192.168.43.165/seninjam5=7 SeninMenit1 HTTPS://192.168.43.165/seninmenit1=7 SeninMenit2 HTTPS://192.168.43.165/seninmenit2=7 SeninMenit3 HTTPS://192.168.43.165/seninmenit3=7 SeninMenit4 HTTPS://192.168.43.165/seninmenit4=7 SeninMenit5 HTTPS://192.168.43.165/seninmenit5=7 SelasaJam1 HTTPS://192.168.43.165/selasajam1=7 SelasaJam2 HTTPS://192.168.43.165/selasajam2=7 SelasaJam3 HTTPS://192.168.43.165/selasajam3=7 SelasaJam4 HTTPS://192.168.43.165/selasajam4=7 SelasaJam5 HTTPS://192.168.43.165/selasajam5=7 SelasaMenit1 HTTPS://192.168.43.165/selasamenit1=7 SelasaMenit2 HTTPS://192.168.43.165/selasamenit2=7 SelasaMenit3 HTTPS://192.168.43.165/selasamenit3=7 SelasaMenit4 HTTPS://192.168.43.165/selasamenit4=7 SelasaMenit5 HTTPS://192.168.43.165/selasamenit5=7 RabuJam1 HTTPS://192.168.43.165/rabujam1=7 RabuJam2 HTTPS://192.168.43.165/rabujam2=7 RabuJam3 HTTPS://192.168.43.165/rabujam3=7 RabuJam4 HTTPS://192.168.43.165/rabujam4=7 RabuJam5 HTTPS://192.168.43.165/rabujam5=7 RabuMenit1 HTTPS://192.168.43.165/rabumenit1=7 RabuMenit2 HTTPS://192.168.43.165/rabumenit2=7 RabuMenit3 HTTPS://192.168.43.165/rabumenit3=7 RabuMenit4 HTTPS://192.168.43.165/rabumenit4=7 RabuMenit5 HTTPS://192.168.43.165/rabumenit5=7 KamisJam1 HTTPS://192.168.43.165/kamisjam1=7 KamisJam2 HTTPS://192.168.43.165/kamisjam2=7 KamisJam3 HTTPS://192.168.43.165/kamisjam3=7 KamisJam4 HTTPS://192.168.43.165/kamisjam4=7 KamisJam5 HTTPS://192.168.43.165/kamisjam5=7 KamisMenit1 HTTPS://192.168.43.165/kamismenit1=7


(2)

Int2 Address

KamisMenit2 HTTPS://192.168.43.165/kamismenit2=7 KamisMenit3 HTTPS://192.168.43.165/kamismenit3=7 KamisMenit4 HTTPS://192.168.43.165/kamismenit4=7 KamisMenit5 HTTPS://192.168.43.165/kamismenit5=7 JumatJam1 HTTPS://192.168.43.165/jumatjam1=7 JumatJam2 HTTPS://192.168.43.165/jumatjam2=7 JumatJam3 HTTPS://192.168.43.165/jumatjam3=7 JumatJam4 HTTPS://192.168.43.165/jumatjam4=7 JumatJam5 HTTPS://192.168.43.165/jumatjam5=7 JumatMenit1 HTTPS://192.168.43.165/jumatmenit1=7 JumatMenit2 HTTPS://192.168.43.165/jumatmenit2=7 JumatMenit3 HTTPS://192.168.43.165/jumatmenit3=7 JumatMenit4 HTTPS://192.168.43.165/jumatmenit4=7 JumatMenit5 HTTPS://192.168.43.165/jumatmenit5=7 SabtuJam1 HTTPS://192.168.43.165/sabtujam1=7 SabtuJam2 HTTPS://192.168.43.165/sabtujam2=7 SabtuJam3 HTTPS://192.168.43.165/sabtujam3=7 SabtuJam4 HTTPS://192.168.43.165/sabtujam4=7 SabtuJam5 HTTPS://192.168.43.165/sabtujam5=7 SabtuMenit1 HTTPS://192.168.43.165/sabtumenit1=7 SabtuMenit2 HTTPS://192.168.43.165/sabtumenit2=7 SabtuMenit3 HTTPS://192.168.43.165/sabtumenit3=7 SabtuMenit4 HTTPS://192.168.43.165/sabtumenit4=7 SabtuMenit5 HTTPS://192.168.43.165/sabtumenit5=7 MingguJam1 HTTPS://192.168.43.165/minggujam1=7 MingguJam2 HTTPS://192.168.43.165/minggujam2=7 MingguJam3 HTTPS://192.168.43.165/minggujam3=7 MingguJam4 HTTPS://192.168.43.165/minggujam4=7 MingguJam5 HTTPS://192.168.43.165/minggujam5=7 MingguMenit1 HTTPS://192.168.43.165/minggumenit1=7 MingguMenit2 HTTPS://192.168.43.165/minggumenit2=7 MingguMenit3 HTTPS://192.168.43.165/minggumenit3=7 MingguMenit4 HTTPS://192.168.43.165/minggumenit4=7 MingguMenit5 HTTPS://192.168.43.165/minggumenit5=7 SeninR1 HTTPS://192.168.43.165/seninR1=7 SeninG1 HTTPS://192.168.43.165/seninG1=7 SeninB1 HTTPS://192.168.43.165/seninB1=7 SeninR2 HTTPS://192.168.43.165/seninR2=7 SeninG2 HTTPS://192.168.43.165/seninG2=7 SeninB2 HTTPS://192.168.43.165/seninB2=7 SeninR3 HTTPS://192.168.43.165/seninR3=7


(3)

Column1 Column2

Int Address

SeninG3 HTTPS://192.168.43.165/seninG3=7 SeninB3 HTTPS://192.168.43.165/seninB3=7 SeninR4 HTTPS://192.168.43.165/seninR4=7 SeninG4 HTTPS://192.168.43.165/seninG4=7 SeninB4 HTTPS://192.168.43.165/seninB4=7 SeninR5 HTTPS://192.168.43.165/seninR5=7 SeninG5 HTTPS://192.168.43.165/seninG5=7 SeninB5 HTTPS://192.168.43.165/seninB5=7 SelasaR1 HTTPS://192.168.43.165/selasaR1=7 SelasaG1 HTTPS://192.168.43.165/selasaG1=7 SelasaB1 HTTPS://192.168.43.165/selasaB1=7 SelasaR2 HTTPS://192.168.43.165/selasaR2=7 SelasaG2 HTTPS://192.168.43.165/selasaG2=7 SelasaB2 HTTPS://192.168.43.165/selasaB2=7 SelasaR3 HTTPS://192.168.43.165/selasaR3=7 SelasaG3 HTTPS://192.168.43.165/selasaG3=7 SelasaB3 HTTPS://192.168.43.165/selasaB3=7 SelasaR4 HTTPS://192.168.43.165/selasaR4=7 SelasaG4 HTTPS://192.168.43.165/selasaG4=7 SelasaB4 HTTPS://192.168.43.165/selasaB4=7 SelasaR5 HTTPS://192.168.43.165/selasaR5=7 SelasaG5 HTTPS://192.168.43.165/selasaG5=7 SelasaB5 HTTPS://192.168.43.165/selasaB5=7 RabuR1 HTTPS://192.168.43.165/rabuR1=7 RabuG1 HTTPS://192.168.43.165/rabuG1=7 RabuB1 HTTPS://192.168.43.165/rabuB1=7 RabuR2 HTTPS://192.168.43.165/rabuR2=7 RabuG2 HTTPS://192.168.43.165/rabuG2=7 RabuB2 HTTPS://192.168.43.165/rabuB2=7 RabuR3 HTTPS://192.168.43.165/rabuR3=7 RabuG3 HTTPS://192.168.43.165/rabuG3=7 RabuB3 HTTPS://192.168.43.165/rabuB3=7 RabuR4 HTTPS://192.168.43.165/rabuR4=7 RabuG4 HTTPS://192.168.43.165/rabuG4=7 RabuB4 HTTPS://192.168.43.165/rabuB4=7 RabuR5 HTTPS://192.168.43.165/rabuR5=7 RabuG5 HTTPS://192.168.43.165/rabuG5=7 RabuB5 HTTPS://192.168.43.165/rabuB5=7 KamisR1 HTTPS://192.168.43.165/kamisR1=7 KamisG1 HTTPS://192.168.43.165/kamisG1=7 KamisB1 HTTPS://192.168.43.165/kamisB1=7


(4)

Int Address

KamisR2 HTTPS://192.168.43.165/kamisR5=7 KamisG2 HTTPS://192.168.43.165/kamisG5=7 KamisB2 HTTPS://192.168.43.165/kamisB5=7 KamisR3 HTTPS://192.168.43.165/kamisR3=7 KamisG3 HTTPS://192.168.43.165/kamisG3=7 KamisB3 HTTPS://192.168.43.165/kamisB3=7 KamisR4 HTTPS://192.168.43.165/kamisR4=7 KamisG4 HTTPS://192.168.43.165/kamisG4=7 KamisB4 HTTPS://192.168.43.165/kamisB4=7 KamisR5 HTTPS://192.168.43.165/kamisR5=7 KamisG5 HTTPS://192.168.43.165/kamisG5=7 KamisB5 HTTPS://192.168.43.165/kamisB5=7 JumatR1 HTTPS://192.168.43.165/jumatR1=7 JumatG1 HTTPS://192.168.43.165/jumatG1=7 JumatB1 HTTPS://192.168.43.165/jumatB1=7 JumatR2 HTTPS://192.168.43.165/jumatR2=7 JumatG2 HTTPS://192.168.43.165/jumatG2=7 JumatB2 HTTPS://192.168.43.165/jumatB2=7 JumatR3 HTTPS://192.168.43.165/jumatR3=7 JumatG3 HTTPS://192.168.43.165/jumatG3=7 JumatB3 HTTPS://192.168.43.165/jumatB3=7 JumatR4 HTTPS://192.168.43.165/jumatR4=7 JumatG4 HTTPS://192.168.43.165/jumatG4=7 JumatB4 HTTPS://192.168.43.165/jumatB4=7 JumatR5 HTTPS://192.168.43.165/jumatR5=7 JumatG5 HTTPS://192.168.43.165/jumatG5=7 JumatB5 HTTPS://192.168.43.165/jumatB5=7

SabtuR1 HTTPS://192.168.43.165/sabtuR1=7

SabtuG1 HTTPS://192.168.43.165/sabtuG1=7

SabtuB1 HTTPS://192.168.43.165/sabtuB1=7

SabtuR2 HTTPS://192.168.43.165/sabtuR2=7

SabtuG2 HTTPS://192.168.43.165/sabtuG2=7

SabtuB2 HTTPS://192.168.43.165/sabtuB2=7

SabtuR3 HTTPS://192.168.43.165/sabtuR3=7

SabtuG3 HTTPS://192.168.43.165/sabtuG3=7

SabtuB3 HTTPS://192.168.43.165/sabtuB3=7

SabtuR4 HTTPS://192.168.43.165/sabtuR4=7

SabtuG4 HTTPS://192.168.43.165/sabtuG4=7

SabtuB4 HTTPS://192.168.43.165/sabtuB4=7

SabtuR5 HTTPS://192.168.43.165/sabtuR5=7


(5)

Int Address

SabtuB5 HTTPS://192.168.43.165/sabtuB5=7

MingguR1 HTTPS://192.168.43.165/mingguR1=7

MingguG1 HTTPS://192.168.43.165/mingguG1=7

MingguB1 HTTPS://192.168.43.165/mingguB1=7

MingguR2 HTTPS://192.168.43.165/mingguR2=7

MingguG2 HTTPS://192.168.43.165/mingguG2=7

MingguB2 HTTPS://192.168.43.165/mingguB2=7

MingguR3 HTTPS://192.168.43.165/mingguR3=7

MingguG3 HTTPS://192.168.43.165/mingguG3=7

MingguB3 HTTPS://192.168.43.165/mingguB3=7

MingguR4 HTTPS://192.168.43.165/mingguR4=7

MingguG4 HTTPS://192.168.43.165/mingguG4=7

MingguB4 HTTPS://192.168.43.165/mingguB4=7

MingguR5 HTTPS://192.168.43.165/mingguR5=7

MingguG5 HTTPS://192.168.43.165/mingguG5=7

MingguB5 HTTPS://192.168.43.165/mingguB5=7

MulaiFade HTTPS://192.168.43.165/fade

StopFade HTTPS://192.168.43.165/stopfade

Tahun HTTPS://192.168.43.165/Tahun=2017

Bulan HTTPS://192.168.43.165/Bulan=10

Hari HTTPS://192.168.43.165/Hari=7

Jam HTTPS://192.168.43.165/Jam=12


(6)