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:
Arduino 2
Hambatan
Selama pengerjaan proyek tentunya kami mengalami beberapa kesulitan dan hambatan, antara lain:
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:
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 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:
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):
Rangkaian
Kemudian Susun menjadi rangkaian seperti berikut:
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
Arduino 2
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 }
- 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.
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
Post a Comment