项目名称: |
多点无线温度采集系统 |
项目实现的功能说明: |
这个项目的由来是基于实际的需求:要带N组人(N=20+)完成N组多点(6个通道)无线采集系统,为了方便检查成果,就做了这么个东西。事前会对各种RF、通道和地址参数做统一规定。因为可能存在设置不符合规定的情况,虽然他们手头结果是能互通的,但并不保证配置就是对的,所以只有和我的这个收发成功,才算功能过关。
为了满足检查需求,我的这个就必须能够在多个组的6个通道上做切换,暂时没有在RF上做文章,直接使用地址来做区分。无线模块指定使用nRF24L01,地址使用5 bytes,分别是{通道号、组号、0x11、0x22、0x33}。同时为了检查收发,必须能够实现收发切换,发射模式下,1s发送一个本地温度数据。而接收模式在处理数据外,是一直处于监听状态的,有接收到数据则更新对应的通道,如果某通道5s以上没有收到数据更新,则认为数据失效。 |
项目进展状态: |
完成 |
软硬件设计思路: |
无线收发模块使用的经典的nRF24L01,SPI接口;显示采用了LCD12864,因为只需要显示字符,SPI接口(开发板原配的因为只能显示4个数字,显然是不够的,就放弃了);一个按键,板载,用于切换固定组里面的6个通道和模式,按键采用扫描方式实现(因为试过KR,效果不好,还是要消抖才行),扫描中用到了定时器;一个旋钮,用来切换组,因为组数太多啦,用按键要按死人的,旋钮利用ADC实现。用定时器来实现数据的有效性判断(接收模式)以及1s间隔的数据发送(发送模式)。
这样的设计,基本上把809的内部模块都用到了,SPI使用硬件CSI也就是sau;按键扫描、数据发送间隔和数据有效性中用到了定时,旋钮使用了ADC,整体做了功耗控制,每个循环结束后halt,等待10ms定时器唤醒。初始化过程中就会用到IO的配置。基本上除了看门狗,都在了。 |
原理图: |
- |
源码: |
- |
相关帖子集锦: |
https://bbs.eeworld.com.cn/thread-477587-1-1.html
https://bbs.eeworld.com.cn/thread-477588-1-1.html
https://bbs.eeworld.com.cn/thread-477590-1-1.html
https://bbs.eeworld.com.cn/thread-477595-1-1.html
https://bbs.eeworld.com.cn/thread-477597-1-1.html
https://bbs.eeworld.com.cn/thread-477775-1-1.html |
作品形象代表照片: |
|
作品总结: |
通过项目,对809这个小家伙算是比较了解了,因为不支持GC,因此也稍深入了下CS+的使用。作品颜值不高,功能也并不复杂,但是还是做了些刻意的设计,尽量能够充分使用到809上的每一类模块。 |
最后陈述,为自己的作品拉票: |
麻雀虽小,五脏俱全;不求高大上,只求个精进。 |
演示视频: |
http://player.youku.com/player.php/sid/XMTM5MTcyMTk0MA==/v.swf |