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

[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

[Arduino Project-2] -- Lampu Fade in - Fade out dengan PWM

Good Day, Semoga hari-hari selalu menjadi hari baik bagi kita semua. Masih kesengsem sama Arduino, pada postingan kali ini saya akan menjelaskan (kalau bisa disebut) mempraktikan cara membuat lampu LED yang bisa nyala terang dan gelap (fade-in / fade-out ) dengan PWM. Yang akan kita lakukan adalah membuat lampu LED berubah tingkat terangnya (brightness). Sebelumnya kita perlu tahu apa itu PWM. PWM atau Pulse Width Modulation adalah teknik yang dilakukan untuk mengubah tingkat ke terang an (brightness) LED dengan cara mengatur waktu delay. Jika kita memberikan delay pada LED dengan Arduino maka lampu tersebut akan berkedip. Akan tetapi jika delay sangat cepat, maka lampu tersebut terlihat tidak berkedip lagi, melainkan kita bisa mengatur tingkat terang (brightness) lampu tersebut. Jika delay yang sangat cepat tersebut diturunkan kecepatannya sedikit, maka yang terlihat adalah brightness lampu yang turun. Begitu pula sebaliknya. Jika membingungkan, Anda tidak perlu mengingatnya. Baiklah

[Arduino Project-1] -- PushButton Lamp

Apa sih Arduino? Salam, Pada posting kali ini akan menjelaskan tentang tugas kuliah Interaksi Manusia dengan Komputer dan Antar Muka, yaitu membuat lampu push button menggunakan Arduino. Saya anggap pembaca telah mengetahui apa itu arduino. Jika belum tahu, akan saya jelaskan sedikit. Arduino bisa dikatakan sebagai alat untuk membuat sebuah prototye. Kita bisa  membuat apapun (hampir apapun) dengan menggunakan arduino. Seperti membuat sensor panas/dingin,bahkan hingga membuat robot. Arduino sebenarnya diperuntukkan bagi para artist maupun designer yang memerlukan kemudahan dalam merancang produk yang hendak mereka buat. Jadi, untuk menggunakannya tidak diperlukan keterampilan khusus yang tinggi karena di design untuk kemudahan (tentunya setelah tahu dasar-dasarnya). Seperti apa sih Arduino itu? Di bawah ini gambarnya Image Source: https://dlnmh9ip6v2uc.cloudfront.net//images/products/1/1/0/2/1/11021-01a.jpg Arduino ada banyak jenisnya yang bisa dilihat di