zigbee快速上手

zigbee快速上手,第1张

提示:此文章配合淘宝商家DNLN模块例程使用更佳

文章目录
  • 一、前期准备
  • 二、修改zigbee配置
  • 三、使用zigbee沟通上位机与单片机
    • 1.发送信息给上位机
      • 1.1 main函数
      • 1.2 单片机和上位机通信
    • 2.上位机控制单片机
  • 总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、前期准备

首先拿到两个zigbee(以下叫做 DNLN模块)

要找一个usb转ttl的串口1,与zigbee连线,(3.3 连 Vcc,gnd连gnd,Rxd连tx,txd连rx),串口1直接连接电脑,安装驱动

对于单片机,要将 B10连接RX ,B11连接Tx(zigbee模块修改后才连上)

二、修改zigbee配置

打开UartAssist(串口助手),用命令改写以下信息(地址,信通,网络id和波特率,波特率一般不用改,我们使用115200可以配套商家的例程使用)

这些信息怎么改呢,要把信通和网络改为相同,这样zigbe模块可以通讯

地址可以用来区分不同的zigbee模块,给他们编号。

(以下例子,连接电脑的zigbee叫做11 ,连接单片机的叫做12 )

修改方式

当修改完zigbee之后,就可以打开商家的例程,但是这个这个例程太不给力,直接运行不不了的

最好自己重新创建一个文件,然后把库拖进去,为了方便,可以使用我重新创建的工程

三、使用zigbee沟通上位机与单片机 1.发送信息给上位机 1.1 main函数

main中有哪些函数 ,还有他们的功能

void recievePkg(sPkg*pkg);(抓到一个包后的处理)
void loopReceive(void);(不断抓包)
void loopAll(void);(单片机一个周期中胡执行的动作)
void initAll(void);(指代初始化所有的负载)
1.2 单片机和上位机通信

在最开始 , 单片机的zigbee模块(后称为模块 1)会创建一个新的数据包(储存着要给电脑发送的数据)

newPkg(1) THPkg = {5,0x90,0x32,0x11,0x00,0x32};

这是一个结构体,意思是,单片机端口90 向电脑11号zigbee模块32号端口发送数据
0032。

端口号,模块地址以及数据都可以修改

newPkg定义满足 zigbee 包的格式

#define newPkg(num)	\
struct 						\
{							\
	u8 length;			\ 包长度
	u8 src_port;			\源端口号
	u8 dis_port;			\目的端口号
	u8 remote_addrH;\目的地址
	u8 remote_addrL;\
	u8 data[num];		\
}

然后我们使用loopall完成一次对电脑的信息发送


THPkg.dis_port = 0xa0; (向电脑端口a0发送数据,原来是32)
THPkg.data[0]=30;(数据是 30 )
sendPkg((sPkg*)(&THPkg));(发送数据命令)

如果电脑有接入zigbee模块,此时串口助手 UartAssist 会收到 FE a0 90 12 00 30 FF

此时就完成了一次单片机发送数据到电脑

2.上位机控制单片机

如果我们要让电脑控制单片机

找到 recievePkg(sPkg* pkg)函数中的switch部分(如下)

意思是,如果单片机的 b0 端口收到消息,将灯关闭,其中控制可以任意更改

case 0xb0:
			if(pkg->data[0] == 0x01)//若端口b0收到消息
			{
				
				close();//把灯关闭,可以修改
				
			}

总结

提示:这里对文章进行总结:
此处只是简单介绍如何使用zigbee并且看到现象
至于原理,我还搞明白

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/674688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存