主要介绍使用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方式会更好调试。有了扩展板,在使用的时候会更清爽,一根连线都不用了。

java通过arduino控制led灯代码_bt

java通过arduino控制led灯代码_android_02

3)继电器

      由于要控制220v的电灯,所以我们需要一个继电器模块,用小电流来控制大电流设备。我使用的是Arduino兼容的JQC-3FF继电器模块,能承受277V/10A的交流设备,这对我们制作电灯来说足够用了,而且做工还挺精致的。

java通过arduino控制led灯代码_command_03

4)Android手机

      当然,肯定还有android手机。必须android2.0以上系统的android手机,推荐2.3及以上系统,必须要有蓝牙喲(废话)。

二、电路连接

1)继电器与电灯的连接

1脚--控制端,2脚--电源(VCC),3脚--地(GND),使用数据线直接与Arduino的数字信号端口连接(扩展板有专门的插口,很方便。),我们采用7数字引脚。接好的继电器如图所示。

java通过arduino控制led灯代码_手机_04


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时间很短,还是新手。不足之处,大家见谅并请多提意见!