原来如此 发表于 2014-1-10 14:52:37

pcDuino控制z-wave门锁

说到z-wave不得不提到一个热门话题,那就是智能家居。为何z-wave在智能家居方面占据了强势地位呢?这主要基于Z-Wave的属性。Z-Wave是一种新兴的基于射频的、低成本、低功耗、高可靠、适于网络的短距离无线通信技术。工作频带为908.42MHz(美国)~868.42MHz(欧洲),采用FSK(BFSK/GFSK)调制方式,数据传输速率为9.6 kbps,信号的有效覆盖范围在室内是30m,室外可超过100m,适合于窄带宽应用场合。随着通信距离的增大,设备的复杂度、功耗以及系统成本都在增加,相对于现有的各种无线通信技术,Z-Wave技术将是最低功耗和最低成本的技术,有力地推动着低速率无线个人区域网。 Z-Wave技术设计用于住宅、照明商业控制以及状态读取应用,例如抄表、照明及家电控制、HVAC、接入控制、防盗及火灾检测等。Z-Wave可将任何独立的设备转换为智能网络设备,从而可以实现控制和无线监测。Z-Wave技术在最初设计时,就定位于智能家居无线控制领域。采用小数据格式传输,40kb/s的传输速率足以应对,早期甚至使用9.6kb/s的速率传输。与同类的其他无线技术相比,拥有相对较低的传输频率、相对较远的传输距离和一定的价格优势。 Z-Wave技术专门针对窄带应用并采用创新的软件解决方案取代成本高的硬件,因此只需花费其它类似技术的一小部份成本就可以组建高质量的无线网络。

一、 器件清单
pcDuino V2x1

z-wave门锁(Stanley Black & Decker)x1

z-wave donglex1

http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8718.png

二、安装编译测试库
(1)在附件中下载相关的库文件复制到pcDuino:
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8722.png
(1)进入“/home/ubuntu/libzwave/test/test-1.0”先切换到root权限,然后将“configure”权限设置为可执行: $cd /home/ubuntu/libzwave/test/test-1.0 $sudo su $chmod +x configure
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8731.png
(2)运行“configure”,生产Makefile,然后建立z-wave库链接,最后执行make,此时会在当前目录下生成可执行文件“test”:

$ ./configure
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8741.png
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8752.png
$cp /home/ubuntu/libzwave/lib/libzwave.so.0.0.0 /usr/lib/

$ln -s /usr/lib/libzwave.so.0.0.0 /usr/lib/libzwave.so

$ln -s /usr/lib/libzwave.so.0.0.0 /usr/lib/libzwave.so.0
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8761.png
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8771.png
$make
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8781.png

三、测试运行
(1)将z-wave dongle插到pcDuino的USB口上,给门锁装上电池:
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%8791.png

(2)运行“test”(注意USB转串口的端口号,可以通过指令查看):

$dmesg | grep ttyUSB

$ ./test /dev/ttyUSB0
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87101.png
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87111.png
(3)现在可以添加门锁了:在终端输入 “1”回车,进入添加模式:
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87121.png
此时pcDuino上的z-wave dongle在等待门锁发送信号,必须在30S内按下门锁的“SMART”按键,否则会因为接收不到信号超时,自动退出添加模式。当按下按键门锁上的z-wave模块会有红色的指示灯亮起,接着pcDuino上的z-wave dongle接收到了信号,则完成节点添加:从终端返回的信息可以看见节点已成功添加,节点的ID为‘3’:
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87131.png
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87141.png
接着我们就可以控制门锁了,在终端输入“3”回车,终端会提示你输入锁的id,我们输入上面显示的node ID:3,就可以执行开锁动作:

unlock:
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87151.png
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87161.png
lock:
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87171.png
http://cnlearn.linksprite.com/wp-content/uploads/2014/01/%E5%9B%BE%E7%89%87181.png
四、附件及常见问题
附件下载:

设备添加失败可能有以下几个原因:
1. 超时。程序默认超时时间为30s,规定时间内没有收到z-wave设备信号,则退出添加模式,添加失败。
一般多见于电池供电设备,电量低可能会导致信号减弱,此时应该更换电池或者添加时更靠近controller(建议<1m).

2. 处理错误。

3. 重复添加同一设备。

4. ID=1。移除,重新添加可解决。

移除出现失败(基本是由于controller没有收到信号),则不能进入添加模式,此时继续进行移除即可。


hegery 发表于 2014-1-14 17:07:43

你是编译usbserial进内核才有的ttyusb0吗
页: [1]
查看完整版本: pcDuino控制z-wave门锁