Skip to main content

[Arduino Final Project] -- CAMETREON: Catat Meter Real Time Online



Selamat Siang,
Pada postingan kali ini kami akan membahas mengenai proyek Final Arduino kami untuk mata kuliah Interaksi Manusia dengan Komputer dan Antarmuka. Pak Soni memberikan tugas final Arduino yaitu untuk membuat proyek dimana harus ada dua buah Arduino yang dapat berinteraksi satu sama lain. Interaksi antar Arduino dapat dilakukan dengan berbagai macam cara, tergantung kebutuhan.
Setelah melakukan diskusi dan pertimbangan, kelompok kami memutuskan untuk membuat Pencatat kWh Meter Real Time. Yaitu alat yang dapat menampilkan jumlah penggunaan listrik di rumah baik berupa harga maupun daya yang dipakai secara real time.

IDE

Ide kami berangkat dari kenyataan di lapangan bahwa saat ini, pencatatan tagihan listrik dilakukan secara manual setiap bulan oleh petugas PLN yang datang ke setiap rumah. Hal ini tentu sangat tidak efektif dan memiliki kemungkinan tingkat error yang tinggi karena dijalankan oleh manusia. Pengguna juga tidak dapat mengetahui tagihan listrik yang harus dibayar sebelum pergi membayarnya.
Berangkat dari ide tersebut, kami berencana membuat alat yang terintegrasi dengan kWh meter yang dapat menampilkan jumlah tagihan listrik secara real time, serta dapat mengirim data penggunaan daya listrik ke database online untuk diproses lebih lanjut oleh pihak PLN.

BLOK DESAIN

Blok desain dari proyek yang kami kerjakan sebagai berikut:


Blok Desain Rangkaian
Penjelasan:


  • Pada kWh meter, terdapat sebuah kumparan yang selalu berputar ketika pengguna menggunakan listrik. Kumparan tersebut memiliki satu buah lubang yang cukup besar (kurang lebih muat dimasuki bolpoin) yang terletak pada sisi kumparan. Arduino akan membaca jumlah putaran kumparan tersebut dengan menggunakan sensor photodiode yang akan menangkap sinar infra merah. Prinsipnya, ketika sinar infra merah terhalang kumparan, Arduino tidak membaca apapun, sementara ketika sinar melewati lubang dan sampai pada sensor photodiode, maka Arduino akan membacanya sebagai satu putaran. Letak Arduino ini berada pada kWh meter.
  • Ketika putaran bertambah satu, maka Arduino mengirim data ke Arduino 2. Pada Arduino 2, data diolah dan ditampilkah di layar LCD dalam bentuk harga yang dapat dilihat langsung oleh pemilik rumah. Selain itu Arduino 2 juga meng-upload data ke internet yang akan diterima oleh serial monitor. Data yang di-upload tersebut kemudian dapat dikelola dan diolah seperti untuk membuat data statistik dan sebagainya. Arduino 2 terpisah dari Arduino pertama yaitu berada di rumah pengguna yang mudah dijangkau sehingga apabila pengguna sewaktu-waktu ingin melihat jumlah tagihan listriknya dapat langsung melihatnya dengan mudah.
INPUT & OUTPUT
Input dan Output proyek kurang lebih seperti berikut:

Spesifikasi Desain Proyek

Sebenarnya kami berencana membuat device yang dapat meng-upload data melalui koneksi internet. Akan tetapi, karena berbagai alasan seperti harga ethernet shield yang relative mahal, kami memutuskan untuk menggantinya dengan menggunakan bluetooth sebagai media untuk mengirim data. Nantinya, data dikirimkan dari Arduino 2 ke perangkat komputer dengan menggunakan koneksi bluetooth ini. Bluetooth kami pilih karena dapat mensimulasikan wireless seperti pada internet sehingga dapat menggambarkan apa yang kami inginkan.
Input berupa IR LED (LED Infra Merah) dan Photodiode yang akan membaca sinar IR tersebut.
Proses dilakukan di Arduino (baik Arduino 1 dan 2). Proses yang dilakukan berupa penghitungan jumlah putaran, konversi putaran ke daya, serta menghitung harga tagihan listrik.
Output ditampilkan di layar LCD berupa harga tagihan listrik pengguna. Serta ditampilkan di Serial monitor dari data pengiriman menggunakan Bluetooth.

Flowchart
Berikut flowchart softwarenya:

Arduino 1


Pada Arduino 1, proses yang terjadi adalah sebagai berikut:
  • Cek Photodiode, yaitu mengecek apakah sinar infra merah tertangkap oleh photodiode atau tidak.
  • Jika ada sinar infra merah tertangkap, maka Arduino 1 mengirim karakter penanda bahwa sinar tertangkap.
  • Data karakter tersebut dikirimkan melalui serial pin.

Arduino 2
Proses yang terdapat pada Arduino 2 adalah sebagai berikut:


  • Menerima data karakter dari Arduino 1. Karakter tersebut merupakan tanda bahwa telah tertangkap sinar infra merah.
  • Karakter tersebut menandakan bahwa sinar infra merah tertangkap photodiode. Hal ini menandakan bahwa piringan telah melalui satu putaran. Maka variable putaran ditambah satu.
  • Selanjutnya menghitung harga tagihan listrik berdasarkan jumlah putaran piringan dengan menggunakan perhitungan sebagai berikut:
Harga = Jumlah putaran / 900 * Rp 1.352,-
Sementara Rp 1.352,- didapat dari harga tarif tenaga listrik bersumber dari website pln.
  • Harga tersebut ditampilkan di layar LCD di rumah pengguna.
  • Selanjutnya variabel putaran tersebut dikirim via bluetooth ke suatu device (laptop)
  • Kemudian device menampilkannya di serial monitor.

Implementasi

Bahan

Berikut alat dan bahan yang diperlukan (Klik link untuk melihat gambar):



  • 2 buah Arduino Uno
  • Kable Jumper
  • 2 Buah Bread board
  • 2 buah Kabel Printer (penghubung arduino ke laptop)
  • 1 Buah Modul Bluetooth HC-05
  • 1 Buah Piringan (Kami menggunakan piringan CD/Compact Disk), Beri sedikit lubang/celah di bagian pinggir agar cahaya infra merah dapat tembus.
  • 1 Buah IR LED dan sensor photodiode. IR LED dan photodiode biasa menyatu dalam satu komponen seperti yang kami gunakan. Tetapi ada juga yang dijual terpisah seperti ini.
  • 1 Buah Layar LCD.

Rangkaian

Kemudian Susun menjadi rangkaian seperti berikut:

Untuk gambar di atas seharusnya pada breadboard yang atas terdapat modul bluetooth HC-05 yang terhubung dengan arduino yang atas, akan tetapi kami tidak menemukan modul tersebut di fritzing (aplikasi untuk membuat gambar rangkaian tersebut) dan kami belum sempat membuat gambarnya. Cara menghubungkan bluetooth HC-05 dengan arduino adalah sebagai berikut:
  • Kaki GND : Dihubungkan ke ground,
  • Kaki VCC: Dihubungkan ke 5V,
  • Kaki TX dan RX: masing-masing dihubungkan ke pin arduino. Pemilihan pin bebas.



Kode
Kemudian, ketik kode berikut:

Arduino 1

 #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);
 }  


Arduino 2
 #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
  }  

Hambatan
Selama pengerjaan proyek tentunya kami mengalami beberapa kesulitan dan hambatan, antara lain:
  • Sensor Optocoupler (Infra red dan Photodiode) meledak saat pertama kali kami membuat rangkaian. Penyebabnya adalah pin sensor photodiode tertukar. Pin yang seharusnya ke 5Volt dimasukkin ke ground dan yang seharusnya ke ground dimasukkin ke 5V. Selain itu juga kami tidak memasang resistor. Alhasil kami harus membeli yang baru.
  • Bluetooth gagal terus. Hal yang paling menghambat dan paling susah adalah menggunakan bluetooth. Pasalnya kami tidak bisa mengirim data baik dari maupun ke perangkat pasangan menggunakan bluetooth ini meskipun sudah terkoneksi. Kami pun mencoba untuk 'hanya' membuat rangkaian bluetooth saja tanpa digabungkan dengan rangkaian Cametreon, dan ini berhasil. Kami bisa mengirim data menggunakan bluetooth. Akan tetapi, ketika rangkaian bluetooth digabungkan kembali dengan rangkaian Cametreon, gagal lagi... -_-. Akhirnya kami pun menyerah setelah mencoba berulang kali dengan hasil yang tetap seperti itu.
  • Pin tertukar. Usut-punya usut, ternyata penyebab bluetooth gagal adalah pin RX dan TX tertukar... #Tepok Jidat.
  • Harga Ethernet Shield Mahal. Hal ini lah yang menyebabkan kenapa kami memilih menggunakan bluetooth. Karena Harga Ethernet Shield yang mahal.
  • Hambatan lain adalah memikirkan bagaimana caranya untuk dapat mensimulasikan perputaran disk pada kWh meter. Kami pun punya ide untuk menggunakan piringan CD. piringan itu kami beri celah agar cahaya infra red dapat tembus. Pada kenyataannya, piringan pada kWh meter memang memiliki lubang di bagian pinggir.

Dokumentasi
Dalam pengerjaan kami sangat minim melakukan dokumentasi. Hal ini karena setiap kami berhasil melakukan sesuatu, kami terlalu girang dan lupa untuk mendokumentasikannya. Hal ini juga terjadi setelah presentasi, kami lupa untuk membuat dokumentasi sehingga yang kami punya hanya sedikit foto berikut:



Demikian pengerjaan proyek Arduino kami. Terima kasih telah berkunjung di blog saya. Semoga informasi yang ada di blog ini bermanfaat.
Terima kasih dan salam.

Anggota kelompok:
18211004 / Subkhan Sarif
18211008 / Aria Dhanang Dewangga
18211015 / Fady Noor Ilmi Lubis
18211035 / Raden Ryan Adi Wicaksana
18211054 / Faris Taufiq Zaqiy
18211057 / Mekaputra Yudahandika

Comments

Popular posts from this blog

Lakukan Apapun yang Menjadi Renjana-mu Meskipun Hidupmu Semenjana

Judul di atas mungkin sedikit sulit diartikan atau bahkan membingungkan bagi kita. Mungkin ada juga yang mengira kalau aku menyisipkan kata-kata asing atau apa. Padahal sebenarnya, semua deretan kata dalam judul diatas murni bahasa kita tercinta, Bahasa Indonesia. Ya, semuanya kata asli Indonesia. Hanya saja kita tidak terbiasa menggunakannya yang membuat kita merasa asing. Padahal jika aku ganti dengan kata asing, kalimat itu justru tidak asing. Ini nih: "Lakukan Apapun yang Menjadi Passion -Mu Meskipun Hidupmu Biasa-biasa Saja ". Sekarang jauh lebih mudah dimengerti kan? Terlepas apakah kalimat itu punya makna atau tidak, akan tetapi, kita lebih mudah mencerna setiap kata dalam kalimat itu. Hal ini memang miris mengingat kita lebih kenal dan lebih dekat dengan bahasa asing dari pada bahasa asli sendiri yang membuat kita merasa asing dengan bahasa sendiri dan bahasa asing malah tidak terasa asing karena sering kita gunakan. #mbulet-mbulet kalimatnya Sis: "Bro, ...

Derita Laptop Ganti: Sahabat Lama Menjadi Asing Bagiku

Sekitar satu tahun yang lalu, aku dan kakakku Mba Lala , tukeran laptop karena ada sedikit masalah dengan OS laptop mba lala, jadi aku memutuskan untuk membawanya buat dibenerin di comlabs aja. Satu tahun berlalu, hari demi hari aku lalui bersama laptop mba lala itu. Susah dan duka (susah dan duka ?) aku lalui bersama laptop toshiba hitam berkulit berudu. Ada kalanya seneng, ada kalanya juga engga. Ada kalanya dia responsif, tapi ada kalanya juga bebel ngambek engga nurut gerakan jari jemari yang bikin hati kesel. Tapi lebih dari itu, tanpa terasa ikatan batin antara aku dan laptop yang engga bisa aktifin bluetooth itu terjalin begitu kuat. Aku seolah tahu dimana letak file movie hanya mengklik ini dan itu dengan mata terpejam bahkan sambil tidur dan mimpi lelap. Aku sudah terbiasa dengan tata letak, environment, dan workspace yang terbangun didalamnya. Dan yang paling penting, laptop tipe satelite itu telah membantuku dalam menyelesaikan berbagai badai tubes dan tucil, membantuku di...

Visiting Animals with My Family

Big day, big day, big day.... /XD Yup, this is a very big day, for me. Why? Because, my parents, and my brother, are coming. I'm pretty excited, but also nervous. You know how it feels when you have a very messy room, and you got your parents are coming? Or you don't know what to do with your family as you have a tiny sized room? Arrhg /shock, it's complicated. But very exciting too. X-D First time of our journey, we were arriving at Sabuga. One of the lovely building style in here (ITB) is the classical stone that covers almost in all the part of the building... Oho, what is this? :P I was not using a professional camera, and I'm not a photographer too, so I couldn't make a good one. hehe. Bye the way, this is under the ground pipe.. Some places in ITB are unique (people said that), and one of them are 'echo point'. This place, if you speak up loud enough, will be able to spread out into all around of ITB and everyone's gonna...