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)
- 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
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
- Full package Board + USB-Serial cable
- Arduino IDE (IDE Compiler nya arduino jg harus terinstal)
- 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.
- 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);
}
}
}
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
saya tertarik dg projek agan
ReplyDeletesaya 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 :)
Oh boleh kok mas .. :D ... ntar saya kirim yah ... kalo gak malam nanti kemungkinan besok .. Iya gan senang bisa mmbntu
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteterima kasih gan :)
ReplyDeletesdah ane cek. tpi blm msuk
dtunggu kirimannya :D
sesempatnya agan saja :)
saya juga sedang mengembangkan ini, tapi bedanya saya mengontol AC.
ReplyDeletetapi 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
mas restu sm maylin bleh di cek di email udah dikirim
ReplyDeleteHalo 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.
ReplyDeletepermasalahannya 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
mas,saya minta source code nya lengkap ya mas,buat referensi TA saya,,
ReplyDeletemakasih banyak mas,
tolong kirim ke bachrularief@gmail.com
makasih gan
oke ntar saya kirimkan mas arief ..
ReplyDeleteselamat 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 ?
ReplyDeleteterima kasih kepada mas Ridwan jika berkehendak memberi.
berikut email saya : gayuh.merry18@gmail.com
mas gayuh :
ReplyDeleteUdah saya kirim lewat email mas silahkan dicek sendiri.