通过X10将Arduino连接到灯开关

时间:2012-03-01 09:02:17

标签: automation bluetooth arduino x10

我有兴趣制作蓝牙供电的Arduino灯开关,当我进入我的办公室(通过我的iPhone)并自动打开灯时感应。我的理解是,最安全的方法(即不使用220 V灯开关电源)来使用X10遥控器/电力线系统来打开灯开关。

可以在 X10 中找到用于将X10 Library连接到Arduino的库。

可以在 Connecting Arduino to Lightswitch via X10 中找到连接到Arduino(需要焊接)的盒子。

我无法弄清楚如何使用X10库以及如何编码它以便打开灯开关。我有一部分,一旦蓝牙配对,它发送X10命令。问题是我不知道要发送哪个X10命令。

1 个答案:

答案 0 :(得分:1)

Arduino X10 ZIP库中包含的示例非常有用。基本上,您只需要包含以下这些行:

// Initialize and create an X10 instance
x10 myHouse =  x10(zcPin, dataPin);  // Where these pins are what you connected the X10 transmitter to.

所有X10设备都有两个识别属性:房屋代码和单位代码。我们的想法是,你可以控制你家中的所有插座,每个房间都有一个房屋代码和每个设备的单元。实际上,在这个实验中,您只需要一个设备来容纳代码“A”。 您实际上并不需要精确控制从房屋代码中的多个设备中寻址一个设备。只需发送命令“房屋代码'上的所有东西''打开(或关闭)”什么工作正常。它不会发送多个命令,只是单个ON命令格式,如通配符地址。 假设您的开关设置为内部代码“A”和单元“1”,请使用以下命令将其打开:

 myHouse.write(A, ALL_LIGHTS_ON, 3);  // The 3 means send the same command three times to overcome any potential noise in the circuit. 

显然是关闭:

myHouse.write(A, ALL_LIGHTS_OFF, 3);

另一个使用X10的FYI是通过电源线传输的信号非常脆弱。大多数现代电路 - 如使用电源电涌保护器和多个断路器 - 可以过滤掉房屋一侧与另一侧之间的单一电路。因此,为了获得最佳效果,请将X10发射器和X10设备放在同一电路上,或尽可能靠近。