Sunday, 5 January 2014

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
Next
This is the most recent post.
Older Post

0 comments:

Post a Comment