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卷相关推荐

  1. 2021物联网国赛Lora模块通用库开发——A卷

    2021物联网国赛Lora模块通用库开发--A卷 1:声明全局变量和导入本次所使用到的包 #include "hal_oled.h" int Stat_key=0; //记录按键次 ...

  2. 2021物联网国赛通用库开发——D卷

    2021物联网国赛通用库开发--D卷 本次所需要实现的功能如下 一:导入竞赛选手所需要使用到的头文件 #inclide "adc_reader.h" //导入ADC头尾文件 #in ...

  3. 2021物联网国赛通用库开发——E卷

    2021物联网国赛通用库开发--E卷 本次所需要实现的功能如下 一:导入竞赛选手所需要自己添加的包文件 #include "hal_oled.h" //OLED屏头文件 二:添加为 ...

  4. 【技能大赛真题】2019年物联网国赛任务三题1-无线通信系统

    [题目要求]:无线通信系统 Zigbee通讯拥有短距离无线通讯的能力,选用一个Zigbee节点盒(蓝色),一个Zigbee模块(黑色),实现点对点的数据传输通讯,考核选手Zigbee点对点知识的掌握, ...

  5. 物联网国赛LORA模块开发基础教程(通用库)—点对点通信

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  6. 物联网国赛LORA模块开发基础教程(通用库)—传感器

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  7. 第十二届蓝桥杯 2021年国赛真题 (Java 大学A组)

    蓝桥杯 2021年国赛真题(Java 大学 A 组 ) #A 纯质数 按序枚举 按位枚举 #B 完全日期 朴素解法 朴素改进 #C 最小权值 动态规划 #D 覆盖 变种八皇后 状压 DP #E 123 ...

  8. 第十二届蓝桥杯 2021年国赛真题 (C/C++ 大学A组)

    蓝桥杯 2021年国赛真题(C/C++ 大学 A 组 ) #A 纯质数 #B 完全日期 #C 最小权值 #D 覆盖 #E 123 #F 异或变换 #G 冰山 #H 翻转括号序列 #I 异或三角 #J ...

  9. 物联网国赛LORA模块开发基础教程(通用库)—串口收发

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

最新文章

  1. Affinity Propagation+聚类
  2. DuiLib的Combo控件点击无响应的问题
  3. 【STM32】F1 系列驱动全彩显示屏
  4. 存款全线下降,贷款大幅增加,你敢等吗?
  5. matlab最小生成树举例,Matlab最小生成树示例
  6. 从 Azure 下载 Windows VHD
  7. C语言描述的数据结构顺序表的置空 slt-size=0含义
  8. 如何将html放到虚拟主机上
  9. iis7服务器发布网站,新手如何在服务器上用IIS部署网站
  10. 普渡大学统计与计算机科学,普渡大学西拉法叶分校统计学
  11. Java随机更换背景图片_利用Java处理图片,更换背景
  12. ArcGIS创建企业级地理数据库
  13. Java面试——多线程高并发
  14. web全栈-第一讲:web开发基本知识点
  15. TokenGazer评级丨Monero:XMR缓慢发行损害矿工利益,去中心化治理带来社区分裂风险...
  16. PMP证书到期后,有没有必要续证了
  17. 淘宝/天猫如何获取sku API接口,item_sku - 获取sku详细信息
  18. Xshell远程登录中方向键及删除键出现乱码问题
  19. print.js分页,铺满纸张打印
  20. HTTPS到底是个啥玩意儿?

热门文章

  1. 15K的前端应届毕业生,就因为掌握了这些知识点!(前端企业级开发必备)
  2. 如何嫁给年入百万的阿里人?
  3. 利用OneDrive网盘建站
  4. 群智能(SI)与蚁群优化(ACO)概述
  5. 大神教你如何优化变压器匝间电容?
  6. ubuntu 使用LVM修改分区大小后开机报错的解决办法
  7. Android安卓毕业设计,SpringBoot+MySQL+Android studio 实现一个二手交易平台APP
  8. nginx: [emerg] open() /var/run/nginx/nginx.pid failed (2: No such file or directory)解决方法
  9. POI-HSSF表格
  10. 双击打开excel内容不显示而显示灰色