通过两个cc2530的点对点功能来实现—智能照明功能 两个cc2530分为照明节点和中控节点

要实现的功能:

1–照明节点每隔0.5秒将灯的亮灭情况上报给中控节点
2–用户可以通过中控节点的按键1可远程控制照明节点上灯的状态翻转
3–中控节点使用本地的led灯来指示远程照明灯的亮灭情况,即远程照明灯亮则本地灯亮,反之亦然。

在做这个项目之前,我们必须要有cc2530的基础,这里博主就默认你们已经了解并学习过cc2530了。然后,去找一个点对点的原始代码包,这边博主也默认你们准备好了,,如果没有,私聊我发给你。

首先

我们了解一下点对点这个包的内容,我们刚打开文件会是这样子的:

在这之后
我们要设置频道,网络id,本机模块地址,发送地址,
两个设备进行通信时,我们的频道和网络id必须相同,然后设置一个本机地址是照明端的,发送地址是中控端,在初始化中,在初始化(一定是初始化照明端地址)。
初始化完后:
地址可以随便写的,可以不用完全抄我的,只不过两个板子的频道和id要一样。
然后,我们来认识一下主要的函数:在basic_rf.h中:

uint8 basicRfInit(basicRfCfg_t *pRfConfig);(这个是初始化基本射频数据结构)我们上面初始化的结构体就是它的参数,这里要注意的是:在调用此函数前,必须先调用HAL层的halBoardInit()函数初始化板载外设和射频硬件,
发送数据至目标数据的节点
destAddr—目标地址
pPayload—要发送的数据缓存区地址
length----发送的数据长度

uint8 basicRfSendPacket(uint16 destAddr, uint8 *pPayload, uint8 length)

//判断Basic RF层是否已经准备好接收数据
//准备好返回true,否则返回false

uint8 basicRfPacketIsReady(void)

//将Basic RF层接收到的数据和RSSI值存入预先分配好的缓冲区
//pRxData—存放接收数据的缓冲区地址
//len-------接收数据长度
//pRssi-----存放RSSI值变量地址
//返回值:实际写入缓冲区的数据字节数

uint8 basicRfReceive(uint8 *pRxData, uint16 len, int16 *pRssi)

//打开数据接收器
void basicRfReceiveOn(void);

//关闭数据接收器
void basicRfReceiveOff(void);

这些就是主要的内容,我们大部分的内容都可以用这些函数解决。
接下来就是通过这些函数,结合基础的cc2530知识,完成照明端的编写,
这里我采用板载led灯作为照明灯,
这是给出我的主循环内容仅供参考:如果要源码评论区

while(1){/* user code start */led_count++;    //LED发送间隔增加if(basicRfPacketIsReady())  //如果准备好接收{if(basicRfReceive(pRxData,APP_PAYLOAD_LENGTH,NULL)>0) //如果接收数据长度大于0{if(rcvdata_process(pRxData,&masterCMD,&slaveCMD1,&slaveCMD2)){//接收内容错误}else //接收内容正确{if(masterCMD==MCMD_CTRL_LIGHT)  //如果接收到控制灯的指令{if(slaveCMD1==0x01) //如果是开灯命令{LED1=0;led_state=1;}else if(slaveCMD1==0x02) //如果是关灯命令{LED1=1;//高电平熄灭led_state=0;}}}memset(pRxData,0,7);}}if(led_count>=10)   //如果时间间隔大于500ms{led_count=0;      //时间间隔清零if(led_state==0)    //如果LED状态为灭{build_payload(pTxData,MCMD_LIGHT_STATUS,SCMD_CLOSE,0x00);   //构建发送函数,主指令为照明灯状态,副指令1为开/关 }if(led_state==1){build_payload(pTxData,MCMD_LIGHT_STATUS,SCMD_OPEN,0x00);}basicRfSendPacket(CONTROL_ADDR,pTxData,APP_PAYLOAD_LENGTH); //发送数据包}halMcuWaitMs(50);/* user code end */}

照明端的主要功能就编写完成了。

基于Basic RF的智能家居控制系统---智能照明功能(照明端)相关推荐

  1. 基于java智能家居,基于JAVA的智能家居控制系统的设计(信息控制端的设计)-论文二稿...

    基于JAVA的智能家居控制系统的设计(信息控制端的设计)-论文二稿 PINGDINGSHAN UNIVERSITY毕业论文 (设计 )题 目:基于 JAVA 的智能家居控制系 统的设计(信息控制端的设 ...

  2. android+智能家居控制系统,基于Android的智能家居控制系统设计与实现

    摘要: 随着科技的发展和人民生活水平的提高,智能家居系统逐渐走入大众视野,越来越受到人们的青睐.目前市面上智能家居产品也越来越多样化,基于Android的智能家居控制系统是目前的研究热点之一,本论文以 ...

  3. 智能家居(13)——智能家居控制系统

    基于树莓派制作智能家居控制系统 一.功能介绍 二.实现思路 三.源代码分析 一.功能介绍 灯光的控制:模拟客厅灯.餐厅灯.二楼灯.卫生间灯.灯光可以通过手机App.语音.控制开关. 家内发生火灾后报警 ...

  4. 【人工智能】智能家居控制器中的智能智能家居控制系统

    文章目录 智能家居控制器中的智能智能家居控制系统 智能家居控制器中的智能智能家居控制系统 智能家居作为人工智能领域的重要应用之一,以其便捷.实用.智能化等特点受到了越来越多的关注.智能家居控制器作为智 ...

  5. 基于ESP32的智能家居控制系统-微信小程序

    一. 课题研究意义.现状及应用分析 1.1课题研究意义及现状 目前,科学技术发展十分迅速,其渗透到各行各业以及生活的方方面面,室内设计和高科技结合便出现了"智能家居".所谓智能家居 ...

  6. 基于ZigBee和STM32的智能家居控制系统的设计与实现(五)--终结篇

    基于ZigBee和STM32的智能家居控制系统的设计与实现(五)–终结篇 说明 首先祝贺自己顺利的完成了毕业答辩工作,想起整个过程还是挺让自己感动的.最后还被评为优秀毕业设计,虽然并没有什么luan用 ...

  7. 基于ZigBee和STM32的智能家居控制系统的设计与实现(二)

    基于ZigBee和STM32的智能家居控制系统的设计与实现(二)   上一篇博客中总体介绍智能家居系统的基本实现原理,这篇博客和以后的几篇博客会详细进行相应的介绍.这里首先进行硬件电路的设计. 硬件电 ...

  8. 基于ZigBee和STM32的智能家居控制系统的设计与实现

    基于ZigBee和STM32的智能家居控制系统的设计与实现(一) 时间过的好快,已经到了做毕业设计的时候了,本次毕业设计题目是自己选的,为什么做这个?原因很简单,想把自己所学的大部分知识都应用上,虽然 ...

  9. 基于ZigBee和STM32的智能家居控制系统的设计与实现(三)

    基于ZigBee和STM32的智能家居控制系统的设计与实现(三) 自从前两篇博客介绍了智能家居系统的基本实现机理后,收到了好多朋友的来信,和我讨论了好多的这方面的知识,在此很高兴,虽然自己做的这个所谓 ...

最新文章

  1. 队列:实用程序服务和数据结构
  2. 去掉警告:PerformSelector may cause a leak because its
  3. Jquery为DIV添加点击事件,Jquery为a标签超链接添加点击事件
  4. Mysql insert语句的优化
  5. 嵌入式Linux学习笔记(0)基础命令。——Arvin
  6. Spark的RDD操作之Join大全
  7. java去掉图片边框颜色_sharp 去除图片边框
  8. 【kafka】消息队列设计精要
  9. Java基础 - 变量的定义和使用
  10. JavaScript 计数器
  11. php在线生成logo,logo在线生成 php在线生成ico文件的代码
  12. 华硕笔记本开机直接进入bios解决方法
  13. python爬虫入门技术手册
  14. html border线条重叠,关于border边框重叠颜色设置问题
  15. “Derivative of state ‘1‘ in block ‘X/Y/Integrator‘ at time 0.55 is not finite“类问题解决办法
  16. 5个Python开发实用工具
  17. 删除设备和驱动器中的迅雷下载、百度网盘的图标(win10、win11可用)
  18. 再见吧 buildSrc, 拥抱 Composing builds 提升 Android 编译速度
  19. 蓝桥杯 ADV168 算法提高 快乐司机(贪心 快排)(java)
  20. 剑三服务器维护是因为人太多吗,【剑网三相关 】阵营对战 从上午10点一直打到第二天凌晨6点半服务器维护 而且今天下午他们又开始打群架了...

热门文章

  1. 【STM32学习笔记-LED呼吸灯】
  2. try-catch-finally 中哪个部分可以省略?
  3. python拆分大文本(.txt)文件
  4. 分享一个强大的makedown编辑器
  5. 淘宝联盟图像搜索同款商品,按主图找同款产品,以图搜相似款
  6. 阿里巴巴java社招面试_阿里社招Java面试题总结——面试官分享
  7. python人物关系抽取小说_用python分析小说人物关系(一)——理论篇
  8. JavaScript-创建数组的两种方法,数组的遍历,lenght获取数组的长度,在数组末尾追加元素
  9. onedrive备份桌面后,从桌面打开文件提示“目录名称无效”
  10. 犀牛书读书笔记-客户端javascript时间线