Jadi dengan alat ini kita dapat mengatur tingkat penerangan di rumah kita hanya dengan perangkat hp android kita, yang biasanya bagi kalangan anak muda selalu ditemani hp kemanapun dia pergi, termasuk pada saat tidur si hp ini selalu ada di samping bantal kita.
Nah dengan sebegitu dekatnya kita dengan hp, saya punya ide untuk memanfaatkan si hp ini untuk digunakan sebagai pengendali lampu rumah, khususnya di kamar yang kadang bagi kita yang tidurnya suka gak pake lampu(maksudnya cahaya lampu) misalnya kita sudah ngantuk kadang males untuk beranjak sekedar mematikan lampu.
Dengan bantuan alat ini kita dapat meredupkan bahkan mematikannya hanya dengan hp android kita. Dan kali ini saya akan menjelaskan cara pembuatan dimmer lampu ini.
Alat dan bahan yang digunakan
1.HP ANDROID
2.ARDUINO UNO
3.BLUETOOTH MODULE HC-05
4.LAMPU + FITTING
5.RANGKAIAN DIMMER LAMPU
6.KABEL
7.APLIKASI "ARDUDROID" (BISA DI DOWNLOAD DI PLAYSTORE)
Block system dimmer lampu
Dalam alat ini kita memanfaatkan bluetooth pada hp android sebagai sarana telekomunikasi antara hp dengan rangkaian dimmer lampunya.
Cara kerjanya yaitu ketika sinyal bluetooth dikirimkan dari android, sinyal tersebut diterima oleh bluetooth module kemudian diproses oleh arduino, proses ini mengubah sinyal inputan dari bluetooth menjadi sinyal pwm(Pulse Width Modulation), setelah itu sinyal yang berupa pwn diteruskan ke rangkaian dimmer yang menjadikan pwm berarus kecil menjadi pwm yang berarus besar dengan tegangan sekitar 220v. nah dengan tegangan inilah yang dibutuhkan lampu yang biasa kita jumpai itu gunakan. Jadi pada dasarnya tingkat keredupan lampu bergantung pada nilai pwm yang diberikan.
Skema pada rangkaian dimmer
Source code pada arduino
#define START_CMD_CHAR ‘*’
#define END_CMD_CHAR ‘#’
#define DIV_CMD_CHAR ‘|’
#define CMD_DIGITALWRITE 10
#define CMD_ANALOGWRITE 11
#define CMD_TEXT 12
#define CMD_READ_ARDUDROID 13
#define MAX_COMMAND 20 // max command number code. used for error checking.
#define MIN_COMMAND 10 // minimum command number code. used for error checking.
#define IN_STRING_LENGHT 40
#define MAX_ANALOGWRITE 255
#define PIN_HIGH 3
#define PIN_LOW 2
String inText;
void setup() {
Serial.begin(9600);
Serial.println(“ArduDroid 0.12 Alpha by TechBitar (2013)”);
Serial.flush();
}
void loop()
{
Serial.flush();
int ard_command = 0;
int pin_num = 0;
int pin_value = 0;
char get_char = ‘ ‘; //read serial
// wait for incoming data
if (Serial.available() < 1) return; // if serial empty, return to loop().
// parse incoming command start flag
get_char = Serial.read();
if (get_char != START_CMD_CHAR) return; // if no command start flag, return to loop().
// parse incoming command type
ard_command = Serial.parseInt(); // read the command
// parse incoming pin# and value
pin_num = Serial.parseInt(); // read the pin
pin_value = Serial.parseInt(); // read the value
// 1) GET TEXT COMMAND FROM ARDUDROID
if (ard_command == CMD_TEXT){
inText =””; //clears variable for new input
while (Serial.available()) {
char c = Serial.read(); //gets one byte from serial buffer
delay(5);
if (c == END_CMD_CHAR) { // if we the complete string has been read
// add your code here
break;
}
else {
if (c != DIV_CMD_CHAR) {
inText += c;
delay(5);
}
}
}
}
// 2) GET digitalWrite DATA FROM ARDUDROID
if (ard_command == CMD_DIGITALWRITE){
if (pin_value == PIN_LOW) pin_value = LOW;
else if (pin_value == PIN_HIGH) pin_value = HIGH;
else return; // error in pin value. return.
set_digitalwrite( pin_num, pin_value); // Uncomment this function if you wish to use
return; // return from start of loop()
}
// 3) GET analogWrite DATA FROM ARDUDROID
if (ard_command == CMD_ANALOGWRITE) {
analogWrite( pin_num, pin_value );
// add your code here
return; // Done. return to loop();
}
// 4) SEND DATA TO ARDUDROID
if (ard_command == CMD_READ_ARDUDROID) {
// char send_to_android[] = “Place your text here.” ;
// Serial.println(send_to_android); // Example: Sending text
Serial.print(” Analog 0 = “);
Serial.println(analogRead(A0)); // Example: Read and send Analog pin value to Arduino
return; // Done. return to loop();
}
}
// 2a) select the requested pin# for DigitalWrite action
void set_digitalwrite(int pin_num, int pin_value)
{
switch (pin_num) {
case 13:
pinMode(13, OUTPUT);
digitalWrite(13, pin_value);
// add your code here
break;
case 12:
pinMode(12, OUTPUT);
digitalWrite(12, pin_value);
// add your code here
break;
case 11:
pinMode(11, OUTPUT);
digitalWrite(11, pin_value);
// add your code here
break;
case 10:
pinMode(10, OUTPUT);
digitalWrite(10, pin_value);
// add your code here
break;
case 9:
pinMode(9, OUTPUT);
digitalWrite(9, pin_value);
// add your code here
break;
case 8:
pinMode(8, OUTPUT);
digitalWrite(8, pin_value);
// add your code here
break;
case 7:
pinMode(7, OUTPUT);
digitalWrite(7, pin_value);
// add your code here
break;
case 6:
pinMode(6, OUTPUT);
digitalWrite(6, pin_value);
// add your code here
break;
case 5:
pinMode(5, OUTPUT);
digitalWrite(5, pin_value);
// add your code here
break;
case 4:
pinMode(4, OUTPUT);
digitalWrite(4, pin_value);
// add your code here
break;
case 3:
pinMode(3, OUTPUT);
digitalWrite(3, pin_value);
// add your code here
break;
case 2:
pinMode(2, OUTPUT);
digitalWrite(2, pin_value);
// add your code here
break;
// default:
// if nothing else matches, do the default
// default is optional
}
}
Perkiraan anggaran dana yang dibutuhkan
Jika artikel ini bermanfaat untuk kalian,silahkan kalian share artikel ini.