主要介绍使用Arduino做出一个可以通过Android手机控制开关的电灯。试想,当你晚上睡在床上,打开手机,关闭书房或者走廊的电灯,是不是一件很cool的事情。
一、所需部件介绍
1)Arduino UNO板
这当然是必须的。不过这里要特别说明一下,我使用是的DF-Bluetooth V3的蓝牙模块,而部分Arduino UNO板由于串口限流电阻设计存在问题,会导致蓝牙模块只能发送数据而不能接收数据,这实在是一个很大的问题。我因为这个原因,又重新购买了一块新的Arduino UNO板。所以,在购买时请注意咨询卖家,确认是否已经改造过串口电阻,支持DF-Bluetooth V3模块。在进行制作前,也请先验证你的UNO板是否能通过蓝牙模块正常接收数据。
2)蓝牙模块(BluetoothV3)及传感器扩展板
我使用的是DF-Bluetooth V3蓝牙模块及Arduino Xbee传感器扩展板V5,这两者是配套的。当然没有扩展板也没有关系,直接连线通过SoftSerial方式会更好调试。有了扩展板,在使用的时候会更清爽,一根连线都不用了。
3)继电器
由于要控制220v的电灯,所以我们需要一个继电器模块,用小电流来控制大电流设备。我使用的是Arduino兼容的JQC-3FF继电器模块,能承受277V/10A的交流设备,这对我们制作电灯来说足够用了,而且做工还挺精致的。
4)Android手机
当然,肯定还有android手机。必须android2.0以上系统的android手机,推荐2.3及以上系统,必须要有蓝牙喲(废话)。
二、电路连接
1)继电器与电灯的连接
1脚--控制端,2脚--电源(VCC),3脚--地(GND),使用数据线直接与Arduino的数字信号端口连接(扩展板有专门的插口,很方便。),我们采用7数字引脚。接好的继电器如图所示。
2)蓝牙模块
由于是配套的扩展板,直接插上就是了。
三、Arduino程序
要实现的功能其实很简单:设备通过蓝牙接收到到数据进行判断,控制继电器的开合。
代码如下:
int LIGHT_PIN = 7; //设置继电器的控制数字引脚
char bt_command;
void setup()
{
Serial.begin(9600); //蓝牙的波特率,默认一般是9600根据自己的蓝牙设备设置而定
pinMode(LIGHT_PIN,OUTPUT);
}
void loop()
{
bt_command = Serial.read(); //从蓝牙上读取数据
if(bt_command == '1'){ //如果为字符1,闭合继电器,灯亮
digitalWrite(LIGHT_PIN,HIGH);
}else if(bt_command == '0'){ //如果为字符0,断开继电器,灯灭
digitalWrite(LIGHT_PIN,LOW);
}
delay(2000); //做一个保护,避免点击过快,损坏灯
}
代码很简单,相信大家理解没有问题。
四、Android代码
这块相信是大家认为比较麻烦的,的确也是最麻烦的地方。不多说了,大家自己看源码。之前是用自己蓝牙的mac地址做寻址,方便。为了方便大家用,增加了设备扫描功能,这样如果不想做Android程序的,可以直接安装apk就能用。我在我的里程碑(用的MIUI)和i9100上都试过了,没问题。Enjoy it!
代码在github.com上:https://github.com/kindlymouse/Arduino
五、效果演示
http://v.youku.com/v_show/id_XMzg5NDA1ODI4.html
说明:我玩Arduino时间很短,还是新手。不足之处,大家见谅并请多提意见!