基于STM32的温湿度数据采集系统

目录

目录 I
摘要 I
Abstract II
第一章 绪论 1
1.1温湿度传感器的背景及意义 1
1.2温湿度传感器国内发展现状 1
1.3温湿度传感器的发展趋势 2
第二章 温湿度原理及相关技术 3
2.1温湿度传感器 3
2.1.1温度传感器 3
2.1.2 湿度传感器 4
2.1.3 温湿度传感器物理参数及定义 5
2.2温湿度传感器的选型 6
2.3 SHT21简述 7
2.3.1 SHT21介绍 7
2.3.2 SHT21通信原理 8
第三章 系统硬件设计 12
3.1 系统硬件设计主要框架 12
3.2 STM32芯片的功能描述 13
3.2.1接口 14
3.2.2 STM32芯片接线图 16
3.3 SHT21温湿度传感器 17
3.4 LCD160显示屏 18
3.4.1 参数及引脚定义 19
3.4.2 LCD1602接线图 23
3.5. 系统复位 23
3.5.1系统复位功能作用 23
3.5.2 系统复位工作原理 24
3.6 电源模块 24
第四章 系统软件设计 26
4.1软件平台简述 26
4.2系统软件程序流程框图 27
4.3 主程序模块 29
4.3.1 主函数 30
4.3.2 显示函数 30
4.3.3 计算函数 31
4.4 SHT21传感器 31
4.4.1 I2C协议函数 32
4.4.2 延迟函数 35
4.5 LCD1602显示屏 36
4.5.1 写指令函数 37
4.5.2 写数据函数 38
4.5.3 温湿度值得显示函数 38
4.5.4 延迟函数 39
第五章 系统仿真 41
5.1 仿真软件介绍 41
5.2 电路仿真 41
第六章 总结与展望 44
致谢 45
参考文献 46
附录 47

摘要

随着当代社会的快速的发展,人们把越来越多的科学技术应用于各个领域。温湿度的采集是作为自动化科学中一个必须掌握的检测技术,也是一项比较实用的技术。在温室大棚中确保农业高效生产的重要便是对温湿度、二氧化碳浓度等外部参数的实时与及时准确而精确的监测和协调与调节,同时在文物保护方面,文物对于温湿度非常敏感的,及时检测和对温湿度的变化做出正确的反应,也长久保护文物的一种必要手段。
数据采集是获取信号对象信息的过程。本次设计设计中实现了一个基于STM32F103的SHT21温湿度检测系统设计。通过选择了STM32F103微控制器作为主控芯片和SHT21温湿度传感器来实现对温湿度数据进行采集;在lcd显示屏上显示出温度和湿度,目的是实现温湿度的采集和显示同时本次设计目的是提供方法进行可行性研究。这样的设计不仅能实时准确地测量出我们需要的温度和湿度数据,而且还可以快速反应和显示周围环境的变化。

关键词:STM32F103,sht21温湿度采集,程序设计

Abstract
With the rapid development of modern society, more and more science and technology are applied in various fields. The collection of temperature and humidity is a technology that must be mastered in the automation science, and it is also a practical technology. In the greenhouse to ensure efficient agricultural production in the important is the external parameters of temperature, humidity and carbon dioxide concentration real-time and timely and accurate monitoring and coordination and regulation, and in the protection of cultural relics, artifacts are very sensitive to temperature and humidity, the timely detection and the temperature and humidity changes to make the correct response, long-term protection of cultural relics of a necessary tool.
Data acquisition is the process of acquiring the information of the signal object. The design of a SHT21 temperature and humidity detection system based on STM32F103 is implemented in this design. Through the choice of STM32F103 microcontroller as the main control chip and SHT21 temperature and humidity sensors to achieve for temperature and humidity data acquisition; in the LCD screen display of temperature and humidity to achieve temperature and humidity acquisition and display at the same time the design objective is to provide a method to conduct a feasibility study. This design not only can accurately measure the temperature and humidity data in real time, but also can quickly respond to the adverse changes in the surrounding environment.
Keywords: STM32F103, SHT21 temperature and humidity acquisition, program design

第一章 绪论

1.1温湿度传感器的背景及意义
我们依靠感觉器和借助感觉器官等为了从外界获得更多和更新的信息,可是仅仅如此是远远不够的。这样就需要工具即传感器为了了解此种状况,因此传感器被我们当做人体内的附加感觉器官,各种的环境各种的传感器。
经研究调查,我们的体感并不是受仅仅受无温度和湿度的影响,温度和湿度有着密不可分与不可分离的联系,结果就会受到两者相连系的影响,固在一定的温度条件下,空气中就会保持相应的稳定的湿度和温度,研发出的温湿度传感器的作用就是为了清楚的知道我们周边的温湿度。
在食品与食物方面,非常致命对于温湿度对储存食品来讲就是至关重要的,人们能够运用和使用温湿度传感器,获取温湿度的数值,其变化就会促使人们了解什么温度下,食物变质而不能食用。温湿度传感器就应该算是与我们日常生活紧密接轨和紧密联系的存在了吧,免去不必要的麻烦,及时发现问题,解决问题。 而今很多地方都种植温室养殖蔬菜水果其生长对温湿度的要求是非常严厉和严格的,直观观察温湿度传感器的变化,就可以观察和了解植物产生与生长,防止发生严重的事情即可能会导致植物死亡,同时控制温室大棚里面的温湿度,就会确保植物在安全的环境下生长。在监控文物方面,,文物博物馆也需要用到温湿度传感器来测量温湿度数据,通过温湿度的变化来确定温湿度的量对文物的影响。但是要用到温湿度传感器时,就必须对其进行全天候监控,因为文物对于温湿度的需求是极其苛刻的,因此必须无时无刻都要把数据传送给监控中心。
温湿度传感器体型小就会容易放置和少占空间,同时必须灵敏度高、测量值准确才能根据其变化采取必要措施,才能更好的发挥其作用。
1.2温湿度传感器国内发展现状
信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)就是当代信息技术的三大基础。现代科技发展中传感器作为属于信息技术的前沿尖端产物,以致人们特别把温度传感器普遍用于工农业生产、科学研究和生活等领域范畴,同时,在各类传感器中数量高居首榜。近一个世纪以来,传统的分立式温度传感器(含敏感元件);模拟集成温度传感器(控制器);智能温度传感器就是温度传感器的发展大致经历了以下三个阶段。当前,国际上新型温度传感器朝模拟式向数字式、由集成化向智能化、网络化的水平方向发展。
总体来看,国内技术能力低、生产能力差、生产规模小,全跟不上和比不上国际水平,国内仅存温度传感器生产厂家都还位于低水平竞争的形势下。因为价格战的广泛,导致生产了低下和下降质量的产品。同时也导致许多生产厂家要面对激烈的市场竞争。如果国内生产商想要提升综合竞争力水平,就需要通过各种方式降低生产成本,减少固定输出,加强科学生产力,科技创新。由此可知,在未来激烈竞争中处于有利地位的重要因素就是国内企业产品质量的提高、技术创新以及成本降低的三方面的优化。目前,中国的温湿度传感器缺乏具体使用和发展解决产品性能和功能背后的技术产品更新周期缓慢的方案。产品质量必须要靠科技创新来提高,才能解决问题之道。
1.3温湿度传感器的发展趋势
当前,全世界新的温度传感器朝模拟到数字到智能化、网络化方向的发展。在具有高精度、多功能、标准总线、高可靠性、高安全性的传感器,智能温度传感器、虚拟传感器和传感器网络作为二十一个世纪的高精度传感器的发展方向。随着科学技术的不断发展和开拓,科学技术不断地提高测量和自动化技术的自身的硬性需求,因此发展和创新越来越多的类型的温度传感器种类,目前,中国的温湿度传感器缺乏具体使用和发展解决产品性能和功能背后的技术产品更新周期缓慢的方案。产品质量必须要靠科技创新来提高,才能解决问题之道。二十一个世纪的高速发展,高精度智能温度传感器必须具有移动、多功能、标准化的总线,高可靠性和高安全性的优点,同时开开拓虚拟传感器和传感器网络,开发的单片机温度测量系统和其他高技术方向[1]。

第二章 温湿度原理及相关技术

2.1温湿度传感器
温湿度是一个自然界中的一切过程无不与温湿度密切相关联的基本的物理量。因为温度和湿度,无论是从物理方面来说还是在现实生活中都是与人们的生产生活密切相关的,以至两者合为一体的温湿度传感器对应产生;温度和湿度传感器意味着能够将温度和湿度,转换成容易被测量处理的电信号的设备或装置。
2.1.1温度传感器
相对于温湿度而言,温度传感器是首先发展的,它是使用最普遍的传感器工具。温度传感器用于检测设备的温度,数量最多,最广泛使用和增长最快的。正如我们所了解的,大部分的日常使用电子元件和材料的特性,都随温度变化而改变。温度传感器主要有四种主要类型:热电偶温度传感器、热敏电阻温度传感器、电阻温度检测器(RTD)和IC温度传感器。IC温度传感器又包含模拟输出和数字输出这两种类型[2]。
1.热电偶工作原理
热电偶的定义就是两种不同导体或半导体的组合。接触电势和温差电势合成的就是热电偶的热电势EAB(T,T0)。两种不同的导体或半导体在接触处产生的电势被称为接触电势,这种潜在半导体或半导体的接触点的性能与温度有关。
当两端连接到彼此的两种不同的导体和半导体A和B形成一个回路时,只要温度在两端的两端的温度形成差异,称为热端或者工作端,又称为自由端,当回路有电流时目前在电路中的电动称为热电动势。这种现象是由于在电动势温度差称为塞贝克效应。
2.红外温度传感器工作原理
制作红外温度传感器所利用的原理就是在自然界中,只要物体内部有势能时,那么就存在内部热运动,就会向周围连续不断辐射电磁波,它包括了位于0.75~100μm 波段的红外线[3]。SMTIR9901/02是基于硅热电堆红外传感器,在当今商业领域,它是一个相对普遍应用的红外线传感器。其原理测量原理就是:大量的热电偶积累在底层的硅,高温和低温通过接触隔离层的的热薄膜隔离能量,热结上方的黑色吸收层的入射辐射转化为热能的热电效应表明输出电压的辐射成正比,一般热电堆把BiSb和NiCr作为热电偶。
3. 温度传感器工作原理–模拟温度传感器
AD590是一款3 ~ 30V的电源额定电压范围,输出电流为223μA~ 423μA,灵敏度1μA/℃的电流输出温度传感器。只要在电路中串联取样电阻R,输出电压就可以当作R两头电压。R不能有太多的阻力,用来确保在AD590的电压要高于或等于3V。AD590输出电流信号具有超过1km的传输距离能。R作为一个最高达20MΩ高阻抗电流源,固无须考虑选择开关转换或CMOS多路转换器引起的附加电阻,对温湿度传感器的影响而导致的误差。此模拟温度传感器适用控制多处温度测量和远程温度测量。
4. 温度传感器工作原理–数字式温度传感器
它采纳硅技术,制造而成的数字温度传感器。通过调节比较器的工作周期为一个数字信号输出与温度成正比,占空比和温度之间的关系如下公式:DC=0.32+0.0047*t,T摄氏度。它的输出数字信号与MCU相兼容,通过高频采样可以计算出输出方波信号占空比,便能得到温度。温度传感器凭借其特殊的技术,分辨率优于0.005k。测量温度范围-45~130℃,它被普遍应用于高精度的坏境和场合。
2.1.2 湿度传感器
湿度传感器能将感测气体中水汽含量的值转换成传感器输出信号流,以直观显示,便于观察。
其偏是两者之中最简单的,它主要有电阻式、电容式两大类。
测量湿度利用的特性就是湿度电阻在基板表层的一层表征膜覆盖湿敏材料,当水把水蒸气吸附于湿度敏感薄膜上时,其电阻率和电阻值​​元素发生变化,利用其中的变化就可得湿度。
湿度一般用由高分子材料制作而成电容器的电容膜。高分子材料常用就有聚苯乙烯、聚酰亚胺、丁酸酯纤维。当介质的电容随着周围环境湿度量发生改变时改变,同时电容大小发生了改变,此中电容与相对湿度的变化形成正比。
电子湿度传感器精度可达2-3 %相对湿度,这是高于干湿球测量精度。
环境湿度的检测中,线性差耐湿度传感器,在测试环境湿度传感器长期与空气接触,非常容易被污染,直接导致测量精确性和长久稳定性。那么就必须寻找更好的方法测量湿度计的方法了。
2.1.3 温湿度传感器物理参数及定义
温度:度量物体冷热的物理量,是国际单位制中 7 个基本物理量之一;在生产和科学研究中,许多物理现象和化学过程都是 在一定的温度下进行和发生的,人们的生活也和温度有着密不可分的联系;
湿度:湿度很久以前便与生活存在着密不可分的关系,但用数量来对其表示较为艰难;
日常生活中最常用的表示湿度的物理量就是空气的相对湿度;用 %RH 表示;在物理量的推导上相对湿度与温度有着密不可 分的联系;一定体积的密闭气体,其温度越高相对湿度越低,温度越低,其相对湿度越高,两者成反比;其中涉及到复杂的热 力工程学知识;
同时还有有关湿度的一些定义:
相对湿度:在计量法中规定,湿度被定义为 “ 物象状态的量 ” ;日常生活中所指的湿度就是相对湿度,用 RH% 表示。总之 ,即气体中(通常为空气中)所含水蒸气量(水蒸气压)与其空气相同情况下饱和水蒸气量(饱和水蒸汽压)的百分比;
绝对湿度:指单位容积的空气里实际所含的水汽量,一般以克为单位;温度对绝对湿度有着直接的影响,通常情况下,温度 越高,水越容易蒸发,水蒸气得越多,绝对湿度就越大;相反,绝对湿度就小;
饱和湿度:在一定温度下,单位容积,空气中所能容纳的水汽量的最大限度。如果超过这个限度,多余的水蒸气就会凝结 ,变成水滴,此时的空气湿度变称为饱和湿度;空气的饱和湿度不是固定不变的,它随着温度的变化而变化;温度越高,单位容积空气中能容纳的水蒸气就越多,饱和湿度就越大,两者成正比;
露点:指含有一定量水蒸气(绝对湿度)的空气,当温度下降到一定程度时所含的水蒸气就会达到饱和状态(饱和湿度)并 开始液化成水,这种现象叫做凝露;水蒸气开始液化成水时的温度叫做 “ 露点温度 ” ,简称 “ 露点 ” 。若温度继续下降到露点以下 ,空气中超饱和的水蒸气就会在物体表面上凝结成水滴。此外,风与空气中的温湿度有密切关系,也是影响空气温湿度变化的 重要因素之一[4]。
2.2温湿度传感器的选型
本次系统设计将SHT21温湿度传感器作为本次设计选择的温湿度传感器。
新一代 Sensirion 温湿度传感器在尺寸与智能方面创立了新的标准:它把适于回流焊的双列扁平无引脚DFN 封装嵌入其中, 底面3 x 3mm ,高度1.1mm。传感器标准的I2C格式,数字信号被输出经过标定。
SHT21配有经过改进的电容式湿度传感元件和标准的能隙温度传感元件各一个的全新设计的CMOSens®芯片,其质量有着已经大大提高以致超出了前一代传感器(SHT1x和SHT7x)的可靠性程度。例如,新一代湿度传感器,已经经过改进的性能被使其在高湿环境下的更稳定和更优越。每一个传感器都被经过校准和测试。印有产品批号的产品表面,同时以在芯片内保存的电子识别码可以被通过输入命令读出。其中,输入命令把SHT21 的分辨率进行改变(8/12bit 乃至12/14bit 的RH/T),通过传感器可以把电池低电量的状态检测出来,而且可以把输出校验和,然后经查证,通讯的可靠性被有助于提升。因为对传感器做了改良和微型化改进和改良,所以它的性价比更高,更优越,更实用,并且至终全数设备都将会被得益于尖端的节能运行模式。
SHT21 配有 4C 代 CMOSens®芯片。除了包括一个放大器、A/D 转换器、 OTP 内存和数字处理单元 ,此芯片电容式相对湿度传感器和能隙温度传感器同时都配有。
固选择SHT21温湿度传感器[5]。

在这里插入图片描述

2.2 SHT21图
2.3 SHT21简述
2.3.1 SHT21介绍
SHT21该传感器可以检测环境的温度和湿度。测量,湿度精度+ 2%RH(20%〜80%RH的控温精度度+ 0.3(25度至42摄氏度)。传感器校准,无论是提供一世二C数字接口,还可以提供PWM模拟输出模式。因为数字通信可以大降低功率消耗,例如在正常工作状态下功率消耗可以是3 W下测量间隔的延长的情况下,功耗可进一步降低,因此在实际使用SHT21处理在中间,都是协调电路数字信号转换。除此之外外,SHT21分辨率,也可以通过指令进行8/12位达到12 / 14bit的之间的范围内的变化,容易检测的电功率的状态下,在同一当输出被选中时,它有利于提高通信的可靠性。
接口介绍:
在这里插入图片描述

2.3.1 SHT21接口图

2.3.2在这里插入图片描述
SHT21结构图

NC与VSS内部已连接,必须保持悬空状态。
每个接口定义如下:
VSS: VSS=GND,接地端;
VDD:接电源;电源(VDD)和接地(VSS)之间须连接一个100nF的去耦电容
SDA: SDA=DATA,用于传感器数据的输出与输入;当传感器发送命令时,当SCL为高电平时,SDA必须持续稳定,而当串行时钟(SCL)的上升时,SDA就有效。当SDA值在SCL下降沿之后可能回发生变化。
SCL: SCL用来选择输出湿度信号或者温度信号。 SCL 高电平输出湿度信号, SCL 低电平输出温度信号。
2.3.2 SHT21通信原理
SHT21遵循I2C协议来通信的。I2C协议是单片机与其它芯片常用的通讯协议。I2C协议具有两条两条双向串行线,数据线SDA,时钟线SCL。 SDA传输数据是传输,每次传输都是一字节8bit,。支持多主控(multimastering),任何时间点只能有一个主控制。总线上每个设备都有自己的一个addr,共7个bit,广播地址全0。串行数据线SDA和串行时钟线SCL构成的,可发送和接收数据。所有具有I2C总线接口的挂接在I2C总线上的器件和接口电路都应与的SDA/SCL同名端相连。总线上全数元器件要依靠 SDA发送的地址信号寻址,不必需要另外选线和接线[6]。
因此多主机总线具备 总线仲裁和高低速设备同步等功能的高性能。
在这里插入图片描述

图2.3.2.1 典型的I2C总线系统结构
温湿度传感器工作时分为以下几个步骤:
1.MCU与传感器的通讯
第一步, 将传感器上电至 VDD (2.1V-3.6V)。通电后,最多等待须要150ms的时间传感器就会进入静止状态。 这段时间内,SDA是未定义状态,之后传感器开始测量并输出PWM 比特流。
PWM 即脉宽调制信号以恒定频率运行,通过基于这个频率的占空比获得测量结果,见图2.4.2.1。SCL 拉高时测量的数据值为湿度, SCL拉低时测量的数据值为温度。
在这里插入图片描述

          2.3 .2.2  PWM信号图

对其发送一组“启动传输”命令序列,来完成初始化数据传输。它包含几个命令时序: 初始时SCL 时钟为电平,紧接着 SDA就会跳变为低电平,然后立马 SCL跳变为低电平,随后接连传输命令,在 SCL时钟高电平时 SDA跳转为高电平。后续 命 令序列 包 括 3 个 地 址 位地址 和 五5个 命 令 位命令。
SHT21温湿度传感器表示已正确地接收到指令时,会用下述方式来表示: 在第 八 个 SCL 时钟的下降沿之后, SDA被下拉变为低电平( ACK 位) 。在第 9 个 SCL时钟的下降之后,释放 SDA(恢复高电平) 。
2.启动传感器
第一步,将传感器上电,电压为所选择的VDD电源电压(范围介于2.1 V与3.6 V之间)。通电之后,最多需要 15毫秒时间传感器(此时 SCL为高电平)就会到达空闲状态,就是准备好接收由主机(MCU)发送的命令。启动时的最大电流消耗为 350µA。
3.启动/停止时序
每个传输序列都以Start 状态作为开始并以Stop 状态作为结束。如图 图2.3.2.3 和图 2.3.2 .4所示:
在这里插入图片描述

图2.3.2.3
传输状态(S)-当 SCL为高电平时,SDA由高电平跳转为低电平;总线状态就是由主机控制的一种特殊的的状态,它就是开始状态,指示从机传输开始(Start 之后,BUS总线通常考虑为处于占线状态);
在这里插入图片描述

          图2.3.2.4

停止传输状态(P)-当 SCL高电平时 ,SDA线上从低电平跳转为高电平;总线状态是由主机总线状态控制的一种特殊的状态,它就是停止状态,指示从机传输结束(Stop之后,BUS总线通常考虑为处于闲置状态)。【[ 刘铮;陈拓; 高精度温湿度传感器SHT2x的应用[J] - 《单片机与嵌入式系统应用》- 2013-01-01]】
4.发送命令
当启动传输之后,紧接着传输包含7位的 I2C设备地址(B-范例地址‘1000’000’)的I2C首字节和一个SDA方向位(读R:‘1’,写W:‘0’)。当第八个SCL时钟下降沿之后,就能把SDA引脚拉至ACK位,传感器被指示正常接收数据。在发出测量命令之后( ‘1110’0011’表示温度测量,‘1110’0101’表示相对湿度测量), MCU一定要等待测量完成。基本的命令在表6中进行概述。主机模式或非主机模式就是两种不同的模式。
在这里插入图片描述

               图2.3.2.5 命令图表

5.温湿度测量
公开和发送一组测量命令('00000101’表示相对湿度RH,'00000011’指示的温度T)的,控制器一定得等待测量​​结束。分别需要约20/80毫秒才能完成这个过程,完成这个过程的世界就分别对应于8/12的测量。与内部振荡器变速的确切时间,可能有高达30%。根据SDA下拉到低电平,而且进入空闲模式,这意味着SHT21温湿度传感器测量结束。控制器必须等待“数据准备好”信号SCL时钟被再次触发之前读取数据。温湿度传感器把测试数据存储值存储器,控制器既可以继续进行读数据,又能执行其他任务。然后将数据传送到2字节和1字节的CRC奇偶校验(可选的读)的。 MCU需要较低,拉低SDA确认每个字节。所有从MSB的数据,右值有效(例如:用于从五个SCK时钟起MSB的12位数据;以及为8位数据,第一个字节无意启动之意)。收到CRC的确认后,表示该通信结束。若不使用所述CRC,控制器可使用的测量值被测量后,用来保持该ACK高电平终止。测量和通讯完成后,SHT21自动转为睡眠模式。

第三章 系统硬件设计

3.1 系统硬件设计主要框架
本系统设计的主要框架如下图所示。当整个系统开始工作时,先由SHT21温湿度传感器本身检测数据,然后采集数据,再由SDA数据线传输采集的数据。当把数据传输到STM32芯片上后,STM32芯片开始对数据进行处理,将数据计算转换为温湿度的值。最终,STM3芯片处理完数据后,再把数据发送到LCD1602显示屏上,通过转换,使数据显示在液晶屏上。就可以通过器件将人们能感觉到温湿度,却不能标示出温湿度的值就能在液晶显示屏上显示出来,人们经它就可直观清楚的了解温湿度的值。
另外,还有复位电路和电源模块。当系统出现无法正常工作如程序跑飞、奔溃时,按下复位键时,系统就可以再次恢复工作。电源模块稳定供压,系统持续在稳定的标准电压范围是非常有必要的。

在这里插入图片描述

在这里插入图片描述

                图3.1.1 系统框图

系统电路原理图如图:
在这里插入图片描述

图3.1.2 系统电路原理图
3.2 STM32芯片的功能描述
ARM公司的高性能"Cortex-M3"内核:1.25DMips/MHz,而ARM7TDMI只有0.95DMips/MHz;
一流的外设:只需1μs就迅速反应的双12位模数转换器,4Mbps的通用异步收发报机,18Mbps的单个程序启动,18兆赫兹的输入/输出翻转速度;
低功耗:在72兆赫兹时耗损36μA(所有外设都处于工作状态),待机时下降最低低至2μA;
最大的集成度:检测低电压的状态、复位系统电路、精确而实时的RC振荡器、调压器等等。【[ 张正奎.变压器运行参数监测系统设计【J】.基于单片机的硬件设计[J].2013-06-28]】
简单的结构和易用的工具:基于高性能,低成本,低功耗MCU嵌入式应用的Cortex M3内核的ARM具体的要求设计STM32系列。
STM32F103"增强型"系列时钟频率为36MHz增时钟频率达到72MHz,相比较下增强型是同类产品中性能最高的产品,32位产品用户的最佳选择就是以16位产品的价格得到比16位产品大幅提升的性能和价值。基本型系列和强型系列都内置32K至128K的闪存,其中的差异便是SRAM的外设接口的组合和最大容量。时钟频率72兆赫兹时,,功耗最低的产品是32位市场上相等于0.5mA/MHz的从闪存执行代码和功耗36微安STM32。
3.2.1接口
在这里插入图片描述

图3.2.1.1图 芯片引脚图
在这里插入图片描述

图3.2.2.2 内部结构图
VDD为电源接口,VDD = 2.0~3.6V:VDD引脚为I/O引脚和内部调压器供电。
VSS接地。
RTC实时时钟:P13
,PC14,PC15由外接于OSC32_OUT、OSC32_IN两个引脚上的晶振产生;也可由OSC32_IN引脚接入外部时钟信号。这两种方式提供的时钟频率都必须是32.768KHz。
PC13,PC14和PC15引脚通过电源开关进行供电,而这个电源开关只能够吸收有限的电流(3mA)。因此这三个引 脚作为输出引脚时有以下限制:在同一时间只有一个引脚能作为输出,作为输出脚时只能工作在2MHz模式下,最大驱动负载为30pF,并且不能作为电流源(如驱动LED)。
待机唤醒:PA0;
通用定时器:PB3,PB4,PB5,PB10,PB11; 通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于产生PWM输出。
通用同步/异步收发器(USART) :PA8,PA11,PA12,SART1接口通信速率可达4.5兆位/秒,其他接口的通信速率可达2.25兆位/秒。
串行外设接口(SPI) :PB12,PB13,PB14,PB15; SPI接口,在从或主模式下,全双工和半双工的通信速率可达18兆位/秒。
控制器区域网络(CAN):PB8,PB9; 可以接收和发送11位标识符的标准帧,也可以接收和发送29位标识符的扩展帧。
I2C总线 :PB8,PB9,PB10,PB11; I2C接口支持7位或10位寻址,7位从模式时支持双从地址寻址。
通用串行总线(USB) :PA11,PA12,PB6,PB7, 嵌一个兼容全速USB的设备控制器,遵循全速USB设备(12兆位/秒)标准,端点可由软件配置,具有待机/唤醒功能。
通用输入输出接口(GPIO):PA,PB,PB,PC. GPIO引脚都与数字或模拟的复用外设共用。
ADC(模拟/数字转换器) :PA,PB。

3.2.2 STM32芯片接线图
VDD接电源,VSS接地。其他一些接口与其他元器件相联,这里要注意的是这个芯片连接了两个晶振电路。晶振电路就是具有为系统提供基本的时钟信号的作用。联合单片机内部的电路元件,单片机所必须的时钟频率就会产生,在这个基础上,才能建立单片机的一切指令的执行结果,晶振的提供越高的时钟频率,那单片机也就有越快的运行速度。
在这里插入图片描述

                图3.2.2 系统接线图

3.3 SHT21温湿度传感器
在这个系统中,SHT21起到非常关键的作用,即测量温湿度。
温度和湿度的信号由传感器SHT21收集并使得检测电路,测量温度程度仍然湿度通过拉高或低SHT21 SCL进行跳转,当在SCL= 1,则输出数据线SDA是温度信号,当SCL =0时,输出数据线SDA是湿度信号和周期性测量传感器的测量数据。此外,SHT21还提供了SDM接口或I 2 C数字接口,并且对SDM信号可以由SDA线被转换为模拟信号输出,数据输出。 SHT21全方位校准,两线的数字接口,可直接与微控制器连接的,外部电路是非常简单的,如图3.7.
在这里插入图片描述

  图3.3 SHT21接线图

NC引脚内部与VSS相连,固可以悬空;
VSS接地;
VDD接3.3V电源。其中重要的一点就是:VDD与VSS必须有一个连接100nF的去耦电容。因此在电源连接一个100Nf去耦电容。
同时为避免信号冲突,微处理器(MCU)一定只能驱动 SDA和 SCL在低电平。需要一个外部的上拉电阻(例如:10kΩ)将信号提拉至高电平。SCL和SDA与电源都要接上10K欧的电阻。SCL接在芯片引脚PB6上,SDA接在PB7上,传送和接受数据。

3.4 LCD160显示屏
工业字符型液晶,同时可以够显示16x02即32个字符。
在这里插入图片描述

图3.4 LCD1602
1602字符液晶显示,它是一个液晶模块,构成字母、数字、符号和一个点用于显示。
1602LCD是的16X2的内容,可显示两行,每行16字符的LCD模块(显示字符和数字)的显示。1602LCD 有两种类型,分别是带背光和不带背光这两种类型,控制器绝大多数都是基于 HD44780,未带背光的比带背光的薄,在实际应用中对于是否带背光,对工作系统并无差别。
3.4.1 参数及引脚定义
1602LCD 主要技术参数:
显示容量:16×2 个字符
芯片工作电压:4.5—5.5V
工作电流:2.0mA(5.0V)
模块最佳工作电压:5.0V
字符尺寸:2.95×4.35(W×H)mm
接口定义简述
1602LCD 采纳标准的 14脚(无背光)或 16脚(带背光) 接口,各接口简述如下表所示:
在这里插入图片描述

3.8.1 引脚表

1602使用标准的16脚的接口,其中:
1:GND为电源;
2:VCC连接到5V电源;
3:V0 LCD对比度调节;
4:RS是寄存器选择,如果选择指令寄存器那么信号就必须为低电平, 如果选择选择数据寄存器那么信号就必须为高电平;
5:RW是读写信号线,如果读出操作为高电平(1),如果写入操作为低电平(0);
6:E(或EN)端启用(enable)一侧,,当负跳时间来执行该指令时,读出信息 为高电平(1);
7至14:D0〜D7为8位双向数据传输线接口。第15~16脚:空脚或背灯电源。 15脚背光正极,16脚背光负极;
3.3V或5V的工作电压,对比度可以通过接口V0调节;
内部内置复位电路
提供各种控制指令,其中就包括有屏幕闪烁,清屏、光标闪烁,显示位移,字符显示多种职能等等。
有80个字节显示数据存储器DDRAM的
字符发生器内置有192 5X7点阵字型CGROM
8字符发生器5X7可以由用户CGRAM定制应用功能
微功耗,体积小,内容丰富,轻薄,口袋米和低功耗应用常用。
运行控制
注:E =在E H脉冲在0开始初始化,然后对E设置为1
LCD1602工作原理就是通过发送指令命令来工作的:
LCD1602的指令说明及时序
1602液晶内部模块的控制器总共有11条控制指令
在这里插入图片描述

图3.4.1.1控制命令表
1602液晶模块全都依靠指令编程来实现读写操作、屏幕和光标的操作。(说明:1为高电平、0为低电平) ;
指令1:清除显示,指令码01H,光标复位到地址00H位置;
指令2:光标复位,光标返回到地址00H;
指令3:光标和显示模式设置 I/D:,高电平右移,低电平左移S ,依据光标移动方向来设置的:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效;
指令4:显示开关控制D:控制开关整体显示,高电平表示开显示,低电平表示关显示 C:控制开关光标,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁;
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标;
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示;
指令7:字符发生器RAM地址设置;
指令8:DDRAM地址设置;
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此刻模块不能接收命令或者数据,若为低电平表示不忙;
指令10:写数据;
指令11:读数据[15]。
读写操作时序如图
在这里插入图片描述
图 3.4.1.2读操作时序
在这里插入图片描述

   图3.4.1.3  写操作时序

3.4.2 LCD1602接线图
在这里插入图片描述

图3.4.2 接线图
因为STM32芯片标准电压为3.3V,但LCD1602标准电压是5V,所以LCD1602接5V是,必须有5V的电位上拉。工作1602电压为5V时,GPIO输出电压3.3V的工作,但1602识别电压为5V,那么3-17脚没潜在拉力1602的工作会不正常。加10K的上拉电阻目的是保护芯片不被5V的电压直接进入而烧芯片。变阻器是用来控制字体的对比,与光耦TLP521-1用于控制1602背光源,在这里我已经到了光耦1,第2脚始终提供3.3V和循环PB2的开关时,保持在3.3V电压耦合时间不工作,在PB2接口与低1,2脚接入,光耦取得3,4脚导通,1602 BLA最初是为5V电压时,即使管传导至BLK接地回路形式点亮背光。

3.5. 系统复位
3.5.1系统复位功能作用
就像笔记本电脑,会卡,会死机,会瘫痪一样。STM21芯片,SHT21或者LCD1602都有可能在工作时,程序跑飞,材料影响,系统瘫痪等等原因。因此,系统必须需要一个复位系统,就像笔记本电脑的重启一样,将整个系统重新恢复至正常工作。本系统的复位电路就有将系统恢复至正常工作的功能。当按下复位键时,系统重启,再次恢复工作。
3.5.2 系统复位工作原理
接线图如下图3.5.2:
因为阻容串联电路中电容C2两端电压不可以突变,所以在通电时,NRST端起到的作用就是会维持一段时间的低电平起到低电平复位信号,随着3.3V电源通过电阻R1向电容C2充电,C2两头的电压差慢慢变大,经过一段时间后变化为高电平,上电复位信号结束。在征程工作过程中,当按键S1被按下时,电路把电容C2两端短路放电,按键松开后RST端的作用就是仍会维持一段时间的低电平起到低电平复位信号,随着Vcc电源通过电阻R2向电容C2充电,C2两端的电压差逐渐增大,经过一段时间后变为高电平,手动复位信号结束。
在这里插入图片描述

图3.5.2 系统复位电路
3.6 电源模块
本系统采用稳压供电,下图为稳压供电接线图,本系统使用的是正向低压降稳压器AMS1117,通过采样输出电压,然后调整电路,调整输出阻抗的调节器阶段,当输出电压低,然后调整电阻变小,从而降低整个稳压器的电压下降,当输出电压过高,调整输出阶段的阻抗增加,从而增加整个调节器的电压下降,从而保持稳定的输出电压。
C3和C4是输出滤波电容,具有减小输出电压汶波并抑制ASM1117的自激振荡的作用,若不接这两个电容,一般线性稳压器的输出波形会是个振荡波形。C3是高频滤波电容,C4是低波滤波电容。
C5和C6是输入电容,对于交流电压整流输入,它们的首要作用是把单向脉动电压转换成直流电压,在本图中输入已经是+5V直流电源了,它们具有防止断电后出现电压倒置的作用,所以输入应该输出电容小于电容的容量。
R是D1的限流电阻,具有使显示发光二极管D5在上电时能工作在正常的状态下的作用;
在这里插入图片描述

图3.6 稳压接线图

第四章 系统软件设计

4.1软件平台简述
本系统使用的软件平台就是Keil uVision4。
Keil提供了包括C编译器、宏汇编程序开发的完整程序,链接器,库管理和一个功能强大的仿真调试器等,通过一个集成开发环境(μVision)在一起的这些部分。运行Keil软件需要Pentium或以上的CPU。
Keil μVision4软件,目的就是提升工作者生产力,开发实现更快,更高效的程序开。
μVision4引入了灵活的窗口管理系统,可以拖放到视图内的任意地方,也包含支持多显示器窗口;
μVision4在μVision3 IDE的基础上,增加了更多大众化的功能;
多显示器和灵动的窗口管理系统;;
系统浏览器窗口的显示设备外设寄存器信息;
调试还原视图创建并保存多个调试窗口布局;
多项目工作区简化与众多的项目;【[]】
同时并且它具有非常多的优点,例如工程易于管理,自动加载启动代码,集编辑、编译、仿真一体,调试功能强大等等。
在这里插入图片描述

图4.1.1 软件打开时见面
在这里插入图片描述

图4.1.2 keil μVision4页面窗口

4.2系统软件程序流程框图
本系统软件设计流程框图如下图4.2所示,本系统是一个循坏系统。当系统开始工作时,先初始化系统。但是只初始化一次,后面的循环工作就不初始化了。先由SHT21温湿度传感器检测周围环境的温湿度,再采集周围环境的数据,在发送数据给STM32芯片。这里检测、采集和发送数据的过程,延迟15us,就是说,循坏这个过程时,就是每15us采集一次。发送的数据经过STM32芯片后,由芯片处理由2SHT21温湿度传感器采集而来的数据,将数据转换,计算出温湿度的值。最后将这个值发送到LCD1602显示屏上,在显示屏上显示出温湿度的值。与SHT21温湿度传感器采集数据一样,LCD1602显示屏延迟10us,即在显示屏上每10us,显示屏上的值就会刷新,不断的显示周围环境的温湿度,就可以直观的了解周围环境的变化。
在这里插入图片描述

系统图4.2 系统软件流程框图

在这里插入图片描述

图4.3 程序页面截图

4.3 主程序模块
在主控制部,还有一个主要功能和显示程序。的主要功能包括:液晶屏初始化函数,温度和湿度计算功能。设计图如下
在这里插入图片描述
图4.1 主程序设计图
4.3.1 主函数
主要功能是一个无限循坏函数,使SHT21和LCD1602经过延迟后,不断的对温度和湿度进行了测量和计算和在显示屏上不断刷新显示,程序如下
void main()
{
LCD_init();
LCD_disp_str(0,1,“temp: . C”);
LCD_disp_str(0,2,“humiI: . %”);
LCD_disp_char(13,1,0xdf);
while(1) //无限循坏
{
SHT21Work(); //SHT21开始工作
LCD_Display(); //LCD1602显示温湿度
delay_n10us(20); //延迟n个10us
}
}
4.3.2 显示函数
在LCD1602上显示数字到百位,精确到两位小数。函数如下
void LCD_Display()
{
LCD_disp_char(6,1,temp/1000+‘0’); //在显示屏上显示温度百位
LCD_disp_char(7,1,( temp %1000)/100+‘0’); //在显示屏上显示温度十位
LCD_disp_char(8,1,( temp %100)/10+‘0’); //在显示屏上显示温度个位
LCD_disp_char(10,1,( temp %10)+‘0’);// 在显示屏上显示温度一位小数
LCD_disp_char(6,2,humi/1000+‘0’); //在显示屏上显示湿度百位
LCD_disp_char(7,2,(humi%1000)/100+‘0’); //在显示屏上显示湿度十位
LCD_disp_char(8,2,(humi%100)/10+‘0’); //在显示屏上显示湿度个位
LCD_disp_char(10,2,(humi%10)+‘0’); //在显示屏上显示湿度一位小数
}
4.3.3 计算函数
函数中代入公式计算,函数如下:
void SHT21Work()
{
ISendByte(0x80,0xe3);
IRecByte(0X80,DATAT);
ISendByte(0x80,0xe5);
IRecByte(0X80,DATAH);
DATAT&=0xfffc;
DATAH&=0xfffc;
T=DATAT175.72/0x10000-46.85;
H=DATAH
125.0/0x10000-6;
temp=fabs(T)*10;
humi=fabs(H)*10;
}
4.4 SHT21传感器
SHT21是这次选用的温湿度传感器。在启动传感器和初始化后,利用传感器测量温湿度,然后发送数据到STM32芯片。流程图如下
在这里插入图片描述

          图4.5 SHT21工作流程图

传感器的模块设计模拟I2C协议函数、驱动函数、读温湿度测量函数、 写温湿度理函数。这里只介绍模拟I2C协议函数和延迟函数。
4.4.1 I2C协议函数
I2C协议函数执行时,也同样进行了数据采集和发送。程序如下:
I2C初始化,空闲状态:
void I2CInit(void)
{ SDA = 1;
SCL = 1;
}
启动 I2C, SCL、SDA同为高,SDA跳变成低之后,SCL跳变成低:
void StartI2C()
{
SDA=1;
SCL=1;
nop();
SDA=0;
nop();
SCL=0;
}
停止 I2C, SCL、SDA同为低,SCL跳变成高之后,SDA跳变成高:
void StopI2C()
{
SDA=0;
nop();
SCL=1;
nop();
SDA=1;
Delay15us();
}

I2C应答,SDA与SCL不在高位:
void Respons(bit a)
{
if(a==0)

SDA=0;
SDA=1;
else
nop();
SCL=1;
nop();
SCL=0;
}

向 I2C总线写一个字节返回ACK或者ACK=0,从高到低,依次发送
bit SendByte(unsigned char c)
{
bit ACK=0;
unsigned char BitCnt;
for(BitCnt=0;BitCnt<8;BitCnt++)
{
if(c&0x80)
SDA=0;
else
SDA=1;
SCL=1;
c<<=1;
SCL=0;
}
SDA=1;
SCL=1;
Delay15us();
if(SDA==0)
{
ACK=0;
LED=0;
}
SCL=0;
Delay15us();
return ACK;
}

从 I2C总线读一个字节,入口参数用于控制应答状态,ACK或者ACK=0,从高到低,依次接收
unsigned char RecByte()
{
unsigned char retc=0;
unsigned char BitCnt;
SDA=1;
for(BitCnt=0;BitCnt<8;BitCnt++)
{
SCL=0;

SCL=1;
retc=retc<<1;
if(SDA==1)
retc=retc+1;
}
SCL=0;
return(retc);
}
4.4.2 延迟函数
延迟函数的作用就是程序之间发送消息的时间顺序显示多个模块之间的动态协作,这样就需要等待,等待就可以通过延时子程序实现。
void Delay15us()
{
nop();nop();nop();nop();nop();nop();
nop();nop();nop();nop();nop();
}

4.5 LCD1602显示屏
在设计显示器的程序时,在初始化时首先设计表现出恒定的温度,湿度的单词和单位符号,再定义的写入指令,然后定义写入数据,最后在指定的位置显示的温度和湿度。设计过程如下。
在这里插入图片描述

图4.6 显示屏显示流程图
4.5.1 初始化函数
显示屏初始化功能,实用性是初始化液晶屏,温度和湿度的定义所述码元,温度和湿度的单位符号并确定它们的显示位置和什么位置处显示的温度和湿度值,同时延时清屏,当STM32芯片发送数据后,才能在显示。初始化程序如下:
void LCD_init(void) //LCD1602初始化函数
{
delay_n10us(10);
LCD_write_command(0x38);//指令:设置 8位格式,2行,5x7
delay_n10us(10);
LCD_write_command(0x0c);//指令:,光标关闭,不闪烁,全部显示
delay_n10us(10);
LCD_write_command(0x06);//指令:设定初始化的输入方式
delay_n10us(10);
LCD_write_command(0x01);//指令:清除屏幕显示
delay_n10us(100); //延时清屏,延时函数,延时约 n个10us
}
4.5.1 写指令函数
编写命令是发出指令来监测指令的作用,告诉显示器的显示数据,准备接收数据,并确定数据显示的位置。函数程序如下
void LCD_write_command(uchar dat)
{
delay_n10us(10);//延迟n个10us
LCD_RS=0; //指令
LCD_RW=0; //写入
LCD_E=1; //允许
LCD_DB=dat;
delay_n10us(10);
LCD_E=0;
delay_n10us(10);
}
4.5.2 写数据函数
写一个数据功能的功能就是要告诉该特定数据的显示数据要在显示的传输,所述程序是什么,如下:
void LCD_write_data(uchar dat)
{
delay_n10us(10);
LCD_RS=1; //数据
LCD_RW=0; //写入
LCD_E=1; //允许
LCD_DB=dat;
delay_n10us(10);
LCD_E=0;
delay_n10us(10);
}
4.5.3 温湿度值得显示函数
LCD1602显示一个字符函数,在某个屏幕位置上显示一个字符,X(0-15),y(1-2),函数如下:
void LCD_disp_char(uchar x,uchar y,uchar dat)
{
uchar address;
if(y==1)
address=0x80+x;
else
address=0xc0+x;
LCD_write_command(address);
LCD_write_data(dat);
}

LCD1602显示字符串函数,在某个屏幕起始位置{X(0-15),y(1-2)}上显示一个字符串,函数如下:
void LCD_disp_str(uchar x,uchar y,uchar *str)
{
uchar address;
if(y==1)
address=0x80+x;
else
address=0xc0+x;
LCD_write_command(address);
while(*str!=‘\0’)
{
LCD_write_data(*str);
str++;
}
}
4.5.4 延迟函数
经过延迟的时间后,芯片发送数据后,才可以在显示屏上刷新显示的温湿度,反应周围环境的变化,程序如下:
void delay_n10us(uint n)
{
uint i;
for(i=n;i>0;i–)
{
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
}
}

第五章 系统仿真

5.1 仿真软件介绍
Proteus是世界领先从概念到产品真正完整的设计的EDA工具(仿真软件)。其具有几个功能都非常实用,电路原理图的设计,代码调试MCU和外围电路的协同仿真,同时Proteus对PCB设计可以一键切换,即将电路原理图转换成PCB板。同时它是当前全球唯一的电路仿真软件,也是唯一的PCB设计软件及虚拟模型仿真软件设计平台,在编译方面,Proteus同样支持IAR,Keil编译器和其他软件:
在这里插入图片描述
图5.1软件窗口图
5.2 电路仿真
在软件中找到所需的元器件,包括:STM32F103C8、SHT21数字温湿度传感器、LCD1602液晶显示屏、排阻、电容、电阻、晶振,在用导线将元器件按需要的电路连接起来,并加上高电位和接地。连接好的电路图如图:
在这里插入图片描述

  图5.2.1 电路仿真图如图

把程序用keil 编译,生成一个后缀名后hex的文件 在proteus里面 双击芯片浏览hex文件的所在目录 将其加载。
电击左下角的开始按钮,软件开始仿真,可以看见电路图中的管脚处出现了表示高低电位的红蓝点,SHT21有了显示,LCD1602上也显示出了温湿度,系统出现结果如图:
在这里插入图片描述

图5.2.2 仿真结果图
系统最终得以实现,成功显示出测量的温湿度。同时也验证了本设计的可研究性与操作性。

第六章 总结与展望

终于实现温湿度的采集,才选题到完成,中间经过了许许多多。选题后,为了了解如何做,怎么做。去翻阅了许多的资料去学习。同时也去了解温室度系统工作的模块构成和原理工作,为了了解这些原理,设计时时常出错,然后总结原因,找出原因。但最重要的原因就是,腹中知识太少。写温湿度系统运行的程序时,刚开始不知道如何写,只好又拿起大一时候的C语言书籍,温习。刚开始编写程序没有思路时,就去网上找关于本次系统设计程序的知识,了解各个模块的程序的原理。然后用纸画出工作流程,然后才着手编写,最终调试,编译。最后仿真时,连接线路接口时,接口太多,不知道哪里接哪里,只好寻找相关资料。了解各个接口作用,才把线路接好,然后调试。当仿真成功,看到仿真的结果使,就觉得做这一切有了回报。做完本设计后,腹中多了许多的知识,开拓视野,真的使我受益良多。
该系统的设计具有成本低,稳定性和时效性和更好的扩展性更好的实时性能的优势。的主要选择是温湿度传感器,温度和湿度传感器SHT21以确保温度和湿度的测量的精度和稳定性,同时也保证了及时性,总能看到的瞬间温度和湿度,以稳定的,高精度根据判断的测量结果,以方便及时维护与开发。整个系统和使用底层代码C语言开发,因此该方案设计遵循模块化设计理念,软件设计具有开放性和可移植性,为将来的升级换代提供了一个功能界面,新的需求,实现快速反应,有快速实现满足市场的要求,提高了潜在的商业价值。

致谢

本论文为了设计出基于STM32的温湿度检测系统,搜集了大量的芯片册,查阅了较多的图书资料,复习了所学的课本教材。在老师的悉心指导下完成的。每次有问题去向老师问时,老师总是不厌其烦的讲解我们论文的错误,并加以指证,老师深厚的理论知识和实践。开拓了我的视野,使我的知识也得到了很大的提升。同时,老师还点出论文的不足和缺陷。在一次又一次指导下,我的论文逐渐丰满,漏洞和不足也越来越少。最终终于写成这篇论文。同时,在编写程序时,老师和室友同时给予了我很大的帮助,使我在编写论文上的疑惑得以解决。因此在这里,再次支持帮助过我的老师和同学们表示衷心感谢!

参考文献

[1]郭豫荣. 温湿度传感器的原理及应用[J]. 电子元器件应用, 2012(Z1):35-38.
[2]李建忠. 单片机原理及应用(第二版)[M]. 西安电子科技大学出版社, 2008.
[3]大棚花卉自动补光系统(硬件)-百度文库 [DB/OL].互联网文档资源,http://wenku.baidu.com/link?url=q8IC_6GNDH7lccOTh0Zxu1Tr4RquLcyyOGjLfsbho78mFEKRh-rg3tUue1R9lGnR2j7TV3vrAhYh1ow7o1Zmc53MNZDInL_sUrKbyajIi6a)》.2012-11-22.
[4]弥春霞. LAND红外测温仪在MULPIC中的应用[J]. 传感器世界, 2010(10):28-30.
[5]了凡. 温湿度传感器原理[DB/OL]. http://blog.sina.com.cn/s/blog_b5f8a0760101jlek.html.2013-03-08.
[6]伍冯洁, 谢斌. 基于Proteus与Keil的单片机实验教学改革[J]. 实验室研究与探索, 2009, 28(7):125-127.
[7]陈城. 基于Stm32的温湿度检测系统[D]. 武汉科技大学, 2012.
[8]李晓伟. 基于嵌入式系统技术的温湿度监测系统设计[D]. 大连理工大学, 2012.
[9]Xu S M, Yang Y S. The design of the real-time acquisition system of temperature and humidity based on ADμC812[C]// International Conference on Electrical & Control Engineering. 2011:6156 - 6159.
[10]Yan X, Tao G. Based on single-chip microcomputer temperature and humidity data acquisition system design[C]// 微电子及等离子体技术国际会议. 2011:V2-310-V2-313.
[11]Moghavvemi M, Faruque M O, Eng N K, et al. A simple low cost data acquisition system for remote sensing of relative humidity and temperature[C]// Circuits and Systems, 2001. Mwscas 2001. Proceedings of the, IEEE 2001 Midwest Symposium on. IEEE, 2001:202-206 vol.1.
[12]王海燕, 杨艳华. Proteus和Keil软件在单片机实验教学中的应用[J]. 实验室研究与探索, 2012, 31(5):88-91.
[13]赵月静, 陈继荣, 张永弟. 单片机原理及应用课程创新实践教学改革[J]. 实验技术与管理, 2013, 30(1):176-179.
[14]周正, 卜丽, 陈明. 基于单片机的LCD 1602设计[J]. 信息与电脑:理论版, 2011(5)…
[15]车宇, 伟利国, 李卓立. 温湿度传感器SHT21在安全储粮监测系统中的应用[J]. 电子产品世界, 2013(3):36-38.
[16]黄智伟. ARM9嵌入式系统设计基础教程[M]. 北京航空航天大学出版社, 2013:163-167.
[17]孟臣, 李敏, 李爱传. I2C总线数字式温湿度传感器SHT11及其在单片机系统的应用[J]. 电子设计工程, 2004(2):50-54.
[18]黄睿. 环境温湿度检测系统设计[J]. 计算机时代, 2015(5):41-43.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/450471.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理-练手题集合【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下计算机组成原理中的各章练手题&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王道的计算机组成原理和西电的计算机组成原理。 计算机组成原理系列文章传送门&#xff1a; 第一/二章 概述和数…

信钰证券|股票多少岁可以开户?怎么开户?

网上处理股票开户要求投资者年龄为18-70周岁&#xff08;16-18周岁要求提交收入证明才能开户&#xff0c;70周岁及70周岁以上需求自己带身份证和银行卡去营业部现场处理开户&#xff09;。 开户流程&#xff1a; 1、选好券商&#xff0c;下载并注册相关券商APP&#xff1b; …

嵌入式工资为啥比纯软工资低那么多?

嵌入式工资为啥比纯软工资低那么多&#xff1f; 在开始前我分享下我的经历&#xff0c;我刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;一年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些 电气工程师学习方法和资料&#xff0c;让我不断提升自己&…

Focal Modulation Networks聚焦调制网络

摘要 我们提出了 焦点调制网络 &#xff08;简称 FocalNets) &#xff0c;其中 自注意&#xff08; SA &#xff09;被 Focal Modulation 替换&#xff0c;这种机制 包括三个组件&#xff1a;&#xff08; 1 &#xff09;通过 depth-wise Conv 提取分级的上下文信息&#xff0c…

3D视觉引导缸套自动化上下料

缸套作为制造业中关键零部件&#xff0c;其下料环节的效率和精度直接影响到整个生产流程的顺利进行。随着3D视觉技术的不断发展&#xff0c;越来越多的企业开始采用3D视觉引导技术实现缸套的自动化下料&#xff0c;从而提升生产效率、降低成本并提高产品质量。 案例背景&#x…

【计算机视觉】图像处理算法(形态学滤波篇)

来源&#xff1a;《OpenCV3编程入门》&#xff0c;怀念毛星云大佬&#x1f56f;️ 说明&#xff1a;本系列重点关注各种图像处理算法的原理、作用和对比 形态学滤波(1 ):腐蚀与膨胀 形态学槪述 数学形态学的概念&#xff1a; 数学形态学(Mathematical morphology)是立在格论…

【数据结构与算法】解题20240312

这里写目录标题 一、字符串转换整数 (atoi)二、1. 两数之和三、128. 最长连续序列四、73. 矩阵置零 一、字符串转换整数 (atoi) 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。…

前端之用HTML做一个汇款单

例子 代码 里面注释是我我对运用到的知识的理解 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>工商银行电子汇款单</title> </head> <body><h3>工商银行电子汇款单</…

docker学习进阶篇

一、dockerfile解析 官方文档&#xff1a; Dockerfile reference | Docker Docs 1.1、dockfile是什么&#xff1f; dockerfile是用来构建docker镜像的文本文件&#xff0c;由一条条构建镜像所需的指令和参数构成的脚本。 之前我们介绍过通过具体容器反射构建镜像(docker comm…

柚见第十一期(前端页面开发)

创建队伍 便于控制样式,在外面套一层div 创建假数据模拟后端传来数据 //假数据模拟 const initFormData { "name": "", "description": "", "expireTime": "", "maxNum": 0, "passwor…

基础小白快速Python---------时间日期

在Python中&#xff0c;time 模块提供了基本的时间相关功能。以下是一些常用的函数和方法&#xff1a; 1. time.time(): 返回自纪元&#xff08;1970年1月1日&#xff09;以来的秒数。 import time# 获取当前时间戳 current_time time.time() print(current_time) # 输出例如…

C++ 之LeetCode刷题记录(三十九)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 22. 括号生成 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用…

Node.js与Webpack笔记(二)

上一篇&#xff1a;Node.js与Webpack笔记&#xff08;一&#xff09;-CSDN博客 目录 Webpack模块打包工具 1.Webpack简介以及体验 2.Webpack的作用 4.体验Webpack 如果运行package.json里的自定义命令&#xff1f; Webpack 默认入口和出口&#xff1f; 入门使用 5.Webp…

centos7.9安装nacos

centos7.9安装nacos2.3.1 在centos x86_64环境安装nacos2.31环境准备 jdk1.8 、 mysql、 nacos 在window11环境安装nacos2.31 在centos x86_64环境安装nacos2.31 环境准备 jdk1.8 、 mysql、 nacos Nacos 依赖 Java 环境来运行。我们通过下载编译后压缩包方式安装。 重点踩坑…

Java微服务 第二十一章 Java多线程安全与锁

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

​​力矩电机的建模、仿真与选择

1 力矩电机建模 图1中 e i ( t ) {e_i}\left( t \right) ei​(t)为电机输入电压&#xff0c; L a {L_a} La​为电枢电感&#xff0c; R a {R_a} Ra​为电枢电阻&#xff0c; e m ( t ) {e_m}\left( t \right) em​(t)为电机工作时产生的反电动势&#xff0c; i a ( t ) {i_a}\l…

python爬虫(6)之处理数组

1、拆分数组 1、spilt&#xff08;&#xff09;函数 此函数的用处是将数组均分成几个数组 演示如下&#xff1a; import numpy as np ac np.array([1,2,8,9,3,5,5,8]) ac1 np.split(ac,2) ac2 np.split(ac,[3,6]) print(ac1,ac2) 结果如下&#xff1a; 其中若是一个数…

[java——基础] 双亲委派机制

目录 核心思想&#xff1a; 双亲委派机制的好处&#xff1a; 三种类加载器 解析源代码 双亲委派思想面试总结&#xff1a; 核心思想&#xff1a; 向上搜索&#xff0c;向下加载。 双亲委派机制的好处&#xff1a; 防止Java核心类被篡改&#xff0c;防止类的重复加载。 三…

力扣--动态规划/深度优先算法/回溯算法93.复原IP地址

这题主要用了动态规划和回溯算法。 动态规划数组初始化&#xff08;DP数组&#xff09;: 首先&#xff0c;创建一个二维数组dp&#xff0c;用于记录字符串中哪些部分是合法的IP地址。对字符串进行遍历&#xff0c;同时考虑每个可能的IP地址部分&#xff08;每部分由1到3个字符组…

基于深度学习的鱼类分类检测系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8 yolov8主要包含以下几种创新&#xff1a;         1. 可以任意更换主干结构&#xff0c;支持几百种网络主干。 数据集&#xff1a;     网上下载的数据集&#x…