基于nRF24L01的太阳能无线小车设计

2019-08-13 08:47袁铭
科技资讯 2019年16期
关键词:太阳能

袁铭

摘  要:该设计主要由计算机控制端和太阳能小车组成,计算机控制端利用nRF24L01无线控制小车运动。小车以STC89C52单片机为主控芯片,由太阳能锂电池充电控制模块提供电源。同时,小车能够测量工作电压和环境的温湿度数据,通过无线传输模块发送给计算机端并在C#开发的界面上显示。

关键词:STC89C52  nRF24L01  太阳能  C#

中图分类号:TN99                                  文献标识码:A                        文章编号:1672-3791(2019)06(a)-0004-02

该小车基于人和物交流的物联网思想设计制作,利用太阳能这种清洁能源驱动小车运行,达到了节能环保的可持续发展理念。该文基于nRF24L01和单片机开发了一款具有无线通信能力的太阳能供电小车,在PC端远距离控制小车的运行,并且在PC端实时显示小车采集到的环境温湿度信息和其他相关参数。

1  系统整体结构方案

整个系统由计算机控制端(上位机)和太阳能小车(下位机)两部分组成。上位机部分由PC机、单片机和无线收发模块组成。上位机控制端通过无线收发模块向小车发射控制命令,控制小车运行,同时该无线模块接收来自小车的各种参数发送至PC控制端显示。下位机小车部分由单片机系统、无线通信模块、太阳能控制模块、电机控制模块、温湿度模块等组成。无线通信模块接收上位机发出的指令,通过和单片机的通信,由单片机模块控制电机模块驱动控制小车运动。AD转换电路用于采集太阳能充电电流等工作参数,和温湿度参数一起通过无线模块发送至计算机控制端。系统框图见图1。

2  下位机硬件电路设计

2.1 太阳能充电电路

该设计的太阳能充电控制模块采用CN3722,具有恒流恒压充电模式,适合对单节或多节锂电池或磷酸铁锂电池的充电管理。恒压充电电压由外部电阻分压网络设置;在恒流充电模式,充电电流通过一个外部电阻设置。对于深度放电的电池,当电池电压低于所设置的恒压充电电压的66.7%时,CN3722用所设置的恒流充电电流的15%对电池进行涓流充电。在恒压充电阶段,充电电流逐渐减小,充电过程持续直到充电电流减小到零,这样即使太阳能电池输出很小的功率,也能对电池充电;因为此时电池连接端BAT管脚电压保持不变,所以不会对电池过充电。该小车采用3节锂电池串联充电,每节锂电池最大充电电压为4.2V,总充电电压最大为12.6V。

2.2 无线通信模块电路

无线通信模块采用nRF24L01,是一款工作在2.4~2.5GHz世界通用ISM频段的低功耗单片无线收发器芯片。输出功率、频道选择和协议的设置可以通过SPI接口进行设置。3脚使能端由单片机P2.0口控制,4、5、6、7脚为SPI引脚,分别由单片机P2.3、P2.1、P2.4、P2.2配置,8脚中断标志位由单片机P3.2控制。

2.3 电量采集电路

电量采集电路采用典型的仪表放大电路,通过AD转换芯片PCF8591采集到单片机端,用于测量太阳能电流。

放大倍数:U=(R20/R17)×(1+2(R18/R21))×((in1+)- (in1-))=10(1+2(10/R21))

当R21=2.2222K时,放大倍数为100倍。

2.4 电机控制电路

电机控制模块采用L298N,內部包含4通道逻辑驱动电路。其是一种二相和四相电机的专用驱动器,即内含2个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

2.5 温湿度测量电路

温湿度测量模块采用DHT11,是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为各类应用甚至是最为苛刻的应用场合的最佳选择。

2.6 上位机端电路

上位机和单片机采用RS232总线连接,为了使PC机与MCS-51单片机之间能可靠地进行串行通信,需要用电平转换芯片,该设计采用MAXIM公司生产的专用芯片MAX232。MAX232是一种把电脑的串行口RS-232信号电平(-10V,+10V)转换为单片机所用到的TTL信号点平(0V,+5V)的芯片。

3  软件设计

3.1 下位机软件设计

下位机编程采用模块化编程思想,主流程图如图2所示,主流程图在完成一些初始化后进入while(1)循环中,进行标志位的检测及电压等参数检测,并控制小车运动,在外部中断子程序中执行NRF24L01的IRQ触发中断,在中断服务程序中主要是对一些标志位的设置。

3.2 上位机程序设计

3.2.1 串口通信协议制定

上位机控制台要对上位接收机端发来的数据进行解析,分离出有效数据,设计的数据格式如下:$--温度--?--湿度--@--电池电压--<--输入电流--/--输出电流--*。

其中:

$为一帧数据开始符号;

?为温度与湿度隔离符号;

@为湿度与电池电压隔离符号;

<为电池电压与输入电流隔离符号;

/为输入电流与输出电流隔离符号;

*为结束标志。

3.2.2 控制台界面设计

控制台程序设计的目的是接收串口数据,进行数据解析,通过串口发射控制数据。

界面主要功能区有:串口设置区、数据显示区、指令发射区。

串口设置区功能:端口号、波特率选择、串口打开与关闭。数据显示区:原始数据显示文本、解析后数码管显示。指令发射:按键指令发射、串口文本框指令发送。

3.2.3 串口通信

串口数据的读取采用事件触发的方式,在SerialPort类中有DataReceived事件,当串口的读缓存有数据到达时则触发DataReceived事件,其中SerialPort.ReceivedBytesThreshold属性决定了当串口读缓存中数据多少个时才触发DataReceived事件,默认为1。从SerialPort对象接收数据时,将在辅助线程上引发DataReceived事件。由于此事件在辅助线程而非主线程上引发,因此尝试修改主线程中的一些元素(如UI元素)时会引发线程异常。如果有必要修改主Form或Control中的元素,必须使用Invoke回发更改请求,这将在正确的线程上执行。进而要想将辅助线程中所读到的数据显示到主线程的Form控件上时,只有通过Invoke方法来实现。

4  结语

该小车采用太阳能供电,主控芯片采用STC89C52单片机控制,利用nRF24L01无线通信模块实现上位机和下位机之间的数据传输,在PC计算机上位机端控制界面上操作控制小车的运行,同时可以采集温湿度、电流电压等相关参数并显示在PC端界面上,实现了人-车之间的远程交互控制。该太阳能无线控制小车具有功耗低、電路结构简单等特点。

参考文献

[1] 李晓丽.单片机与上位机串行通信系统设计[J].仪表技术,2010(7):45-47.

[2] 韩毅,杨天.基于HCS12单片机的智能寻迹模型车的设计与实现[J].学术期刊,2008,29(18):1535-1955.

[3] Yamato. New conversion system for UPS using high fre 2 quency link[A].IEEE PESC[C].1988:210-320.

[4] 储江伟,郭克友,王荣本,等.自动导向车导向技术分析与评价[J].起重运输机,2002(11):1-5.

[5] 王朝盛.基于16单片机MC9S12DG128B智能车系统设计[D].天津工业大学,2007.

猜你喜欢
太阳能
太阳能维修等
太阳能汽车
新型太阳能设备
便携太阳能灶
太阳升起来
跟踪导练(四)3
便携太阳能充电宝
石油PK太阳能
自制一个太阳能热水器
身边的太阳能