基于Basic RF的智能家居控制系统---智能照明功能(照明端)
通过两个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的智能家居控制系统---智能照明功能(照明端)相关推荐
- 基于java智能家居,基于JAVA的智能家居控制系统的设计(信息控制端的设计)-论文二稿...
基于JAVA的智能家居控制系统的设计(信息控制端的设计)-论文二稿 PINGDINGSHAN UNIVERSITY毕业论文 (设计 )题 目:基于 JAVA 的智能家居控制系 统的设计(信息控制端的设 ...
- android+智能家居控制系统,基于Android的智能家居控制系统设计与实现
摘要: 随着科技的发展和人民生活水平的提高,智能家居系统逐渐走入大众视野,越来越受到人们的青睐.目前市面上智能家居产品也越来越多样化,基于Android的智能家居控制系统是目前的研究热点之一,本论文以 ...
- 智能家居(13)——智能家居控制系统
基于树莓派制作智能家居控制系统 一.功能介绍 二.实现思路 三.源代码分析 一.功能介绍 灯光的控制:模拟客厅灯.餐厅灯.二楼灯.卫生间灯.灯光可以通过手机App.语音.控制开关. 家内发生火灾后报警 ...
- 【人工智能】智能家居控制器中的智能智能家居控制系统
文章目录 智能家居控制器中的智能智能家居控制系统 智能家居控制器中的智能智能家居控制系统 智能家居作为人工智能领域的重要应用之一,以其便捷.实用.智能化等特点受到了越来越多的关注.智能家居控制器作为智 ...
- 基于ESP32的智能家居控制系统-微信小程序
一. 课题研究意义.现状及应用分析 1.1课题研究意义及现状 目前,科学技术发展十分迅速,其渗透到各行各业以及生活的方方面面,室内设计和高科技结合便出现了"智能家居".所谓智能家居 ...
- 基于ZigBee和STM32的智能家居控制系统的设计与实现(五)--终结篇
基于ZigBee和STM32的智能家居控制系统的设计与实现(五)–终结篇 说明 首先祝贺自己顺利的完成了毕业答辩工作,想起整个过程还是挺让自己感动的.最后还被评为优秀毕业设计,虽然并没有什么luan用 ...
- 基于ZigBee和STM32的智能家居控制系统的设计与实现(二)
基于ZigBee和STM32的智能家居控制系统的设计与实现(二) 上一篇博客中总体介绍智能家居系统的基本实现原理,这篇博客和以后的几篇博客会详细进行相应的介绍.这里首先进行硬件电路的设计. 硬件电 ...
- 基于ZigBee和STM32的智能家居控制系统的设计与实现
基于ZigBee和STM32的智能家居控制系统的设计与实现(一) 时间过的好快,已经到了做毕业设计的时候了,本次毕业设计题目是自己选的,为什么做这个?原因很简单,想把自己所学的大部分知识都应用上,虽然 ...
- 基于ZigBee和STM32的智能家居控制系统的设计与实现(三)
基于ZigBee和STM32的智能家居控制系统的设计与实现(三) 自从前两篇博客介绍了智能家居系统的基本实现机理后,收到了好多朋友的来信,和我讨论了好多的这方面的知识,在此很高兴,虽然自己做的这个所谓 ...
最新文章
- 队列:实用程序服务和数据结构
- 去掉警告:PerformSelector may cause a leak because its
- Jquery为DIV添加点击事件,Jquery为a标签超链接添加点击事件
- Mysql insert语句的优化
- 嵌入式Linux学习笔记(0)基础命令。——Arvin
- Spark的RDD操作之Join大全
- java去掉图片边框颜色_sharp 去除图片边框
- 【kafka】消息队列设计精要
- Java基础 - 变量的定义和使用
- JavaScript 计数器
- php在线生成logo,logo在线生成 php在线生成ico文件的代码
- 华硕笔记本开机直接进入bios解决方法
- python爬虫入门技术手册
- html border线条重叠,关于border边框重叠颜色设置问题
- “Derivative of state ‘1‘ in block ‘X/Y/Integrator‘ at time 0.55 is not finite“类问题解决办法
- 5个Python开发实用工具
- 删除设备和驱动器中的迅雷下载、百度网盘的图标(win10、win11可用)
- 再见吧 buildSrc, 拥抱 Composing builds 提升 Android 编译速度
- 蓝桥杯 ADV168 算法提高 快乐司机(贪心 快排)(java)
- 剑三服务器维护是因为人太多吗,【剑网三相关 】阵营对战 从上午10点一直打到第二天凌晨6点半服务器维护 而且今天下午他们又开始打群架了...
热门文章
- 【STM32学习笔记-LED呼吸灯】
- try-catch-finally 中哪个部分可以省略?
- python拆分大文本(.txt)文件
- 分享一个强大的makedown编辑器
- 淘宝联盟图像搜索同款商品,按主图找同款产品,以图搜相似款
- 阿里巴巴java社招面试_阿里社招Java面试题总结——面试官分享
- python人物关系抽取小说_用python分析小说人物关系(一)——理论篇
- JavaScript-创建数组的两种方法,数组的遍历,lenght获取数组的长度,在数组末尾追加元素
- onedrive备份桌面后,从桌面打开文件提示“目录名称无效”
- 犀牛书读书笔记-客户端javascript时间线