• Tidak ada hasil yang ditemukan

Perancangan Smart Power Meter Berbasis Arduino

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Smart Power Meter Berbasis Arduino"

Copied!
40
0
0

Teks penuh

(1)

ϱϱ

LAMPIRAN

Lampiran 1 : Tabel data hasil pembacaan

No Tanggal Jam Daya

(Watt)

Tegangan (Volt)

Arus (Ampere)

Faktor Daya

(2)

ϱϲ

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

(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)

ϴϰ

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=");

(31)

ϴϱ

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;

(32)

ϴϲ

}

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;

stringDATA.toCharArray(buff,200);

Serial.println(buff);

mySerial.println("AT+CSQ");

delay(1000);

ShowSerialData();

mySerial.println("AT+CGATT?");

delay(1000);

ShowSerialData();

mySerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");

delay(2000);

ShowSerialData();

mySerial.println("AT+SAPBR=3,1,\"APN\",\"internet\"");

delay(5000);

ShowSerialData();

mySerial.println("AT+SAPBR=1,1");

delay(2000);

ShowSerialData();

mySerial.println("AT+HTTPINIT");

delay(2000);

ShowSerialData();

mySerial.println(buff);

delay(5000);

ShowSerialData();

(33)

ϴϳ

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()

{

stringDATA2 = stringLINK2 + kwhtot + stringDATE + tanggal + stringEND;

stringDATA2.toCharArray(buff,200);

mySerial.println("AT+CSQ");

delay(100);

mySerial.println("AT+CGATT?");

delay(100);

mySerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");

delay(1000);

mySerial.println("AT+SAPBR=3,1,\"APN\",\"internet\"");

delay(4000);

mySerial.println("AT+SAPBR=1,1");

delay(2000);

mySerial.println("AT+HTTPINIT");

delay(2000);

mySerial.println(buff);

delay(2000);

ShowSerialData();

mySerial.println("AT+HTTPACTION=0");

delay(5000);

ShowSerialData();

(34)

ϴϴ

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 getrtctime()

{

mySerial.println("AT+CSQ");

delay(100);

ShowSerialData();

mySerial.println("AT+CGATT?");

delay(100);

ShowSerialData();

mySerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");

delay(1000);

ShowSerialData();

mySerial.println("AT+SAPBR=3,1,\"APN\",\"internet\"");

delay(4000);

ShowSerialData();

mySerial.println("AT+SAPBR=1,1");

delay(2000);

ShowSerialData();

mySerial.println("AT+SAPBR=2,1");

(35)

ϴϵ

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]);

}

(36)

ϵϬ

void ShowSerialData()

{

char data;

while(mySerial.available()!=0)

{

Serial.write(mySerial.read());

}

(37)

ϵϭ

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>

(38)

ϵϮ

<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 &copy; 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;

}

(39)

ϵϯ

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');

(40)

ϵϰ

$garis = new LinePlot($data_y);

$graph->Add($garis);

$garis->SetColor("#6495ED");

Referensi

Dokumen terkait

Since there is a potential increase in sediment deposition at the river mouth of Malili estuary, it is important to study the distribution of the bed

 menganalisis kesalahan pembuatan tabel colspan pada halaman web.  menyeleksi link relatif untuk

Puji dan syukur kehadirat Allah S.W.T yang telah memberikan rahmat dan hidayah-Nya sehingga dengan izin-Nya penulis dapat menyelesaikan skripsi ini yang berjudul “ANALISIS

Arsyad (2015:119) mengupkapkan bah- wa Flash Cards merupakan media yang ber- bentuk kartu bergambar yang digunakan un- tuk mendorong dan menstimulasi gagasan siswa,

Aplikasi - menerapkan Siswa mampu:  Menerapkan pengukuran besaran listrik Siswa mampu:  Menerapkan standarisasi dan normalisasi gambar teknik ketenagalistrikan

Tabel 5.1.. Pada tahun 2013 tingkat suku bunga mengalami peningkatan.Pada tahun ini terjadi 4 kali peningkatan tingkat suku bunga. Kenaikan pertama terjadi pada

Buku Kalender Hijriah Universal: Kajian atas Sistem dan Prospeknya di Indonesia karya Muh. Nashirudin merupakan penelitian disertasi yang diajukan untuk

Dengan ditetapkannya Peraturan Gubernur ini maka Peraturan Gubernur Kepulauan Bangka Belitung Nomor 17 Tahun 2011 tentang perubahan Atas Peraturan Gubernur Kepulauan