【单片机项目实训】基于nRF905的多点温度无线采集系统

将单片机项目实训——基于nRF905的多点温度无线采集系统分享出来,如有不足,敬请指出。

【实验图片】

【实验视频】

基于nRF905的多点温度无线采集系统设计

目录

目录

一、设计要求

二、方案设计

三、硬件电路设计

四、软件设计

五、其他图片

 六、资料链接

七、关于作者

八、后记



一、设计要求

        系统采用NRF905作为无线收发器,四个从机采集到温度信息分别发送给主机,主机显示四点的温度信息,并且可通过按键设定温度的上下限报警值,超限能够进行声光报警。

二、方案设计

        随着技术的发展,基于无线的信息传输方式越来越成熟,与有线的信息传输方式相比,无线的方式易于安装和后期维护。NRF905单片无线接收器是挪威Nordic公司推出的单片射频发射器芯片,工作电压为1.9V~3.6V,工作于433、868、915MHZ  3个ISM频道,通过SPI接口与MCU连接。由于51单片机没有SPI接口,可以通过软件模拟SPI通信协议进行通信。系统方案框图如下图所示。

三、硬件电路设计

        从机用DS18B20温度传感器进行温度采集,DS18B20是美国Dallas半导体公司的数字化温度传感器,其单总线控制方式最大限度的节省单片机有限的IO口资源,其I/O口和单片机第8脚P17相连。从机电路原理图如下图所示。

        主机使用LCD1602液晶屏进行显示,LCD1602液晶屏内置常用的ASCII码,有两种驱动方式,本设计考虑到显示数据的刷新速度,决定采用并口驱动方式;按键使用独立按键控制方式;声光报警部分采用蜂鸣器加LED指示。主机电路原理图如下图所示。

        无线收发器均采用挪威Nordic公司推出的NRF905单片无线收发器。

       思考:通过对比从机、主机原理图,发现其中一部分电路是相同的,也有部分差异,如果绘制PCB打样,需要设计两种PCB电路,考虑到成本与实际设计需要,作者本人设计了“主从一体机”,也就是从机、主机都是一样的电路,只是在具体焊接时部分器件不用焊接。

 主从一体机原理图如下所示:

备注:D1~D8指示灯的含义:

D1:1号从机测量的环境温度低于温度下限;
D2:1号从机测量的环境温度高于温度上限;
D3:2号从机测量的环境温度低于温度下限;
D4:2号从机测量的环境温度高于温度上限;
D5:3号从机测量的环境温度低于温度下限;
D6:3号从机测量的环境温度高于温度上限;
D7:4号从机测量的环境温度低于温度下限;
D8:4号从机测量的环境温度高于温度上限;

四、软件设计

        主机首先对从机分别分配不同的地址,然后通过地址来区别收到的数据是哪一个从机发来的。4个从机将温度传感器DS18B20测得温度值通过NRF905无线模块将数据传输给主机。

        (一)从机发送端

        1.主程序:

void main()
{
    
	system_init();
	while(1)
	{	
		DS18B20_ReadTemperature(&temp);
		display();
		send();     
	}
}

2.程序分析

        (二)主机接收端(下载链接在文章第六部分)

        1.主程序

void main(void)
{
	System_Init();
	while(1)
	{
		Receive_Data();
		Display();
		Limit_Set();
		Alarm();
	}
}            

        2.程序分析

五、其他图片

(一)PCB -3D视图

1.主机-PCB-3D   正反面

2.从机-PCB-3D   正反面

(二)系统实物图

1.整体效果图

2.1号从机图

3.2号从机图

4.3号从机图

5.4号从机图

6.主机图 

7.PCB空板图-正面

 7.PCB空板图-背面

 9.PCB-主机散件

10.PCB-从机散件

11.PCB-主从机散件

 六、资料链接

(1)作品演示视频链接

链接①:哔哩哔哩--------点击播放
链接②:优酷视频--------点击播放
链接③:爱奇艺--------点击播放
链接④:腾讯视频--------点击播放
链接⑤:搜狐视频--------点击播放

(2)硬件电路分析视频:

链接①:哔哩哔哩--------点击播放
链接②:优酷视频--------点击播放
链接③:爱奇艺--------点击播放
链接④:腾讯视频--------点击播放
链接⑤:搜狐视频--------点击播放

(3)软件程序分析视频:                   

链接①:哔哩哔哩--------点击播放
链接②:优酷视频--------点击播放
链接③:爱奇艺 --------点击播放
链接④:腾讯视频--------点击播放
链接⑤:    搜狐视频--------点击播放

(4)原理图链接:

方案一:主机、从机分开设计

方案二:主从一体机

(5)源程序下载:

程序下载

七、关于作者

八、后记

        1.在做完第一版的作品之后,作者有些后悔,原因是从机代码、主机代码是二套代码程序,并且1号从机、2号从机、3号从机、4号从机,需要根据不同的编号修改从机代码中的一个宏定义,然后编译、下载到不同的从机里面去,这样不是很“智能化”。最好是1号从机、2号从机、3号从机、4号从机、主机都是同一套代码,下载到所有板子中去。具体想法很简单:增加一个3位的拨码开关,第1位拨码开关不同状态表示是主机还是从机,第2位、第3位拨码开关不同的状态表示当前是1号从机、2号从机、3号从机还是4号从机,软件成本很低,就是硬件方面需要重新修改PCB、送工厂打样、焊接,暂时就不做这个了,将想法记录在这里,有兴趣的朋友可以去试试做一下。

        2.假设一种情形:1号从机、3号从机、4号从机开机,2号从机不开机,那么主机与1号从机通信后,准备和2号从机通信,这时候主机会貌似“卡死”,当然这是作者在代码中设定的通信机制,实际上这个机制也不够“智能”,应该是发现2号从机没有发送信息,就与下一个从机进行通信。这里有三种方法解决该问题:

        方法一:在等待2号从机的发送数据的地方,增加一个时间或者次数设置,过了一定的时间,发现2号从机没有发送信息,就准备和3号从机通信。这个方法是作者首先想到的方案,软件成本低,貌似可以解决问题。这个方法在既定的方案中,可以暂时解决这个问题,但是不是一劳永逸的方法。因为两个原因:第一是这个时间的设置,如果设置小了,从机2还在执行其他部分代码,还没有发送数据,这时候主机可能会因为没有等到信息就放弃和它的通信了,可能导致数据的丢失,并且这种丢失如果在3号从机、4号从机……中不断地叠加,导致主机显示的温度值看起来 “不变化”了。如果这个时间设定大了,这时候1号从机、3号从机、4号从机开机,2号从机关机,会因为“等待”2号从机,消耗一段时间,导致其他从机的温度数据刷新不够“及时”了。第二是采用这种方法,这个数值当然要实验,但是如果这个数值实验好了,设定在主机程序中了,这时候客户要求增加从机的功能,那么又要对这个数值进行新的实验,就显得这个方法不够“智能”了。

        方法二:在主机开机时,分别去检查从机是否在线,如果在线的,就将它的地址作为有效地址,将不在线的设备作为无效地址,然后主机只需去和在线的机器进行通信即可。但这个方法有两个问题:第一是不符合我们的日常习惯,日常习惯应该是这样,发现设备不在线,就不消耗时间去和它通信,但是发现从机设备一旦开机,状态从离线变为在线后,就需要和它通信并及时更新他的数据了。第二是这种方案涉及到主机发送信息、从机回复信息并返回温度数据,涉及到双向的通信,这种多个设备之间的通信功能上肯定是可以实现的,不过双向的通信时间上不知道怎么样,数据的“刷新”不知道时候可以让我们满意,暂时未进行实验,而且这样的通信显得过于繁琐。

         方法三:通过CD和AM的监测,判断是否有必要和该从机进行通信。

 这个方案目前是较好的,在选择该方案前,需要做一个实验,如果实验成功,就可以使用该方法,具体做法:从机对nRF905参数设置后while(1)进行“卡死”(原因暂不解释),主机通过CD和AM进行检测,如果可以,就可以使用该方案。该方法作者暂未实验,后续补充。

方法三实验结果:待补充!!!

   3.(2024.11.28记录)该实验中对于温度上限、下限的设置有一个细节需要完善,就是设置好温度的上限、下限之后,应该做好保存,最好是保存在EEPROM中,可以保障掉电以后,我们设置好的报警限制值是保存下来的,重新上电不至于重新设置,这样也较符合日常习惯,因为可以采用两种方法。(方法一)硬件完善,增加EEPROM,例如AT24C02系列芯片就可以。(方法二)采用单片机内部的EEPROM,例如STC89C52RC单片机内部的EEPROM,这里可以采用方法二,减少硬件开发成本,只需要加入程序代码即可,具体方法可以参考STC手册或者我的另一篇文章“【出坑笔记】正确使用STC单片机内部EEPROM

  4.没有完美的产品,只有相对较好的产品,只要敢去想、善于实验验证,就能够不断完善作品!

1 引言 温度采集系统采集温度通常通过RS485、CAN总线通信方式传输至上位机,但这种方式维护较困难,不利于工业现场生产;而无线通信GPRS技术传输距离长,通信可靠稳定,但设计复杂、成本昂贵。这里采用工业级内置硬件链路层协议的低成本单芯片nRF24L01型无线收发器件实现系统间的无线通信,完成无线信号的接收、显示及报警功能。 2 nRF24L01简介 nRF24L01是一款工业级内置硬件链路层协议的低成本无线收发器。该器件工作于2.4 GHz全球开放ISM频段,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合增强型ShockBurst技术,其输出功率和通信频道可通过程序配置。拥有ShockBurst和Enhanced ShockBurst两种数据传输模式。可直接与单片机I/O连接,外接元件数目少。nRF24L01功耗低,以-6 dBm的功率发射时,工作电流仅9 mA;接收时,工作电流仅12.3 mA,多种低功率工作模式(掉电和空闲模式)更利于节能设计。 3 系统硬件设计 4 系统软件设计 5 结束语   本文介绍了nRF24L01和STC12LE5408组成的无线温度采集系统。采用高度集成的nRF24L01器件。大大简化了系统硬件和软件设计,减小了体积,提高了系统工作的可靠性。采用新一代增强型8051单片机STC12LE5408降低了系统成本,缩短了开发时间。实践证明该系统设计简单,成本低廉,通信可靠,运行稳定,性能可靠,具有较高的实用价值。 详情请下载附件参考
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刺客阿瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值