ϱϱ
LAMPIRAN
Lampiran 1 : Tabel data hasil pembacaan
No Tanggal Jam Daya
ϱϲ
40 11/03/2017 06:30:00 29.32 199.63 0.75 0.8 41 11/03/2017 06:40:00 22.27 200.58 0.7 0.78 42 11/03/2017 06:50:00 17.61 200.86 0.57 0.8 43 11/03/2017 07:00:00 20.94 201.19 0.69 0.77 44 11/03/2017 07:10:00 21.13 201.77 0.7 0.78 45 11/03/2017 07:20:00 21.49 201.86 0.68 0.78 46 11/03/2017 07:30:00 21.08 201.42 0.67 0.82 47 11/03/2017 07:40:00 19.42 201.69 0.62 0.81 48 11/03/2017 07:50:00 9.7 202.06 0.14 0.74 49 11/03/2017 08:00:00 0.94 202.4 0 0.32 50 11/03/2017 08:10:00 9.33 200.26 0.38 0.57 51 11/03/2017 08:20:00 11.57 200.16 0.38 0.56 52 11/03/2017 08:30:00 11.58 199.4 0.38 0.56 53 11/03/2017 08:40:00 6.55 201.43 0 0.35 54 11/03/2017 08:50:00 0.03 201.02 0 0.38 55 11/03/2017 09:00:00 6.41 199.72 0.38 0.57 56 11/03/2017 09:10:00 11.47 199.26 0.38 0.56 57 11/03/2017 09:20:00 11.53 199.23 0.38 0.56 58 11/03/2017 09:30:00 6.03 199.18 0 0.38
59 11/03/2017 09:40:00 0 199.68 0 0.35
ϱϳ
ϱϴ
ϱϵ
ϲϬ
ϲϭ
ϲϮ
ϲϯ
ϲϰ
ϲϱ
ϲϲ
ϲϳ
ϲϴ
ϲϵ
ϳϬ
ϳϭ
ϳϮ
ϳϯ
ϳϰ
ϳϱ
ϳϲ
ϳϳ
ϳϴ
ϳϵ
ϴϬ
ϴϭ
ϴϮ
ϴϯ
ϴϰ
Lampiran 2 : Kode Program Arduino
#include "SoftwareSerial.h"
#include "EmonLib.h" // Include Emon Library
#include "EEPROM.h"
#include "DS3231.h"
EnergyMonitor emon1; // Create an instance
SoftwareSerial mySerial(7, 6);
DS3231 rtc(SDA, SCL);
double amp=0;
double volt=0;
double daya = 0,energy = 0,energy_old = 0;
double pf = 0;
int Times = 0, LastTime = 0;
double kwh=0;
double kwhtot = 0;
String stringLINK,
stringDATA,stringEND,stringARUS,stringTEGANGAN,stringPF,stringDATA2,stringLINK2,
stringDATE,stringHOUR;
char buff[200];
int menit=0,hari=0;
String tanggal,jam;
float f = 0.00f;
int dLine2[50];
int tanggall,bulann,tahunn;
int jamm,menitt,detikk;
int tsec;
int counttry;
Time t;
void setup()
{
mySerial.begin(9600);
Serial.begin(9600);
emon1.current(1, 60);
emon1.voltage(2, 235, 1.7);
stringLINK = String("AT+HTTPPARA=\"URL\",\"202.0.107.165:16180/g.php?d=");
stringLINK2=
String("AT+HTTPPARA=\"URL\",\"202.0.107.165:16180/getdata2.php?whtot=");
stringARUS = String("&a=");
stringTEGANGAN = String("&v=");
stringPF = String("&p=");
ϴϱ
rtc.begin();
getrtctime();
setdatertc();
t = rtc.getTime();
menit = t.min;
hari = t.date;
}
void loop()
{
emon1.calcVI(20,2000);
amp = emon1.calcIrms(1185);
volt = emon1.Vrms;
pf = emon1.powerFactor;
hitungenergy();
kwh = (energy/1000);
t = rtc.getTime();
int datax = t.min - menit;
if (datax == 10 && tsec == 0 || datax < 0&& tsec == 0)
{
EEPROM.get( 0, f );
kwhtot = f;
kwhtot = kwhtot + kwh;
EEPROM.put(0, kwhtot);
tanggal = rtc.getDateStr();
jam = rtc.getTimeStr();
Serial.println(tanggal);
Serial.println(jam);
SubmitHttpRequest();
delay(100000);
int dataxx = t.date - hari;
if(dataxx == 1&& tsec == 0 || dataxx < 0&& tsec == 0)
{
SubmitHttpRequest2();
hari = t.date;
getrtctime();
setdatertc();
}
energy = 0;
energy_old = 0;
LastTime = millis()/1000;
menit = t.min;
ϴϲ
}
void hitungenergy()
{
daya = volt*amp;
Times = (millis()/1000) - LastTime;
energy=(daya*Times)/(3600);
if (energy < 0){
energy = energy*(-1) + energy_old;
}
else {
energy = energy + energy_old;
}
energy_old=energy;
//Serial.println(energy);
}
void SubmitHttpRequest()
{
Serial.println("Pengiriman Data");
stringDATA = stringLINK + kwh + stringARUS + amp + stringTEGANGAN + volt +
stringPF + pf + stringDATE + tanggal + stringHOUR + jam + stringEND;
ϴϳ
delay(5000);
ShowSerialData();
mySerial.println("AT+HTTPREAD");
delay(1000);
//ShowSerialData();
checkForResponse();
if ( dLine2[29] != 68 && dLine2[30] != 97 && dLine2[34] != 83 && dLine2[35] != 117 )
{
Serial.println("Pengiriman Gagal");
counttry = counttry + 1;
if (counttry <= 3){
SubmitHttpRequest();}
}
counttry = 0;
Serial.println("Pengiriman Berhasil");
mySerial.println("");
delay(300);
}
void SubmitHttpRequest2()
{
ϴϴ
delay(1000);
//ShowSerialData();
checkForResponse();
if ( dLine2[29] != 68 && dLine2[30] != 97 && dLine2[34] != 83 && dLine2[35] != 117)
{
Serial.println("Pengiriman Gagal");
counttry = counttry + 1;
if (counttry <= 3){
SubmitHttpRequest();}
}
counttry = 0;
ϴϵ
mySerial.println("AT+CNTP= \"pool.ntp.org\",7,1,2");
delay(1000);
ShowSerialData();
mySerial.println("AT+CNTP");
delay(10000);
//ShowSerialData();
checkForResponse();
mySerial.println("");
delay(100);
}
void setdatertc()
{
tanggall = (dLine2[33]-48)*10 + (dLine2[34]-48);
bulann = (dLine2[30]-48)*10 + (dLine2[31]-48);
tahunn = (dLine2[27]-48)*10 + (dLine2[28]-48) + 2000;
jamm = (dLine2[36]-48)*10 + (dLine2[37]-48);
menitt = (dLine2[39]-48)*10 + (dLine2[40]-48);
detikk = (dLine2[42]-48)*10 + (dLine2[43]-48);
rtc.setDate(tanggall, bulann, tahunn);
rtc.setTime(jamm, menitt, detikk);
Serial.println(tanggall);
Serial.println(bulann);
Serial.println(tahunn);
Serial.println(jamm);
Serial.println(menitt);
Serial.println(detikk);
}
void checkForResponse()
{
while(mySerial.available()!=0)
{
for (int i = 0; i < 50; i++)
{
dLine2[i] = mySerial.read();
}
for (int i = 0; i < 50; i++)
{
Serial.println(dLine2[i]);
}
ϵϬ
void ShowSerialData()
{
char data;
while(mySerial.available()!=0)
{
Serial.write(mySerial.read());
}
ϵϭ
Lampiran 3: Kode Program Web
WEB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="muhammadfadlanariska">
<title>Smart Power Meter</title>
<!-- Bagian css -->
<link rel="stylesheet" href="assets/css/bootstrap.css">
<link rel="stylesheet" href="assets/css/data.css">
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target=".navbar-collapse">
<span bar"></span><span
class="icon-bar"></span><span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="default.php">
SMART POWER METER</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-left">
<li class="clr1 active"><a
href="default.php">Beranda</a></li>
</ul>
</div>
</div>
</nav>
</br></br></br>
<div class="container" style="margin-top:20px">
<div class="col-md-7">
<h3> Tanggal :</h3>
<?php
$tanggalmain=$_POST['tanggal'];
echo $tanggalmain;
?>
</div>
</div>
</br>
ϵϮ
<div class="container" style="margin-top:20px">
<center><img src="grafik.php"></center>
</br></br>
<div class="navbar navbar-default navbar-fixed-bottom footer-bottom">
<div class="container text-center">
<p class="text-center">Copyright © 2016. Developed by <a
href="https://www.facebook.com/muhammadfadlan.ariska">Muhammad Fadlan
Ariska</a></p>
</div>
</div>
</body>
</html>
HALAMAN WEB GET
<?php
date_default_timezone_set("Asia/Bangkok");
$daya=$_GET['daya'];
$volt=$_GET['volt'];
$amp=$_GET['amp'];
$pf=$_GET['pf'];
$tanggal = date("Y/m/d");
$jam= date("h:i:sa");
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO daya2 (id,daya,tanggal,jam,volt,amp,pf)
VALUES (NULL,'$daya','$tanggal','$jam','$volt','$amp','$pf')";
if ($conn->query($sql) === TRUE) {
echo "Data Sukses";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
ϵϯ
GRAFIK
<?php
$conn = new mysqli("","","","");
$sql_ = "SELECT * FROM `dayatemp`";
$query_=$conn->query($sql_ );
$x_ = "";
$y_ = "";
while( $r_ = mysqli_fetch_array( $query_ ) ){
$waktu = $r_['jam'];
$arus = $r_['daya'];
$x_ = $x_ . "," . $waktu;
$y_ = $y_ . "," . $arus;
}
include ("jpgraph-4.0.1/src/jpgraph.php");
include ("jpgraph-4.0.1/src/jpgraph_line.php");
$x_ = substr($x_,1,strlen($x_)-1);
$y_ = substr($y_,1,strlen($y_)-1);
$data_x = explode("," , $x_);
$data_y = explode("," , $y_);
$graph = new Graph(1000,600);
$graph->SetScale("textlin");
$theme_class= new UniversalTheme;
$graph->SetTheme($theme_class);
$graph->title->Set('Grafik Konsumsi Daya');
$graph->xaxis->title->Set('Waktu','low');
$graph->yaxis->title->Set('Daya');
$graph->xaxis->SetLabelAlign('center','center');
$graph->yaxis->HideZeroLabel();
$graph->yaxis->HideLine(false);
$graph->xgrid->Show();
$graph->xgrid->SetLineStyle("solid");
$graph->xaxis->SetTickLabels($data_x);
$graph->xgrid->SetColor('#E3E3E3');
ϵϰ
$garis = new LinePlot($data_y);
$graph->Add($garis);
$garis->SetColor("#6495ED");
ϱϰ
DAFTAR PUSTAKA
[1] Setiabudi, Rudy. 2007. Pengukuran Besaran Listrik. Jakarta:Lembaga Penerbit FEUI (LP-FEUI).
[2]
Artanto, Dian. 2012. Interaksi Arduino dan LabVIEW. Jakarta : PT. Elex Media
Komputindo.
[3] Valdez Jonathan, Becker Jared. 2015. “Understanding the I2C Bus”. USA : Texas Instrument. [4] Nanda Umakanta, Pattnaik Kumar Sushant. 2016. “Universal Asynchronous Receiver and
Transmitter (UART)”. 2016 3rd Internasional Conference on (Vol. 1, pp. 1-5). Institute of Electrical and Electronics Engineers (IEEE).
[5]
Kadir, Abdul. 2012. Panduan Praktis Mempelajari Aplikasi Mikrokontroler dan
Pemrogramannya menggunakan Arduino. Yogyakarta : Penerbit Andi
[6]
Cai, Jian & David Goodman. Oktober1997. General Packet Radio Service in GSM.
IEEE Communications Magazine vol.163, no.6804, pp. 122-131
[7]
PDM/PGI/02:2014. Buku Pedoman Pemeliharaan Trafo Arus (CT). Standar PT PLN
(Persero)
BAB III
METODOLOGI PENELITIAN
3.1
Umum
Pada Bab 3 ini dilakukan perancangan
Smart Power Meter
yang terintegrasi dengan
website melalui teknologi GPRS dengan tahap-tahap sebagai berikut :
a.
Membuat model sistem
Pada tahap ini dilakukan pembuatan model sistem
Smart Power Meter sehingga
didapatkan gambaran kebutuhan sistem yang akan dirancang, baik secara perangkat keras
maupun perangkat lunak.
b.
Kebutuhan sistem rancangan
Pada tahap ini dilakukan pemilihan perangkat yang sesuai dengan kebutuhan sistem
Smart Power Meter yang dirancang.
c.
Perancangan perangkat keras
Pada tahap ini dilakukan pengintegrasian perangkat-perangkat keras yang digunakan
pada perancangan. Perancangan perangkat ini terpusat pada Arduio sebagai kontroler.
d.
Perancangan perangkat lunak
Pada tahap ini dilakukan pembuatan program terhadap perangkat keras yang dirancang
3.2
Deskripsi Sistem
Smart Power Meter
Pada Tugas Akhir ini dirancang sebuah perangkat penghitung daya listrik yang
terintegrasi dengan
website melalui teknologi GPRS. Perangkat akan menghitung arus dan
tegangan dan memperoleh data keluaran berupa daya dan faktor daya. Pada sistem juga
terdapat Modul RTC sebagai pewaktu pada sistem. Gambar 10 menunjukkan diagram blok
Gambar 10
Diagram Blok Sistem
Pada saat sistem dimulai, Sensor CT (Current Transformator) dan PT (Potentian
Transformator) akan mengirim data arus dan tegangan yang telah dibaca menuju Arduino.
Proses pembacaan dilakukan terus menerus. Data-data tersebut akan diolah oleh Arduino
sehingga diperoleh hasil pengukuran daya listrik. Kemudian Arduino akan meminta nilai waktu
saat ini kepada RTC (Real Time Clock). Jika waktu pembacaan telah mencapai 10 menit,
Arduino akan mengirim data-data yang telah dibaca oleh sensor dan data pengolahan ke
website melalui Modul GPRS.
3.3
Kebutuhan Sistem Rancangan
Pada subbab 3.2 dijelaskan bahwa perancangan
Smart Power Meter
membutuhkan
perangkat keras yang terdiri dari Arduino, modul GPRS, sensor CT (Current Transformator),
sensor
PT (Potential Transformator), dan modul RTC. Maka, dibutuhkan pemilihan tipe
Gambar 11 Sistem Rancangan Keseluruhan Tampak Atas
[image:44.595.99.498.451.700.2]3.3.1
Arduino UNO
Arduino UNO adalah tipe jenis Arduino yang paling banyak digunakan. Arduino UNO
juga memiliki banyak dukungan pustaka dibandingkan jenis Arduino lainnya, sehingga
memudahkan dalam penggunaannya. Adapun spesifikasi singkat mengenai Arduino UNO
adalah sebagai berikut:
a.
Mikrokontroler
: ATmega328P
b.
Tegangan Operasional
: 5V
c.
Tegangan Masukan (direkomendasi)
: 7-12V
d.
Tegangan Masukan (batas)
: 6-20V
e.
Pin Digital I/O
: 44 (6 pin untuk keluaran PWM)
f.
Analog Input Pins
: 6
g.
Arus DC per I/O Pin
: 20 mA
h.
Arus DC for 3.3V Pin
: 50 mA
i.
Memori Flash
: 32 KB (0.5 KB untuk bootloader)
j.
SRAM
: 2 KB
k.
EEPROM
: 1 KB
l.
Clock Speed
: 16 Mhz
Berdasarkan Subbab 3.2, Sistem yang dirancang cukup sederhana, dimana terdiri dari
sensor Arus, sensor Tegangan, modul RTC, dan modul GPRS . Sehingga Arduino UNO dapat
dipilih sebagai pusat kontrol sistem. Gambar Arduino UNO dapat dilihat pada Gambar 12 pada
kotak berwarna jingga.
3.3.2
Sensor Current Transformator
Sensor arus yang digunakan adalah jenis sensor SCT-013-000. Sensor SCT-013-000
dapat membaca Arus sampai dengan 100 Ampere. Sehingga dapat digunakan untuk mengukur
arus diseluruh rumah. Sama seperti sensor CT lainnya, Sensor SCT-013-000 tidak perlu
membongkar rangkaian listrik yang akan diukur daya listriknya. Sensor SCT-013-000 memiliki
penjepit, sehingga hanya perlu meletakkan penjepit ke salah satu kabel untuk pengukuran arus.
Gambar sensor SCT-013-000 dapat dilihat pada Gambar 11 pada kotak berwarna biru.
Keluaran dari sensor SCT-013-000 berupa sinyal analog. Keluaran sinyal analog tersebut
sensor yaitu 100 A arus sebanding dengan 50 mA keluaran sensor.
Karena keluaran dari sensor berupa sinyal analog, sehingga terdapat tegangan yang
bernilai negatif. Pada Arduino, tegangan negatif tidak dibaca oleh pin ADC, sehingga dapat
berpengaruh pada pembacaan sensor. Oleh karena itu dirancang suatu rangkaian yang dapat
mengubah range tegangan keluaran dari sensor ke range tegangan yang dapat dibaca oleh pin
Arduino (dalam hal ini yaitu 0 Volt sampai dengan 5 Volt). Gambar 13 merupakan rangkaian
[image:46.595.173.416.289.463.2]skematik sensor SCT-013-000.
Gambar 13
Rangkaian Skematik Sensor SCT-013-000
3.3.2.1
Kalibrasi Sensor Arus
Pada perolehan data arus yang dibaca, digunakan library “Emonlib.h”. Pada library ini,
untuk memperoleh data arus, dibutuhkan nilai kalibrasi pada program pembacaan arus. Nilai
kalibrasi diperoleh berdasarkan rangkaian pengubah tegangan pada gambar 13.
Pada perancangan, sensor Arus SCT-013-000 memiliki spesifikasi dengan nilai arus
maksimum yang dibaca yaitu 100A. Untuk memperoleh nilai kalibrasi, terlebih dahulu
dihitung peak-current (arus puncak) dari sensor. Berikut adalah perhitungan dari arus puncak
sensor arus.
Setelah mengetahui arus puncak dari sensor, dilakukan perhitungan nilai keluaran dari
arus berdasarkan kumparan dari sensor. Dalam hal ini, besar kumparan dari sensor
SCT-013-000 adalah sebanyak 2SCT-013-000 kumparan.
i sensor = i measured / nb_turns =
. A /
= .
A
(10)
Setelah mengetahui besar keluaran dari sensor arus, diperlukan mengubah keluaran
tersebut dalam bentuk tegangan, dikarenakan Arduino hanya dapat membaca nilai tegangan.
Oleh karena itu, pada rangkaian skematik sensor terdapat Burden. Penentuan
Resistor-Burden tersebut berdasarkan perhitungan sebagai berikut :
� burden = U sensor /I sensor = . V / .
A = . Ω
(11)
Nilai U(sensor) pada persamaan diatas, diperoleh berdasarkan tegangan pada Arduino.
Arus keluaran dari sensor SCT-013-000 adalah berupa sinyal analog, sehingga memiliki nilai
negatif, oleh karena itu nilai 0V pada arus harus diubah ke tegangan tengah yang dibaca pada
Arduino yaitu dengan rumus :
Max_accepted_voltage / = V / = . V
(12)
Setelah di peroleh besar Resistor-Burden, diperoleh nilai kalibrasi sensor yaitu dengan
perhitungan :
calibration_value = i measured / i sensor / R burden
(13)
calibration_value =
. A / .
A / Ω
(14)
calibration_value =
/ Ω =
(15)
Nilai kalibrasi sensor arus yang diperoleh yaitu 60. Nilai kalibrasi tersebut dimasukkan
pada program pembacaan sensor arus.
3.3.3
Sensor Potential Transformator
Sensor tegangan yang digunakan adalah sebuah transformator
Step-Down dengan
rangkaian pengubah. Transformator Step-Down adalah transformator yang dapat menurunkan
tegangan yang dapat dibaca oleh Arduino. Transformator
Step-Down
yang digunakan pada
perancangan yaitu transformator dengan keluaran maksimal 1 A dan menurunkan tegangan dari
220V ke 9V.
Sama dengan sensor CT, keluaran dari sensor Potential Transformator juga berupa sinyal
analog. Oleh karena itu dibutuhkan suatu rangkaian pengubah range tegangan keluaran dari
sensor ke range tegangan yang dapat dibaca oleh Arduino. Gambar Transformator
Step-Down
dan Rangkaian pengubah tegangannya dapat dilihat pada gambar 11 pada kotak berwarna
[image:48.595.211.416.302.452.2]merah dan gambar 14.
Gambar 14
Rangkaian Skematik Sensor Potential Transformator
3.3.3.1
Kalibrasi Sensor Tegangan
Berbeda dengan kalibrasi pada sensor SCT-013-000, perhitungan nilai kalibrasi
berdasarkan nilai Resistor-Burden. Pada kalibrasi sensor tegangan, penentuan nilai kalibrasi
dilakukan dengan menggunakan Voltmeter. Nilai kalibrasi diubah berdasarkan nilai tegangan
yang dibaca oleh sensor. Percobaan perbandingan antara nilai kalibrasi dengan pembacaan
pada Voltmeter dilakukan sebanyak 10 kali, Sehingga nilai kalibrasi yang diperoleh pada
perancangan yaitu 235. Nilai kalibrasi tersebut dimasukkan pada program pembacaan sensor
3.3.4
Modul RTC DS3231
Modul RTC DS3231 menggunakan IC DS-3231 yang merupakan komponen elektronika
yang sangat presisi dalam menghitung waktu. Dengan baterai Lithium Rechargeable LIR2032
yang akan menjaga modul tetap bekerja pada saat catu daya tidak tersambung, modul ini dapat
berfungsi sebagai penjejak waktu (time tracking device) yang dapat bertahan hingga
bertahun-tahun. Modul ini dilengkapi dengan keping memori AT24C32 dengan kapasitas penyimpanan
sebesar 32 Kb, berguna untuk menyimpan data. Gambar 11 kotak berwarna coklat
menunjukkan tampilan dari modul RTC DS3231.
Pemilihan modul RTC dengan tipe ini didasarkan dengan kemampuannya yang cukup
handal. Selain itu, kemudahan dalam koneksi dengan Arduino melalui protokol I2C juga
menjadi alasan dipilihnya modul RTC DS3231. Pustaka yang banyak memudahkan
pemrograman modul RTC ini.
3.3.5
Modul GPRS SIM900
Modul ini mendukung komunikasi dual band pada frekuensi 900 / 1800 MHz (GSM900
dan GSM1800) sehingga fleksibel untuk digunakan bersama kartu SIM dari berbagai operator
telepon seluler di Indonesia. Operator GSM yang beroperasi di frekuensi dual band 900 MHz
dan 1800 MHz sekaligus. Gambar 11 kotak berwarna kuning menunjukkan tampilan modul
GPRS SIM900.
Spesifikasi SIM900:
a.
GPRS multi-slot class 10/8, kecepatan transmisi hingga 85.6 kbps (downlink)
b.
GPRS mobile station class B
c.
Class 4 (2 W @ 900 MHz)
d.
Class 1 (1 W @ 1800MHz)
e.
SMS (Short Messaging Service)
f.
MMS (Multimedia Messaging Service)
g.
Pengendalian lewat perintah AT Command
h.
Rentang catu daya antara 7 Volt hingga 12 Volt DC
i.
Konsumsi arus sebesar 1 mA pada mode tidur (sleep mode)
j.
Rentang suhu operasional: -40 °C hingga +85 °C
Pemilihan SIM900 didasarkan pada fiturnya yang sesuai dengan kebutuhan sistem
absensi dan kemudahan dalam koneksi dengan Arduino UNO selaku pusat kontrol dalam
sistem yang dirancang. Selain itu, penggunaan AT command dan dukungan pustaka yang luas
yang juga memudahkan dalam pemrograman perangkat.
3.4
Perancangan Perangkat Keras
Pada perancangan Smart Power Meter menggunakan perangkat keras berupa Arduino
UNO, modul RTC (Real Time Clock) DS3231, Modul GPRS SIM900, sensor CT (Current
Transformator), dan sensor PT (Potential Transformator). Gambar 15 menunjukkan rangkaian
[image:50.595.130.528.326.609.2]skematik dari perangkat keras secara keseluruhan.
Berikut adalah penjelasan rangkaian gambar 15 :
1.
Arduino UNO bertugas sebagai pusat kontrol sistem yang akan mengolah data. Arduino
UNO mendapat catuan daya melalui Adapter 9V.
2.
Modul RTC DS3231 berkomunikasi dengan Arduino UNO dengan protocol I2C
(Inter-Intergrated Circuit). Protokol ini menggunakan dua buah pin, yaitu SCK dan SDA.
Pada Arduino UNO, protokol ini terletak pada pin A4 dan A5. Pin VCC pada modul ini
dihubungkan dengan 5V pada board Arduino UNO. Sedangkan pin GND dihubungkan
ke pin GND pada board Arduino UNO.
3.
Modul GPRS SIM900 berkomunikasi secara serial dengan Arduino UNO. Akan tetapi,
modul ini tidak terhubung dengan hardware serial dari Arduino UNO, melainkan secara
software serial. pin yang digunakan pada modul ini yaitu pin TX dan pin RX.
Pin-pin tersebut terhubung ke Pin-pin 6 dan Pin-pin 7 pada Arduino UNO. Sama seperti
sebelumnya, pin VCC dan GND terhubung ke pin 5V dan pin GND pada Arduino
UNO.
4.
Sensor CT terhubung ke Arduino UNO sebagai input. Pin yang digunakan untuk sensor
CT yaitu pin A2, karena keluaran dari sensor CT yaitu berupa sinyal analog.
5.
Seperti halnya sensor CT, Sensor PT juga terhubung ke Arduino UNO sebagai input.
Pin yang digunakan untuk sensor PT yaitu pin A1.
3.5
Perancangan Perangkat Lunak
3.5.1
Perancangan Program Arduino
Pada perancangan program Arduino, perangkat lunak yang digunakan adalan Arduino
IDE. Perangkat lunak ini digunakan untuk memprogram
board Arduino, sehingga dapat
memberikan perintah pada Arduino UNO. Gambar 16 adalah diagram alir dari perintah
Pertama, program akan melakukan memperoleh data RTC dari NTP
server. Lalu
melakukan inisialisasi perangkat RTC dan GPRS. Setelah inisialisasi selesai, Arduino akan
langsung membaca sensor tegangan dan sensor arus, dan faktor daya. Lalu dilakukan
pengolahan agar diperoleh besar daya. Setelah besaran-besaran telah didapat, Arduino akan
melakukan pemeriksaan apakah waktu pembacaan telah mencapai waktu 10 menit. Jika belum,
maka Arduino akan kembali melakukan pembacaan sensor terus-menerus sampai waktu
pembacaan mencapai waktu 10 menit. Jika telah sampai 10 menit, sensor akan menyimpan
hasil pembacaan ke EEPROM dan menjumlahkan hasil pembacaan saat ini dengan hasil
pembacaan sebelumnya. Setelah itu program melakukan pemeriksaan kembali apakah hari
sudah berganti. Jika belum, Arduino akan mengirim data arus, tegangan, energy, dan faktor
daya ke web. Jika hari sudah berganti, maka Arduino akan me-load data pada EEPROM dan
mengirim data tersebut ke web, lalu mengirim data arus, tegangan, energy, dan faktor daya juga
ke web. Lalu program kembali ke awal. Perintah-perintah tersebut dilakukan secara
berulang-ulang sampai catu daya pada Arduino dilepas.
Pada saatt pengiriman data ke web, Arduino akan melakukan pembacaan respon dari
web. Jika respon dari web adalah “Data Sukses” maka pengiriman dan penyimpanan data ke
database berhasil, sedangkan jika respon dari web adalah “Error” maka penyimpanan data ke
database gagal. Arduino akan membaca respon tersebut dan menyimpan data tersebut kedalam
sebuah array. Lalu Arduino akan memeriksa array tersebut, sehingga Arduino akan tahu apakah
data gagal terkirim/tersimpan atau tidak. Jika gagal terkirim Arduino akan mengirim kembali
data. Delay waktu tunda pembacaan respon oleh Arduino yaitu 10 detik. Sehingga, jika server
down lebih dari 10 detik Arduino akan menganggap pengiriman data gagal dan akan melakukan
pengiriman ulang data. Banyaknya percobaan pengiriman data yaitu sebanyak 3 kali. Jika
percobaan pengiriman data telah dilakukan sebanyak 3 kali, Arduino tidak mengirim data
(16)
3.5.1.1
Perhitungan Faktor Daya
Nilai faktor daya diperoleh dari pembagian antara real_power dengan apparent_power.
Nilai apparent_power diperoleh dari perkalian nilai yang dibaca oleh sensor arus dan sensor
tegangan (Irms x Vrms). Sedangkan nilai
real_power diperoleh dari perkalian nilai tegangan
saat ini dan nilai arus saat ini yang dibaca oleh sensor (I x V). Kedua hasil tersbut kemudian
dibagi untuk mendapatkan nilai faktor daya. Berikut adalah rumus menentukan nilai faktor
daya.
Faktor Daya = cos � =
�
�
Dimana :
P = Real Power (Daya Aktif) (Watt)
S = Apparent Power (Daya Nyata) (VA)
Gambar 17 Rumus perhitungan Faktor Daya pada library Emonlib.h
Berdasarkan gambar 17, realPower (P) diperoleh dari perkalian V_Ratio, I_Ratio, jumlah
akumulator untuk perhitungan daya (sump) dan dibagi dengan jumlah sampel yang diambil.
V_Ratio dan I_Ratio diperoleh dari nilai ADC (Analog to Digital Converter) dari pin Arduino
yang dibaca. Sedangkan untuk apparentPower (S), diperoleh dari perkalian Vrms dengan Irms.
Nilai Vrms dan Irms diperoleh dari nilai RMS (Root Mean Square) pada nilai ADC dari pin
Arduino.
Pada sisi program Arduino, perhitungan nilai faktor daya terdapat pada library
pemanggilan fungsi emon1.powerfactor.
3.5.2
Perancangan Sisi Server
Pada bagian perancangan server, akan dibahas perancangan halaman
web
untuk
menerima data yang dikirim oleh Arduino dan menyimpan data tersebut ke database, halaman
monitoring dari setiap parameter yang dapat diakses oleh pengguna untuk melihat data-data
yang dikirim secara
real-time. Diagram blok bagian perancangan server dapat dilihat pada
gambar 18.
Gambar 18 Diagram Blok Bagian Server
3.5.2.1
GET-Method Page
Halaman web dirancang khusus untuk menerima data yang telah dikirim oleh Arduino
untuk kemudian disimpan ke dalam database. Halaman web dibuat dengan menggunakan PHP
script yang menerima data-data sesuai dengan format di dalam PHP script. Urutan proses yang
dilakukan oleh PHP script ini adalah pertama, memperoleh akses ke database yang telah dibuat
dengan memberikan nama
database, alamat
database, password
database, dan nama tabel
yang diakses. Setelah terhubung ke database, selanjutnya data-data yang diterima dari Arduino
akan dipecah sesai dengan nama variable dan nilainya, kemudian akan dimasukkan ke dalam
database tersebut.
Pada perancangan ini digunakan metode GET karena data yang dikirim tidak besar dan
tidak bersifat sensitif. Pada metode GET, untuk mengirim data ke
server, perlu ditambahkan
karakter “?” ke dalam URL utama. Untuk menggunakan metode GET, kita dapat mengetik pada
http://202.0.107.165:16180/getdata.php?variabel1=value1&variabel2=value2&..
Dimana:
http://202.0.107.165:16180 : alamat server yang akan diakses
getdata.php? : alamat url untuk PHP script GET-Method
variabel1=value1 : merupakan nama variabel yang digunakan dan nilai dari variabel
tersebut. Jika data yang dikirim lebih dari satu variabel, maka perlu dipisah dengan
karakter ‘&’ seperti contoh diatas.
3.5.2.2
MYSQL Database
MYSQL database digunakan untuk menyimpan data-data yang telah dikirim sehingga
dapat dipakai dan diolah. Database yang dirancang memiliki tiga tabel. Berikut adalah daftar
tabel dan nama kolom dari database yang dirancang:
Gambar 19
Daftar table dan kolom pada database
Berikut adalah penjelasan dari masing-masing tabel:
1.
Tabel data2 berfungsi sebagai tabel database penyimpanan data harian penggunaan daya.
Sehingga hanya dibutuhkan dua buah kolom yaitu kolom tanggal sebagai tempat
menyimpan data tanggal pengiriman data dan kolom daya sebagai tempat menyimpan data
daya. Data daya pada tabel ini dibuat bersifat kontinyu sehingga nilai data akan terus
2.
Tabel daya2 berfungsi sebagai tabel utama, yaitu sebagai penyimpanan data-data yang
dibutuhkan dalam perancangan
Smart Power Meter. Kolom-kolom yang terdapat pada
tabel daya2 yaitu id, tanggal, jam, daya, volt, amp, dan pf. Kolom id berfungsi sebagai
penghitung dari banyaknya data. Kolom tanggal dan jam berfungsi sebagai tempat
penyimpanan waktu dan tanggal pengiriman data. Kolom daya berfungsi sebagai
penyimpanan data wattHour. Berbeda dengan tabel sebelumnya, pada tabel ini data pada
kolom daya akan direset setiap waktu
update tabel. Kolom volt berfungsi sebagai
penyimpanan data tengangan yang dibaca. Kolom amp berfungsi sebagai penyimpanan
data arus. Sedangkan kolom pf sebagai penyimpanan data factor daya yang dibaca.
3.
Tabel dayatemp berfungsi sebagai penyimpanan data-data dari tabel daya2 sementara.
Data pada daya temp akan selalu di-update pada keadaan tertentu. Penjelasan lebih lanjut
mengenai fungsi tabel ini dapat dilihat pada subjudul 3.5.2.3.
3.5.2.3
Halaman Monitoring
Halaman
monitoring digunakan oleh pengguna untuk melihat data-data yang telah
disimpan ke dalam database. Halaman
web
ini dapat diakses melalui
web browser computer
maupun smartphone. Halaman web disimpan pada sebuah server. Halaman monitoring terdiri
dari beberapa halaman web, yaitu halaman monitoring daya, halaman monitoring arus, halaman
monitoring
tegangan, halaman
monitoring faktor daya, dan halaman monitoring tabel.
Halaman
monitoring daya, arus, tegangan, dan faktor daya menampilkan data berupa grafik
dari masing-masing parameter. Sedangkan halaman
monitoring
tabel menampilkan besar
konsumsi daya, dan waktu dalam bentuk tabel, serta berisi total penggunaan daya pada hari
yang ditentukan.
Untuk mengakses halaman
monitoring, pertama pengguna akan diminta
input tanggal
dari hari yang ingin dilihat penggunaan daya. Lalu pengguna akan diminta memilih halaman
monitoring tegangan, halaman monitoring faktor daya, dan halaman monitoring tabel.
Data-data pada halaman monitoring diambil dari Data-database. Tabel Data-database yang diambil yaitu tabel
dayatemp. Tabel dayatemp berisi data-data pada tanggal yang di-input. Pertama, halaman
monitoring akan melakukan pengkosongan table dayatemp. Lalu melakukan penyalinan semua
data pada tabel daya2 ke tabel dayatemp. Setelah melakukan penyalinan, lalu dilakukan
penyaringan data pada tabel dayatemp dimana menghapus semua data pada kolom tanggal
dimana data yang tidak sama antara data kolom tanggal pada tabel dayatemp dengan tanggal
[image:58.595.266.351.303.651.2]yang di input di awal. Gambar 20 menunjukkan diagram alir halaman monitoring.
BAB IV
PENGUJIAN DAN ANALISIS
4.1
Pengujian Koneksi Arduino dengan RTC
Pengujian koneksi Arduino dengan RTC menggunakan Arduino UNO, RTC DS3231, dan
perangkat lunak Arduino IDE. Data pembacaan waktu akan dilihat pada
serial monitor pada
serial monitor Arduino IDE. Data waktu tersebut akan dibandingkan dengan waktu pada
[image:59.595.115.477.283.663.2]komputer.
Pengujian koneksi Arduino dengan RTC dilakukan dengan meng-upload program yang telah
ada di pustaka DS3231.h. Program ini bermaksud untuk membaca dan menampilkan data
[image:60.595.123.472.157.556.2]waktu yang ada di modul RTC DS3231 di serial monitor.
Gambar 22 Hasil Percobaan koneksi Arduino dengan RTC
Pada gambar 22 menunjukkan serial monitor menampilkan data waktu dengan format
hari/bulan/tahun dan jam:menit:detik. Pada gambar 22 juga terlihat waktu yang terdapat pada
komputer menunjukkan tidak ada selisih yang signifikan antara waktu RTC dengan waktu yang
ditampilkan oleh komputer. Waktu pada komputer terhubung ke NTP Server dari windows
4.2
Pengujian Koneksi RTC dengan NTP Server
Pengujian koneksi RTC dengan NTP Server menggunakan Arduino UNO, RTC DS3231,
SIM900 dan perangkat lunak Arduino IDE. Data pembacaan waktu akan dilihat pada
serial
[image:61.595.120.470.192.587.2]monitor pada serial monitor Arduino IDE.
Gambar 23 Hasil Koneksi RTC dengan NTP Server
4.3
Pengujian Koneksi Arduino dengan Modul GPRS SIM900
Pengujian koneksi Arduino dengan Modul GPRS SIM900 menggunakan Arduino UNO,
Modul SIM900, kartu SIM yang mendukung GSM/GPRS dan perangkat lunak Arduino IDE.
[image:62.595.120.478.178.560.2]Data hasil pengujian akan dilihat pada serial monitor.
Gambar 24 Source Code Pengujian Koneksi Arduino dengan Modul GPRS SIM900
Pengujian koneksi Arduino dengan SIM900 dilakukan dengan memberikan input kepada
SIM900 melalui komunikasi secara serial. SIM900 bekerja berdasarkan AT command yang
di-input-kan oleh user ke Arduino. SIM900 hanya mengenali AT command sesuai dengan
Gambar 25
Hasil Pengujian Koneksi SIM900 dengan Arduino
Pada Gambar 25 terlihat status koneksi antara SIM900 dengan Arduino UNO yang
menunjukkan kondisi “OK”. Kondisi ini menunjukkan adanya komunikasi antara dua
perangkat keras tersebut.
4.4
Pengujian dan Analisis sensor CT (
Current Transformator
)
Pengujian koneksi Arduino dengan Modul GPRS SIM900 menggunakan Arduino UNO,
sensor CT (Current
Transformator), dan perangkat lunak Arduino IDE. Data hasil pengujian
Gambar 26 Pengujian Sensor CT pada KWH Meter
Pengujian dilakukan dengan meng-upload program pembacaan arus pada Arduino
UNO. Sebelum meng-upload program, terlebih dahulu di input nilai kalibrasi yang diperoleh
pada Sub-Bab 3.3.2.1. Nilai kalibrasi untuk system yang dirancang yaitu 60. Selain nilai
kalibrasi, nilai sampling juga diubah. Nilai sampling dapat diatur sendiri, tetapi jika nilai
sampling terlalu kecil, nilai menjadi tidak akurat, sedangkan jika nilai sampling terlalu besar,
Gambar 28 Hasil Pengujian sensor Arus pada Komputer
Dari gambar 28 dan gambar 29 menunjukkan hasil pengujian menunjukkan bahwa nilai
yang dibaca pada serial monitor dengan clampmeter tidak memiliki perbedaan yang signifikan.
Perbedaan terdapat pada nilai dibelakang koma dikarenakan Arduino UNO membaca nilai
dengan 2 nilai dibelakang koma, sedangkan pada clampmeter membaca dengan 1 nilai
dibelakang koma.
[image:66.595.214.381.496.735.2]4.5
Pengujian dan Analisis sensor PT (
Potential Transformator
)
Pengujian koneksi Arduino dengan Modul GPRS SIM900 menggunakan Arduino UNO,
sensor PT (Potential Transformator), dan perangkat lunak Arduino IDE. Data hasil pengujian
[image:67.595.190.434.478.739.2]akan ditampilkan pada serial monitor Arduino IDE.
Gambar 30 Pengujian Sensor PT (Potential Transformator)
Pengujian dilakukan dengan meng-upload program pembacaan tegangan pada Arduino
UNO. Sebelum meng-upload program, terlebih dahulu di input nilai kalibrasi yang diperoleh
pada Sub-Bab 3.3.3.1. Nilai kalibrasi untuk sistem yang dirancang yaitu 235.
Gambar 32 Hasil pembacaan sensor tegangan pada Serial Monitor
[image:68.595.201.395.66.333.2]Dari gambar 32 dan gambar 33, diperoleh hasil pengujian menunjukkan bahwa nilai
yang dibaca pada serial monitor dengan clampmeter/multimeter tidak memiliki perbedaan yang
signifikan. Perbedaan terdapat pada nilai dibelakang koma dikarenakan Arduino UNO
membaca nilai dengan 2 nilai dibelakang koma, sedangkan pada clampmeter membaca dengan
1 nilai dibelakang koma.
4.6
Pengujian Pengiriman Data ke Web
Pengujian pengirim data ke web membutuhkan semua komponen perangkat keras dari
system yang dirancang. Komponen-komponen tersebut yaitu Arduino UNO, Modul GPRS
SIM900, Modul RTC DS3231, Sensor CT (Current Transformator), dan Sensor PT (Potential
Transformator). Pengujian dilakukan dengan melihat proses pengiriman data pada serial
monitor dan juga membandingkan data pada database sebelum dan sesudah pengiriman.
Dari hasil pengujian pengiriman data ke web, diperoleh bahwa data yang dikirim ke web
berhasil tersimpan ke database. Data yang dikirim pada proses pengiriman (Gambar 34) yaitu :
d (daya)
: 6.86
a (arus)
: 0.07
v (tegangan)
: 199.50
p (faktor daya)
: 0.72
[image:69.595.88.504.299.665.2]
t (tanggal)
: 2017-03-16
j (jam)
: 09:20:00
Sedangkan data pada database (Gambar 32), pada baris terakhir menunjukkan data yang
dikirim oleh Arduino sesuai dengan data pada website. Nilai arus, daya tegangan, faktor daya,
[image:70.595.77.519.158.400.2]tanggal, dan jam tersimpan pada kolom yang sesuai pada database.
Gambar 35 Kondisi database
4.7
Analisis Hasil Pengukuran Sistem
4.7.1
Hasil Pengukuran
Pengukuran dilakukan dengan menggunakan Clampmeter/Multimeter. Pengukuran
dilakukan sebanyak 10 kali. Parameter yang diambil yaitu nilai Arus (Ampere) dan Tegangan
(Volt). Nilai Arus dan Tegangan pada modul yang dirancang dibaca melalui serial monitor dan
dicatat. Sedangkan untuk nilai pada clampmeter/multimeter diambil saat pengambilan data
pada sensor. Tabel 2 merupakan hasil pengambilan data modul dan clampmeter/multimeter.
No Percobaan Modul yang Dirancang Percobaan dengan Clampmeter
Arus (Amp) Tegangan (V) Jam Arus (Amp) Tegangan (V) Jam
1 5,34 197,36 15:30 5,3 196 15:30
2 5,65 196,99 15:40 5,6 196 15:40
3 5,7 197,39 15:50 5,6 197 15:50
4 5,64 197,37 16:00 5,6 197 16:00
5 0,82 202,08 16:10 0,8 202 16:10
6 0,88 201,86 16:20 0,9 203 16:20
7 1,02 202,83 16:30 1 202 16:30
8 0,69 203,23 16:40 0,7 202 16:40
9 0,67 203,23 16:50 0,6 202 16:50
10 0,76 203,98 17:00 0,7 202 17:00
4.7.2
Perbandingan Arus pada Modul yang Dirancang dengan Arus pembacaan
Clampmeter
Hasil pembacaan Arus pada modul yang dirancang dan pembacaan Arus pada
[image:71.595.200.396.446.652.2]Clampmeter dapat dilihat pada tabel 3.
Tabel 3 Tabel Pembacaan Arus
No Arus pada Modul (Amp)
Arus pada Clampmeter
(Amp)
1 5,34 5,3
2 5,65 5,6
3 5,7 5,6
4 5,64 5,6
5 0,82 0,8
6 0,88 0,9
7 1,02 1
8 0,69 0,7
9 0,67 0,6
10 0,76 0,7
Setelah diperoleh data hasil pembacaan, maka dilakukan pengujian akurasi dari alat
yang dirancang. Penentuan akurasi menggunakan rumus sebagai berikut :
��� � � =
−
� � �Sehingga diperoleh tabel akurasi sebagai berikut :
Tabel 4 Tabel Akurasi Arus
No Arus pada Modul (Amp)
Arus pada Clampmeter
(Amp)
Akurasi (%)
1 5,34 5,3 ,
2 5,65 5,6 ,
3 5,7 5,6 ,
4 5,64 5,6 ,
5 0,82 0,8 ,
6 0,88 0,9 - ,
7 1,02 1,0 ,
8 0,69 0,7 - ,
9 0,67 0,6 ,
10 0,76 0,7 ,
Dari tabel 4 diperoleh akurasi dari pembacaan arus berkisar antara -2,27% sampai
dengan 10,44%. Hal tersebut dikarenakan pembacaan pada Clampmeter yang hanya memiliki
nilai satu digit dibelakang koma, sedangkan pada pembacaan Arduino memiliki nilai dua digit
dibelakang koma.
4.7.3
Perbandingan Tegangan pada Modul yang Dirancang dengan Tegangan
pembacaan Clampmeter/Multimeter
Hasil pembacaan tegangan pada modul yang dirancang dan pembacaan tegangan pada
[image:72.595.159.438.111.326.2]Clampmeter/multimeter dapat dilihat pada tabel 5.
Tabel 5 Tabel Pembacaan Tegangan
No Tegangan pada Modul (V)
Tegangan pada Clampmeter (V)
1 197,36 196
2 196,99 196
3 197,39 197
4 197,37 197
5 202,08 202
6 201,86 203
8 203,23 202
9 203,23 202
10 203,98 202
Setelah diperoleh data hasil pembacaan, maka dilakukan pengujian akurasi dari alat
yang dirancang. Penentuan akurasi menggunakan rumus sebagai berikut :
��� � � =
−
� � ��
×
(18)
Sehingga diperoleh tabel akurasi pada tabel 6.
Tabel 6 Tabel Akurasi Tegangan
No Tegangan pada Modul (V)
Tegangan pada Clampmeter
(V)
Akurasi
1 197,36 196 ,
2 196,99 196 ,
3 197,39 197 ,
4 197,37 197 ,
5 202,08 202 ,
6 201,86 203 - ,
7 202,83 202 ,
8 203,23 202 ,
9 203,23 202 ,
10 203,98 202 ,
Dari tabel 6 diperoleh akurasi dari pembacaan arus berkisar antara -0,56% sampai
dengan 0,97%. Hal tersebut dikarenakan pembacaan pada Clampmeter/Multimeter tidak
memiliki digit dibelakang koma, sedangkan pada pembacaan Arduino memiliki nilai dua digit
BAB V
KESIMPULAN DAN SARAN
5.1
Kesimpulan
Dari hasil pengujian dan implementasi yang telah dilakukan pada bab sebelumnya, maka
dapat diperoleh kesimpulan sebagai berikut:
1.
Data yang dikirim dapat diterima dan disimpan pada database, dan halaman monitoring
dapat menampilkan data hasil pembacaan.
2.
Akurasi dari pembacaan arus yang diperoleh yaitu berkisar antara -2,27% sampai dengan
10,44%.
3.
Akurasi dari pembacaan tegangan yang diperoleh yaitu berkisar antara -0,56% sampai
dengan 0,97%.
5.2
Saran
Beberapa saran yang dapat diberikan sehubungan dengan pelaksanaan tugas akhir ini
adalah sebagai berikut:
1.
Pada melakukan pengujian disarankan menggunakan clampmeter/multimeter yang lebih
akurat, dan memiliki tampilan hasil dengan nilai dibelakang koma yang lebih banyak.
2.
Pada perancangan sensor PT (Potential Transformator) disarankan menggunakan
Adaptor AC yang lebih bagus, karena pada Adaptor AC yang bagus memiliki filter sinyal
yang lebih baik.
3.
Untuk perancangan selanjutnya diharapkan dapat menghitung konsumsi listrik pada
jaringan listrik 3 fasa.
ϰ
BAB II
LANDASAN TEORI
2.1
Listrik
Listrik merupakan suatu muatan yang terdiri dari muatan positif dan muatan negatif,
dimana sebuah benda akan dikatakan memiliki energi listrik apabila suatu benda itu
mempunyai perbedaan jumlah muatan. Energi listrik banyak di gunakan untuk berbagai
peralatan atau mesin. Energi listrik tidak dapat dilihat secara langsung namun dampak atau
akibat dari energi listrik dapat dilihat seperti sinar atau cahaya bola lampu[1].
Satuan-satuan listrik yang paling umum kita gunakan sehari-hari adalah (ILR,2011) :
Tegangan listrik (voltage) dalam satuan volt (V)
Arus listrik (current) dalam satuan ampere (A)
Frekuensi (frequency) dalam satuan Hertz (Hz)
Daya listrik (power) dalam satuan watt (W) atau volt-ampere (VA) dan energi listrik
dalam satuan watt-hour (Wh) atau kilowatt-hour (kWh).
2.1.1
Daya Listrik
Untuk menghitung pemakaian listrik dapat dihitung dari daya listrik. Daya listrik
merupakan jumlah energi yang digunakan untuk melakukan kerja atau usaha. Dalam sistem
listrik arus bolak-balik, dikenal 3 jenis daya yaitu :
Daya Nyata ( simbol : S ; satuan : VA (Volt Ampere))
Daya Aktif (simbol : P ; satuan : W (Watt))
ϱ
(1)
Daya Aktif adalah daya yang digunakan untuk energi kerja sebenarnya. Daya inilah yang
dikonversikan menjadi energi tenaga (mekanik), cahaya atau panas. Satuan daya aktif adalah
watt.
Daya Reaktif adalah daya yang digunakan untuk pembangkitan fluks magnetik atau
medan magnet. Satuannya adalah VAR. contoh peralatan listrik yang memerlukan daya reaktif
adalah motor listrik atau dinamo, trafo, bola lampu konvensional dan peralatan listrik lain yang
menggunakan proses induksi listrik lilitan untuk operasinya.
Daya Nyata dengan satuan VA adalah total perkalian antara arus dan tegangan pada suatu
jaringan listrik atau penjumlahan dengan metode trigonometri dari daya aktif dan reaktif dalam
segitiga daya.
[image:76.595.229.394.419.577.2]Hubungan antara ketiga jenis daya ini dapat dilihat pada Gambar 1.
Gambar 1 Segitiga Daya Listrik
Dengan melihat hubungan ketiga daya tersebut. Rumus untuk daya nyata adalah
perkalian antara arus dan tegangan, yaitu :
� = � × �
ϲ
(2)
(3)
(4)
S = Daya Nyata (VA)
V = Voltage/Tegangan (Volt)
I = Arus (Ampere)
Sedangkan hubungan antara daya nyata dan daya aktif dapat dihitung dengan rumus
trigonometri sebagai berikut :
cos � =
�
�
� = � × cos �
Rumus untuk daya aktif adalah :
� = � × � × cos �
Dimana :
P = Daya Aktif (watt)
V = Tegangan (volt)
I = Arus (ampere)
cos �
= Faktor Daya
Faktor daya yang dinotasikan sebagai
cos φ
didefinisikan sebagai perbandingan antara
arus yang dapat menghasilkan kerja didalam suatu rangkaian terhadap arus total yang masuk
kedalam rangkaian atau dapat dikatakan sebagai perbandingan daya aktif (kW) dan daya semu
(kVA). Daya reaktif yang tinggi akan meningkatkan sudut ini dan sebagai hasilnya faktor daya
akan menjadi lebih rendah[1].
2.1.2
Biaya Pemakaian Listrik
Biaya listrik sangat tergantung dari jumlah pemakaian listrik (industri, bisnis, sosial, dan
ϳ
Tabel 1
Tarif Tenaga Listrik PLN Bulan Januari 2017
Sumber : www.pln.co.id
2.2
Arduino
Arduino didefinisikan sebagai sebuah
platform
elektronik yang
open source,
berbasis
pada
software
dan
hardware
yang fleksibel dan mudah digunakan, yang ditujukan untuk para
seniman, desainer,
hobbies,
dan setiap orang yang tertarik dalam membuat objek atau
lingkungan yang interaktif[2].
Nama Arduino di sini tidak hanya dipakai untuk menamai papan
rangkaiannya saja, tetapi
juga untuk menamai bahasa dan
software
pemrogramannya, serta lingkungan pemrogramannya
atau IDE-nya (IDE =
Integrated Development Environment
). Gambar 2 menunjukkan tampilan
ϴ
Gambar 2
Jenis-jenis Arduino
Kelebihan Arduino dari
platform
hardware
mikrokontroler lainnya adalah:
1.
IDE Arduino merupakan
multiplatform,
yang dapat dijalankan di berbagai sistem
operasi, seperti Windows, Macintosh, dan Linux.
2.
IDE Arduino dibuat berdasarkan pada IDE Processing, yang sederhana sehingga
mudah digunakan.
3.
Pemrograman Arduino menggunakan kabel yang terhubung dengan
port
USB,
bukan
port
serial. Fitur ini berguna karena banyak komputer yang sekarang ini tidak
memiliki
port
serial.
4.
Arduino adalah
hardware
dan
software open source.
5.
Biaya
hardware
cukup murah.
6.
Proyek Arduino ini dikembangkan dalam lingkungan pendidikan, sehingga bagi
pemula akan lebih cepat dan mudah mempelajarinya.
7.
Memiliki begitu banyak pengguna dan komunitas di internet yang dapat membantu
setiap kesulitan yang dihadapi.
2.2.1
Bahasa Pemrograman Arduino
Arduino merupakan perangkat yang berbasiskan mikrokontroler. Program Arduino
merupakan komponen yang membuat sebuah Arduino dapat bekerja. Arduino akan bekerja
ϵ
pemrograman Arduino menggunakan bahasa pemrograman C++ yang dikembangkan sesuai
dengan Arduino IDE (
Integrated development environment
).
2.2.1.1 Struktur
Setiap program dalam Arduino terdiri dari dua fungsi utama yaitu setup() dan loop().
Fungsi digambarkan sebagai kumpulan kode yang ditujukan untuk melaksanakan tugas tertentu
dan kode tersebut akan dijalankan ketika nama fungsi tersebut dipanggil di dalam program[5].
Instruksi yang berada dalam fungsi setup() dieksekusi hanya sekali, yaitu ketika Arduino
pertama kali dihidupkan. Biasanya instruksi yang berada pada fungsi setup() merupakan
konfigurasi dan inisialisasi dari Arduino. Instruksi yang berada pada fungsi loop() dieksekusi
berulang-ulang hingga Arduino dimatikan (catu daya diputus). Fungsi loop() merupakan tugas
utama dari Arduino. Jadi setiap program yang menggunakan bahasa pemrograman Arduino
memilliki struktur yang ditunjukkan pada Gambar 3.
Gambar 3
Struktur Umum Pemrograman Arduino
Program pada Gambar 3 dapat dianalogikan dalam bahasa pemrograman Arduino seperti
ditunjukkan pada Gambar 4.
ϭϬ
2.2.1.2 Konstanta
Konstanta adalah variabel yang sudah ditetapkan sebelumnya dalam bahasa
pemrograman Arduino. Konstanta digunakan agar program lebih mudah untuk dibaca dan
dimengerti. Konstanta dibagi menjadi 3 kelompok yaitu:
1.
Konstanta yang digunakan untuk menunjukkan tingkat logika (konstanta Boolean), yaitu
true
dan
false
.
2.
Konstanta untuk menunjukkan keadaan
pin
, yaitu HIGH dan LOW.
3.
Konstanta untuk menunjukkan fungsi
pin
, yaitu INPUT, INPUT_PULLUP, dan
OUTPUT.
Konstanta yang digunakan untuk menunjukkan benar atau salah dalam bahasa
pemrograman Arduino adalah
true
dan
false
. False didefinisikan sebagai 0 (nol).
True
sering
didefinisikan sebagai 1(satu), namun
true
memiliki definisi yang lebih luas. Setiap integer yang
bukan nol adalah
true
dalam pengertian Boolean.
Ketika membaca atau menulis ke sebuah
pin
digital, terdapat hanya dua nilai, yaitu HIGH
dan LOW. HIGH memiliki arti yang berbeda tergantung dengan konfigurasinya. Ketika
pin
dikonfigurasi sebagai masukan dengan fungsi pinMode(), mikrokontroler akan melaporkan
nilai HIGH jika tegangan yang ada pada
pin
tersebut berada pada tegangan 3 volt atau lebih.
Ketika sebuah
pin
dikonfigurasi sebagai masukan dan kemudian dibuat bernilai HIGH dengan
fungsi digitalWrite(), maka resistor
pull-up
internal dari
chip
ATmega akan aktif, yang akan
membawa
pin
masukan ke nilai HIGH, kecuali
pin
tersebut ditarik (
pull-down
) ke nilai LOW
oleh rangkaian dari luar. Ketika
pin
dikonfigurasi sebagai keluaran dengan fungsi pinMode()
dan diatur ke nilai HIGH dengan fungsi digitalWrite(), maka
pin
berada pada tegangan 5 volt.
Untuk mengkonfigurasi fungsi
pin
pada Arduino digunakan konstanta INPUT,
INPUT_PULLUP, dan OUTPUT.
Pin
Arduino yang dikonfigurasi sebagai masukan dengan
ϭϭ
sebagai masukan memiliki permintaan yang sangat kecil kepada rangkaian yang di-
sampling
-nya, setara dengan sebuah resistor 100 Megaohm dipasang seri dengan
pin
tersebut.
Chip
ATmega pada Arduino memiliki resisitor
pull-up
internal (resistor yang terhubung ke sumber
tegangan secara internal) yang dapat digunakan. Untuk menggunakan resistor
pull-up
internal
ini kita menggunakan konstanta INPUT_PULLUP pada fungsi pinMode().
Pin
yang
dikonfigurasi menjadi sebuah keluaran dikatakan berada dalam kondisi berimpedansi rendah.
2.2.2
Komunikasi Data
2.2.2.1 I2C
Inter Integrated Circuit (I
2C) bus
adalah standar antarmuka dua arah yang digunakan
sebuah pengontrol, dikenal sebagai master, untuk berkomunikasi dengan perangkat lain yang
terhubung dengannya. Perangkat lain tidak dapat mengirim data sebelum perangkat tersebut
diberi alamat atau sudah dikenal oleh master. Setiap perangkat yang terhubung dengan bus I
2C
memiliki alamat yang spesifik untuk membedakan dengan perangkat lainnya yang terhubung
dengan bus I
2C yang sama.
Bentuk fisik antarmuka I
2C terdiri dari jalur
serial clock (SCL)
dan
serial data (SDA).
Keduanya harus terhubung ke Vcc (sumber tegangan) melalui sebuah resistor
pull-up
.
Besar
resistor
pull-up
ditentukan oleh banyaknya kapasitas pada jalur I
2C.
I
2C merupakan protocol yang sangat popular dan handal yang digunakan untuk
komunikasi antar perangkat. Gambar 2.2.1 mengilustrasikan bagaimana beberapa perangkat
dapat saling berbagi bus yang terhubung ke prosesor hanya melalui dua kabel dan ini
merupakan suatu efisiensi yang diberikan oleh protokol ini [3].
2.2.2.2 UART
Universal Asynchronous Receiver/Transmitter (UART)
adalah sebuah rangkaian terpadu
(IC) yang deprogram untuk mengontrol sebuah antarmuka komputer dengan perangkat yang
ϭϮ
antarmuka RS-232C
Data Terminal Equipment (DTE)
yang membuat dapat saling
berkomunikasi dan bertukar data dengan perangkat serial lainnya [4].
2.3
GPRS
GPRS (
General Packet Radio Service
) merupakan salah satu metode protokol
pengiriman data seluler. Pada GPRS terdapat dua elemen baru yang diperkenalkan untuk
membuat mode transfer paket
end-to-end.
Sebagai tambahan, HLR dikembangkan dengan data
pelanggan GPRS dan informasi
routing.
Dua layanan yang dihasilkan yaitu
point-to-point
[image:83.595.115.482.301.540.2](PTP) dan
point-to-multipoint
(MTP)[6]. Gambar 5 menunjukkan arsitektur dari GPRS.
Gambar 5
Arsitektur GPRS
Routing
paket yang independen dan transfer di dalam
public land mobile network
(PLMN) didukung oleh sebuah node jaringan logika yang baru yang disebut GPRS
support
node
(GSN).
Gate-way GPRS support node
(GGSN) berperilaku sebagai sebuah
interface
logika ke jaringan data paket eksternal.
Serving GPRS support node
(SGSN) bertanggung
jawab atas pengiriman paket-paket ke MS dalam area layanannya. Dalam jaringan GPRS,
ϭϯ
Internet Protocol
(IP) digunakan sebagai
backbone
pengiriman PDU. Semua proses ditetapkan
sebagai
tunneling
pada GPRS. GGSN juga mempertahankan informasi
routing
yang
digunakan untuk menembus PDU ke SGSN secara langsung melayani MS. Keseluruhan data
pengguna yang berhubungan dibutuhkan oleh SGSN untuk menampilkan
routing
dan transfer
data secara fungsional ke dalam HLR.
2.4
Current Transformator
Trafo Arus (Current Transformator - CT) yaitu peralatan yang digunakan untuk
melakukan pengukuran besaran arus pada instalasi tenaga listrik disisi primer yang berskala
besar dengan melakukan transformasi dari besaran arus yang besar menjadi besaran arus yang
kecil secara akurat dan teliti untuk keperluan pengukuran dan proteksi. Current Transformator
akan menurunkan arus yang masuk dengan perbandingan tertentu.[7]
Seperti trafo yang lain,
Current Transformator
mempunyai lilitan primer, inti magnetik,
dan lilitan sekunder. Arus bolak-balik yang Mengalir di primer menghasilkan medan magnet
di inti, yang menginduksi arus di lilitan sekunder. Gambar 6 merupakan salah satu contoh
[image:84.595.216.415.510.658.2]Current Transformator.
ϭϰ
(5)
(6)
[image:85.595.217.413.92.201.2](7)
Gambar 7 Rangkaian pada Current Transformator
Untuk trafo arus yang dihubung singkat :
� . � = � . �
Untuk trafo arus pada kondisi tidak berbeban :
�
� =
�
�
Dimana :
� =
�
�
� > �
sehingga
� < �
�
= Jumlah lilitan primer
�
= Jumlah lilitan sekunder
2.5
Potential Transformator
Potential Transformator
atau Transformator tegangan
digunakan untuk menurunkan
tegangan dengan perbandingan transformasi tertentu. Transformator tegangan mempunyai
lilitan primer, inti magnetik, dan lilitan sekunder. Lilitan primer terhubung ke fasa dan
ground
.
ϭϱ
(8)
lebih sedikit dibandingkan dengan jumlah lilitan primernya. Gambar 7 merupakan gambar
[image:86.595.149.434.424.540.2]Potential Transformator.
Gambar 8
Potential Transformator (PT)
Prinsip kerja trafo tegangan adalah sebagai berikut:
Gambar 9 Prinsip Kerja Trafo Tegangan
Rumus perbandingan tegangan dengan jumlah lilitan pada te
gangan :
�
� =
�
� = �
Dimana :
�
= Perbandingan/Rasio Transformasi
ϭϲ
�
= Jumlah belitan primer
�
= Jumlah belitan sekunder
�
= Tegangan primer
ϭ
BAB I
PENDAHULUAN
1.1
Latar Belakang Penulisan
Pada saat ini, kemajuan dalam bidang teknologi semakin cepat dan canggih. Hal ini
sangat membantu manusia dalam memenuhi kebutuhan di zaman modern seperti ini. Kemajuan
ini juga berdampak pada penggunaan listrik yang juga akan semakin meningkat.
KWH meter adalah alat ukur untuk menghitung jumlah pemakaian energi listrik
pengguna dalam kurun waktu tertentu. Dalam perkembangannya KWH meter selain
menggunakan sistem analog juga menggunakan sistem digital (listrik prabayar).
Pada teknologi KWH meter saat ini, pengguna hanya disediakan informasi konsumsi
listriknya dalam kurun waktu satu bulan saja. Transpa