적외선 리모컨 만들기
1. 사용자가 스마트폰의 리모컨 앱에서 버튼 클릭
2. 리모컨 앱은 해당 버튼에 해당하는 블루투스 신호를 아두이노에 전송
3. 아두이노에서는 받은 신호 값에 따라 해당하는 적외선 신호를 출력
디자인은 일반적인 리모컨과 같고
아두이노의 소스코드는 기존에 올렸던 것과 완전히 동일하다. 적외선 신호값만 바꾸어 주면 잘 작동할 것이다.
#include <SoftwareSerial.h>
#include <IRremote.h>
IRsend irsend;
SoftwareSerial btSerial(4,5);
void setup() {
btSerial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
if (btSerial.available()){
char bt = btSerial.read();
// Turn on/off
if(bt == 'p') {
irsend.sendNEC(0x20DF10EF, 32);
delay(500);
irsend.sendNEC(0x122430CF, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
// volume up/down
else if(bt == 'v') {
irsend.sendNEC(0x1224C837, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == 'w') {
irsend.sendNEC(0x122428D7, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
// channel up/down
else if(bt == 'c') {
irsend.sendNEC(0x1224E817, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == 'd') {
irsend.sendNEC(0x122418E7, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
// channel
else if(bt == '0') {
irsend.sendNEC(0x122400FF, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '1') {
irsend.sendNEC(0x1224807F, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '2') {
irsend.sendNEC(0x122440BF, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '3') {
irsend.sendNEC(0x1224C03F, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '4') {
irsend.sendNEC(0x122420DF, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '5') {
irsend.sendNEC(0x1224A05F, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '6') {
irsend.sendNEC(0x1224609F, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '7') {
irsend.sendNEC(0x1224A659, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '8') {
irsend.sendNEC(0x122400FF, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
else if(bt == '9') {
irsend.sendNEC(0x1224906F, 32);
delay(500);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
}
}
}
반응형
'개발 공부 > 프로젝트' 카테고리의 다른 글
이산화 탄소 센서 사용법 알아보기(CO2 Sensor MG811) (0) | 2023.11.23 |
---|---|
ESP32-HTTP request: GET and POST (0) | 2023.11.23 |
flask에서 request.args.get()의 의미 (0) | 2023.11.23 |
프로젝트 : 적외선 송신기 만들기3 (0) | 2023.10.20 |
프로젝트 : 적외선 송신기 만들기2 (0) | 2023.10.20 |