在當(dāng)今的現(xiàn)代世界中,無論我們走到哪里,我們周圍都有很多電子設(shè)備。但是,總而言之,我們個(gè)人口袋里一直只有一臺(tái)設(shè)備。是的,這是我們的手機(jī)?,F(xiàn)在手機(jī)已經(jīng)不僅僅是一種用于通信的設(shè)備,它們是我們的相機(jī),它們是我們的地圖,它們是我們的購物車,什么不是?
有了這種能力,使用遙控器來控制我們家庭中的任何電子應(yīng)用程序(如電視、空調(diào)、家庭影院等)確實(shí)是一個(gè)無聊的想法。從舒適的床或沙發(fā)上拿起空調(diào)遙控器總是令人沮喪的。因此,在這個(gè)項(xiàng)目中,我們將建立一個(gè)小型設(shè)置,您可以使用它使用藍(lán)牙和Arduino通過智能手機(jī)控制空調(diào)。聽起來很有趣吧!讓我們建立一個(gè)
所需材料:
阿杜伊諾超級(jí) 2560
TSOP (HS0038)
紅外燈
HC-06
面包板
連接線
工作方法:
我們家中用于控制電視、家庭影院、空調(diào)等的所有遙控器都在紅外發(fā)射器的幫助下工作。紅外發(fā)射器只不過是一個(gè)紅外 LED,可以通過重復(fù)脈沖來沖擊信號(hào);該信號(hào)將由電子設(shè)備中的接收器讀取。對(duì)于遙控器上的每個(gè)不同按鈕,將發(fā)出一個(gè)獨(dú)特的信號(hào),該信號(hào)在接收器讀取后用于執(zhí)行特定的預(yù)定義任務(wù)。如果我們能夠讀取從遙控器發(fā)出的信號(hào),那么我們可以在需要執(zhí)行該特定任務(wù)時(shí)使用紅外 LED 模擬相同的信號(hào)。我們之前已經(jīng)為通用紅外遙控器和自動(dòng)交流溫度控制制作了紅外發(fā)射器電路。
TSOP是一種紅外接收器,可用于解碼來自遙控器的信號(hào)。我們將使用此 TSOP 解碼來自遙控器的所有信息并將其存儲(chǔ)在 Arduino 上。然后使用該信息和紅外 LED,我們可以在需要時(shí)從我們的 Arduino 重新創(chuàng)建紅外信號(hào)。
先決條件:
對(duì)于此Arduino藍(lán)牙控制AC項(xiàng)目,請(qǐng)確保您擁有ArduinoMega而不是任何其他版本的Arduino,因?yàn)榇a大小很重。使用此鏈接安裝 IR 遠(yuǎn)程庫以使用 TSOP 和 IR 發(fā)射器。
交流遙控器的工作:
在我們進(jìn)入項(xiàng)目之前,請(qǐng)花一些時(shí)間并注意您的交流遙控器的工作原理。與電視、DVD 紅外遙控器相比,交流遙控器的工作方式略有不同。遙控器上可能只有 10-12 個(gè)按鈕,但它們將能夠發(fā)送許多不同類型的信號(hào)。這意味著遙控器不會(huì)每次為同一按鈕發(fā)送相同的代碼。例如,當(dāng)您使用向下按鈕降低溫度使其為 24°C(攝氏度)時(shí),您將獲得帶有一組數(shù)據(jù)的信號(hào),但是當(dāng)您再次按下它以設(shè)置 25°C 時(shí),您將不會(huì)獲得相同的數(shù)據(jù),因?yàn)闇囟痊F(xiàn)在是 25 而不是 24。同樣,25 的代碼也會(huì)因不同的風(fēng)扇速度、睡眠設(shè)置等而異。因此,我們不要擺弄所有選項(xiàng),而只是將溫度值與其他設(shè)置的恒定值集中在一起。
另一個(gè)問題是每次按下按鈕發(fā)送的數(shù)據(jù)量,普通遙控器發(fā)送 24 位或 48 位,但交流遙控器最多可以發(fā)送 228 位,因?yàn)槊總€(gè)信號(hào)都包含大量信息,如溫度、風(fēng)扇速度、睡眠時(shí)間、擺動(dòng)風(fēng)格等。這就是為什么我們需要Arduino Mega以獲得更好的存儲(chǔ)選項(xiàng)的原因。
電路圖及說明:
幸運(yùn)的是,這款手機(jī)控制空調(diào)的硬件設(shè)置非常簡(jiǎn)單。您可以簡(jiǎn)單地使用面包板并進(jìn)行連接,如下所示。
下表還可用于驗(yàn)證連接。
S.No: | 元件引腳 | 阿杜伊諾引腳 |
1 | TSOP – Vcc | 5V |
2 | TSOP – Gnd | 格德 |
3 | TSOP - 信號(hào) | 8 |
4 | 紅外發(fā)光二極管 – 陰極 | 格德 |
5 | 紅外發(fā)光二極管 – 陽極 | 9 |
6 | HC-05 - 真空吸管 | 5V |
7 | HC05 – 釹 | 地 |
8 | HC05 – 發(fā)射 | 10 |
9 | HC05 – 接收 | 11 |
連接完成后,它應(yīng)該如下所示。我使用面包板來整理東西,但您也可以直接將公對(duì)母線連接到所有組件
解碼交流遠(yuǎn)程信號(hào):
控制交流電的第一步是使用 TSOP1738解碼交流遙控紅外代碼。按照電路圖中所示進(jìn)行所有連接,并確保已安裝所有提到的庫?,F(xiàn)在打開示例程序“IRrecvDumpV2”,可以在文件 -> 示例 -> IRremote -> IRrecvDumpV2 中找到。
int recvPin = 8; IRrecv irrecv(recvPin);
由于我們的 TSOP 連接到引腳 8,請(qǐng)將行號(hào) 9 更改為 int recPin=8,如上所示。然后將程序上傳到Arduino Mega并打開串行監(jiān)視器。
將遙控器指向 TSOP 并按任意按鈕,對(duì)于您按下的每個(gè)按鈕,信號(hào)將由 TSOP1738 讀取,由 Arduino 解碼并顯示在串行監(jiān)視器中。對(duì)于遙控器溫度的每次變化,您將獲得不同的數(shù)據(jù)。保存此數(shù)據(jù),以便我們將在主程序中使用它。您的串行監(jiān)視器將看起來像這樣,我還顯示了保存復(fù)制數(shù)據(jù)的Word文件。
屏幕截圖顯示了將我的交流遙控器的溫度設(shè)置為 26°C 的代碼。根據(jù)您的遙控器,您將獲得一組不同的代碼。同樣,復(fù)制所有不同溫度水平的代碼。您可以在本教程末尾給出的Arduino代碼中檢查所有空調(diào)遙控器IR代碼。
主要Arduino程序:
完整的Arduino主程序可以在此頁面的底部,但不能使用相同的程序。您必須更改我們剛剛從示例草圖中獲取的信號(hào)代碼值。打開Arduino IDE上的主程序,然后向下滾動(dòng)到下面顯示的該區(qū)域,您必須將數(shù)組值替換為為遙控器獲得的值。
請(qǐng)注意,我使用了 10 個(gè)陣列,其中兩個(gè)用于打開和關(guān)閉 AC,而其余 8 個(gè)用于設(shè)置不同的溫度。例如,Temp23 用于在 AC 上設(shè)置 23*C,因此請(qǐng)使用該數(shù)組中的相應(yīng)代碼。完成后,您只需將代碼上傳到Arduino即可。
我們需要為這個(gè)項(xiàng)目導(dǎo)入兩個(gè)庫。一個(gè)是我們剛剛添加到Arduino的IRremote庫,另一個(gè)是內(nèi)置的軟件串行庫,可幫助我們使用藍(lán)牙模塊。
#include //Lib for IT Blaster and TSOP #include // import the serial library
接下來,我們?cè)谝_ 10 和 11 上初始化藍(lán)牙模塊,然后使用名為 irsend 的對(duì)象訪問庫的所有 IR 功能.
SoftwareSerial BT_module(10, 11); // RX, TX IRsend irsend;
接下來是非常重要的代碼行。這是控制空調(diào)的信息所在的地方。下面顯示的那個(gè)是我的AC遙控器,您應(yīng)該在上一步中獲得了您的。
接下來在 void 設(shè)置函數(shù)中,我們初始化兩個(gè)串行通信。一個(gè)是9600波特率的藍(lán)牙,另一個(gè)是57600波特率的串行監(jiān)視器。
void setup()
{
BT_module.begin(9600); //BT works on 9600
Serial.begin(57600); //Serial Monitor work son 57600
}
在我們的空白循環(huán)中 (無限循環(huán)), 我們檢查藍(lán)牙模塊是否收到任何內(nèi)容.如果收到任何內(nèi)容,我們將該信息存儲(chǔ)在變量藍(lán)牙數(shù)據(jù)中。
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
}
藍(lán)牙收到的信息將基于我們將在下一步中安裝的Android應(yīng)用程序上按下的按鈕。收到信息后,我們只需要觸發(fā)相應(yīng)的IR代碼,如下所示
if (BluetoothData == '2')
{
irsend.sendRaw(Temp23, sizeof(Temp23) / sizeof(Temp23[0]), khz); delay(2000);//Send signal to set Temperatue 23C
}
在這里,如果收到代碼“2”,我們必須將空調(diào)的溫度設(shè)置為 23°C。 同樣,我們有從 0 到 9 的代碼來執(zhí)行 AC 的所有基本控制功能。您可以參考本頁末尾的完整 arduino 代碼。
安裝安卓應(yīng)用程序:
智能手機(jī)控制空調(diào)的最后一步是安裝Android應(yīng)用程序。此項(xiàng)目的 Android 應(yīng)用程序是使用處理 Android 模式創(chuàng)建的。處理是為您的嵌入式項(xiàng)目創(chuàng)建.EXE文件或APK文件的絕佳工具。它是一個(gè)開源平臺(tái),就像Arduino一樣,因此完全免費(fèi)下載使用。
如果您不想太深入,只需從zip文件中下載APK文件并將其直接安裝在手機(jī)上即可。打開應(yīng)用程序,您將看到如下所示的屏幕,之后您可以繼續(xù)下一步并享受使用該項(xiàng)目的樂趣。但是,如果您想調(diào)整應(yīng)用程序的程序以使其適合您的需要,那么您可以進(jìn)一步閱讀。
可以從此處下載用于處理代碼的完整程序文件。此 Zip 將具有應(yīng)用程序工作所使用的代碼和圖像源。打開代碼后,您可以調(diào)整以下行以根據(jù)需要進(jìn)行調(diào)整。
如前所述,處理類似于Arduino。因此,它還具有空隙設(shè)置和空隙循環(huán)(此處繪制)功能。在void設(shè)置功能中,我們將指示手機(jī)藍(lán)牙連接到Arduino的藍(lán)牙。我的設(shè)備名稱是“HC-05”,所以我的代碼行將是
bt.start(); //start listening for BT connections
bt.getPairedDeviceNames();
bt.connectToDeviceByName("HC-05"); //Connect to our HC-06 bluetooth module
接下來,在 load_buttons() 函數(shù)中,您可以根據(jù)需要繪制任意數(shù)量的按鈕。我已經(jīng)繪制了10個(gè)按鈕,如應(yīng)用程序上所示。其次,我們有 read_buttons() 函數(shù),用于檢測(cè)您正在觸摸哪個(gè)按鈕。每個(gè)按鈕都有特定的顏色,因此當(dāng)用戶觸摸屏幕時(shí),我們會(huì)檢查他觸摸了哪種顏色,并確定他觸摸了哪個(gè)按鈕。創(chuàng)建按鈕并根據(jù)顏色選擇按鈕的示例代碼如下所示
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'};” 行是非常重要的一行。這是我們決定必須通過藍(lán)牙將哪些代碼發(fā)送到Arduino的地方。在這里,如果按下此按鈕,字符“0”將從藍(lán)牙發(fā)送到Arduino。同樣,我們可以為不同的按鈕發(fā)送不同的字符。然后可以在Arduino端比較這些字符,并可以采取相應(yīng)的操作。
繼續(xù)擺弄代碼,如果您有任何疑問,請(qǐng)通過評(píng)論部分與我聯(lián)系,并會(huì)盡力幫助您。
手機(jī)控制交流電工作:
一旦你準(zhǔn)備好你的硬件,Arduino代碼和Android應(yīng)用程序,就該享受輸出了。將 Arduino 代碼上傳到您的硬件,并將其面向您的交流電。現(xiàn)在在手機(jī)上打開android應(yīng)用程序,如果一切按預(yù)期工作,您應(yīng)該看到“連接到:device_name(一些代碼)”,如下所示
現(xiàn)在,只需按下Android應(yīng)用程序上的任何按鈕,它就會(huì)觸發(fā)AC上的相應(yīng)操作,就像您在使用遙控器一樣。您可以通過修改代碼來添加任意數(shù)量的按鈕,甚至可以根據(jù)您的室溫或狀態(tài)自動(dòng)使用空調(diào)。
/*
*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 ...
}
-
智能手機(jī)
+關(guān)注
關(guān)注
66文章
18621瀏覽量
183726 -
藍(lán)牙
+關(guān)注
關(guān)注
116文章
6074瀏覽量
173897 -
遙控器
+關(guān)注
關(guān)注
18文章
856瀏覽量
68168 -
Arduino
+關(guān)注
關(guān)注
190文章
6497瀏覽量
191997
發(fā)布評(píng)論請(qǐng)先 登錄
如何使用Arduino制作一個(gè)交流電壓測(cè)量設(shè)備

交流電動(dòng)機(jī)傳動(dòng)調(diào)壓調(diào)速控制

交流電動(dòng)機(jī)傳動(dòng)調(diào)壓調(diào)速控制

交流電如何控制電流
交流及正弦交流電

交流電機(jī)調(diào)速器

什么是交流電機(jī)控制?
使用Arduino控制220VAC通用交流電機(jī)

基于Arduino通用交流電機(jī)速度控制器

評(píng)論