在當今的現代世界中,無論我們走到哪里,我們周圍都有很多電子設備。但是,總而言之,我們個人口袋里一直只有一臺設備。是的,這是我們的手機。現在手機已經不僅僅是一種用于通信的設備,它們是我們的相機,它們是我們的地圖,它們是我們的購物車,什么不是?
有了這種能力,使用遙控器來控制我們家庭中的任何電子應用程序(如電視、空調、家庭影院等)確實是一個無聊的想法。從舒適的床或沙發上拿起空調遙控器總是令人沮喪的。因此,在這個項目中,我們將建立一個小型設置,您可以使用它使用藍牙和Arduino通過智能手機控制空調。聽起來很有趣吧!讓我們建立一個
所需材料:
阿杜伊諾超級 2560
TSOP (HS0038)
紅外燈
HC-06
面包板
連接線
工作方法:
我們家中用于控制電視、家庭影院、空調等的所有遙控器都在紅外發射器的幫助下工作。紅外發射器只不過是一個紅外 LED,可以通過重復脈沖來沖擊信號;該信號將由電子設備中的接收器讀取。對于遙控器上的每個不同按鈕,將發出一個獨特的信號,該信號在接收器讀取后用于執行特定的預定義任務。如果我們能夠讀取從遙控器發出的信號,那么我們可以在需要執行該特定任務時使用紅外 LED 模擬相同的信號。我們之前已經為通用紅外遙控器和自動交流溫度控制制作了紅外發射器電路。
TSOP是一種紅外接收器,可用于解碼來自遙控器的信號。我們將使用此 TSOP 解碼來自遙控器的所有信息并將其存儲在 Arduino 上。然后使用該信息和紅外 LED,我們可以在需要時從我們的 Arduino 重新創建紅外信號。
先決條件:
對于此Arduino藍牙控制AC項目,請確保您擁有ArduinoMega而不是任何其他版本的Arduino,因為代碼大小很重。使用此鏈接安裝 IR 遠程庫以使用 TSOP 和 IR 發射器。
交流遙控器的工作:
在我們進入項目之前,請花一些時間并注意您的交流遙控器的工作原理。與電視、DVD 紅外遙控器相比,交流遙控器的工作方式略有不同。遙控器上可能只有 10-12 個按鈕,但它們將能夠發送許多不同類型的信號。這意味著遙控器不會每次為同一按鈕發送相同的代碼。例如,當您使用向下按鈕降低溫度使其為 24°C(攝氏度)時,您將獲得帶有一組數據的信號,但是當您再次按下它以設置 25°C 時,您將不會獲得相同的數據,因為溫度現在是 25 而不是 24。同樣,25 的代碼也會因不同的風扇速度、睡眠設置等而異。因此,我們不要擺弄所有選項,而只是將溫度值與其他設置的恒定值集中在一起。
另一個問題是每次按下按鈕發送的數據量,普通遙控器發送 24 位或 48 位,但交流遙控器最多可以發送 228 位,因為每個信號都包含大量信息,如溫度、風扇速度、睡眠時間、擺動風格等。這就是為什么我們需要Arduino Mega以獲得更好的存儲選項的原因。
電路圖及說明:
幸運的是,這款手機控制空調的硬件設置非常簡單。您可以簡單地使用面包板并進行連接,如下所示。
下表還可用于驗證連接。
S.No: | 元件引腳 | 阿杜伊諾引腳 |
1 | TSOP – Vcc | 5V |
2 | TSOP – Gnd | 格德 |
3 | TSOP - 信號 | 8 |
4 | 紅外發光二極管 – 陰極 | 格德 |
5 | 紅外發光二極管 – 陽極 | 9 |
6 | HC-05 - 真空吸管 | 5V |
7 | HC05 – 釹 | 地 |
8 | HC05 – 發射 | 10 |
9 | HC05 – 接收 | 11 |
連接完成后,它應該如下所示。我使用面包板來整理東西,但您也可以直接將公對母線連接到所有組件
解碼交流遠程信號:
控制交流電的第一步是使用 TSOP1738解碼交流遙控紅外代碼。按照電路圖中所示進行所有連接,并確保已安裝所有提到的庫。現在打開示例程序“IRrecvDumpV2”,可以在文件 -> 示例 -> IRremote -> IRrecvDumpV2 中找到。
int recvPin = 8; IRrecv irrecv(recvPin);
由于我們的 TSOP 連接到引腳 8,請將行號 9 更改為 int recPin=8,如上所示。然后將程序上傳到Arduino Mega并打開串行監視器。
將遙控器指向 TSOP 并按任意按鈕,對于您按下的每個按鈕,信號將由 TSOP1738 讀取,由 Arduino 解碼并顯示在串行監視器中。對于遙控器溫度的每次變化,您將獲得不同的數據。保存此數據,以便我們將在主程序中使用它。您的串行監視器將看起來像這樣,我還顯示了保存復制數據的Word文件。
屏幕截圖顯示了將我的交流遙控器的溫度設置為 26°C 的代碼。根據您的遙控器,您將獲得一組不同的代碼。同樣,復制所有不同溫度水平的代碼。您可以在本教程末尾給出的Arduino代碼中檢查所有空調遙控器IR代碼。
主要Arduino程序:
完整的Arduino主程序可以在此頁面的底部,但不能使用相同的程序。您必須更改我們剛剛從示例草圖中獲取的信號代碼值。打開Arduino IDE上的主程序,然后向下滾動到下面顯示的該區域,您必須將數組值替換為為遙控器獲得的值。
請注意,我使用了 10 個陣列,其中兩個用于打開和關閉 AC,而其余 8 個用于設置不同的溫度。例如,Temp23 用于在 AC 上設置 23*C,因此請使用該數組中的相應代碼。完成后,您只需將代碼上傳到Arduino即可。
我們需要為這個項目導入兩個庫。一個是我們剛剛添加到Arduino的IRremote庫,另一個是內置的軟件串行庫,可幫助我們使用藍牙模塊。
#include //Lib for IT Blaster and TSOP #include // import the serial library
接下來,我們在引腳 10 和 11 上初始化藍牙模塊,然后使用名為 irsend 的對象訪問庫的所有 IR 功能.
SoftwareSerial BT_module(10, 11); // RX, TX IRsend irsend;
接下來是非常重要的代碼行。這是控制空調的信息所在的地方。下面顯示的那個是我的AC遙控器,您應該在上一步中獲得了您的。
接下來在 void 設置函數中,我們初始化兩個串行通信。一個是9600波特率的藍牙,另一個是57600波特率的串行監視器。
void setup()
{
BT_module.begin(9600); //BT works on 9600
Serial.begin(57600); //Serial Monitor work son 57600
}
在我們的空白循環中 (無限循環), 我們檢查藍牙模塊是否收到任何內容.如果收到任何內容,我們將該信息存儲在變量藍牙數據中。
while (BT_module.available()) //If data is coming
{
BluetoothData=BT_module.read(); //read it and save it
Serial.println(BluetoothData); //print it on serial for testing purpose
}
藍牙收到的信息將基于我們將在下一步中安裝的Android應用程序上按下的按鈕。收到信息后,我們只需要觸發相應的IR代碼,如下所示
if (BluetoothData == '2')
{
irsend.sendRaw(Temp23, sizeof(Temp23) / sizeof(Temp23[0]), khz); delay(2000);//Send signal to set Temperatue 23C
}
在這里,如果收到代碼“2”,我們必須將空調的溫度設置為 23°C。 同樣,我們有從 0 到 9 的代碼來執行 AC 的所有基本控制功能。您可以參考本頁末尾的完整 arduino 代碼。
安裝安卓應用程序:
智能手機控制空調的最后一步是安裝Android應用程序。此項目的 Android 應用程序是使用處理 Android 模式創建的。處理是為您的嵌入式項目創建.EXE文件或APK文件的絕佳工具。它是一個開源平臺,就像Arduino一樣,因此完全免費下載使用。
如果您不想太深入,只需從zip文件中下載APK文件并將其直接安裝在手機上即可。打開應用程序,您將看到如下所示的屏幕,之后您可以繼續下一步并享受使用該項目的樂趣。但是,如果您想調整應用程序的程序以使其適合您的需要,那么您可以進一步閱讀。
可以從此處下載用于處理代碼的完整程序文件。此 Zip 將具有應用程序工作所使用的代碼和圖像源。打開代碼后,您可以調整以下行以根據需要進行調整。
如前所述,處理類似于Arduino。因此,它還具有空隙設置和空隙循環(此處繪制)功能。在void設置功能中,我們將指示手機藍牙連接到Arduino的藍牙。我的設備名稱是“HC-05”,所以我的代碼行將是
bt.start(); //start listening for BT connections
bt.getPairedDeviceNames();
bt.connectToDeviceByName("HC-05"); //Connect to our HC-06 bluetooth module
接下來,在 load_buttons() 函數中,您可以根據需要繪制任意數量的按鈕。我已經繪制了10個按鈕,如應用程序上所示。其次,我們有 read_buttons() 函數,用于檢測您正在觸摸哪個按鈕。每個按鈕都有特定的顏色,因此當用戶觸摸屏幕時,我們會檢查他觸摸了哪種顏色,并確定他觸摸了哪個按鈕。創建按鈕并根據顏色選擇按鈕的示例代碼如下所示
fill(255,145,3);
rect(width/2-width/4,height/2,width/4,height/12); fill(255); text("25C",width/2-width/4,height/2); //button 5
if (color_val==-13589993)
{byte[] data = {'0'};
bt.broadcast(data);}
“byte[] data = {'0'};” 行是非常重要的一行。這是我們決定必須通過藍牙將哪些代碼發送到Arduino的地方。在這里,如果按下此按鈕,字符“0”將從藍牙發送到Arduino。同樣,我們可以為不同的按鈕發送不同的字符。然后可以在Arduino端比較這些字符,并可以采取相應的操作。
繼續擺弄代碼,如果您有任何疑問,請通過評論部分與我聯系,并會盡力幫助您。
手機控制交流電工作:
一旦你準備好你的硬件,Arduino代碼和Android應用程序,就該享受輸出了。將 Arduino 代碼上傳到您的硬件,并將其面向您的交流電。現在在手機上打開android應用程序,如果一切按預期工作,您應該看到“連接到:device_name(一些代碼)”,如下所示
現在,只需按下Android應用程序上的任何按鈕,它就會觸發AC上的相應操作,就像您在使用遙控器一樣。您可以通過修改代碼來添加任意數量的按鈕,甚至可以根據您的室溫或狀態自動使用空調。
/*
*Bluetooth AC Temperature control using Arduino and TSOP
* Code by: Aswinth Raj B
* Dated: 25-11-2017
* Website: www.circuitdigest.com
*
S.No: Component Pin Arduino Pin
1 TSOP a€“ Vcc 5V
2 TSOP a€“ Gnd Gnd
3 TSOP - Signal 8
4 IR Led a€“ Cathode Gnd
5 IR Led a€“ Anode 9
6 HC-05 - Vcc 5V
7 HC05 a€“ Gnd Ground
8 HC05 a€“ Tx 10
9 HC05 a€“ Rx 11
*/
#include //Lib for IT Blaster and TSOP
#include // import the serial library
SoftwareSerial BT_module(10, 11); // RX, TX
IRsend irsend;
int khz = 38; // 38kHz carrier frequency for the NEC protocol
char BluetoothData; // the data read by Bluetooth Module
int PevData;
//Decoded Remote Signals For my AC ##CHANGE IT FOR YOUR REMOTE
unsigned int ACoff[] = {2950,1750, 400,1100, 450,1050, 450,400, 400,400, 400,400, 450,1100, 400,400, 400,400, 450,1100, 400,1100, 450,350, 450,1100, 400,400, 400,400, 450,1100, 400,1100, 450,400, 400,1100, 400,1100, 450,400, 400,400, 400,1100, 450,350, 450,400, 400,1100, 450,400, 400,400, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,400, 400,400, 400,400, 450,350, 450,350, 450,1100, 400,400, 450,400, 400,1100, 450,1050, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,1100, 450,350, 450,400, 400,400, 400,400, 450,400, 400,1100, 450,350, 450,400, 400,400, 400,400, 400,1100, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 450,350, 450,350, 450,400, 400,1100, 450,350, 450,350, 450,400, 450,350, 450,350, 450,1100, 450};
unsigned int ACon[] = {2950,1700, 450,1100, 400,1100, 450,350, 450,350, 450,400, 450,1050, 450,350, 450,400, 450,1050, 450,1100, 400,400, 450,1050, 450,350, 450,400, 400,1100, 450,1100, 450,350, 450,1050, 450,1100, 450,350, 450,350, 450,1100, 450,350, 400,400, 450,1100, 450,350, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,1100, 400,400, 450,350, 450,1100, 400,400, 450,350, 450,1100, 400,1100, 450,350, 450,400, 400,400, 450,350, 500,300, 450,400, 450,350, 400,400, 450,1100, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,1100, 450,350, 400,400, 450,350, 450,400, 450,350, 400,400, 450,400, 450,350, 450,350, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 400,400, 450,350, 450,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 450,350, 400,400, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 450,350, 450,1100, 400,400, 400,400, 450,350, 450,350, 450,1100, 400,400, 450};
unsigned int Temp23[] = {3000,1650, 550,950, 550,1000, 500,300, 550,250, 550,250, 550,1000, 500,300, 550,300, 500,1000, 550,950, 550,300, 550,950, 550,250, 550,300, 500,1000, 500,1050, 500,300, 500,1000, 550,1000, 500,300, 500,300, 550,1000, 450,350, 500,300, 500,1050, 450,350, 450,350, 450,350, 450,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,350, 450,350, 450,400, 400,400, 400,400, 450,400, 400,400, 400,400, 450,1100, 400,400, 400,400, 450,1050, 450,400, 400,400, 450,1100, 400,1100, 400,400, 450,350, 450,400, 400,400, 400,400, 450,400, 400,400, 400,400, 450,350, 450,1100, 400,400, 400,400, 450,350, 450,400, 400,400, 450,1100, 400,400, 400,1100, 450,1100, 400,1100, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 450,350, 400,400, 450,350, 450,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 400,400, 400,400, 450,350, 450,1100, 400,1100, 450,1100, 400,1100, 450,1100, 400,1100, 400,400, 450};
unsigned int Temp24[] = {3000,1650, 500,1050, 500,1000, 500,300, 500,300, 500,350, 500,1000, 500,300, 500,350, 500,1000, 500,1050, 500,300, 500,1000, 500,300, 500,350, 500,1000, 500,1050, 500,300, 500,1000, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 500,1000, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,1000, 500,1050, 500,1000, 500,300, 500,350, 450,350, 500,300, 500,300, 500,350, 500,1000, 500,300, 500,1050, 500,1000, 500,1050, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,300, 500,350, 500,300, 450,350, 500,350, 450,350, 450,350, 450,350, 450,400, 400,400, 400,400, 450,400, 400,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 450,350, 450,350, 450,350, 500,350, 450,1050, 500,300, 500,1050, 500,1000, 500,1050, 500,1000, 500,1000, 500,350, 550};
unsigned int Temp25[] = {3050,1650, 500,1000, 550,950, 550,300, 500,300, 500,300, 550,1000, 500,300, 500,300, 550,1000, 550,950, 550,250, 550,1000, 500,300, 550,250, 550,1000, 500,1000, 550,300, 550,950, 550,950, 550,300, 500,300, 500,1000, 550,250, 550,300, 550,950, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,250, 600,250, 500,300, 550,250, 550,250, 550,300, 550,250, 500,300, 550,300, 500,300, 500,1000, 550,250, 550,300, 500,1000, 550,250, 550,300, 500,1000, 550,1000, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,1000, 550,950, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,950, 550,300, 500,1000, 550,1000, 500,1000, 500,300, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 500,350, 500,1000, 500,1000, 500,1050, 500,1000, 500,1050, 500,300, 550};
unsigned int Temp26[] = {3000,1650, 500,1000, 500,1050, 500,300, 500,300, 500,350, 500,1000, 500,300, 500,350, 500,1000, 500,1050, 450,350, 500,1000, 500,300, 500,350, 500,1000, 500,1050, 500,300, 500,1000, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 450,350, 500,300, 500,1050, 500,1000, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,1000, 500,300, 500,1050, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,1050, 500,300, 500,1050, 450,1050, 500,1000, 500,350, 500,300, 500,300, 500,350, 450,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 450,350, 500,300, 500,350, 450,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,350, 450,1050, 500,1000, 500,350, 500,1000, 500,1000, 500,1050, 500,1000, 500,350, 500};
unsigned int Temp27[] = {3050,1600, 550,1000, 500,1000, 550,300, 500,300, 550,250, 550,1000, 500,300, 550,300, 500,1000, 550,1000, 500,300, 550,1000, 550,250, 500,300, 550,1000, 500,1050, 500,300, 500,1000, 550,1000, 500,300, 550,250, 550,1000, 550,250, 550,300, 500,1000, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,300, 500,300, 500,1000, 550,300, 500,300, 550,1000, 500,300, 500,300, 550,1000, 550,1000, 500,300, 500,300, 550,250, 550,300, 500,300, 550,300, 500,300, 500,300, 550,1000, 500,300, 550,250, 550,300, 500,300, 500,300, 500,350, 500,300, 550,250, 550,1000, 500,1000, 550,1000, 500,300, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 500,300, 550,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 500,300, 500,350, 500,300, 500,350, 500,300, 500,300, 500,1050, 500,1000, 500,1050, 500,1000, 500,350, 500}; // PANASONIC C4D3:64800024
unsigned int Temp28[] = {3100,1600, 550,950, 550,1000, 550,250, 550,250, 550,250, 550,1000, 500,300, 500,300, 550,1000, 500,1000, 550,250, 550,1000, 500,300, 550,250, 550,1000, 550,950, 550,300, 500,1000, 550,950, 550,300, 550,250, 500,1000, 550,300, 500,300, 550,950, 550,300, 500,300, 500,300, 550,250, 550,300, 550,250, 500,300, 550,300, 500,300, 500,300, 550,250, 550,250, 600,250, 500,300, 500,300, 550,300, 500,300, 500,1000, 550,300, 500,300, 500,1000, 550,250, 550,300, 500,1000, 550,1000, 550,250, 550,250, 550,250, 550,300, 500,300, 550,250, 550,1000, 500,1000, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,1000, 500,300, 500,1000, 550,1000, 500,1000, 550,250, 550,300, 500,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,300, 550,250, 500,300, 550,250, 550,250, 550,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,1000, 500,300, 500,300, 550,950, 550,1000, 500,1000, 550,1000, 500,300, 550};
unsigned int Temp29[] = {3100,1550, 600,950, 500,1000, 550,300, 500,300, 500,300, 550,950, 550,300, 550,250, 550,1000, 500,1000, 550,250, 550,1000, 500,300, 550,250, 550,950, 600,950, 550,250, 550,1000, 500,1000, 550,250, 600,250, 550,950, 550,250, 550,300, 550,950, 550,250, 550,300, 550,250, 550,250, 550,250, 550,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,250, 600,250, 550,950, 550,250, 550,300, 500,1000, 550,250, 550,300, 550,950, 550,1000, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,1000, 500,300, 550,250, 550,300, 500,300, 550,250, 550,250, 550,300, 500,1000, 550,250, 550,1000, 500,1000, 550,1000, 500,300, 500,300, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,250, 550,1000, 500,1000, 550,1000, 500,1000, 550,300, 500};
unsigned int Temp30[] = {3000,1650, 500,1000, 550,1000, 500,300, 500,300, 550,250, 550,1000, 500,300, 500,300, 550,1000, 550,950, 550,250, 550,1000, 550,250, 550,250, 550,1000, 550,950, 550,300, 500,1000, 550,950, 550,300, 500,300, 550,950, 550,300, 550,250, 550,1000, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,950, 550,300, 500,300, 500,1000, 550,250, 550,300, 550,950, 550,1000, 500,300, 550,250, 550,250, 600,250, 500,300, 550,250, 550,1000, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,950, 550,300, 500,1000, 550,950, 550,1000, 500,300, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,950, 500,1050, 500,1000, 500,350, 500,1000, 500,1000, 500,1050, 500,300, 500};
//Change it for your remote
void setup()
{
BT_module.begin(9600); //BT works on 9600
Serial.begin(57600); //Serial Monitor work son 57600
}
void loop()
{
while (BT_module.available()) //If data is coming
{
BluetoothData=BT_module.read(); //read it and save it
Serial.println(BluetoothData); //print it on serial for testing purpose
}
if (BluetoothData != PevData)
{
if (BluetoothData == '0')
{
irsend.sendRaw(ACon, sizeof(ACon) / sizeof(ACon[0]), khz); delay(2000);//Send signal to Turn On the AC
}
if (BluetoothData == '1')
{
irsend.sendRaw(ACoff, sizeof(ACoff) / sizeof(ACoff[0]), khz); delay(2000);//Send signal to Turn on the AC
}
if (BluetoothData == '2')
{
irsend.sendRaw(Temp23, sizeof(Temp23) / sizeof(Temp23[0]), khz); delay(2000);//Send signal to set Temperatue 23C
}
if (BluetoothData == '3')
{
irsend.sendRaw(Temp24, sizeof(Temp24) / sizeof(Temp24[0]), khz); delay(2000);//Send signal to set Temperatue 24C
}
if (BluetoothData == '4')
{
irsend.sendRaw(Temp25, sizeof(Temp25) / sizeof(Temp25[0]), khz); delay(2000);//Send signal to set Temperatue 25C
}
if (BluetoothData == '5')
{
irsend.sendRaw(Temp26, sizeof(Temp23) / sizeof(Temp26[0]), khz); delay(2000);//Send signal to set Temperatue 26C
}
if (BluetoothData == '6')
{
irsend.sendRaw(Temp27, sizeof(Temp27) / sizeof(Temp27[0]), khz); delay(2000);//Send signal to set Temperatue 27C
}
if (BluetoothData == '7')
{
irsend.sendRaw(Temp28, sizeof(Temp28) / sizeof(Temp28[0]), khz); delay(2000);//Send signal to set Temperatue 28C
}
if (BluetoothData == '8')
{
irsend.sendRaw(Temp29, sizeof(Temp29) / sizeof(Temp29[0]), khz); delay(2000);//Send signal to set Temperatue 29C
}
if (BluetoothData == '9')
{
irsend.sendRaw(Temp30, sizeof(Temp30) / sizeof(Temp30[0]), khz); delay(2000);//Send signal to set Temperatue 30C
}
}
PevData = BluetoothData;
delay(100);// prepare for next data ...
}
-
智能手機
+關注
關注
66文章
18543瀏覽量
180892 -
藍牙
+關注
關注
114文章
5866瀏覽量
171051 -
遙控器
+關注
關注
18文章
840瀏覽量
66507 -
Arduino
+關注
關注
188文章
6477瀏覽量
187692
發布評論請先 登錄
相關推薦
評論