Download presentation
Presentation is loading. Please wait.
Published byJanice Preston Modified 6年之前
1
多功能智慧家庭萬能手機搖控器 張右昇( ) 李政澤( ) 曾群翔( ) 成員
2
Summary 我們想要利用Arduino與手機藍芽間的通訊,與 紅外線發射的功能,來做出一個萬能型遙控器, 使用者只須要使用一隻小小的手機,就能夠遙 控家裡所有的電器。
3
須安裝IRremote library,然後將紅外線sensor接 上Arduino,並利用IRremote中的函數去撰寫程式 接收每個按鍵所發出的紅外線,然後解碼,利 用Serial.print顯示在螢幕上,方便待會使用。 當接收到相對應的藍芽訊號時,利用IRremote library中的irsend來發射紅外線訊號,以達到利 用手機取代遙控的功能。
4
Hardware Required Arduino uno Board、38Khz紅外線sensor、藍芽模 組、紅外線發射LED、紅外線遙控器、USB cable、 麵包版、Android手機、冷氣、電視。
5
Schematic1
6
Schematic2
7
Arduino UNO
8
藍芽模組
9
紅外線發射器
10
紅外線接收器
11
Demo 冷氣Demo影片 http://youtu.be/nyK7FY2_tw4 電視Demo影片
12
Code:紅外線接收解碼 #include <IRremote.h> const int irReceiverPin = 2;
IRrecv irrecv(irReceiverPin); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); }
13
case NEC: Serial.print("NEC"); break; case SONY: Serial.print("SONY");
void showIRProtocol(decode_results *results) { Serial.print("Protocol: "); switch(results->decode_type) case NEC: Serial.print("NEC"); break; case SONY: Serial.print("SONY"); case RC5: Serial.print("RC5"); break; case RC6: Serial.print("RC6"); default: Serial.print("Unknown encoding"); }
14
Serial.print(", irCode: ");
Serial.print(results->value, HEX); // 紅外線編碼 Serial.print(", bits: "); Serial.println(results->bits); // 紅外線編碼位元數 } void loop() { if (irrecv.decode(&results)) showIRProtocol(&results); irrecv.resume();
15
Code:藍芽接收與紅外線發射 #include <IRremote.h> IRsend irsend;
void setup() { Serial.begin(9600); }
16
void loop() { if(Serial.available()) { unsigned char charreceived = Serial.read(); switch(charreceived) case 'q': irsend.sendNEC(0xA05D48B7, 32); Serial.println(" air conditioner power"); break; case 'w': irsend.sendNEC(0xA05D18E7, 32); Serial.println(" degreeup");
17
case 'e': irsend.sendNEC(0xA05D9867, 32); Serial.println(" degreedown"); break; case 'r': irsend.sendNEC(0xA05D58A7, 32); Serial.println(" time"); case 'a': irsend.sendNEC(0x20DF10EF, 32); Serial.println(" TV power");
18
case '1': irsend.sendNEC(0x20DF8877, 32); Serial.println(" TV 1"); break; case '2': irsend.sendNEC(0x20DF48B7, 32); Serial.println(" TV 2"); case '3': irsend.sendNEC(0x20DFC837, 32); Serial.println(" TV 3");
19
case '4': irsend.sendNEC(0x20DF28D7, 32); Serial.println(" TV 4"); break; case '5': irsend.sendNEC(0x20DFA857, 32); Serial.println(" TV 5"); case '6': irsend.sendNEC(0x20DF6897, 32); Serial.println(" TV 6");
20
case '7': irsend.sendNEC(0x20DFE817, 32); Serial.println(" TV 7"); break; case '8': irsend.sendNEC(0x20DF18E7, 32); Serial.println(" TV 8"); case '9': irsend.sendNEC(0x20DF9867, 32); Serial.println(" TV 9");
21
case '0': irsend.sendNEC(0x20DF08F7, 32); Serial.println(" TV 0"); break; case 's': irsend.sendNEC(0x20DF40BF, 32); Serial.println(" TV volume+"); case 'x': irsend.sendNEC(0x20DFC03F, 32); Serial.println(" TV volume-");
22
case 'z': irsend.sendNEC(0x20DFD02F, 32); Serial.println(" tv/video change"); break; default: } Serial.flush(); delay(10); case 'd': irsend.sendNEC(0x20DF00FF, 32); Serial.println(" TV channel+"); break; case 'c': irsend.sendNEC(0x20DF807F, 32); Serial.println(" TV channel-");
Similar presentations