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

Korps Dai Mahasiswa (KDM) Salman ITB

Dai Corps Students, or shortened to KDM Salman ITB , is a recitation of activities held at Salman Mosque and intended for ITB students and also public. Located in the South Corridor Salman Mosque, KDM Salman ITB is trying to bring teaching activities with the concept of traditional pesantren (traditional boarding school). With meetings every day after dhuhur, the students who take part in this Salman KDM get the study material by using the yellow books (kitab kuning) as a handle, as in the traditional pesantren. Teachers who bring the study also vary depending on the items of its study, they are ustadzs from Salman mosque itself. KDM Salman ITB appears to address concerns some students, as well as some ustadzs in mosques Salman, who feel that it is necessary to foster student containers in religious matters. It is motivated by the proliferation of such activities 'mentoring' on campus. But the mentor who brought the material (ie students) were deemed less or even not ...

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, ...

[Arduino Project -- 5] -- Using Keypad and LCD Screen at Once to make simple Calculator

Good day. This is my fifth times of my post about Arduino. We've learned about how to create something using Arduino from the very beginning that was just make a simple push button, till we made something more difficult which was creating a temperature censor and displaying the result in the LCD screen. And now, i'm gonna show you how to use a keypad and LCD Screen at once. With these two devices are combined with our Arduino, we are able to make something like a little application. And now, i'm gonna make a simple calculator using them. Stuffs: These are stuffs you are gonna need to prepare An Arduino Uno A BreadBoard Jumper Cables A Keypad A PC which has Arduino App Installed A Potensiometer A Resistor What do we do? First thing we gotta do is to wire our Arduino and keypad as shown below: Actually we dont need the speaker and the led. But I put them when i wired them. And here is my work: It was a little bit confusing i thought. And aft...