Monthly Archives: May 2014

Cametreon: Mengetahui biaya penggunaan listrik rumah. Powered by Arduino

Proyek Akhir Mata Kuliah IMK

Kelompok:

  • 18211004 – Subkhan Syarif
  • 18211008 – Aria Dhanang Dewangga
  • 18211015 – Fady Noor Ilmi
  • 18211035 – Raden Ryan Adi Wicaksana
  • 18211054 – Faris Taufiq Zakiy
  • 18211057 – Mekaputra Yudahandika

Latar Belakang

Proyek IMK yang kami buat kali ini diberi nama Cametreon (Catat Meter Real TIme Online). Kami membuat ini sebagai solusi untuk memudahkan penyedia jasa listrik rumah dalam mencatat penggunaan listrik. Saat ini untuk melakukan pencatatan penggunaan listrik rumah digunakan KWhmeter. Sayangnya pengumpulan data masih dilakukan secara manual, yaitu dengan mengirimkan petugas untuk terjun langsung datang ke rumah-rumah untuk mencatat nilai dari KWhmeter.

Produk yang Dibuat

Produk ini kami beri nama Cametreon. Fungsinya adalah untuk mencatat penggunaan listrik di rumah-rumah dan mengirimkannya langsung ke server milik PLN. Selain itu Cametreon juga menampilkan berapa biaya yang harus dibayar pelanggan.

Berikut adalah blok diagram Cametreon.

blok desain

Dalam tugas ini, pengiriman data disimulasikan melalui bluetooth yang dapat disambungkan ke komputer.

Prinsip Kerja

Cametreon dibagi menjadi dua fungsi utama yang diimplementasikan dengan dua buah Arduino Uno: reader dan logger.

1. Reader

arduino1 flowchart

Fungsi dari Arduino reader adalah untuk membaca penggunaan listrik. Caranya adalah dengan membaca putaran piringan (yang akan berputar sesuai dengan penggunaan. Pembacaan dilakukan dengan menggunakan sensor infra merah.

rangkaian cametreon.png

Pemutaran disc disimulasikan secara manual menggunakan tangan karena dalam tahap ini pengembangan Cametreon masih prototipe, belum dihubungkan ke listrik rumah sesungguhnya.

Besar listrik yang digunakan tergantung dengan berapa putaran piringan tersebut berputar. Kami menggunakan asumsi setiap penggunaan 1KW disc harus berputar 900 kali. Sehingga satu putaran akan dihitung sebagai 1KW/900 atau 0.0011KW.

Kemudian data yang didapatkan dikirimkan ke Arduino logger melalui koneksi kabel.

Ini adalah source code dari program Arduino reader.


#include <Wire.h>

int pd=2;                      //Photodiode to digital pin 2
int lamp=13;                   //piezo lamper to digital pin 13
int senRead=0;                 //Readings from sensor to analog pin 0
int limit=990;                 //Threshold range of an obstacle
byte x=0;

void setup()
{
Wire.begin();
pinMode(pd,OUTPUT);
pinMode(lamp,OUTPUT);
digitalWrite(pd,HIGH);       //supply 5 volts to photodiode
digitalWrite(lamp,LOW);      //set the lamplamper in off mode (initial condition)
Serial.begin(9600);          //setting serial monitor at a default baund rate of 9600
}
void loop()
{

Wire.beginTransmission(4);

int val=analogRead(senRead);  //variable to store values from the photodiode

Serial.println(val);          // prints the values from the sensor in serial monitor
if(val <= limit)              //If obstacle is nearer than the Threshold range
{
//digitalWrite(lamp,HIGH);     // lamper will be in ON state
x=1;
Wire.write(x);
//Serial.write("ON");
}
else if(val > limit)          //If obstacle is not in Threshold range
{
//digitalWrite(lamp,LOW);      //lamper will be in OFF state
//Serial.write("OFF");
x=0;
Wire.write(x);
}

Wire.endTransmission();
delay(20);
}

2.  Logger

Fungsi utama dari Arduino ini adalah menerima input data penggunaan listrik dari Arduino reader kemudian menampilkan biaya penggunaan melalui layar LCD.  Arduno ini selanjutnya mengirimkan data melalui bluetooth ke komputer yang sudah di-pair dengan sensor HC-05 yang tetempel di board Arduino.

arduino2 flowchart

Untuk menghitung harga digunakan harga Rp1.352 / KWh.

Berikut adalah kode program Arduino logger.

#include <Wire.h>
#include <LiquidCrystal.h>

//Buat LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const byte ROWS = 2; //four rows
const byte COLS = 16; //four columns

int fromArduino1=2;                      //Photodiode to digital pin 2
int lamp=13;                   //piezo buzzer to digital pin 13
int x=0;

//Buat ngitung kWh
int put = 0;
double kWh = 0.00;
double harga = 0.00;

// Buat Bluetooth
char val;  // Variable untuk menerima data dari bluetooth

void setup()
{

//Buat LCD
lcd.begin(COLS,ROWS);
lcd.print("horey");

Wire.begin(4);
Wire.onReceive(receiveEvent);

pinMode(fromArduino1,OUTPUT);
pinMode(lamp,OUTPUT);
Serial.begin(9600);          //setting serial monitor at a default baund rate of 9600
}
void loop()
{
harga = put*1.5022;
if(x == 1){
digitalWrite(lamp, HIGH);

// Ngitung
put++;

lcd.print("Tagihan Listrik:");
lcd.setCursor(0, 1);
lcd.print("Rp ");
lcd.print(harga);

delay(500);
}else{
digitalWrite(lamp, LOW);

lcd.print("Tagihan Listrik:");
lcd.setCursor(0, 1);
lcd.print("Rp ");
lcd.print(harga);

delay(20);
}
lcd.clear();
}

void receiveEvent(int howMany)
{
x = Wire.read();    // receive byte as an integer
Serial.println(x);         // print the integer
}

Alat dan Bahan yang Digunakan

Rangkaian

Berikut adalah rangkaian kedua Arduino dan komponen lainnya.

rangkaian hardware

Hasil

Cametreon berhasil dibuat. Sayangnya kami kurang mendokumentasikan. Sebelum ingat untuk memfoto produk ini kami malah membongkarnya 🙂

rangkaian cametreon.png

Ini adalah screenshot dari hasil pengiriman penggunaan listrik melalui bluetooth.

Screen Shot 2014-05-13 at 9.49.43

 Hambatan

  • Sensor Optocoupler medelak saat pertama kali dicoba. Hal ini terjadi karena kekurangtelitian kami dalam memasang rangkaian.
  • Lama mengerjakan bluetooth. Ternyata masalahnya ada di pin Tx dan Rx yang tertukar di program..
  • Membuat produk jadi indah, enak dipandang. Tidak enak juga menyebut rangkaian dan perkabelan sebagai sebuah produk, tanpa casing. Sehingga kami membuatkan casing dari kardus dan dibungkus oleh kertas warna.