LED
Blink dan Fan speed control adalah project yang menggunakan
hardware seperti arduino, motor dc, led, dan lain-lain. Serta pemrograman yang
digunakan meliputi HTML, CGI dengan C++, IDE Visual Studio 2012, Arduino, serta
code PHP.
Berikut adalah
penjelasan dari masing-masing bagian tersebut.
1.
Hardware
/ Komponen
Adapun hardware / komponen yang
dibutuhkan dalam pembuatan project tugas akhir CGI ini dapat dilihat pada table
1.
Tabel 1.
Komponen Yang Dibutuhkan
Gambar
|
Komponen
|
Qty
|
Deskripsi
|
|
Motor DC 5V
|
1
|
Motor
untuk menggerakkan kipas.
|
|
Transistor PN2222
|
1
|
Berfungsi
untuk mengatur arus listrik.
|
|
Diode 1N4001
|
1
|
Berfungsi
sebagai penyearah arus listrik.
|
|
Resistor 270Ω (Red,
Purple, Brown, Stripes)
|
3
|
Berfungsi
sebagai penghambat arus listrik yg melewati sebuah rangkaian.
|
|
Half Size Breadboard
|
1
|
Board
untuk merangkai komponen.
|
|
Arduino Uno R3
|
1
|
|
|
Jumper wire pack
|
5
|
Berfungsi
sebagai penghubung antara rangkaian yang sudah dibuat dengan Arduino Uno R3.
|
|
Led
|
2
|
Led
akan berkedip sesuai dengan kecepatan kipas.
|
|
Saklar
|
1
|
Untuk
Menghubungkan dan memutuskan Arus Listrik
|
Setelah kita
mempersiapkan semua komponen yang dibutuhkan, selanjutnya kita akan membuat
rangkaian dari project ini. Untuk lebih jelas mengenai rangkaian dari project
ini silahkan lihat gambar 1.
Gambar 1. Desain
Rangkaian
Pada gambar 1
kita dapat melihat pin D3 terhubung ke resistor dari resistor baru terhubung ke
transistor, resistor disini berfungsi untuk membatasi arus yang mengalir ke
transistor. Selain itu dalam rangkaian juga terdapat 1 buah diode yang
berfungsi untuk mengizinkan arus listrik mengalir hanya satu arah. Selain itu
dioda juga berfungsi untuk melindungi Arduino dan Transistor dari lonjakan
tegangan negatif pada saat kita memutuskan daya ke motor. Setelah kita selesai
membuat rangkaiannya sekarang kita akan masuk dalam tahap implementasi dari
rangkaian yang sudah dibuat tersebut. Adapun bentuk implementasi dari rangkaian
yang dibuat dapat dilihat pada gambar 2.
Gambar 2. Implementasi Rangkaian
2.
HTML
dan PHP Code
HyperText Markup Language (HTML) adalah sebuah bahasa markup
yang digunakan untuk membuat sebuah halaman web,
menampilkan berbagai informasi di dalam sebuah Penjelajah web Internet dan formating
hypertext sederhana yang ditulis kedalam berkas format ASCII agar dapat
menghasilkan tampilan wujud yang terintegerasi. Dengan kata lain, berkas yang
dibuat dalam perangkat lunak pengolah kata dan disimpan kedalam format ASCII normal sehingga
menjadi home page dengan perintah-perintah HTML. Bermula dari sebuah bahasa
yang sebelumnya banyak digunakan di dunia penerbitan dan percetakan yang
disebut dengan SGML
(Standard Generalized Markup Language), HTML adalah sebuah standar yang
digunakan secara luas untuk menampilkan halaman web. HTML saat ini merupakan
standar Internet
yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). HTML
dibuat oleh kolaborasi Caillau TIM dengan Berners-lee
robert ketika mereka bekerja di CERN pada tahun 1989.(Ridwan, 2009).
PHP
atau kependekan dari Hypertext
Preprocessor adalah salah satu bahasa pemrograman open source yang sangat
cocok atau dikhususkan untuk pengembangan web
dan dapat ditanamkan pada sebuah skrip HTML.
Bahasa PHP dapat dikatakan
menggambarkan beberapa bahasa pemrograman seperti C, Java, dan Perl serta mudah untuk dipelajari. PHP diciptakan untuk mempermudah
pengembang web dalam menulis halaman web dinamis dengan cepat, bahkan lebih
dari itu dapat mengekplorasi hal-hal yang luar biasa dengan PHP. (Hirin dan Virgi, 2011).
Berikut adalah source code html
yang digunakan untuk project led blink and fan speed control.
Source code html |
|
Source code html
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<form
id="form1" name="form1" method="POST"
action="http://192.168.1.64/cgi-bin/FanControl/FanControl.cgi">
<table
class="table table-condensed">
<b style="color:#0b3596">Set
Fan Speed (0-Max) !!</b>
<tr class="success">
<td
style="background-color:#1294b3">
<input type="range"
id="speed" min=0 value="<?php echo $spd;?>" max=255
step=1 name="value" onChange="submit1()"
class="span12">
</td>
<td
style="background-color:#1294b3" width="30"><input
type="submit" value="OK"
class="btn"></td>
</tr>
</table>
</form>
|
Source code php yang digunakan
untuk mengetahui nilai kecepatan pada project led blink and fan speed control adalah
sebagai berikut.
Source code php |
|
Source code php
|
|
1
2
3
4
5
6
7
|
<?php
$value = $spd/255*100;
printf("%1.2f",
$value);
echo " %";
?>
|
3.
CGI
Code
Common Gateway Interface atau disingkat CGI adalah suatu
standar untuk menghubungkan berbagai program aplikasi ke halaman web.CGI mirip
sebuah program komputer yang menjadi perantara antara standar HTML yang
menjadikan tampilan web dengan program lain, sepertibasis data (database).
Hasil yang diperoleh dari proses pencarian dikirimkan kembali ke halaman web
untuk ditampilkan dalam format HTML.
Pada awalnya CGI adalah salah satu yang mendekati aplikasi
server-side programming. Program CGI yang sering digunakan
adalah C++ dan perl. CGI merupakan bagian dari web server yang
dapat berkomunikasi dengan program lain yang ada di server Dengan CGI web
server dapat memanggil program yang dibuat dari berbagai bahasa pemrograman
(Common). Interaksi antara pengguna dengan berbagai aplikasi, misalnya
database, dapat dijembatani oleh CGI (Gateway).
CGI (Common Gateway Interface) merupakan skrip tertua dalam
bidang pemrograman web. Skrip bisa didefinisikan sebagai rangkaian dari
beberapa instruksi program. Untuk membuat skrip yang dapat dijalankan pada web
diperlukan pengetahuan pemograman.
CGI sendiri telah muncul sejak teknologi web diperkenalkan
di dunia pada awal tahun 1990, bersama dengan kemunculan CERN, web server
pertama di dunia. CGI disediakan sebagai tool atau perlengkapan untuk membuat
program web. CGI digunakan untuk membuat program-program tampilan web yang
lebih interaktif, koneksi ke basis data, bahkan membuat permainan (game).
Selain itu,
keunggulan dari CGI adalah kecepatan dalam akses ke hardware secara langsung.
Dalam project led blink and fan speed control ini digunakan cgi sebagai
jembatan penghubung antara hardware dan use yang manggunakan. Dengan
menggunakan CGI memungkinkan untuk mengatur dan mengendalikan hardware secara
client-server.
Berikut adalah source
code cgi yang digunakan untuk project led blink and fan speed control ini.
Source code cgi (c++) |
|
Source code cgi (c++)
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#using <System.dll>
#include <fstream>
#include <iostream>
#include <malloc.h>
#include "cgi.h"
#include <stdio.h>
using namespace System;
using namespace
System::IO::Ports;
using namespace std;
void main()
{
CCGI cgi;
CCGIItem item;
char* lpszOut;
char*
lpszContentLength = getenv("CONTENT_LENGTH");
int i,nLength;
char speed[3];
cout << "Content-type: text/html" << endl << endl;
cgi.Load();
for(i=0;
i<cgi.GetItemCount(); i++)
{
cgi.GetItem(i,&item);
nLength =
item.GetNameLength();
lpszOut = (char*)
malloc(nLength);
item.GetName(lpszOut,nLength);
free(lpszOut);
nLength =
item.GetLength();
lpszOut = (char*)
malloc(nLength);
item.GetValue(lpszOut,nLength);
if(i==0){
strcpy(speed,lpszOut);
}
free(lpszOut);
}
SerialPort^
mySerialPort = gcnew SerialPort("COM30");
mySerialPort->BaudRate = 9600;
mySerialPort->Parity = Parity::None;
mySerialPort->StopBits = StopBits::One;
mySerialPort->DataBits = 8;
mySerialPort->Handshake = Handshake::None;
string
nspeed(speed);
String^
MyString = gcnew String(nspeed.c_str());
mySerialPort->Open();
mySerialPort->Write(MyString);
mySerialPort->Close();
char buffer[19];
ifstream myfile ("read.txt");
string ip;
while (! myfile.eof() )
{
myfile.getline (buffer,100);
cout << buffer << endl;
}
while (!myfile.eof() )
{
myfile.getline (buffer,100);
}
printf("<meta http-equiv='refresh'
content='0;URL=http://");
printf("%s",buffer);
printf("/atur/index.php?current=");
printf("%s",speed);
printf("'");
cout<<">"<<endl;
}
|
Pada
source code diatas, dapat dilihat bahwa aplikasi menggunakan cgicc dengan
meng-include-kan cgi.h yang dapat di download di http://www.gnu.org/software/cgicc/.
Dengan menggunakan fungsi-fungsi yang terdapat di file header tersebut maka
akan m empermudah untuk mengambil value kiriman dari post method html, dan
mengambil speed yang diinginkan user. Kemudian program akan mencoba terkoneksi
pada hardware dengan konfirgurasi serial yang ditentukan. Setelah berhasil
terkoneksi, program mengirimkan value ke serial, dan menutup koneksi ke serial.
Setelah semua itu selesai, maka dengan memanfaatkan code html, dan fungsi cout
program akan men-redirect address web, dan merefreshnya kembali ke halaman
untuk mengatur kecepatan hardware.
4.
Arduino
Code Program
Arduino code
program merupakan source yang nantinya akan di upload pada device arduino.
Dimana pada source yang tertanam pada arduino terdapat perintah untuk
menjalankan kecepatan pergerakan motor dan kecepatan blink dari led berdasarkan
nilai yang dikirim dari cgi. Pin yang digunakan pada arduino akan diatur atau
diinisialisasi pada source code arduino ini.
Berikut adalah source code yang
tertanam pada arduino yang digunakan untuk project led blink and fan speed
control ini.
Source code arduino |
|
Source code arduino
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
int motorPin = 3;
int led1 = 12,led2 =
13;
int dle = 0;
void setup()
{
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println("Speed 0 to 255");
}
void loop()
{
if (Serial.available())
{
int speed = Serial.parseInt();
if (speed >= 0 && speed <=
255)
{
dle= speed;
analogWrite(motorPin, speed);
}
}
if(dle != 0){
digitalWrite(led1, 250);
delay(265-dle);
digitalWrite(led1, 0);
delay(265-dle);
digitalWrite(led2, 250);
delay(265-dle);
digitalWrite(led2, 0);
delay(265-dle);
}else{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
}
|
5.
Penggunaan
Program
Program LED
Blink dan Fan speed control menggunakan sistem client server. Pengguna sebagai
server diperlukan untuk mengatur ad-hoc PC sebagai server kemudian program dilokasikan
pada htdoc xampp. User melakukan pengaturan kecepatan motor dan blink led dengan
cara mengakses halaman web yang terdapat pada server dengan mengetikkan url http://ip_server/nama_program pada web
browser.
Pertama kali
program diakses, user akan diperlukan untuk melakukan login user terlebih
dahulu, dengan tujuan agar tidak sembarang orang dapat melakukan control kecepatan
motor dan blink led. Berikut merupakan tampilan dari login user.
Gambar
3. Tampilan Login User
Setelah berhasil
melakukan login user, user dapat melakukan control dengan meakukan scroll
volume bar kemudian menekan tombol ok. Berikut merupakan tampilan control
kecepatan motor dan blink led.
Gambar
4. Tampilan Kontrol Kecepatan Motor dan Blin Led
0 comments:
Post a Comment