弘毅 发表于 2014-8-18 11:37:22

HoneyBee Zigbee无线通信讲解01--最简单的无线收发

Honeybee的最大特点是可以非常简单的使用Zigbee进行简单地无线通信~~~

有多简单呢?继续往下看就好。。。。

使用Honeybee之前请在http://www.ocrobot.com/doku.php?id=zh:download下载0002或以上版本的IDE。

IDE下载好以后,我们来实现Honeybee的第一个无线通信代码,一收一发。

首先把下面的发射机代码下载进入第一块Honeybee。

#include <at128rfa1.h>

void setup()
{
Zigbee.begin(11);// 初始化Zigbee,定义信道
}

void loop()
{
Zigbee.beginTransmission(); // 启动传输
Zigbee.write("helloword"); // 传输helloword
Zigbee.endTransmission(); // 结束传输
delay(500); // 延时500毫秒
}

接收机代码

#include <at128rfa1.h>

void setup()
{
Zigbee.begin(11);// 初始化Zigbee,定义信道
Serial.begin(9600); // 启用串口,波特率9600
}

void loop()
{
if (Zigbee.available()>0) // 判断Zigbee数据接收缓冲区是否有数据
{
    Serial.println();
    Serial.print("Rx: ");
    while(Zigbee.available())
    Serial.write(Zigbee.read());// 读取缓冲区数据,通过串口输出。
}
}


打开接收机的串口监视器,波特率9600~~就能看到不停有数据发送过来。





---------------------华丽的分割线----------------------

第一次无线通信完成后我们来介绍下这些代码。
所有的Honeybee代码我们都有
#include <at128rfa1.h>
这个是调用了无线通信的函数库,大家复制上就可以了。。。

通过发射机的工作代码可以看到我们要启动Zigbee首先要通过Zigbee.begin()函数初始化及信道,Zigbee在2.4G频段下的信道是11-26~所以起步就是11哦。。。。

如果要发送数据我们首先需要通过Zigbee.beginTransmission()函数启动传输过程,然后通过Zigbee.write()发送数据,发送数据完毕后通过Zigbee.endTransmission()来结束传输。

对于接收端,我们同样需要使用Zigbee.begin()初始化及定义信道,可以直接使用Zigbee.read()读取缓冲区数据。。。不过最好是通过Zigbee.available()判断缓冲区是否有数据后再获取。


具体函数介绍可以看语法手册
http://www.ocrobot.com/doku.php?id=zh:reference:librariy:zigbee

Dzz 发表于 2014-8-18 16:33:35

值得推荐、、、、第一次一楼:lol,弱弱说一句,楼主电脑要擦擦了、、、

loucat 发表于 2014-8-18 19:25:50

这个有没有便宜点的解决方案啊,100+的价格,真用这个在家里组个物联网,还不得上千啊

wing 发表于 2014-8-19 12:23:27

毅毅,传说你的二手thinkpad工作站很正点呢,
SHOW些本本图来看看嘛

impig33 发表于 2014-8-19 15:04:24

楼主这明明是在炫耀新买的Thinkpad吧

tgyfish 发表于 2014-8-19 15:34:41

好多人发帖都不是教程了都是做出来看你们赞的了,所以觉得还是弘毅大大强子大大最好了!

弘毅 发表于 2014-8-19 16:21:30

wing 发表于 2014-8-19 12:23 static/image/common/back.gif
毅毅,传说你的二手thinkpad工作站很正点呢,
SHOW些本本图来看看嘛

下篇介绍信道上3个Honeybee~~~多露点本本

幻生幻灭 发表于 2014-8-22 18:44:13



我想问如何实现8888积分。。。

simatic_net 发表于 2014-8-22 20:53:10

我想知道,如果使用Zigbee通信以后,我还剩多少端口。

弘毅 发表于 2014-8-24 10:35:04

本帖最后由 弘毅 于 2014-8-24 10:36 编辑

simatic_net 发表于 2014-8-22 20:53 static/image/common/back.gif
我想知道,如果使用Zigbee通信以后,我还剩多少端口。

所有端口都可用。。。。128RFA1自带无线功能,所以不会占用其他端口,SPI,IIC,串口啥都没有占用。

弘毅 发表于 2014-8-24 10:37:05

顺道悄悄地说,Honeybee有两路串口,一路是给usb下载程序用,D0,D1是另外一路。配合Honeybee上的跳帽。。。实际有两路串口可以用哦~~

zix 发表于 2014-8-29 15:19:32

这个用起来跟arduino 有和不同?不用无线的时候完全兼容吗?语法也一样吗?

弘毅 发表于 2014-8-29 23:22:31

zix 发表于 2014-8-29 15:19 static/image/common/back.gif
这个用起来跟arduino 有和不同?不用无线的时候完全兼容吗?语法也一样吗?

恩,完全一样。。。语法没什么不同
页: [1]
查看完整版本: HoneyBee Zigbee无线通信讲解01--最简单的无线收发