2021物联网国赛zigbee点对点通讯——G卷
2021物联网国赛zigbee点对点通讯——G卷
一、实现的功能
二、预备知识
1:zigbee的点对点可以使用协议栈或者新大陆的工程文件进行开发,在这里我使用的新大陆的点对点工程文件对题目进行开发
2:新大陆的zigbee开发板(无论是白板还是黑板(协调器))它的继电器的引脚分别是P1_7和P2_0这里拿的是新大陆的开发板举例其他开发板需要自己参考电路图
3:在通讯的时候两个zigbee之间的网络ID和频道一定要一致,选手在比赛时要注意自己设置的网络ID,频道和模块地址一定要不要与其他选手冲突!!!!
三、主节点代码
#include "hal_defs.h"
#include "hal_cc8051.h"
#include "hal_int.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_led.h"
#include "hal_rf.h"
#include "basic_rf.h"
#include "hal_uart.h"
#include "sensor_drv/sensor.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
/*****点对点通讯地址设置******/
#define RF_CHANNEL 11 // 频道 11~26
#define PAN_ID 0x0001 //网络id
#define MY_ADDR 0x1234 //本机模块地址
#define SEND_ADDR 0x4321 //发送地址
/**************************************************/
static basicRfCfg_t basicRfConfig;int count=0;//unsigned char dat_send[20];
// 无线RF初始化
void ConfigRf_Init(void)
{basicRfConfig.panId = PAN_ID;basicRfConfig.channel = RF_CHANNEL;basicRfConfig.myAddr = MY_ADDR;basicRfConfig.ackRequest = TRUE;while(basicRfInit(&basicRfConfig) == FAILED);basicRfReceiveOn();
}
#define SW1 P1_2
#define D4 P1_0
#define D3 P1_1
#define D5 P1_4
#define D6 P1_3
unsigned char switch_LED=0;void Init_Port() //LED配置
{P1SEL &=~0x1b;P1DIR |=0x1b;P1 &=~0x1b;
}void delay(unsigned int xms)
{while(xms--)for(unsigned int i=0;i<533;i++);
}void Scan_Key()
{if(SW1==0){delay(10);if(SW1==0){switch_LED=1;basicRfSendPacket(SEND_ADDR,"00",sizeof("00")); //当按键按下主节点发送字符串00给到从节点while(SW1==0);}}
}/********************MAIN************************/
void main(void)
{halBoardInit();//选手不得在此函数内添加代码ConfigRf_Init();//选手不得在此函数内添加代码Init_Port();while(1){/* user code start */Scan_Key();if(switch_LED==1){delay(500); //当按键按下执行流水灯P1=0x02;delay(500);P1=0x01;delay(500);P1=0x10;delay(500);P1=0x08;count++; //每次流完一次count++if(count>3) //当大于3的时候发送01给到从节点{basicRfSendPacket(SEND_ADDR,"01",sizeof("01"));} }/* user code end */}
}
四、从节点代码
#include "hal_defs.h"
#include "hal_cc8051.h"
#include "hal_int.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_led.h"
#include "hal_rf.h"
#include "basic_rf.h"
#include "hal_uart.h"
#include "sensor_drv/sensor.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
/*****点对点通讯地址设置******/
#define RF_CHANNEL 11 // 频道 11~26
#define PAN_ID 0x0001 //网络id
#define MY_ADDR 0x4321 //本机模块地址
#define SEND_ADDR 0x1234 //发送地址
/**************************************************/
static basicRfCfg_t basicRfConfig;
unsigned char dat_recv[10]; //接收数组
// 无线RF初始化
void ConfigRf_Init(void)
{basicRfConfig.panId = PAN_ID;basicRfConfig.channel = RF_CHANNEL;basicRfConfig.myAddr = MY_ADDR;basicRfConfig.ackRequest = TRUE;while(basicRfInit(&basicRfConfig) == FAILED);basicRfReceiveOn();
}#define SW1 P1_2
#define D4 P1_0
#define D3 P1_1
#define D5 P1_4
#define D6 P1_3
#define JD1 P1_7
#define JD2 P2_0void delay(unsigned int xms)
{while(xms--)for(unsigned int i=0;i<533;i++);
}
void Init_Port() //LED配置
{P1SEL &=~0x9f;P1DIR |=0x9b;P1 &=~0x9b;P2DIR |=0x01;P2SEL &=~0x01;}/********************MAIN************************/
void main(void)
{halBoardInit();//选手不得在此函数内添加代码ConfigRf_Init();//选手不得在此函数内添加代码Init_Port();while(1){/* user code start */if(basicRfPacketIsReady()) //判断是否接收到内容 返回值为true或者false{basicRfReceive(dat_recv,10,NULL); //将接收到的数据存入dat_recv当中if(strcmp(dat_recv,"00")==0) //对其进行判断使用strcmp函数 如果为00就打开继电器 也就是让对应引脚为高电平{JD1=1;JD2=1;}else if(strcmp(dat_recv,"01")==0) //如果为01关闭继电器 也就是让对应的引脚为0{halMcuWaitMs(3000); //延时大约3秒 毫秒级延时函数JD1=0; JD2=0;}}/* user code end */}
}
附:新大陆zigbee点对点工程链接!!
链接:https://pan.baidu.com/s/1A3NtZYWm_Z-Va7kJghRn-g
提取码:1ent
2021物联网国赛zigbee点对点通讯——G卷相关推荐
- 2021物联网国赛Lora模块通用库开发——A卷
2021物联网国赛Lora模块通用库开发--A卷 1:声明全局变量和导入本次所使用到的包 #include "hal_oled.h" int Stat_key=0; //记录按键次 ...
- 2021物联网国赛通用库开发——D卷
2021物联网国赛通用库开发--D卷 本次所需要实现的功能如下 一:导入竞赛选手所需要使用到的头文件 #inclide "adc_reader.h" //导入ADC头尾文件 #in ...
- 2021物联网国赛通用库开发——E卷
2021物联网国赛通用库开发--E卷 本次所需要实现的功能如下 一:导入竞赛选手所需要自己添加的包文件 #include "hal_oled.h" //OLED屏头文件 二:添加为 ...
- 【技能大赛真题】2019年物联网国赛任务三题1-无线通信系统
[题目要求]:无线通信系统 Zigbee通讯拥有短距离无线通讯的能力,选用一个Zigbee节点盒(蓝色),一个Zigbee模块(黑色),实现点对点的数据传输通讯,考核选手Zigbee点对点知识的掌握, ...
- 物联网国赛LORA模块开发基础教程(通用库)—点对点通信
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发基础教程(通用库)—传感器
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 第十二届蓝桥杯 2021年国赛真题 (Java 大学A组)
蓝桥杯 2021年国赛真题(Java 大学 A 组 ) #A 纯质数 按序枚举 按位枚举 #B 完全日期 朴素解法 朴素改进 #C 最小权值 动态规划 #D 覆盖 变种八皇后 状压 DP #E 123 ...
- 第十二届蓝桥杯 2021年国赛真题 (C/C++ 大学A组)
蓝桥杯 2021年国赛真题(C/C++ 大学 A 组 ) #A 纯质数 #B 完全日期 #C 最小权值 #D 覆盖 #E 123 #F 异或变换 #G 冰山 #H 翻转括号序列 #I 异或三角 #J ...
- 物联网国赛LORA模块开发基础教程(通用库)—串口收发
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
最新文章
- Affinity Propagation+聚类
- DuiLib的Combo控件点击无响应的问题
- 【STM32】F1 系列驱动全彩显示屏
- 存款全线下降,贷款大幅增加,你敢等吗?
- matlab最小生成树举例,Matlab最小生成树示例
- 从 Azure 下载 Windows VHD
- C语言描述的数据结构顺序表的置空 slt-size=0含义
- 如何将html放到虚拟主机上
- iis7服务器发布网站,新手如何在服务器上用IIS部署网站
- 普渡大学统计与计算机科学,普渡大学西拉法叶分校统计学
- Java随机更换背景图片_利用Java处理图片,更换背景
- ArcGIS创建企业级地理数据库
- Java面试——多线程高并发
- web全栈-第一讲:web开发基本知识点
- TokenGazer评级丨Monero:XMR缓慢发行损害矿工利益,去中心化治理带来社区分裂风险...
- PMP证书到期后,有没有必要续证了
- 淘宝/天猫如何获取sku API接口,item_sku - 获取sku详细信息
- Xshell远程登录中方向键及删除键出现乱码问题
- print.js分页,铺满纸张打印
- HTTPS到底是个啥玩意儿?
热门文章
- 15K的前端应届毕业生,就因为掌握了这些知识点!(前端企业级开发必备)
- 如何嫁给年入百万的阿里人?
- 利用OneDrive网盘建站
- 群智能(SI)与蚁群优化(ACO)概述
- 大神教你如何优化变压器匝间电容?
- ubuntu 使用LVM修改分区大小后开机报错的解决办法
- Android安卓毕业设计,SpringBoot+MySQL+Android studio 实现一个二手交易平台APP
- nginx: [emerg] open() /var/run/nginx/nginx.pid failed (2: No such file or directory)解决方法
- POI-HSSF表格
- 双击打开excel内容不显示而显示灰色