概述
目录
- 1 项目概述
- 1.1 项目介绍
- 1.2 项目开发环境
- 1.3 小组人员及分工
- 2 需求分析
- 2.1 系统需求分析
- 2.2 可行性分析
- 2.3 项目实施安排
- 3 系统硬件设计
- 3.1 系统整体硬件电路设计
- 3.2 STM32 最小系统电路设计
- 3.3 传感器模块电路设计
- 3.4 光敏电阻模块电路设计
- 4系统软件设计
- 4.1 系统整体流程设计
- 4.2 光敏传感器检测软件设计
- 4.3 Keil软件简介
- 5 系统测试及功能说明
- 5.1 开发环境测试
- 5.2 功能测试
- 5.3 结果分析
- 6 总结
- 参考文献
1 项目概述
1.1 项目介绍
随着人们对物理世界的不断探索,我们获取信息的方式和途径越来越多样化,信息的来源、种类、数量呈现海量化的态势。传感器作为连接物理世界与电子世界的重要媒介,能将物理世界中模拟信号转化成为计算机能够处理的数字信号[1]。
现代传感器不仅包括了传感部件能够感知周围世界,而且也集成了微型处理器与无线通信模块,可实现各传感节点间信息的交换与通信,而且能够对前端感知的信息进行综合分析处理和网络传输[2]。
本项目通过设计完成一个基于 STM32 的光敏传感器数据采集系统,利用 STM32F103 系列处理器完成光敏传感器相关数据的采集和分析处理,并通过串口通信将处理之后的数据传输到上位机软件进行显示,通过C语言编程和调试完成上述功能,同时通过课程设计的综合训练。
1.2 项目开发环境
我们的项目利用 Keil uVision4 for Arm 软件实现嵌入式系统控制软件的设计与开发。
硬件:PC 个人计算机、键盘、鼠标、物联网综合实验箱
软件:64 位 windows 操作系统,Keil uVision4 for Arm 软件、VC++6.0等
系统:Windows 10 (64bit)
处理器:Intel CPU Core i5-2500K 3.3 GHz
内存:16 GB RAM
显卡:Nvidia GPU GeForce GTX 1650
存储:15 GB of available space
1.3 小组人员及分工
表1-1 小组人员及分工
姓名 | 项目中的分工 |
---|---|
X | 设计创作、理论指导 |
X | 设计创作、理论指导 |
Yeats_Liao | 总体规划、论文编写 |
X | 评价分析、资料整理 |
2 需求分析
2.1 系统需求分析
光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管、光电倍增管、光敏电阻、光敏三极管、太阳能电池、红外线传感器、紫外线传感器、光纤式光电传感器、色彩传感器、CCD和CMOS图像传感器等[3]。光传感器是目前产量最多、应用最广的传感器之一,它在自动控制和非电量电测技术中占有非常重要的地位。
光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可[4]。
照射光敏二极管的光强不同,通过光敏二极管的电流大小就不同,所以可以通过检测电流大小,达到检测光强的目的。通过ADC3通道6采集光敏传感器的AD 值,并将该值转换为光照度值 0-100,0对应最暗,100对应最亮,并通过串口1输出光照强度值利用这个电流变化,我们串接一个电阻,就可以转换成电压的变化,从而通过ADC读取电压值,判断外部光线的强弱。
2.2 可行性分析
1.项目的目标
项目目标:通过实验实训,进一步了解STM32的光敏传感器的工作原理。熟悉温湿度传感器的数据采集控制方法。
2.设计目的
观测STM32的光敏传感器的工作过程、记录温湿度传感器性能的实验数据。
3.任务和要求
(1)良好的沟通和合作能力;
(2)充分利用课上所学的嵌入式系统与设计、物联网系统应用项目开发等相关知识;
(3)充分利用调试和排错技术;
(4)简单测试驱动模块和桩模块的编写;
(5)查阅相关资料,自学具体课题中涉及的新知识。
2.3 项目实施安排
表2-1项目实施安排
序号 | 内容 | 时间(课时) |
---|---|---|
1 | 系统分析 | 2 |
2 | 设计 | 4 |
3 | 编码、测试 | 6 |
4 | 验收 | 4 |
X | 合计 | 16 |
3 系统硬件设计
3.1 系统整体硬件电路设计
IOT-L02-06型开发应用实验箱由Cortex-A9平板开发板(右下角)以及围绕其的多个无线传感器节点组成。Cortex-A9开发板配备一款7寸电容屏,运行Android操作系统可以做为Android APP开发平台使用。多个无线传感器节点由节点底板、无线射频模块、传感器&执行器模块以及2.8寸电阻触屏,各个模块之间均采用插针可插拔形式设计。
图3-1 物联网开发应用实验箱
实验箱标配Wi-Fi,Zigbee,蓝牙3种无线射频模块,磁检测传感器模块、光敏传感器模块、红外对射传感器模块、红外反射传感器模块等多种传感器模块。
图3-2 光敏传感器固件
IOT-L02-06型物联网开发应用实验箱各节点配置一枚STM32型MCU可完成单片机原理与技术课程的实验开设,标准配置有磁检测传感器、光敏传感器、红外对射传感器等传感器模块,传感器模块覆盖了电容式、电阻式、光敏式、气敏式四大原理类型传感器。
图3-3 STM32主芯片电路原理图
3.2 STM32 最小系统电路设计
系统的设计以 STM32 为主要的控制芯片,其模块的电源电路主要由 USB的接口连接进行供电,注意,此接口不用于下载程序,其中两个引脚与单片机引脚 相连。下载程序的接口,在 SWD的 4接口中,作为程序下载与调试的端口,两个分别接地与接电源出,剩下两个引脚分别接到主控制单片机的对应的 SWDIO和SWDCLK上。具体的 STM32最小系统设计如图3-4所示。
图 3-4 STM32 最小系统设计原理图
另外,系统中还有连个指示灯,一个为电源指示灯,可以作为 判断模块是否上电的视觉化表现,一个指示灯一端接 PC13。
时钟电路使用电容、 晶振,给单片机提供稳定的时钟基准信号,将两个电容并联,以 8M的晶振连接,一侧与单片机的OSC_IN连接,另一侧则与OSC_OUT连接。
此系统中的复位电路,104puf的电容与10K电阻串联,其中加按键与电容并联。此最小系统是单片机最小模块,独立的板子完成,还有两排引脚的标别,分别为 P3、P4部分。
3.3 传感器模块电路设计
光敏二极管也叫光电二极管。光敏二极管与半导体二极管在结构上是类似的,其管芯是一个具有光敏特征的PN结,具有单向导电性,因此工作时需加上反向电压。
无光照时,有很小的饱和反向漏电流,即暗电流,此时光敏二极管截止[5]。当受到光照时,饱和反向漏电流大大增加,形成光电流,它随入射光强度的变化而变化。当光线照射PN结时,可以使PN结中产生电子一空穴对,使少数载流子的密度增加[6]。这些载流子在反向电压下漂移,使反向电流增加。因此可以利用光照强弱来改变电路中的电流。
图3-5光敏传感器设计原理图
一般情况下光敏电阻的暗电阻为1M~~2MΩ
,亮电阻为1K~~15KΩ
,则可以根据D3处的电压分为两种情况:暗电阻(没有光照)与亮电阻(有光照)
暗电阻下:3.3V * 10K/ ( 2000 K+ 10K) = 0.016V
亮电阻下:3.3V * 10K/ ( 15 K+ 10K) = 1.3V
我们这里使用的STM32的PA4是12位ADC,根据上面的计算结果,我们可以算出亮电阻下的ADC值为1.3*1024 /3.3 = 1613 ,则我们可以通过采集ADC1的值作为临界值,当ADC1的值大于1613时表明有光,小于1613则无光。
表2-1传感器、STC、STM、CC2530数据口对应表
3.4 光敏电阻模块电路设计
光敏电阻器是一种对光敏感的元件,它的电阻值能随着外界光照强弱(明暗)变化而变化,即光敏电阻器是利用半导体光电导效应制成的一种特殊电阻器,对光线十分敏感。它在无光照射时,呈高阻状态;当有光照射时,其电阻值迅速减小[7]。
光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达1~10M
欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4~0.76)μm的响应很接近,只要人眼可感受的光,都会引起它的阻值变化[8]。
在黑暗的环境下,它的阻值很高;当受到光照并且光辐射能量足够大时,光导材料禁带中的电子受到能量大于其禁带宽度ΔEg 的光子激发,由价带越过禁带而跃迁到导带,使其导带的电子和价带的空穴增加,电阻率变小[9]。
图3-6 光敏电阻工作原理图
光敏电阻的伏安特性是在一定照度下,加在光敏电阻两端的电压与电流之间的关系称为伏安特性。下图中曲线1、2分别表示照度为零及照度为某值时的伏安特性。由曲线可知,在给定偏压下,光照度较大,光电流也越大。
在一定的光照度下,所加的电压越大,光电流越大,而且无饱和现象。但是电压不能无限地增大,因为任何光敏电阻都受额定功率、最高工作电压和额定电流的限制[10]。超过最高工作电压和最大额定电流,可能导致光敏电阻永久性损坏。
图3-7 光敏电阻伏安特性
当光照射到光电导体上时,若光电导体为本征半导体材料,而且光辐射能量又足够强,光导材料价带上的电子将激发到导带上去,从而使导带的电子和价带的空穴增加,致使光导体的电导率变大[11]。为实现能级的跃迁,入射光的能量必须大于光导体材料的禁带宽度Eg,即
式中ν和λ—入射光的频率和波长。一种光电导体,存在一个照射光的波长限λC,只有波长小于λC的光照射在光电导体上,才能产生电子在能级间的跃迁,从而使光电导体电导率增加[12]。
光敏电阻的结构如图3-8所示。管芯是一块安装在绝缘衬底上带有两个欧姆接触电极的光电导体。光导体吸收光子而产生的光电效应,只限于光照的表面薄层,虽然产生的载流子也有少数扩散到内部去,但扩散深度有限,因此光电导体一般都做成薄层[13]。为了获得高的灵敏度,光敏电阻的电极一般采用硫状图案,结构见下图3-8。
图3-8金属封装的硫化镉光敏电阻结构图
它是在一定的掩模下向光电导薄膜上蒸镀金或铟等金属形成的。这种硫状电极,由于在间距很近的电极之间有可能采用大的灵敏面积[14],所以提高了光敏电阻的灵敏度。图3-9是光敏电阻的代表符号。
图3-9 光敏电阻代表符号
4系统软件设计
4.1 系统整体流程设计
在系统运行前,准备连接带有STM32芯片节点的硬件、电脑、J-LINK、串口线等;编写实验源代码及下载代码,将光敏传感器安装在8号节点上,打开Keil集成开发环境,打开光敏传感器实验工程文件。编译整个工程,将生成Test.hex可执行文件。把J-LINK与节点、电脑连接,点击左上角的将程序下载到节点板,使用配套的串口线将计算机串口与8号节点的DB9串口接头相连,将节点右下角上的白色三位拨打开关拨至左边,给节点重新上电,打开串口调试工具程序,打开正确的端口,进行9600-8-N-1设置,打开串口,就可以与芯片进行数据交互了。系统流程如图4-1所示。
图4-1 系统软件整体运行流程图
4.2 光敏传感器检测软件设计
系统运行时,单片机控制系统开始运行,光敏传感器检测程序开始启动,传感器把接收到数据进行采集,并反馈到串口中。在检测到光照时,传感器OUT端输出高电平信号;没有检测到光照时,传感器OUT端输出低电平信号,之后程序结束运行。光敏传感器检测软件设计流程如图4-2所示:
图 4-2 光敏传感器检测程序处理流程图
4.3 Keil软件简介
Keil是一个公司的名字。是由德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software组成。Keil 软件是目前最流行开发51系列单片机的软件。支持c语言,汇编语言。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil 提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。
Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。
5 系统测试及功能说明
5.1 开发环境测试
首先启动Keil软件的集成开发环境,可以从桌面上直接双击uVision的图标以启动该软件。
UVison启动后,程序窗口的左边有一个工程管理窗口,该窗口有3个标签,分别是Files、Regs、和 Books,这三个标签页分别显示当前项目的文件结构、CPU的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件。
在设置好工程后,即可进行编译、连接。选择菜单Project->Build target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择Rebuild All target files将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate….项则仅对该文件进行编译,不进行连接。
以上操作也可以通过工具栏按钮直接进行。图5-1是有关编译、设置的工具栏按钮,从左到右分别是:编译、编译连接、全部重建、停止编译和对工程进行设置。
图5-1 工具栏视图
编译过程中的信息将出现在输出窗口中的 Build 页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置。
图5-2 Build页输出窗口
对源程序反复修改之后,最终会得到如图5-2所示的结果,提示获得了名为test.hex的文件,该文件即可被编程器读入并写到芯片中。
同时还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可以进入下一步调试的工作。
图5-3 编译结果输出窗口
Keil4开发环境是STM32MCU的开发环境,编写程序判断接收到的数据是否为光敏传感器,我们用Modbus数据的第03个字节作为传感器类型,当为0x2A时候表示光敏传感器。
图5-4 光敏传感器代码示例
串口调试工具是一款通讯串口调试软件,这款软件窗口中支持串口设置、选择串口、数据位、校验位以及停止位等参数。初次使用串口调试工具的用户,选择端口号
图5-5 串口调试工具
插好串口线,在windows桌面界面,在计算机图标上点击右键选择设备管理器进入如下图所示界面,点击端口(COM和LPT),就会出现现在计算机上正在使用的串口编号。
图5-6 设备管理器
Modbus数据格式举例:
发送指令:02 03 00 2C 00 01 45 f0
02 :表示设备地址
03 :功能码,表示读取数据
00 2C:读取开始的地址
00 01:表示读取多少个寄存器,1个寄存器有2个字节
45 f0: 由前面数据通过CRC-16计数得来的校验码
返回数据:02 03 02 00 00 FC 44
02 :表示从地址为02的设备返回
03 :表示返回的数据是读取
02 :表示2个有效字节
00 00 :就是2个有效字节
FC 44 :由前面数据通过CRC-16计数得来的校验码
5.2 功能测试
在功能测试前,准备连接带有STM32芯片节点的硬件、电脑、J-LINK、串口线等;编写实验源代码及下载代码,将光敏传感器安装在8号节点上,打开Keil集成开发环境,打开光敏传感器实验工程文件。编译整个工程,将生成Test.hex可执行文件。把J-LINK与节点、电脑连接,点击左上角的将程序下载到节点板,使用配套的串口线将计算机串口与8号节点的DB9串口接头相连,将节点右下角上的白色三位拨打开关拨至左边,给节点重新上电,打开串口调试工具程序,打开正确的端口,进行9600-8-N-1设置,打开串口,就可以与芯片进行数据交互了。功能使用流程如图5-1所示。
图5-7 功能使用流程图
第一步:打开Keil集成开发环境和Test.uvproj工程文件,编译整个工程,生成Test.hex可执行文件,如图5-8所示。
图5-8 编译工程文件
第二步:把J-LINK与节点、电脑连接,将程序下载到节点板,使用配套的串口线将计算机串口与8号节点的DB9串口接头相连,如图5-9所示
图5-9 连接串口设备
第三步:配置节点地址,发送:FF 30 00 0B 00 01,返回:FF 30 00 0B 00 01如图5-10所示:
图5-10 配置节点地址
第四步:获取传感器数据,相应的光敏传感器的AD值指令数据如5-11图所示:
图5-11 获取传感器数据
5.3 结果分析
AD模数转换是将传感器输出的信号(电压、电流、应变、温度等人可以直观认知的信号)转换成计算机系统能够识别的数字量,用于数据的采集。相对应的还有DA转换,将数字信号转换为模拟信号,输出给控制执行机构用于控制。这些跟数据采集系统有关。
STM32的ADC精度为12位,则最大值为4096。采集到的AD值与电压成线性对应关系,系统中最高的电压值为3.3V的电源电压,它与4096对应使用ADC算出光敏电阻的值。
光照强度是指单位面积上所接受可见光的能量,简称照度,单位勒克斯(Lux或lx),常见环境的光照强度值如表5-1。
表5-1常见环境的光照强度值对应表
场所/环境 | 光照强度(lux) | 场所/环境 光照强度(lux) |
---|---|---|
晴天室内 | 100~1000 | 办公室/教室 300~500 |
阴天室内 | 5~50 | 餐厅 10~30 |
月圆夜室外 | 0.2 | 距60W台灯60cm 300 |
串口调试工具手动发送数据:08 03 00 2A 00 01 a5 5b,返回:08 03 02 0D 8F 21 71,其中0D 8F就是采集光敏传感器的AD值,不同光照条件下这个值会相应不同,计算出光照强度。
6 总结
本次课程设计是完成一个基于 STM32 的光敏传感器数据采集系统,利用 STM32F103 系列处理器完成光敏传感器相关数据的采集和分析处理,并通过串口通信将处理之后的数据传输到上位机软件进行显示,通过C语言编程和调试完成上述功能,同时通过课程设计的综合训练。
课程设计初期遇到了很多困难,不知道从何下手,在同学的帮助和自己摸索的情况下还是完成了这次课程设计,从中认识到以我们现在的经验,不学到一定的深度和广度是难以在实际工作中应付自如的。因此反映出学习的还不够,缺点疏漏。需在加以刻苦钻研及学习,不断开拓视野,增强自己的实践操作技能。
这次课程设计,加深了我们对光敏传感器理解;物联网的知识很深奥,仅靠课本是远远不够的,我们将出现的所有错误都写成了博客发布到CSDN上,总结经验,不断提升自己的能力。
参考文献
[1] 王志强.基于STM32温度及光敏无线传感器设计[J].电子测试,2022(03):46-49.DOI:10.16520/j.cnki.1000-8519.2022.03.033.
[2] 梁一啸,刘志欣,范恩,蒋忠莉,邓贵妃.基于多传感器的温室环境监测系统设计与实现[J].物联网技术,2022,12(02):16-19.DOI:10.16667/j.issn.2095-1302.2022.02.004.
[3] 张朝龙,董甲东,江善和,张诗霞,王实,路健.“传感器与检测技术”虚拟实验教学平台建设[J].安庆师范大学学报(自然科学版),2021,27(03):101-104.DOI:10.13757/j.cnki.cn34-1328/n.2021.03.020.
[4] 汤梓日,张杰波,田秀云,王文华.基于光敏传感器的汽车远光灯智能避让系统[J].电子测试,2020(24):13-16.DOI:10.16520/j.cnki.1000-8519.2020.24.003.
[5] 张佳,蔡涛,王高原.基于光敏电阻的传感器实验设计与实现[J].实验技术与管理,2020,37(11):42-47.DOI:10.16791/j.cnki.sjg.2020.11.009.
[6] 曾号轩. 可拉伸近红外光敏晶体管传感器芯片的研制[D].深圳大学,2020.DOI:10.27321/d.cnki.gszdu.2020.002421.
[7] 陈国玉,林旭,李源,顾秉栋.光敏传感器实验课程改革探索与研究[J].科技创新与生产力,2020(03):79-82.
[8] 侯秀丽,姚小芳.光电传感器在物联网系统中的应用研究[J].科技创新导报,2020,17(05):125-126.DOI:10.16660/j.cnki.1674-098X.2020.05.125.
[9] 王沁. 基于光敏传感器和摄像头的组合室内定位方法的设计与实现[D].东南大学,2019.DOI:10.27014/d.cnki.gdnau.2019.002892.
[10] 罗涛,王晓娜,宋世德.光敏传感器智能寻光小车的设计与制作[J].实验科学与技术,2019,17(04):25-29.
[11] 张永超,赵录怀,顾博才,鹿伟强.基于光敏传感器和差分电路的开关柜放电检测[J].山东农业大学学报(自然科学版),2018,49(05):871-874.
[12] 王天会,李昂,王丹,芦明霞.光敏传感器基本特性与应用教学研究[J].实验技术与管理,2017,34(05):170-173+177.DOI:10.16791/j.cnki.sjg.2017.05.042.
[13] 孙紫薇.光敏电阻、热敏电阻等传感器在生活中的应用[J].课程教育研究,2016(28):216-217.
[14] 李俊男,苏杨,薛端,王君贤.基于STM32温度及光敏无线传感器设计[J].中国科技信息,2016(09):83-86+16.
最后
以上就是无私指甲油为你收集整理的基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计1 项目概述2 需求分析3 系统硬件设计4系统软件设计5 系统测试及功能说明6 总结参考文献的全部内容,希望文章能够帮你解决基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计1 项目概述2 需求分析3 系统硬件设计4系统软件设计5 系统测试及功能说明6 总结参考文献所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复