在当今的现代世界中,无论我们走到哪里,我们周围都有很多电子设备。但是,总而言之,我们个人口袋里一直只有一台设备。是的,这是我们的手机。现在手机已经不仅仅是一种用于通信的设备,它们是我们的相机,它们是我们的地图,它们是我们的购物车,什么不是?
有了这种能力,使用遥控器来控制我们家庭中的任何电子应用程序(如电视、空调、家庭影院等)确实是一个无聊的想法。从舒适的床或沙发上拿起空调遥控器总是令人沮丧的。因此,在这个项目中,我们将建立一个小型设置,您可以使用它使用蓝牙和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 – Vcc 5V
2 TSOP – Gnd Gnd
3 TSOP - Signal 8
4 IR Led – Cathode Gnd
5 IR Led – Anode 9
6 HC-05 - Vcc 5V
7 HC05 – Gnd Ground
8 HC05 – Tx 10
9 HC05 – 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文章
18429浏览量
179815 -
蓝牙
+关注
关注
114文章
5765浏览量
169783 -
遥控器
+关注
关注
18文章
829浏览量
65963 -
Arduino
+关注
关注
187文章
6463浏览量
186621
发布评论请先 登录
相关推荐
评论