SISTEM PENGENDALI PERALATAN RUMAH
MENGGUNAKAN WEB
HOUSE DEVICES CONTROLLED SYSTEM USING WEB
Daniel Stefanus / 0727016
Jurusan Sistem Komputer, Fakultas Teknik, Universitas Kristen Maranatha
Jalan Prof. Dr. Suria Sumantri 65
Bandung 40164, Indonesia
ABSTRAK
Pada jaman sekarang ini, teknologi sudah semakin berkembang. Pengendalian yang merupakan aspek penting dalam teknologi juga semakin berkembang. Dengan didukung oleh teknologi yang sudah maju, pengendalian dapat dikembangkan menjadi sebuah aplikasi yang berguna. Salah satunya dengan Sistem Aplikasi Pengendalian Peralatan Rumah Menggunakan Web.
Sistem Pengendalian Peralatan Rumah menggunakan Web ini terdiri dari perangkat keras dan perangkat lunak. Perangkat keras terdiri dari rangkaian pengendali yang digunakan sebagai saklar elektronik untuk mengendalikan lampu taman, lampu dalam dan alarm. ATMega 16 digunakan untuk pengendali kunci pintu. Kemudian, rangkaian sensor berfungsi untuk mengetahui kondisi alat yang dikontrol, seperti sensor cahaya dan sensor infra merah. Kemudian Parallel port digunakan untuk menyampaikan data dari komputer ke perangkat keras lainnya. Sedangkan perangkat lunak yang digunakan terdiri dari HTML, sebagai antarmuka dengan pengguna, Borland Delphi yang digunakan untuk membuat program pengendali dan Code Vision yang digunakan untuk memprogram ATMega16.
Tugas akhir ini telah diterapkan pada maket dan diuji tingkat keberhasilannya. Dalam pengujian pengendalian setiap alatnya, program ini dapat dikatakan berhasil 100% dan pengujian pemantauan alat menggunakan sensor pun berhasil 100%. Namun hasil dari pembuatan tugas akhir ini masih dapat dikembangkan lebih lanjut dengan tidak menggunakan localhost, melainkan menggunakan jaringan internet
SISTEM PENGENDALI PERALATAN RUMAH
MENGGUNAKAN WEB
HOUSE DEVICES CONTROLED SYSTEM USING WEB
Daniel Stefanus / 0727016
Jurusan Sistem Komputer, Fakultas Teknik, Universitas Kristen Maranatha
Jalan Prof. Dr. Suria Sumantri 65
Bandung 40164, Indonesia
ABSTRACT
In this era, technology has been growing. Control system which the important aspects of technology is also growing. Supported by advanced technology, control system can developed into a useful application. One of them with House Devices Controlled System Using Web.
House Devices Controlled System Using Web consists of hardware and software. The hardware consists of a series of controllers circuit are used as electronic switches for control yard lamp, room lamp and alarm. ATMega 16 is used to control door locks. And then sensor circuit that used to determine the condition of controlled devices such as light sensor and infrared sensor. And then parallel port used to send data from computer to other hardware. While the software used consists of HTML, as the interface with users, Borland Delphi is used to make the controller program and code vision used to program ATMega16.
This final project has been applied to model and tested the level of success. In the test of control of each device, this program was successful 100% and monitoring test devices using sensors also successfully 100%. However, the results of this final creation can still be developed further by not using local host, but using the internet network
DAFTAR ISI
2.2.2 BAHASA TINGKAT MENENGAH... 8
2.2.3 BAHASA TINGKAT TINGGI... 9
2.3 BAHASA DELPHI ... 9
2.3.1 MENJALANKAN DELPHI... 10
2.3.5.2 TABEVENT... 15
2.3.6 EDITWINDOW... 16
2.3.7 STRUKTUR PROGRAM BAHASA DELPHI ... 17
2.3.8 PROCEDURE... 18
2.3.9 FUNCTION... 19
2.3.10 PROSES PENGULANGAN ... 20
2.3.11 IN LINE ASSEMBLER... 21
2.4 USERPORT... 23
2.5 HTML ... 24
2.6 WEBSERVER... 28
2.7 PARALLELPORT... 29
2.8 KOMPONEN – KOMPONEN RANGKAIAN PENGENDALI... 34
2.9 RANGKAIAN PEMANTAU ... 39
2.10 MIKROKONTROLER ATMEGA 16 ... 40
2.10.1 KONFIGURASI PIN ATMEGA16... 42
2.10.2 BLOK DIAGRAM ATMEGA 16 ... 47
2.10.3 ARSITEKTUR MIROKONTROLER AVR RISC ... 48
2.10.4 MEMORI PROGRAM ... 49
2.10.5 PEMROGRAMAN MIKROKONTROLER AVRATMEGA 16 ... 50
2.10.5.1 PENULISAN PROGRAM DALAM BAHASA C ... 50
2.11 MOTOR STEPPER... 52
BAB III. PERANCANGAN DAN PEMODELAN ... 54
3.1 PERANCANGAN PERANGKAT KERAS ... 54
3.1.1 BLOK DIAGRAM ... 54
3.1.2 SKEMATIK RANGKAIAN ... 55
3.1.2.1 RANGKAIAN PENGENDALI ... 55
3.1.2.2 RANGKAIAN SENSOR ... 57
3.1.2.3 RANGKAIAN AVR ATMEGA 16 ... 59
3.2 PERANCANGAN PERANGKAT LUNAK ... 60
3.2.1 DIAGRAM ALIR ... 60
BAB IV. HASIL PENELITIAN... 65
4.1 UJI COBA ALAT ... 65
4.2 DATA PENGAMATAN ... 78
4.2.1 PERCOBAAN PENGENDALIAN LAMPU DALAM KONDISI NORMAL ... 78
4.2.2 PERCOBAAN PENGENDALIAN LAMPU DALAM KONDISI PUTUS ... 79
4.2.3 PECOBAAN MENYALAKAN ALARM... 80
4.2.4 PECOBAAN BUKA TUTUP PINTU ... 81
4.2.5 PERCOBAAN PENDETEKSIAN BENDA DENGAN SENSOR IR ... 82
BAB V. PENUTUP... 83
5.1 KESIMPULAN... 83
5.2 SARAN ... 83
DAFTAR PUSTAKA ... 85 LAMPIRAN
I. LAMPIRAN A... A-1 A.1. FILE INDEX.HTML... A-1
II. LAMPIRAN B... B-1 B.1. FILE PRODUCER.HTML ... B-1
III. LAMPIRAN C ... C-1 C.1. FILE EXECUTE.HTML ... C-1
IV. LAMPIRAN D ... D-1 D.1. DEKLARASI FILE AUTHETIC.EXE ... D-1 D.2. FUNCTION BACA PORT... D-2 D.3. PROCEDUREGETDEVICESTATUS... D-2
D.4. OBJECT WEBMODULE EVENT ON ACTION... D-3 D.5. OBJECT PAGEPRODUCER1 EVENT ON TAG HTML.... D-3
V. LAMPIRAN E... E-1 E.1. DEKLARASI FILE EXECUTE.EXE ... E-1 E.2.FUNGTION BACA PORT... E-2 E.3.FUNGTION BACA PORT1... E-2 E.4.PROCEDURE TULIS PORT... E-3 E.5.OBJECT WEBMODULE1 EVENT ON ACTION... E-3 E.6.PROCEDURE GET DEVICE STATUS... E-4 E.7.OBJECT PAGEPRODUCER1 EVENT ON TAG HTML... E-5
VI. LAMPIRAN F ... F-1 F.1. MEMASUKAN LIBRARY... F-1 F.2. PROCEDURE PUTAR MOTOR SEARAH JARUM JAM... F-1 F.3. PROCEDURE PUTAR MOTOR BERLAWANAN
JARUM JAM ... F-1 F.4. DEKLARASI PORT ... F-2 F.5. MAINPROGRAM... F-2
VII. LAMPIRAN G ... G-1 G.1. PEMBUATAN PCB ... G-1 G.2. RANGKAIAN PENGENDALI UNTUK DC... G-2 G.3. RANGKAIAN PENGENDALI UNTUK AC... G-2 G.4. RANGKAIAN SENSOR CAHAYA ... G-3 G.5. RANGKAIAN SENSOR IR ... G-3 G.6. RANGKAIAN ALARM... G-4 G.7. RANGKAIAN ATMEGA 16... G-4
DAFTAR GAMBAR
Halaman
Gambar 2.1 Sistem Pengendali Loop Terbuka ... 5
Gambar 2.2. Sistem Pengendali Loop Tertutup ... 6
Gambar 2.3. Shortcut Borland Delphi 7 ... 10
Gambar 2.4. Tampilan Awal Borland Delphi ... 11
Gambar 2.5. Menu dan Toolbar... 12
Gambar 2.6. ComponentPallete... 12
Gambar 2.7. ObjectTreeView... 13
Gambar 2.8. TabProperties pada ObjectInspector... 14
Gambar 2.9. TabEvent pada ObjectInspector... 15
Gambar 2.10. Tab Code Editor pada Edit Window... 16
Gambar 2.11. Tampilan UserPort 1.0 ... 24
Gambar 2.12. PortParallel pada PC... 31
Gambar 2.13. Layout Konektor DB25 ... 31
Gambar 2.14. Simbol Resistor ... 35
Gambar 2.15. Simbol Dioda... 35
Gambar 2.16. Simbol Transistor NPN dan PNP ... 36
Gambar 2.17 Relay... 38
Gambar2.18 Pemancar dan penerima pada sensor infrared... 39
Gambar 2.19 LDR... 40
Gambar 2.20 Konfigurasi Pin ATMEGA16 ... 42
Gambar 2.21 Block Diagram ATMega 16 ... 47
Gambar 2.22 Arsitektur Mikrokontroler AVR RISC ... 48
Gambar 2.23 Peta Memori Program AVR ATMega 16 ... 49
Gambar 2.24 MotorStepper... 52
Gambar 3.1 Blok Diagram Pengendali Peralatan Rumah Menggunakan Web... 54
Gambar 3.2 Rangkaian Pengendali dengan Sumber DC... 56
Gambar 3.3 Rangkaian Pengendali dengan Sumber AC... 56
Gambar 3.4 Ilustrasi penggunaan Sensor Infrared ... 57
Gambar 3.5 Rangkaian Sensor Infrared... 57
Gambar 3.6 Rangkaian Sensor Cahaya ... 58
Gambar 3.7 Rangkaian Kunci Pintu... 59
Gambar 3.8 Diagram alir software Pengendali Peralatan Rumah Menggunakan Web... 61
Gambar 3.9 Sub Program Kunci Pintu... 63
Gambar 4.1 Tampilan FormLogin... 65
Gambar 4.2 Tampilan Form Akses Ditolak ... 65
Gambar 4.3 Tampilan Form Pengontrolan... 66
Gambar 4.4 Sensor IR pada saat Aktif ... 67
Gambar 4.5 Tampilan Form pada saat Sensor IR Aktif ... 67
Gambar 4.6 Sensor IR pada saat Tidak Aktif... 68
Gambar 4.7 Tampilan Form pada saat Sensor IR Tidak Aktif... 68
Gambar 4.8 Alat Pengendali Lampu dan Sensor Cahaya ... 69
Gambar 4.9 Tampilan Form ketika Menyalakan Lampu ... 69
Gambar 4.10 Lampu Menyala... 70
Gambar 4.11 Tampilan Form setelah Lampu Menyala ... 70
Gambar 4.12 Tampilan Form ketika Mematikan Lampu ... 71
Gambar 4.13 Lampu Mati ... 71
Gambar 4.14 Tampilan Form ketika Lampu Mati ... 72
Gambar 4.15 Keadaan Ketika lampu Dicabut / Putus... 72
Gambar 4.16 Tampilan Form ketika Lampu Putus... 73
Gambar 4.17 Alat Pengendali Alarm dan Rangkaian umpan balik ... 73
Gambar 4.18 Tampilan Form ketika Menyalakan Alarm ... 74
Gambar 4.19 Alarm Berbunyi... 74
Gambar 4.20 Tampilan Form Setelah Alarm Berbunyi ... 75
Gambar 4.21 Kunci Pintu Terbuka... 76
Gambar 4.22 Tampilan Form ketika Kunci Pintu Terbuka ... 76
Gambar 4.23 Pintu Terkunci ... 77
Gambar 4.24 Tampilan Form ketika Pintu Terkunci... 77
DAFTAR TABEL
Halaman
Tabel 2.1. Pengalamatan Register pada PortPrinter... 30
Tabel 2.2 Nomor dan Nama Sinyal LPT ... 32
Tabel 2.3 Karakteristik Masing – Masing Pin pada PortParallel... 33
Tabel 2.4 Kode Warna Resistor ... 35
Tabel 2.5. Fungsi Khusus Port A ... 43
Tabel 2.6. Fungsi Khusus Port B ... 44
Tabel 2.7. Fungsi Khusus Port C ... 45
Tabel 2.8. Fungsi Khusus Pin D... 46
Tabel 2.9 Putaran Searah jarum jam secara FullStepMode ... 52
Tabel 2.10 Putaran Searah jarum jam secara HalfStepMode ... 53
Tabel 4.1 Percobaan Menyalakan Lampu ... 78
Tabel 4.2 Percobaan Menyalakan Lampu pada saat Keadaan Lampu Putus... 79
Tabel 4.3 Percobaan Menyalakan Alarm... 80
Tabel 4.4 Percobaan Membuka dan Mengunci Pintu ... 81
Tabel 4.5 Percobaan Pendeteksian Benda... 82
LAMPIRAN A
SYNTAX PADA FORM LOGIN
A.1. FILE INDEX.HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>Daniel's WebSite</title>
</head>
<body>
<body bgcolor="black">
<font color = "#555555">
<h1><p align="center">
You Are Invite Daniel's WebSite
</h1>
<br><br>
<br><br>
<br><br>
<form name = "form1" method = "post" action = "cgi-bin/authentic.exe">
<font size = "5">
Log In
</font>
<br>
<table width = "313" border = "0">
<tr>
<td width = "92"><font color = "#555555"> User Name </font></td>
<td width = "211"><input type = "text" name = "username"></td>
</tr>
<tr>
<td><font color = "#555555">Password</font></td>
<td><input type = "password" name = "password"></td>
</tr>
<tr>
<td> </td>
<td><input type = "submit" name = "Submit" value = "Submit"></td>
</tr>
<p align = "center">
<font color="#555555" size="1" face="Verdana, Arial, Helvetica,
sans-serif">©2009-2010™
Niel Corporated, Inc.</font>
</p>
</body>
</html>
LAMPIRAN B
SYNTAX PADA FORM PENGONTROLAN PERTAMA
B.1. FILE PRODUCER.HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>Daniel's WebSite</title>
<style type = "text/css">
<!--
.style1 {color: #ff0000}
.style2 {color: #555555}
.style3 {color:#0000ff}
-->
</style>
</head>
<body>
<body bgcolor = "black">
<form name = "form1" method = "post" action = "execute.exe">
<br>
<br>
<p class = "style2" align = "center"> Selamat Datang <span class =
"style3"> <#username> </span>
di Fasilitas <span class = "style1"> Web Device Controller </span></p>
<p align = "center">
<br><br>
<table width = "30%" border = "1">
<tr>
<td width = "12.5%"><div align = "center" class = "style1">Nama
Alat</div></td>
<td width = "12.5%"><div align = "center" class =
"style1">Status</div></td>
<td width = "5%"><div align = "center" class = "style1">Switch
Alat</div></td>
</tr>
<tr>
<td class = "style2"> Pintu </td>
<td class = "style2"><#status_kulkas></td>
<td><div align = "center">
<select name = "kulkas">
<option value = "on">on</option>
<option value = "off">off</option>
</select>
</div></td>
</tr>
<tr>
<td class = "style2">Lampu </td>
<td class = "style2"><#status_ac></td>
<td><div align = "center">
<select name = "ac">
<option value = "on">on</option>
<option value = "off">off</option>
</select>
</div></td>
</tr>
<tr>
<td class = "style2">Yard Lamp</td>
<td class = "style2"><#status_Lampu></td>
<td><div align = "center">
<select name = "lampu">
<option value = "on">on</option>
<option value = "off">off</option>
</select>
</div></td>
</tr>
<tr>
<td class = "style2">Alarm</td>
<td class = "style2"><#status_alarm></td>
<td><div align = "center">
<select name = "alarm">
<option value = "on">on</option>
<option value = "off">off</option>
</select>
</div></td>
</tr>
</table>
<table width = "30%" border = "1">
<tr>
<td width = "12.5%"><div align = "left" class = "style2">Sensor
IR</div></td>
<td width = "17.5%"><div align = "center" class =
"style2"><#status_SensorIR></div></td>
<tr>
</table>
<br><br>
</p>
<p align = "center"> <span class = "style2">Tekan </span>
<span class = "style3">Execute </span><span class = "style2">untuk
mengeksekusi setting alat baru,atau </span>
<a href = "http://localhost/index.html" target="_self">Logout</a>
<span class = "style2">untuk keluar</span></p>
<p align = "center">
<input type = "submit" name = "Submit" value = "Execute">
</p>
</form>
<br><br>
<br><br>
<br><br>
<br><br>
<p align = "center">
<font color="#555555" size="1" face="Verdana, Arial, Helvetica,
sans-serif">©2009-2010™
Niel Corporated, Inc.</font>
</body>
</html>
LAMPIRAN C
SYNTAX PADA FORM PENGONTROLAN KEDUA
C.1. FILE EXECUTE.HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>Daniel's WebSite</title>
<style type = "text/css">
<!--
.style1 {color: #ff0000}
.style2 {color: #555555}
.style3 {color:#0000ff}
-->
</style>
</head>
<body>
<body bgcolor = "black">
<form name = "form1" method = "post" action = "execute.exe">
<br>
<br>
<p class = "style2" align = "center"> Setting Status Telah Berubah</p>
<p align = "center">
<br><br>
<table width = "30%" border = "1">
<tr>
<td width = "12.5%"><div align = "center" class = "style1">Nama
Alat</div></td>
<td width = "12.5%"><div align = "center" class =
"style1">Status</div></td>
<td width = "5%"><div align = "center" class = "style1">Switch
Alat</div></td>
</tr>
<tr>
<td class = "style2"> Pintu </td>
<td class = "style2"><#status_kulkas></td>
<td><div align = "center">
<select name = "kulkas">
<option value = "on">on</option>
<option value = "off">off</option>
</select>
</div></td>
</tr>
<tr>
<td class = "style2">Lampu </td>
<td class = "style2"><#status_ac></td>
<td><div align = "center">
<select name = "ac">
<option value = "on">on</option>
<option value = "off">off</option>
</select>
</div></td>
</tr>
<tr>
<td class = "style2">Yard Lamp</td>
<td class = "style2"><#status_Lampu></td>
<td><div align = "center">
<select name = "lampu">
<option value = "on">on</option>
<option value = "off">off</option>
</select>
</div></td>
</tr>
<tr>
<td class = "style2">Alarm</td>
<td class = "style2"><#status_alarm></td>
<td><div align = "center">
<select name = "alarm">
<option value = "on">on</option>
<option value = "off">off</option>
</select>
</div></td>
</tr>
</table>
<table width = "30%" border = "1">
<tr>
<td width = "12.5%"><div align = "left" class = "style2">Sensor
IR</div></td>
<td width = "17.5%"><div align = "center" class =
"style2"><#status_SensorIR></div></td>
<tr>
</table>
<br><br>
</p>
<p align = "center"> <span class = "style2">Tekan </span>
<span class = "style3">Execute </span><span class = "style2">untuk
mengeksekusi setting alat baru,atau </span>
<a href = "http://localhost/index.html" target="_self">Logout</a>
<span class = "style2">untuk keluar</span></p>
<p align = "center">
<input type = "submit" name = "Submit" value = "Execute">
</p>
</form>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<p align = "center">
<font color="#555555" size="1" face="Verdana, Arial, Helvetica,
sans-serif">©2009-2010™
Niel Corporated, Inc.</font>
</body>
</html>
LAMPIRAN D
SYNTAX PADA FILE AUTHENTIC.EXE
D.1. DEKLARASI FILE AUTHETIC.EXE
unit Umain;
interface
uses
SysUtils, Classes, HTTPApp, HTTPProd;
type
TWebModule1 = class(TWebModule)
PageProducer1: TPageProducer;
procedure WebModule1AuthentifikasiAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled:
Boolean);
procedure PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
const TagString: String; TagParams: TStrings;
var ReplaceText: String);
private
{ Private declarations }
public
{ Public declarations }
kulkas,ac,lampu,alarm,username,sensor :string;
procedure get_device_status;
function baca_port :byte;
end;
var
WebModule1: TWebModule1;
implementation
{$R *.dfm}
D.2. FUNCTION BACA PORT
function TWebModule1.baca_port : byte;
var temp : byte;
begin
asm
mov dx,$379
in al,dx
mov temp,al
end;
temp:=temp xor $7F;
result:= temp;
end;
D.3. PROCEDURE GET DEVICE STATUS
procedure TWebModule1.get_device_status;
begin
if(baca_port and $10)=$10 then kulkas :='on' else kulkas :='off';
if(baca_port and $20)=$20 then ac :='on' else ac :='off';
if(baca_port and $40)=$40 then lampu :='on' else lampu :='off';
if(baca_port and $80)=$80 then alarm :='on' else alarm :='off';
if(baca_port and $08)=$08 then sensor :='on' else sensor :='off';
end; object
D.4. OBJECT WEBMODULE1 EVENT ON ACTION
procedure TWebModule1.WebModule1AuthentifikasiAction(Sender:
TObject;
Request: TWebRequest; Response: TWebResponse; var Handled:
Boolean);
var
password :string;
begin
username := request.ContentFields.Values ['username'];
password := request.ContentFields.Values ['password'];
if((username = 'Daniel') and (password = '0727016')) or ((username =
'Guest') and (password = 'guest')) then
begin
pageproducer1.htmlFile :='producer.html';
response.Content:=pageproducer1.content;
end
else
response.Content := 'Access Denied...You Are hacker';
end;
D.5. OBJECT PAGEPRODUCER1 EVENT ON TAG HTML
procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject;
Tag: TTag;
const TagString: String; TagParams: TStrings; var ReplaceText: String);
begin
get_device_status;
if CompareText(TagString,'username') = 0 then replacetext := username;
if CompareText(TagString,'status_kulkas') = 0 then replacetext := kulkas;
if CompareText(TagString,'status_ac') = 0 then replacetext := ac;
if CompareText(TagString,'status_lampu') = 0 then replacetext := lampu;
if CompareText(TagString,'status_alarm') = 0 then replacetext := alarm;
if CompareText(TagString,'status_SensorIR') = 0 then replacetext :=
sensor;
end;
end.
LAMPIRAN E
SYNTAX PADA FILE EXECUTE.EXE
E.1. DEKLARASI FILE EXECUTE.EXE
unit Umain2;
interface
uses
SysUtils, Classes, HTTPApp, HTTPProd;
type
TWebModule1 = class(TWebModule)
PageProducer1: TPageProducer;
procedure WebModule1executeAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled:
Boolean);
procedure PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
const TagString: String; TagParams: TStrings;
var ReplaceText: String);
private
{ Private declarations }
public
{ Public declarations }
data_status : byte;
kulkas, ac, lampu, sensor, alarm : string;
procedure get_device_status;
procedure tulisport(data:byte);
function bacaport:byte;
function bacaport1:byte;
end;
var
WebModule1: TWebModule1;
implementation
{$R *.dfm}
E.2. FUNGTION BACA PORT
function TWebModule1.bacaport: byte;
var temp : byte;
begin
asm
mov dx,$379
in al, dx
mov temp,al
end;
temp := temp shr 3;
result := temp;
end;
E.3. FUNGTION BACA PORT1
function TWebModule1.bacaport1: byte;
var temp : byte;
begin
asm
mov dx,$379
in al, dx
mov temp,al
end;
temp := temp xor $7F;
result := temp;
end;
E.4. PROCEDURE TULIS PORT
procedure TWebModule1.tulisport(data : byte);
begin
asm
mov dx, $378
mov al,data
out dx, al
end;
end;
E.5. OBJECT WEBMODULE1 EVENT ON ACTION
procedure TWebModule1.WebModule1executeAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var kulkas,ac,lampu,alarm : string;
begin
//kulkas dipasang pada LPT (port status) pada alamat $01
//ac dipasang pada LPT (port status) pada alamat $02
//lampu dipasang pada LPT (port status) pada alamat $04
//alarm dipasang pada LPT (port status) pada alamat $08
//baca data pada lpt port status
data_status :=bacaport;
//ambil request field yg dikimkan user
kulkas :=request.ContentFields.ValueFromIndex[0];
ac :=request.ContentFields.ValueFromIndex[1];
lampu :=request.ContentFields.ValueFromIndex[2];
alarm :=request.ContentFields.ValueFromIndex[3];
//nyalakan alat dan matikan alat sesuai dgn opsi yg dimasukan user
if kulkas ='on' then data_status := data_status or 01 else data_status :=
data_status xor 01;
if ac ='on' then data_status := data_status or 02 else data_status := data_status
xor 02;
if lampu ='on' then data_status := data_status or 04 else data_status :=
data_status xor 04;
if alarm ='on' then data_status := data_status or 08 else data_status :=
data_status xor 08;
//jika telah selesai menentukan alat yang aktif atau non aktif kemudan tulis port
tulisport(data_status);
//bacaport yg menunjukan status alat
data_status := bacaport;
//masuakn file execute.html ke page producer untuk ditampilkan ke user
pageproducer1.HTMLFile :='execute.html';
response.content:= pageproducer1.content;
end;
E.6. PROCEDURE GET DEVICE STATUS
procedure TWebModule1.get_device_status;
begin
//kulkas dipasang pada LPT (port status) pada alamat $01
//ac dipasang pada LPT (port status) pada alamat $02
//lampu dipasang pada LPT (port status) pada alamat $04
//alarm dipasang pada LPT (port status) pada alamat $08
if(bacaport1 and $10)=$10 then kulkas :='on' else kulkas :='off';
if(bacaport1 and $20)=$20 then ac :='on' else ac :='off';
if(bacaport1 and $40)=$40 then lampu :='on' else lampu :='off';
if(bacaport1 and $80)=$80 then alarm :='on' else alarm :='off';
if(bacaport1 and $08)=$08 then sensor :='on' else sensor :='off';
end;
E.7. OBJECT PAGEPRODUCER1 EVENT ON TAG HTML
procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject; Tag:
TTag;
const TagString: String; TagParams: TStrings; var ReplaceText: String);
begin
get_device_status;
//pindah text yg berformat <#xxxx> pada file html untuk diganti dgn isi
masing2 variable
if CompareText(TagString,'status_kulkas') = 0 then replacetext := kulkas;
if CompareText(TagString,'status_ac') = 0 then replacetext := ac;
if CompareText(TagString,'status_lampu') = 0 then replacetext := lampu;
if CompareText(TagString,'status_alarm') = 0 then replacetext := alarm;
if CompareText(TagString,'status_SensorIR') = 0 then replacetext := sensor;
end;
end.
LAMPIRAN F
SYNTAX PADA ATMEGA 16
F.1. MEMASUKAN LIBRARY
#include <mega16.h> #include <delay.h>
F.2. PROCEDURE PUTAR MOTOR SEARAH JARUM JAM
void putarCW() {
PORTB = 0b11111110; delay_ms(30);
PORTB = 0b11111101; delay_ms(30);
PORTB = 0b11111011; delay_ms(30);
PORTB = 0b11110111; delay_ms(30);
}
F.3. PROCEDURE PUTAR MOTOR BERLAWANAN JARUM JAM
void putarCCW() {
PORTB = 0b11110111; delay_ms(30);
PORTB = 0b11111011; delay_ms(30);
PORTB = 0b11111101; delay_ms(30);
PORTB = 0b11111110; delay_ms(30);
}
}
if(PINA.2==1)PORTC = 0xBF; }
while(PINA.0==0) {
while(PINA.4==0) {
putarCCW(); }
if(PINA.4==1)PORTC = 0xFD; }
}; }
LAMPIRAN G
FOTO – FOTO ALAT
G.1. PEMBUATAN PCB
G.2. RANGKAIAN PENGENDALI UNTUK DC
G.3. RANGKAIAN PENGENDALI UNTUK AC
G.4. RANGKAIAN SENSOR CAHAYA
G.5. RANGKAIAN SENSOR IR
G.6. RANGKAIAN ALARM
G.7. RANGKAIAN ATMEGA 16
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Pada zaman sekarang ini penggunaan komputer dalam
kehidupan sehari – hari sudah tidak dapat dipungkiri lagi
keberadaannya, apalagi dengan perkembangan internet yang
telah banyak digunakan oleh berbagai pihak. Semua informasi
dapat ditangani dengan cepat. Sebagai contoh, hampir di setiap
kantor, pabrik, pertokoan, instansi pemerintah bahkan hampir di
setiap rumah pun sudah menggunakan komputer dan teknologi
internet yang bertujuan untuk memudahkan para pengguna
melakukan pekerjaannya. Dengan teknologi internet, ruang dan
waktu seakan tidak lagi menjadi batasan. Dengan internet sangat
memungkinkan untuk mengakses informasi dari mana saja dan
kapan saja.
Perkembangan internet tidak berhenti hanya sampai pada
penyampaian informasi saja. Dalam hal pengendalian, internet
juga mempunyai andil yang cukup besar. Jika teknologi internet ini
diterapkan di rumah tentunya akan menjadi sebuah aplikasi yang
berguna. Maka dari itu dengan proyek Smart House berbasis
internet ini sangat memungkinkan untuk mengakses peralatan
1
2
Universitas Kristen Maranatha
rumah dari mana saja dan kapan saja. Selain itu aplikasi ini
mempunyai kemampuan untuk memantau kondisi rumah melalui
sensor yang terpasang.
1.2 IDENTIFIKASI MASALAH
• Bagaimana cara membuat aplikasi untuk memantau kondisi
rumah menggunakan web?
• Bagaimana cara membuat alat untuk mengontrol peralatan
rumah menggunakan web?
1.3 TUJUAN
• Untuk membuat aplikasi pemantau kondisi rumah
menggunakan web.
• Untuk membuat alat pengontrol peralatan rumah
menggunakan web.
1.4 PEMBATASAN MASALAH
• Proyek ini menggunakan program Delphi, HTML, User Port 1.0
dan Apache Webserver.
• Webserver pada proyek ini masih menggunakan LocalHost.
• Aplikasi ini hanya sebatas pengontrolan alat dan pemantauan
kondisi rumah dengan sensor.
3
Universitas Kristen Maranatha
• Hardware pada proyek ini menggunakan rangkaian sensor dan
rangkaian relay yang diatur menggunakan transistor.
1.5 SISTEMATIKA PENULISAN
Bab I : Pendahuluan
Membahas tentang latar belakang, identifikasi
masalah, tujuan dan pembatasan masalah.
Bab II : Kerangka Teoritis
Membahas tentang teori-teori yang menunjang topik
Tugas Akhir.
Bab III : Perancangan dan Pemodelan
Membahas tentang rancangan aplikasi Pengendali
Peralatan Rumah Menggunakan Web yang telah
dibuat.
Bab IV : Hasil Dan Pembahasan
Membahas tentang hasil dari aplikasi Pengendali
Peralatan Rumah Menggunakan Web yang telah
dibuat.
Bab V : Kesimpulan dan Saran
Membahas tentang kesimpulan dari seluruh
pembahasan topik serta saran yang mungkin
BAB V
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Berdasarkan data pengamatan dan analisi data, Tugas Akhir
ini dapat disimpulkan sebagai berikut :
• Sistem Pengendalian Peralatan Rumah Menggunakan Web
telah berhasil direalisasikan dan berjalan dengan baik.
• Program pengendalian dan alat pengendali dapat berjalan
secara sinkron. Dengan tingkat keberhasilan pengontrolan dan
pemantauan alat sebesar 100%.
5.2 SARAN
Berdasarkan hasil evaluasi, Tugas Akhir ini dapat
dikembangkan lebih lanjut dengan beberapa saran sebagai berikut :
• Perangkat keras dan alat yang dikendalikan dapat ditambah
sesuai dengan kebutuhan. Seperti ditambahnya Web Cam
untuk mendapatkan kondisi visual dari alat yang dikendalikan.
• Perangkat lunak dapat dikembangkan dengan tidak
menggunakan local host, tetapi dapat dikembangkan
menggunakan Word Wide Web dan tentunya dengan
memperhatikan tinggkat keamananya.
DAFTAR PUSTAKA
1. Andrianto, Heri. 2008. Pemrograman Mikrokontroler AVR ATmega 16.
Bandung : Informatika
2. Komputer, Wahana. 2009. Panduan Aplikatif dan Solusi Aplikasi Cerdas
Menggunakan Delphi. Yogyakarta : Andi
3. Supriyadi, Moh & Sugiri, A.Md., S.PD. 2006. Program Sistem Pengendali
dengan Delphi. Yogyakarta : Andi.
4. Supriyadi, Muhammad. 2005. Pemrograman IC PPI 8255 Menggunakan
Delphi. Yogyakarta : Andi.