Thursday, December 11, 2014

SMART HOME Kontrol lampu berbasis web

Sudah lama gak nulis, jadi kepengen nulis dan bagi-bagi pengetahuan kepada semua, kali ini mengenai smart home, ya projek tugas besar sistem embedded semester 7 dengan sks yang gede 4sks, jadi ngeri kalo gak jadi hhe. Oh ia, gak lupa kasih tau kalo penulis jurusan "sistem komputer" jadi ya tugasnya pasti ada alat, ada ngoding. Oke baca lanjutannya ya .... 

Smart home, secara sepintas mungkin sistem yang dibangun terlihat sangat kompleks, padahal sebenarnya bisa dibilang sistem yang dibuat ini cukup sederhana dengan memanfaatkan beberapa komponen seperti board controller, laptop dan juga Access point kita sudah dapat membangun rumah pintar sederhana, ditambah dengan pengetahuan web programming, karena sistem yang dibuat berbasis web setidaknya memiliki pengethuan mengenai HTML, CSS, JS, PHP dan Jquery. Oke, jadi yang jadi pertanyaan adalah perangkat-perangkat apa saja yang digunakan untuk membuat sistem seperti ini ? Berikut adalah jawabannya . .

- Maket rumah (dapat dibuat dengan akrilik/triplek)
- 3 buah LED yang telah disolder dalam PCB bolong dan dibuat kabel jumpernya
- Laptop ( Disarankan menggunakan linux)
  •   Debian distros 
  •   Web Server Installed (Apache2)
  •   PHP 5 Installed
- Arduino UNO - Board Controller
  •  Full package Board + USB-Serial cable
  •  Arduino IDE (IDE Compiler nya arduino jg harus terinstal)
- Access Point atau Wireless Router
  • Merk apapun bisa digunakan, dalam percobaan menggunakan LINKSYS  WRTG54G
  • Atau bisa juga menggunakan hostapd (ap-hotspot) di linux yang bisa jalandi distro berbasis debian seperti ubuntu, mint dan varian lain.
- Ethernet Cable (AP to PC)
- Mobile Phone ( Android, iOS, WindowsPhone)

Berikut merupakan skematik perancangan smart home - kontrol lampu berbasis web




                                                        Gambar(1) skematik perancangan




Maket
Maket dibuat dengan menggunakan kayu, triplek dan juga akrilik, dapat dilihat seperti gambar berikut, LED diletakkan pada bagian atas agar menyerupai bola lampu






                                                         Gambar(2) hasil jadi sistem
 


Langkah kerja
1.  Langkah pertama kita akan "coding" board controller (arduino) terlebih dahulu
karena kita tahu terdapat 3 buah LED yang digunakan maka otomatis kita juga akan menggunakan 3 buah pin, antara lain pin 8, 12, 13 dimana ketiga pin ini merupakan pin digital. Dapat anda lihat sendiri pada datasheet ATMEGA 328.
Dan jangan lupa untuk melakukan grounding untuk setiap led.

2. Kemudian program board tersebut setidaknya dapat dijalankan menggunakan input berupa huruf atau angka. Pada contoh dibawah kita menggunakan input user berupa angka yang dapat dibaca melalui serial monitor nantinya Contoh seperti berikut : 

 int ledPin13 = 13;
 int ledPin12 = 12;
 int ledPin8 = 8;
 int incomingByte;

void setup() {

 

Serial.begin(9600); // initialize serial communication
pinMode(ledPin13, OUTPUT);
pinMode(ledPin12, OUTPUT);
pinMode(ledPin8, OUTPUT);
}

 void loop()
 

 {

   // see if there's incoming serial data:

   if (Serial.available() > 0)

     {

       incomingByte = Serial.read(); // read the oldest byte in the serial buffer

     //Preform the code to switch on or off the leds

      if (incomingByte == '0') {

    digitalWrite(ledPin13, HIGH); //If the serial data is 0 turn red LED on

  }

   if (incomingByte == '1') {

   digitalWrite(ledPin13, LOW); //If the serial data is 1 turn red LED off

 }
     if (incomingByte == '2') {
    digitalWrite(ledPin12, HIGH); //If the serial data is 2 turn green LED on

  }
   if (incomingByte == '3') {

   digitalWrite(ledPin12, LOW); //If the serial data is 3 turn green LED off

 }
   if (incomingByte== '4') //If the serial data is 3 turn green LED on

   {

   digitalWrite(ledPin8, HIGH);
    }
   if(incomingByte=='5') //If the serial data is 3 turn green LED off

     {
     digitalWrite(ledPin8, LOW);
     }
 }
}


<!-end of code block ============================================--> 3. Lanjut, untuk web server kita dapat menggunakan bundling ataupun dapat di instal secara stand-alone install apache2 dan php5, karena kita tidak membutuhkan database maka tidak perlu memasang mysql. Jika telah terpasang buatlah folder/direktori yang akan diakses nantinya 

seperti direktori 'smart' atau dapat disesuaikan dengan selera kalian, selanjutnya kita buat file index.php dan style.css karena kedua file ini saling terkait satu sama lain.

4. Jika telah selesai kita akan masuk ke poin utama bagaimana pemrosesan arduino dapat diakses melalui web server. Bagian inilah yang menjadi bagian penting agar sistem tersebut dapat diakses secara mobile melalui web. Sebelumnya penulis akan menjelaskan bahwa secara hardware Arduino UNO untuk dapat digunakan menjadi web server harus menggunakan suatu extension atau kita bisa sebut sebagai shield tambahan yg harus diembedd pada board UNO sehingga dapat dijadikan web server, Shield ini dikenal dengan nama ethernet shield, mungkin karena keterbatasan rupiah yg ada pada penulis maka penulis mencari cara bagaimana agar arduino terlebih komunikasi serial nya dapat langsung dihubungkan tanpa adanya perangkat tambahan dan hal tersebut ternyata dimudahkan karena terdapat pengembang yang membuat suatu class (kelas) dalam pemrograman berorientasi objek dalam php yang artinya dapat kita gunakan dan akses dari  kelas tersebut, seperti koneksi serial, untuk buka dan tutup komunikasi. Dari itu penulis juga hanya melakukan akses dari kelas tersebut dengan membuat objek baru pada file index sehingga dapat berjalan.

5. Portal web dapat dibuat sesuka hati dan sebagus mungkin, dan dibuat sefisien mungkin, kalo jago css nya pasti 'insha Allah' bisa bagus. Untuk contoh ini yang penulis buat karena dibuat terpisah antara akses melalui 'desktop/laptop' sama akese lewat 'Mobile Phone' seperti ini tampilannya, sederhana hanya ada header, ACTIVE/INACTIVE button, status lampu. Yang pasti dibuat sesederhana mungkin, terlihat akses terdapat pada direktori php, dan untuk mobilenya nanti adalah php2. Untuk kegunaan yang pasti sama, dan pada mobile yang pasti dibuat dengan ukuran mobile.


Gambar(3) Web based interface



Bagikan :   |  Facebook|  Twitter|  Google+

11 comments:

  1. saya tertarik dg projek agan
    saya sdg bljar arduino
    apa boleh saya mnta skrip lengkapnya gan?
    skrip arduino dan webnya

    tlg krim ke restu.d.wibowo@gmail.com

    jka agan tdk berkenan, tlg beri refrensi yg berhubungan dg projek ini

    terima kasih gan :)

    ReplyDelete
  2. Oh boleh kok mas .. :D ... ntar saya kirim yah ... kalo gak malam nanti kemungkinan besok .. Iya gan senang bisa mmbntu

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. terima kasih gan :)
    sdah ane cek. tpi blm msuk
    dtunggu kirimannya :D

    sesempatnya agan saja :)

    ReplyDelete
  5. saya juga sedang mengembangkan ini, tapi bedanya saya mengontol AC.
    tapi lagi kesulitan di program php nya, kalo berkenan saya mau minta program php nya untuk android dan arduinonya.
    karna saya masih belum paham gimana cara php itu berhubungan dengan arduino dan android.

    Meylinmaylin@gmail.com

    makasi kak

    ReplyDelete
  6. mas restu sm maylin bleh di cek di email udah dikirim

    ReplyDelete
  7. Halo min, Mohon bantuannya dengan sangat nih atau yg lain ada yg tau caranya mungkin bagaimana kodingan pada arduino agar bisa terhubung ke web yang saya jadikan sebagai Interface dan pengontrol buka/tutup pintu.
    permasalahannya website saya rancang dan bangun menggunakan XAMPP pada Laptop, jadi kodingan web nya bukan pada Arduinonya. (saya make arduino uno)
    mohon bantuannya ya, saya udah mentok bgt mikirin cara solusinya dan bingung gimana pengkodingan pada arduinonya.
    terima kasih jika berkenan membantu bisa email ke saya
    greyakud@yahoo.com

    ReplyDelete
  8. mas,saya minta source code nya lengkap ya mas,buat referensi TA saya,,
    makasih banyak mas,

    tolong kirim ke bachrularief@gmail.com

    makasih gan

    ReplyDelete
  9. selamat siang mas Ridwan. kebetulan judul untuk tugas akhir saya juga berkaitan ini. namun sekarang sedang untuk pengembangan lain. kira kira apa masnya bersedia untuk membagi code lengkapnya ke email saya ?
    terima kasih kepada mas Ridwan jika berkehendak memberi.
    berikut email saya : gayuh.merry18@gmail.com

    ReplyDelete
  10. mas gayuh :
    Udah saya kirim lewat email mas silahkan dicek sendiri.

    ReplyDelete