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. 2011年终盘点——附图灵公司销售榜单(TOP20)
  2. android 8 续航 评测,iPhone8续航能力测试 明显超过许多安卓手机
  3. speaking class onOct 13
  4. iOS-pushMeBaby经典错误解决
  5. 中考物理可不可以用计算机,不能用计算机?2021年起广州中考课目改为“4+4”...
  6. Guava ImmutableCollection简介
  7. 关系数据库SQL之可编程性存储过程 1
  8. HTML5-坦克大战一画出敌人坦克并让自己的坦克可以发子弹的功能(二)
  9. linux下telnet工具下载,telnet.exe下载
  10. Mac卸载Anaconda
  11. 题529. 扫雷游戏
  12. java编译的类包含美元符号 $
  13. Python一步实现静态图片动态化
  14. Python 读文件只读了一部分的问题解决
  15. java 气象局api_【开放数据】中国气象局API接口
  16. codeforces 711C Coloring Trees(DP)
  17. html tab focus,tabindex解决div获得焦点focus()和失去焦点blur()的问题
  18. 6种穷人思维必须警惕
  19. 阿里巴巴编码规范(Java)
  20. chrome窗口和标签页快捷键

热门文章

  1. Node.js结合Express框架项目搭建
  2. i7-10700K和i7-9700KF哪个好
  3. 数据结构——2-3树
  4. 移动手机网站H5页面如何一键打开拉起微信小程序快速关注公众号功能?
  5. Win7用户文件夹转移
  6. 开放式运动耳机排行榜,排行榜最高的五款骨传导耳机
  7. Java实现航空机票订票系统
  8. 2022年数学建模国赛--赛后总结
  9. 多懂点SQL可以写出更好的接口
  10. RHCSA 认证考试容器解析版 (2022最新版)