查看: 42792|回复: 9

飞比物联网培训教程--"玩转物联网"之二、带反馈的Zigbee无线电灯实验

[复制链接]
outman 发表于 2012-10-13 12:30:58 | 显示全部楼层 |阅读模式
飞比物联网培训教程--"玩转物联网"之二、带反馈的Zigbee无线电灯实验

该系列文章已经全部更新至“飞比云百科知识库(FBee Cloud WIKI)”中,建议到以下网址阅读:http://www.fbeecloud.com/wiki


  标题有点长,先解释一下:既然是“玩”,我们就从最简单又好玩的开始,“物联网”是“物”联起来的网,这里的“物”至少要具备以下两个属性之一:第一是把自己的状态“上报”至指定地点――采集属性;二是它是可以被“授权设备(人)”来进行控制――控制属性。电灯恰恰是既简单,又可以同时有这两个属性的最好例子了:它可以远程被打开或者关闭,同时它的状态可以“反馈”给控制终端。当然,电灯只是“高低电平”控制的一个例子,有了“继电器”这种弱电控制强电的设备,它可以是插座、水龙头、阀门等各种通过高低电平控制的部件。

  再简单说下B/S模式与C/S模式,这是互联网的两种不同的结构,因为这个例子里的电灯是可以通过互联网进行控制的,那就难免要和这两个名词打交道。所谓B/S,C/S分别是指Brower/Server与Client/Server,即浏览器/服务器与客户端/服务器模式。通俗点,可以理解为这个电灯是通过网页来控制,还是通过客户端软件来控制的。在这章中,我们会分别来探讨这两种方式。

  先看下整个系统的结构图:


  从这幅图中,我们看到可以发送控制的终端可以是:1、飞比物联网浏览器或者用户自行开发的客户端软件(即C/S模式,可以基于Windows、iOS或者Android不同的平台);2、普通互联网浏览器(即B/S模式)。通过这两种模式,均可以向“飞比云服务平台”发送控制指令;与Zigbee网络相连的“网关”设备(可以是运行“飞比物联网浏览器” 的PC或者嵌入式网关),可以获取“飞比云服务平台”的控制指令后,转达给zigbee协调器,并最终由协调器发送2.4G空中指令,控制zigbee节点的IO口状态,打开或者关闭电灯。

  铺垫了半天,下面我们就真正开始“玩”了,分两种玩法,先用“FBee Zigbee模块”玩一遍;然后再用“开发板”来玩一遍。

  有人又问了:“模块”和“开发板”有什么区别?这个又说来话长了,有人已经等不及了。简单来说,“模块”是写好软件的,针对的是只想用Zigbee快速开发产品的人群,特点是简单、稳定;而“开发板”是要自己写Zigbee软件的,针对想把Zigbee当成一门技术深入掌握的,特点是灵活、深入,但周期长。

  好了,摩拳擦掌,终于可以开始了!

  先看下B/S模式下控制界面:fbeecloud.svfreee.net

  怎么,点了开关没反应?是的,那是因为灯的状态需要有了“反馈”信息后才会变化的,也就是说先要有“物”,才能“上网”,下面我们就一起先让这个“物”动起来:

一、如何用FBee Zigbee模块实现无线电灯控制(开发板用户可直接跳过此节)

1、硬件准备

最简单的设备如下表:


  分别将两个模块与底板连接,将协调器通过USB转串口线连接电脑串口,并将LED灯连接终端节点底板的CN3第10脚(即DIO1,其与模块P2 PIN19连通)与CN3第20脚(即GND),注意LED灯的极性,脚短一侧接地,同时将底板P70 PIN23与PIN25相连,用于控制状态反馈。如下图所示(右侧为终端节点):


2、设置节点参数
  为方便大家了解FBee模块的AT指令集,下面我们采用串口助手与FBee Wizard两种方法进行设置,串口助手使用SSCOM32(点此下载),波特率设为38400。

1)、设置协调器为控制模式
  依次输入如下命令:
  %FBee&AT(记得勾选“发送新行”,即增加回车换行符\r\n)
  ATCT
  模块回复:
  CT OK
  EXIT AT MODE
  表明模块已经进入CT模式

2)、将终端节点组网,并设置相应参数
  在保持协调器打开的前提下,打开终端节点电源,观察协调器绿色LED灯,闪烁数次,表明终端节点已经成功入网,此时按终端节点的测试键S1,协调器绿色将会闪烁。如果未出现此现象,则按模块手册(点此下载)介绍的方法,分别将协调器与终端节点“重置参数”,然后重复前面步骤。

  将终端节点连接电脑串口,按一下S1键,将其唤醒(绿灯亮起),然后在10秒时间内,按1)相同的方法,依次输入如下命令:
  %FBee&AT(记得勾选“发送新行”,即增加回车换行符\r\n)
  ATUD 0003(将模块的UserID号设为0003,原因后续将详解)
  ATIO 02(将节点DIO1和DIO3设为输出模式,DIO2设为输入模式,用于反馈状态)
  ATSO 00E0(BIT5-BIT7置1,代表传感数据中包含Bit5:开关量;bit6:最后一跳rssi;Bit7: 用户自定义ID)
  ATCL(设为采集模式)
  ATEX
  注:上述指令发送成功后,模块会返回类似“OK xxxx”表明设置成功
  以上指令的详解请浏览“FBee Zigbee Module 产品手册 V2.0.pdf”,此处不再赘述。

3)、用串口助手测试本地采集
  将协调器与电脑串口相连,重启终端节点,会在串口助手连续收到数据,勾选“Hex显示”后,将得到下图所示数据:
  

  这说明我们已经迈出了成功的第一步――采集,也即灯的亮灭状态已经可以实现上报了。对这段数据所代表的含义,简单解析如下:

  FB(协议头)
  07(数据长度,红色字体部分)
  55 F6(节点短地址)
  01 00(一个开关量,值为0)
  30 00 03(UserID号为0003)
  23 EE(信号质量RSSI值为-17dbm)
  A0(检验和)

4)、用串口助手测试本地控制
  在前面的设置中,我们已经将协调器设为了控制模式了,此时只需要在串口助手中输入如下指令,即可开关终端节点上的红色LED灯了:

  CTO1 55F601(将终端节点DIO1端口电平置高)
  CTO1 55F600(将终端节点DIO1端口电平置低)
  注:55F6地址是终端节点短地址,从上述采集数据中获取

  可以发现,当LED灯状态变化时,在随后所采集的DIO2的数值也相应变化。如下图:
  

  至此,我们已经成功地实现了“本地”的电灯控制与状态反馈。也即实现系统结构图中的如下部分:
  

  在后续的章节中,我们将介绍如何采用飞比物联网浏览器来构建场景,将实现数据上传。

二、如何用飞比Zigbee开发平台实现无线电灯控制(模块用户可跳过此节)

1、首先,要做的是硬件上的准备,最简单的设备如下表:

  

  将FB2530BB板上的P10 PIN4与PIN11用杜邦线连接,即将P1.1的输出状态引入P2.0输入口,作为灯的反馈信号。连接方式如下图所示:
  

  对开发板使用不熟悉的朋友建议先阅读开发板使用文档,了解硬件连接与开发工具的使用,此处不再重复。

2、分别下载CollectorEB.hex与UID03_P20IN_P11OUT.hex文件至EB与BB板中

3、用串口助手测试本地采集
  将协调器与电脑串口相连,重启终端节点,会在串口助手连续收到数据,勾选“Hex显示”后,将得到下图所示数据:
  


  这说明我们已经迈出了成功的第一步――采集,也即灯的亮灭状态已经可以实现上报了。对这段数据所代表的含义,简单解析如下:

  FB(协议头)
  05(数据长度,红色字体)
  55 F9(节点短地址)
  30 00 03(UserID号为0003)
  01 00(一个开关量,值为0)
  60(检验和)

4、用串口助手测试本地控制
  此时只需要在串口助手中输入如下指令,即可开关FB2530BB上的绿色LED灯了:

  CTO1 55F901(将终端节点P1.1口电平置高,即绿灯灭)
  CTO1 55F900(将终端节点P1.1口电平置低,即绿灯高)
  注:55F9地址是终端节点短地址,从上述采集数据中获取

  可以发现,当LED灯状态变化时,在随后所采集的P2.0口的数值也相应变化。如下图:
  

  至此,我们已经成功地实现了“本地”的电灯控制与状态反馈。也即实现系统结构图中的如下部分:
  
  
  在后续的章节中,我们将介绍如何采用飞比物联网浏览器来构建场景,将实现数据上传。
  
5、关于如何用ZStack来实现上述的功能
  这一系列的教程会是循序渐进的,从用模块实现,到用开发板演示,到最后的源代码解析都会包括,但代码解析部分内容会在最后的章节中出现,集中去讲解每一个演示如何实现。在这之前,都会留下一些“伏笔”,像下面这样:

  [伏笔一]、如何用ZStack实现具有睡眠功能,及状态反馈的“无线电灯节点”

  飞比物联网培训教程--"玩转物联网"之一、前言及目录

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ryan.he 发表于 2012-10-16 22:07:26 | 显示全部楼层
好东西,顶起来
hkandwx 发表于 2012-11-4 22:30:16 | 显示全部楼层
有些还看不懂
zjx 发表于 2012-11-22 17:11:55 | 显示全部楼层
呵呵,值得借鉴。
鳄鱼的眼泪 发表于 2012-12-20 08:47:42 | 显示全部楼层
顶!呵呵 ~~
651076842 发表于 2013-6-2 10:42:26 | 显示全部楼层
确实是好东西,我会跟起来的
冰芷ice 发表于 2013-8-5 16:45:32 | 显示全部楼层
入门必学,谢谢分享
pig_fly 发表于 2013-8-31 18:47:20 | 显示全部楼层
我用的开发套件 有源程序代码  下载终端节点SensorBB    到板子上为什么无法绑定到协调器啊  用路由程序RouterBB就可以绑定
孙雪松 发表于 2013-12-27 15:37:20 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表