资讯详情

基于STM32-消防栓监测系统毕业设计---论文(附加最全面的从硬件电路设计->驱动程序设计->阿里云物联网搭建...

设计展示视频连接:消防栓监控系统视频 驱动程序工程文件:消防栓监测系统驱动程序工程(全寄存器开发) 消防栓监测系统的所有设计资料:全栈设计如下图所示 消防栓监测系统论文(图片看不清楚可下载文档):论文文档 请添加图片描述

关注收藏和评论的学生有机会获得毕业设计的电路板(规则:关注收藏后,可以在评论区获得第一、第18、第36个电路板,注意货到付款,小边不包括邮费)

对不起:论文在移动CSDN在中国,文章的数学公式有一些变形,你可以下载小边上传的论文查看,有一些电路截图没有修改,你下载我上传的工程文件进行比较查看! 注:本毕业设计为学生提供参考学习,未经本人许可,不得转发及相关商业活动。

摘 要
??物联网时代的到来促进了智能城市的逐步形成。智能消防栓监控系统作为智能城市监管的一部分,大大解决了城市消防栓设备难以监管的问题。本文设计了一个基础STM32对各种传感器的数据采集、分析和响应处理,控制核心处理器NB-IOT上位机查看和控制通信模块上传数据。消防栓监测系统设备AD-DC实现室内外工作兼容的反激式开关电源和太阳能锂电池充电功能,NB-IOT通信模块大大降低了设备的能耗,太阳能充电实现了可再生能源的利用。经过多次试验,本次设计的消火栓监测系统能够准确、实时地监测消火栓,效果良好。

: 物联网;智慧城市;消防栓监测系统;太阳能充电

目录

  • 1 前 言
    • 1.1 研究背景
    • 1.2 国内外发展现状
    • 1.3 课题研究的目的以及意义
    • 1.4 研究内容、方法、步骤和要求
  • 2 设计消防栓监测系统系统
    • 2.1 系统整体设计理念
    • 2.2 整个系统设计架构
  • 3 消防栓监测系统硬件设计
    • 3.1 整个硬件系统的电路设计组成部分
    • 3.2 AC-DC反激开关电源
    • 3.3 锂电池充电电路
      • 3.3.1 太阳能板锂电池充电电路
      • 3.3.2 直流锂电池充电电路
      • 3.3.3 双节锂电池保护电路
    • 3.4 电源电压转换电路
      • 3.4.1 锂电池及USB输入电源12V升压电路
      • 3.4.2 Buck降压电路
      • 3.4.3 LDO线性稳压电路
    • 3.5 电源切换电路
      • 3.5.输入电源电路自动优先级切换
    • 3.6 单片机控制电路
      • 3.6.1 STM32F103C8T6最小系统电路
      • 3.6.2 Type C接口USB转串口电路
      • 3.6.3 外部扩展电源接口电路
      • 3.6.5 ADC模数转换电路
    • 3.7 消防栓监测系统外壳
  • 4 消防栓监测系统软件设计
    • 4.1 下位机软件系统设计
  • 4.1.1 整个软件系统设计的一般思路
      • 4.1.2 设计主程序程序流程图
      • 4.1.3 EEPROM获取设备ID号实现
      • 4.1.6 BC20物联网模块无线通信GPS定位
    • 4.2 上位机软件系统设计
  • 5 测试消防栓监测系统
    • 5.1 SWD接口烧录程序测试
    • 5.2 USB接口烧录程序测试
    • 5.3 消防栓监测系统上电启动测试
    • 5.4 云智能APP测试无线远程观控设备
    • 5.5 蓝牙APP无线近程观控设备测试
    • 5.7 三种输入电源测试
  • 6 总结

1 前 言

1.1 研究背景

??自改革开发这30多年以来,我国的经济和科技得到了快速地发展,进而老百姓的生活质量也跟着不断地提高。这些无线物联网技术的各种消费品也渗透到人们的日常生活中,使人们依赖生活中的物联网智能产品,对其质量和功能有更高的需求。因此,智能城市建设、智能农场等一些新型智能监控系统的无线物联网设备受到相关政府和企业的高度重视。 近十年来,我国城市化规模不断扩大,人们生活环境中的各种公共设施也得到了更大的覆盖。虽然人们的生活质量有所提高,但也带来了很多麻烦,因为新闻经常报道一个社区错过了消防栓故障的最佳消防时间。从这些相关新闻报道可以看出,城市社区人口密集,生活质量提高带来了各种智能设备使用,非标准设备使用会引起恐惧火灾,由于消防栓数量和复杂分布难以监督维护,一旦消防栓损坏、内部无水、内部压力、非法盗窃等事件无法及时维护和修复,这导致了消防栓无法发挥消防功能的悲剧。从以上结论可以看出,消防栓监测系统设备可以解决消防栓设备监测维护的困难。 ??在近期新闻报道中报道了我国北方出现用电紧张问题,随着经济的发展和科技的进步,电成了人类社会个个领域都或不可缺的能源。因此设计的这款监测系统设备不能只是实现无人远程监测等功能而不了了之,还要在确保设备可靠性上还要降低能耗和利用可再生能源来维护设备运行。

1.2 国内外发展现状

??传统的消火栓没有额外的电子设备,都依靠相关部门的维护人员定期检查设备,导致消火栓设备一旦损坏可能长期无法修复,大大增加了人们的生活安全风险,在维护成本上消耗了大量的人力。 ??20世纪90年代,国外开始研究监测系统技术。监最初的人工现场监控模式到基于传感器和网络的监控系统,监控系统正在慢慢脱离人力资源,进一步实现智能化和商业化。采用模拟组合仪器收集信息,执行指令、记录和控制。这些监控系统设备使用传感器检测和收集气体、液体、固体和其他人类无法感知的数据,然后执行相应的数据分析动作。在这个智能时代,除了处理器,智能监控设备的核心是传感器。 ??在传感器的发展史上,我国对传感器的研发相对较晚。由于国外对中国传感器技术的封锁,中国的传感器研发处处碰壁。即使开发出来的传感器在技术上与国际标准有很大差距。据网上和书籍上相关的数据分析,我国在传感器的研发技术、工艺等方面上与美、德、日、韩等这些工业发达的国家还是存在较大的差距。令人震惊的是,美国、德国和日本约占全球市场的70%。然而,中国对传感器的需求是世界上最高的国家之一,每年通过国外进口大量传感器。 ??由于传感器在工业、汽车等智能设备中发挥着重要作用,各国越来越重视传感器。与美国、日本、韩国、德国等技术发达国家相比,中国在传感器行业面临三大挑战: ??首先,独立知识产权产品或新产品的研发能力相对较差;由于传感器设计对灵敏度和精度有严格的要求,但中国难以满足国际要求,国内90%以上的中高端传感器产品进口国外。由于中国大部分中高档传感器都是从国外进口的,中国传感器行业一直处于被牵着鼻子走的状态。 ??第二,我国传感器研发没有确切的标准,模糊的标准使传感器研发无法统一,导致传感器生产混合,非正式。不仅传感器研发标准模糊,而且我国对人才培训重视不够,导致人才流失和核心技术不足,进一步导致国内传感器市场难以扩大,长期受到国外传感器市场的压抑。 ??第三,中国不仅大部分地区的企业分布混乱,而且大部分国内企业都是中小企业。然而,这些中小企业在资本、技术和结构管理方面相对薄弱和不足,导致国内企业整体综合能力下降。 ??虽然我国的传感器研发技术与那些发达国家要弱许多,但是有些发达国家因资金匮乏和通讯领域较为薄弱,例如日本、韩国,导致他们这些发达国家不能像中国那样发展大规模的智慧物联网,而美国这种国家地广人稀,美政府对物联网和军事之间的投入,两者更愿意在军事上投入更多,这导致其这种发达国家也无法大规模发展智慧物联网。 因为中国对智慧物联网上大量投入开发,因此对传感器的研发技术上也有了不少的突破。而像消防栓监测系统这种设备也是从中获取到红利,使用国内传感器成本低,性能上也可靠。

1.3 课题研究的目的以及意义

  从现况分析,我国的大部分城市等地区对消防栓设备的监测和维护管理上都存在比较大的不足,那么导致这些地区出现较多的消防安全隐患。消防栓监测系统可实现远程监测及其报警,大大减少了人力上的消耗。消防栓监测系统设备包含了水压采集、倾角采集、温度采集、GPS北斗定位的功能,从而解决了消防栓的基础数据监测和技术维护人员能通过定位坐标快速到达出了故障的消防栓设备附近,从而快速对设备进行维护,那么大大降低了地区的消防安全隐患和对设备监测维护上的成本。   电子设备除了需要完成其设计的功能目的外,还需要符合当今绿色环保的主题,因此消防栓监测系统设备在能源消耗上使用了太阳能可再生能源作为设备供电能源。

1.4 课题研究内容、方法、步骤与要求

  通过对市场对此类常见的监测系统设备进行分析得出结论,市场上这类设备的功能有水压监测、出水流量监测、破坏或撞到监测、GPS定位、蓝牙通讯等这些比较常见普通的监测功能。   根据上述调查,本课题采用循序涨进这个原则设计了一款基于STM32为数据处理中心的消防栓监测系统,实现室内外消防栓设备的监测和将该数据进行实时的上传并在上位机图形数据呈现给用户查看。该系统主要由STM32F103C8T6中央控制器模块、OLED液晶显示模块、BT04蓝牙模块、NB-IOT通讯模块、GPS北斗定位模块、IMU901九轴传感器、水压传感器、DS18B20温度传感器、AC-DC反激式开关电源以及各种电源拓扑等电路及模块组成。 系统实现的功能如下:

  1. 对水压、角度、环境温度、芯片工作温度、GPS定位等数据进行检测,然后采集数据,最后上传数据。
  2. 对采集的进行数据分析,如超过预设值触发报警。
  3. 蓝牙无线近程控制与串口调试打印。
  4. 手机客户端无线远程查看采集数据以及控制。
  5. 市电和太阳能对锂电池充电,实现室内外兼容。 本设计步骤如下:
  6. 对整个系统做出大概的思路并根据该思路画出初步的设计骨架。
  7. 对使用到的电路和模块进行查阅、了解、筛选,最后确定初步的硬件设计。
  8. 对底层驱动程序和上位机蓝牙程序依据实现的功能进行梳理逻辑并根据梳理好的逻辑进行程序流程图的绘制,最终再根据绘制好的程序流程图来进行程序编写和根据实际调试情况进行修整等。
  9. 最后对下位机进行底层驱动程序的烧录,再结合硬件电路、上位机蓝牙APP及云智能APP进行对接并进行完整的系统调试,而调试过程中进行数据分析和整体的改进与优化,最终完成设计要求。

2 消防栓监测系统系统设计

2.1 系统整体设计思路

  该系统的整体设计思路:基于STM32处理器作为整个系统的处理中心,通过各种传感器对消防栓设备进行检测,如水压、角度、温度、定位等数据进行采集,然后通过STM32处理器对采集的数据进行处理,如若数值超过预设值,那么就会触发报警,同时STM32处理器会对处理后的数据进行实时上传到服务器并在手机上位机APP呈现图形数据便于用户查看。   为了解决消防栓监测系统设备能兼容室内外的持续工作,本系统设计了两种电源供电电路,第一种是AC-DC反激式开关电源电路,它可将220V交流市电转换成直流电,第二种是太阳能开关电源电路,它可将太阳能(可再生能源)转换成直流电。这两种电源供电电路不仅解决了室内外兼容工作,而且增加了设备运行的稳定性和完全符合国家提倡的绿色环保主题。   为了解决设备的安全和维修人员及工程师的户外调试,在设备外壳上增加了电子锁来保证设备的安全和配备蓝牙APP便与调试打印数据信息及完成无接触式开锁功能。

2.2 系统整体设计架构

  消防栓监测系统的整体设计框架图如图2-1所示,以框架图中的STM32F103C8T6单片机作为整个系统设备的主控制核心,其次框架图左侧作为整个系统设备的供电输入口及工作电压转换功能,通过右侧的供电输入对STM32单片机和各个模块的供电使得整个系统设备正常工作。   消防栓监测系统的完整工作模式是先使用STM32单片机对各个模块进行初始化;其次对水压传感器、IMU901陀螺仪、DS18B20温度传感器、EEPROM、GPS北斗定位进行对应的数据采集和数据解析;再次通过BT04蓝牙及NB-IOT模块进行对解析后的数据上传、通过OLED显示时间和设备ID号等信息和通过对解析后的数据与预设值进行比较后对继电器、NB-IOT做出相应的响应;最后通过上位机云智能APP对阿里云物联网服务器获取数据和上位机安卓蓝牙APP获取数据来呈现到UI界面上提供客户查看信息。

3 消防栓监测系统硬件设计

3.1 整体硬件系统电路设计组成

  消防栓监测系统硬件电路由一下几部分组成:AC-DC反激式开关电源电路、USB_Type_C串口数据交互口电路、双节锂电池保护电路、双节锂电池充电电路、LDO线性稳压电路、太阳能多节锂电池充电电路、BOOST升压电路、BUCK降压电路、电源选择电路、ADC模数转换电路、BT04蓝牙模块、EEPROM模块、NB-IOT模块、IMU901陀螺仪模块、OLED显示屏、STM32单片机等电路组成。根据每个硬件模块之间关系的连接,并配合驱动程序完成消防栓监测系统整体的控制处理,最终达到预想的整体处理工作。   下图3-1是消防栓监测系统的电源系统关系结构图,是为了提供消防栓监测系统有一个完整、稳定、可靠的供电系统,保证该系统工作的稳定性。

图 3-1 消防栓监测系统电源系统关系结构图

3.2 AC-DC反激式开关电源

  反激式电源的“反激式”之得名,是指输出端在将原边绕组切断时获得电能。而反激式电源在小功率的家用电器中比较广泛,其具备了电路简化、可高效进行多路直流输入输出、转换率较高、即使输入电流在较大的波动范围内都可保证比较平稳的输出功率的优点。   反激式开关电源作用是将输入的220V交流市电转换为直流电输出。因为本系统需要设计的的是185V-265V范围的交流输入电压和12V输出电压与2A输出电流。而选择使用深圳东科半岛体有限公司的DK124-24W离线式开关电源IC正好可以满足设计要求。设计的电路图如下图3-2所示。 图 3-2 反激式开关电源主电路 实现步骤如下:

  1. 熔断丝:选择2A-250V,这是电气安全的最关键一个关口,它起到在短路和过载情况下快速切断电源从而保护后级电路。
  2. NTC热敏电阻:选择型号为5D-9热敏电阻,它有着3A最大稳态电流,可以防止刚上电的设备碰上市电输入的电源峰值产生的浪涌电流对后级电路带来无法修复的损坏。
  3. 压敏电阻:选择拥有2.2倍的交流有效工作电压的14D471K压敏电阻,它是一种限压型保护器件,在压敏电阻两极之间产生过电压的时候,它可以利用其自身的非线性特性,将电压钳位到一个相对固定的电压值,从而达到抑制电压浪涌保护后级电路的作用[1]。
  4. EMI电路:电路中的CX1的X类安规电容、LF2共模电感及R2、R5电阻组成EMI电路,它可以抑制噪声信号。X类安规电容称为差模电容器,用于L-N之间的电容器,0.47uF/275VAC的X类电容对交流电网中输入的交流电信号的差模电磁干扰信号起抑制作用;共模电感可以抑制共模电磁干扰信号,而较大电感量的电感抑制干扰信号的效果会更好一些。但是共模电感接在交流电源两端时,又希望共模电感上产生的电压压降要尽可能低(电压压降指共模电感中的差模电感量),所以连接到两端的交流电源线的共模电感绕组之间需要耦合,那么就使得共模电感量叠加,差模电感量相互抵消。电源滤波所需要抑制的频率需要比开关电源的开关频率大的,为了尽可能降低开关频率的电磁干扰,选择150KHz;串联电阻R2、R5的可以将在设备断电瞬间,排泄共模电感上产生反向的感生电动势的电流,起到保护作用。这里选择两个150K的1206封装的电阻,保证其不会超过额定功率。
  5. 整流器使用不超过额定功率的1N4007二极管。
  6. 为了稳定起见,整流滤波电容采用拥有低频滤波作用的47uF/400V的电解电容及拥有高频滤波作用的10nF/1000V的陶瓷电容,增加反激式变压器的输入电源稳定性和可靠性。 整流滤波电容器选择:   85-265V国际通用电压等级的交流输入状态下,整流滤波电容器承受约27mA/W的纹波电流有效值。   220V交流电压等级输入电压状态下,整流滤波电容器承受约13.3mA/W的纹波电流有效值。 根据承受的电流有效值即可选择出电容器。
  7. RCD箝位电路由图中R3、R4、C4、D6组成,其作用是为了将变压器漏感储能转移到电容器中。因为在开关管上含有变压器复位电压(反冲电压)、直流母线电压和变压器漏感的感生电动势。而前面变压器反冲电压和直流母线电压这两个电压都是已知的定值,并且这两个电压都是在计算以内。而变压器漏感产生的感生电动势是必然伴随出现的,但在设计中是不希望其出现的。因为开关管的开关速度是非常快的,这使得变压器漏感的感生电动势会随着开关管的开关速度变快而变的十分的高[2],这是十分危险的。本反激式开关电源电路采用型号为2A223J的22nF电容;电阻目的是将电容器箝位电能释放掉,为下一次箝位做准备,这里工作时不能超过电阻额定功率;二极管使用拥有反向恢复快的性能的整流二极管,并且二极管的额定电压不能低于直流母线电压。 箝位电容器选择:C=(L_r×I_m2)/((V_22-V_1^2 ) ) , 其中L_r变压器漏感,I_m 开关管峰值电流,V_2箝位后箝位电容器电压,V_1箝位前箝位电容器电压。
  8. 反激式变压器使用EE25骨架,原边与绕边之比为90:12,原边与绕边引脚分别为1,3和6,8,电感量为0.6nH。
  9. 图中D3二极管选择拥有低压降和单向导通性的肖特二极管,使得变压器只有关断时才会将电能输出到输出端和在其损耗低。
  10. 图中C10、L1、C5组成了LCΠ型滤波电路,主要起输出滤波作用。
  11. 电压反馈电路由R7、D5、U2、C13、C14组成,此电压反馈电路是参考官方提供的方案,保证反馈环节不会出现太大的误差。 其工作及设计原理:先将没有经过滤波的电压经过R7(限流保护光耦合器的作用)和有滤波后的电压经过稳压二极管分别接入到光耦合器输入端的正极、负极中,没有经过滤波的电压可以真实反馈输出电压的变化,而经过滤波后的电压可以让稳压二极管稳定在其额定电压之间,当没有输出电压发生增大或减小时就会影响到光耦合器输入端的发光二极管的电压,因此光耦合器中的发光二极管工作电流也会随之增大或减小,进而使发光二极管的发光亮度发生变化时导致光耦合器的输出端的三极管导通电流也随之发生变化,最终导致KD124的3引脚FB输入电流发生变化,当FB输入电流增大时,KD124的输出脉宽相应变窄,使得输出电压减小。(C13、C14起滤波作用)
  12. 图中CY1和CY2为Y类电容器(也称共模电容器),也是一种安规电容,作用是抑制共模电磁信号和将电路板上的地线分隔成安全隔离地(PGND)和高压地(GND)。
  13. 在上图电路输出后级增加了安全保护电路。如下图:
图 3-2-1 反激式开关电源后级输出保护电路
TVS是瞬态二极管,它可以在热拔插的时候产生的浪涌时,保护外后级电路不受损害;而电容C49起输出滤波作用和肖特二极管D13能利用其单向导通性来防止反接。

3.3 锂电池充电电路

3.3.1 太阳能板锂电池充电电路

  由于使用的是多节串并联的锂电池组进行电路板供电,因此经过反复的筛选后,选择了如韵电子公司的一款拥有自动调节太阳能板供电输入功能的IC,其型号为CN3795, 它是一种多节锂电池充电管理集成电路IC,具有PWM降压模式的和着6.6V-30V宽电压输入。令人惊讶的是,其充电电流可高达4A。因此使用它单独进行对多节锂电池充电管理是非常适合的。   CN3795电源管理芯片具有涓流充电、恒流充电、恒压充电、睡眠等模式。CN3795电源管理芯片通过内置的比较器对电池电压、输入电源电压及充电电流进行分别与对应的内置基准电压、电路比较,从而自动进行切换到对应模式工作。   CN3795电源管理芯片还有另外的优点,它具有追踪太阳能板的输入最大功率点的功能,当使用太阳能板作为输入电源时,其内部的电路能够自动地追踪到太阳能板的输入最大功率点,这样设计工程师就无须再去考虑最坏情况了。因为CN3795电源管理芯片能够将太阳能板输入电源最大化地转换为的输出电源,所以CN3795电源管理芯片在太阳能板电源的使用上是非常适合使用的。   CN3795的充电工作模式和太阳能板最大功率跟踪功能这两个特点增加了锂电池的使用寿命和提高了室外的自我充电能力,从而在无监管情况下大大增大了室外设备的续航能力和自保证工作的稳定、可靠性。

图 3-3 太阳能充电电路
图3-3的太阳能充电电路设计如下:
  1. D19是SS34肖特二极管,目的是为了预防输入电源反接。
  2. C14、C16、C17为输入滤波电容,主要可以对输入电源进行滤除波纹和扼制寄生电感等在开关瞬间产生的高频振荡。根据DataSheet手册,C16、C17选择分别使用4.7uF/35V和68nF/50V的,而C14电解电容主要是起低频滤波作用,需要根据实际情况选择(不是电容值越大越好,还需要根据其等效电阻值ESR选择,不然就会物极必反了)。
  3. R22(15KΩ)和R20(1KΩ)这两个电阻是调节太阳能电池板最大功率点跟踪的。最大功率点电压由下式决定:V_MPPT=1.205×(1+R_22/R_20 ) ,因此设置的V_MPPT约为19.3V,配合使用的太阳能电池板(参数:18V1.1A20W)。
  4. R16为Rcs电阻,它是设置恒流充电电流的,而恒流充电电流由下式决定:I_CH=120mV/R_CS ,此电路设计的最大充电电流可以达到2A。
  5. R17、R18这两个电阻是设置恒压充电电压的,而恒压充电电压由下式决定:V_BAT=1205×(1+R_17/R_18 )+I_B×R_17 ,(I_B是FB管脚的偏置电流,其典型值为60nA)。
  6. L3是功率电感,根据上图电路分析,在正常工作阶段,电感上的瞬态电流变化是呈周期性的。当PMOS管的漏源极接通时,输入的电源向电感进行充电,电感上的电势能增大;当PMOS管漏源极断开时,电感释放电势能向电池充电。当功率电感上的电感值增大时,其电感上的纹波电流反向减小,呈正向线性关系;而输入电压与纹波电流则相反,呈反向线性关系。又因为电感上的纹波电流与纹波充电电流是呈正向线性关系的,所以电感的纹波电流需要控制在一个相对合理的范围内。电感的纹波电流可由下式估算:ΔI_L≡1/fL×V_BAT×(1-V_BAT/V_CC ),其中:f是开关频率(300KHz),L是电感值,V_BAT电池电压,V_CC是输入电压。在选取电感值时,可将电感纹波电流限制在ΔI_L≤0.3×I_CH ,其中I_CH是充电电流。除了满足上面限制外,还需要满足这个公式:L>5×(V_CC-V_BAT ) 。因此使用15uH的电感。
  7. U9是P沟道MOS场效应管,选择PMOS管需要注意MOS场效应晶体管的击穿电压BVDss必须大于最大的输入电压,其次需要考虑的因素包括导通电阻R_ds(on) ,栅极总电荷Q_g,反向传导电容C_RSS,输入电压和最大充电电流。P沟道MOS场效应晶体管的最大功耗可以用下式来近似:P_d=V_BAT/V_CC ×R_ds(on) ×I_CH^2×(1+0.05ⅆT),其中:P_d是MOS场效应晶体管的功耗,V_BAT是电池的最高电压,V_CC是最小输入电压,R_ds(on) 是P沟道场效应晶体管在室温(25℃)条件下的导通电阻,I_CH是充电电流,dT是P沟道MOS场效应晶体管的实际温度与室温(25℃)的温度差。除了导通损耗外,还存在开关损耗,开关损耗随着输入电压的增加而增加。在输入电压小于20V时,导通损耗大于开关损耗,优先考虑导通电阻比较小的MOS场效应晶体管;在输入电压大于20V时,开关损耗大于导通损耗,优先考虑反向传导电容CRSS比较小的MOS场效应晶体管[3]。一般C_RSS的值在MOS场效应晶体管的技术规格书都有列明,如果没有明确列明该电容值,可由公式C_RSS=Q_GD/V_DS ,来估算。 综上考虑,选择了类型:型号AOD413A的PMOS管。

3.3.2 直流锂电池充电电路

  由于为了实现室内也能对锂电池充电,选择型号为EUP8209这一款恒流、恒压使用电流模式的锂离子电池充电器控制器,这里使用的这款控制器是8.4版本的,它具有电源电压宽输入范围(8.9V至20V)、12小时充电结束定时器、低功耗自动休眠、支持高达3A的充电电流等特点,因此它非常适合使用在室内充电设备中,能大大延长设备和锂电池的使用寿命。

图 3-4 直流锂电池充电电路
  图3-4中直流锂电池充电电路是根据其DataSheet手册设计的一个输入范围5V-20V及输出8.4V、3A的锂电池充电电路,设计如下:
  1. 上图的电阻R13和R12组成的了电阻RSENSE,这个电阻是控制输出电流的大小的,而输出电流的决定式如下:R_SENSE=100mV/I_out ,因此得出RSENSE的电阻为33mΩ,本电路使用两个60mΩ并联来代替30mΩ电阻。
  2. L1电感的选择条件使用官方提供的参考方案,在最大输入电压情况的50%纹波条件下,电感量的决定式如下:L=(V_out/(500KHz×50%×I_out ))×(1-V_out/V_inMax ),其中:500KHz是开关频率,V_inMax是最大输入电压。经过计算得出L约为6.5uH。
  3. 因为没有6.5uH的电感,这里选择了6.8uH的电感代替,那么最大纹波电流的决定式如下:∆I_L=(V_out/(500KHz×L))×(1-V_out/V_inMax ),经过计算得出最大纹波电流ΔI_L约为1.433A。
  4. 考虑最大纹波电流,其决定式如下:V_(out(ripple))=((∆I_(L(Max))×ESR))/2,其中ESR为等效电阻,约为0.1Ω。经过计算得出最大纹波电流约为72mV。
  5. 计算峰值电感电流,留出裕量,防止输出电感过大多后级电路造成破坏,,那么峰值电感电流的决定式如下:I_LPK=I_out+((∆I_L)/2),经过计算得出峰值电感电流I_LPK大约为3.7A。
  6. 除以上电路必要元器件外,还外加了一些元件,使得锂电池充电电路的工作更稳定可靠。如D6为肖特二极管SS34,这是为了防止输入电源的反接;C9电容是为了怎去输入滤波作用;R15在电路图的标识是错误的,R15是一个10KΩ的NTC热敏电阻;电容C6、C8作用分别是高频滤波和低频滤波作用;磁珠L2作用是滤波和作为调试点。

3.3.3 双节锂电池保护电路

  富满微电子集团股份有限公司的TC2110系列双节串联锂离子可再充电池保护IC,其具有充电、过放电和过电流保护的机制。而下图是使用TC2120-CB这款IC设计的双节锂电池保护电路,根据DataSheet手册设计,如3-5所示。

图 3-5 双节锂电池保护电路

3.4 电源电压转换电路

3.4.1 锂电池及USB输入电源12V升压电路

  升压电路也叫Boost电路,在本电路系统中需要设计一款12V的升压电路, 型号为FP6296的IC是一款电流模式升压DC-DC异步转换器这款IC,支持2.7V-12V工作电压,基本满足设计要求。

图 3-6 锂电池及USB输入电源12V升压电路
图3-6锂电池12V升压电路能稳定输出在12V,最大输出电流可达2A,设计如下:
  1. 电阻R31是用来设置开关电路的峰值电流的,而电阻值51KΩ-150KΩ对应于2A-10A直接。所以这里使用51KΩ。
  2. 电阻R33和R34是设置输出电压的,其决定式:V_out=1.2×(1+R_33/R_34 ),经过计算得出输出电压Vout约为12.11V。
  3. 电感L4的选择式Boost电路选择的关键之一。下图为Boost拓扑电路,根据伏秒法则可知:开通时电感电压开通时间 = 关断时电感电压关断时间,其实这就是遵守能量守恒定律,由伏秒法则可得出: 〖U(L)〗_on×T_on=〖U(L)〗_off×T_off 使用基尔霍夫定律分析可知,〖U(L)〗_on=V_in,〖U(L)〗_off=V_o-V_in,又因为开关周期〖T=T〗_on+T_off和占空比D=T_on/T,结合以上条件得:D=(V_o-V_in)/Vo,这里是忽略肖特二极管分压等情况计算得出的。
图 3-6-1 Boost拓扑电路
因为U=L×d_i/d_t ,其中U为输入电压、L为电感、d_i为电感的纹波电流、d_t导通时间,根据这个式子为中心,计算出所需要的电感值L,步骤如下:

① 根据前面得出D=(V_o-V_inMin)/Vo可计算出,占空比约为0.43;根据T=1/f(这里f为开关频率400KHz)得出T为2.5us;根据T_on=DT得出d_t=1.083us。 ② 因为d_i为纹波电流,所以di=ΔI_L。通常设定稳压电路的纹波为最大负载电流的0.4倍,而最大负载电流即为流经电感的最大平均电流I_Lmax,而电感的平均电流就是在开关断开时电感输出的电流,因此得出式子为:I_Lmax=I_outmax/(1-D),所以d_i=〖ΔI〗_L=0.4×I_Lmax=0.4×〖 I〗_outmax/(1-D),最后计算出d_i约等于1.4A。 ③ 那么根据L=V_in×d_t/d_i =V_in×T_on/〖ΔI〗_L 得出电感值L约为5.26uH,这里因为漏了采购这类电感,所以使用了3.3uH的,那么当负载加大和输入电压过小都会使开关电源进入断流模式。 ④ 而峰值电流决定式为:I_LPK=I_Lmax+(〖ΔI〗_L )/2=1.2〖I 〗_Lmax= 4.212A。

  1. 输入、输出滤波电容的选择的计算式子如下: 输入滤波陶瓷电容公式:C_i≥V_i/(8×f^2×L×〖∆V〗_i )×(1-V_i/(V_o+V_d )) 输入滤波电解电容公式:ESR≤(〖∆V〗_i×f×L)/V_i ×(V_o+V_d)/(V_o+V_d-V_i ) 输出滤波电容公式:C_o≥I_o/(f×〖∆V〗_o )×(1-V_i/(V_o+V_d )) 输出滤波电解电容公式:ESR≤〖∆V〗_o/((V_o+V_d)/V_i ×I_o+V_i/(2×f×L)×(1-V_i/(V_o+V_d )) ) 由上面式子可以选择出较为合适的电容量的输入输出电容,而工作电压按实际工作电压的1.5倍选择即可。
  2. 电路图中的稳压二极管D10(12V稳压)、N-MOSFET场效应晶体管U11和电阻R27、R28、R26组成自动使能切断电路,当由反激式开关电源输入时,就会切断FP6296的升压工作。这里电阻R26只是起限流保护作用。
  3. 其它的电子元件选择在其DataSheet手册有提供参考。

3.4.2 Buck降压电路

  JW5060T这款Buck降压IC具有宽输入电压(4V-24V)、最大输出电流高达3A和高达95%的效率、同步转换工作。

图 3-7 Buck降压电路
  图3-7 Buck降压电路是其DataSheet设计的,能稳定输出在5V,最大输出电流可达2A的Buck电路,设计如下:
  1. 根据电路分析和使用伏秒法则可得出D=V_out/V_in 。
图 3-7-1 Buck拓扑电路
  1. 因为U=L×d_i/d_t ,其中U为输入电压减去输出电压V_in-V_out 、L为电感、d_i为电感的纹波电流、d_t导通时间,根据这个式子为中心,计算出所需要的电感值L,步骤如下: ① 因为输入的电压为6.8V-12V范围内,所以D=5/12 和 D=5/6.8。 ② 导通时间d_t=T_on=DT=5/(12×800KHz) 和 5/(6.8×800KHz)。 ③ 电感上的纹波电流d_i=〖ΔI〗_L=0.4×I_Lmax=0.4×( I_outmax)/(1-D)大约为1.67A和10A。 ④ 那么根据L=(V_in-V_out)×dt/di=(V_in-V_out)×T_on/〖ΔI〗_L 得出电感值L约为0.17uH-2.2uH这个范围。因此选择了4.7uH的电感,留出裕量。 根据该IC的Datasheet上也给出了电感的计算方法,如下: L=V_out/(f_s×〖∆I〗_L )×(1-V_out/V_in ) 不难发现,该式子的计算和上述的计算是一样的,上式展开如下: L =1/〖ΔI〗_L ×(V_out-(V_out^2)/V_in )×1/f_s = 1/〖ΔI〗_L ×(V_in-V_out )×V_out/V_in ×1/f_s = ( 1)/d_t ×U× D×T 以上说明前面的计算是没有问题的。 ⑤ 峰值电流为:I_LPK=1.2I_Lmax≈28.8A。

  2. 输入、输出滤波电容的选择的计算式子如下: 输入滤波陶瓷电容公式:C_i≥I_o/(〖∆V〗_i×f)×V_o/V_i ×(1-V_o/V_i ) 输入滤波电解电容公式:ESR≤〖∆V〗_i/(I_o+V_o/(2×f×L)×(1-V_o/V_i ) ) 输出滤波陶瓷电容公式:C_o≤V_o/(8×f^2×〖∆V〗_o×L)×(1-V_o/V_i ) 输入滤波电解电容公式:ESR≤(〖∆V〗_o×f×L×V_i)/(V_o×(V_i-V_o))

  3. 电阻R44、R45是用来设置Buck降压电路的输出电压的,其决定式为: V_FB=V_out×R_2/(R_2+R_3 )

  4. 其它的电子元件选择在其DataSheet手册有提供参考。

3.4.3 LDO线性稳压电路

  LDO线性稳压电路是一种低压差的降压电路,通过内部的开关管自身的损耗为代价而达到斩波降压的效果。这里要设计一个能将5V降压为3.3V的低压差的降压电路,经过多次筛选,选择比较普遍使用的ASM1117-3.3的LDO线性稳压4Pin的IC,它是一个具有静态电流低、输出电流可高达1A、输出电压稳定和低功耗的正电稳压器,它非常符合单独用来对STM32F103C8T6这款芯片供电。

图 3-8 LDO线性稳压电路
  图3-8LDO线性稳压电路是一款非常精简和简单的LDO电路,它无调节电阻来对输入电压进行调节,它是已经固定输出电压为3.3V的。在输入输出电容的选取方面不需要过多的考虑,一般5V及以下的选取10到22uF电容即可,具体还需要根据实际情况进行更替;上图的FU1是保险丝,可以在CPU的过载和短路的情况迅速切断,起保护作用;电阻R46和LED灯D15目的是为了提示CPU已经通上电了;肖特二极管D24目的是和后备电源“纽扣电池隔离开”。

3.5 电源切换电路

3.5.1自动优先级切换输入电源电路

  自动优先级切换输入电源电路是电路板自动选择最小消耗自身后备电源(锂电池)的电源进行供电工作,这样符合最初的设计要求:降低能耗、加大续航能量、可以稳定可靠的持续性工作。

图 3-9 自动优先级切换电源电路
  图3-9自动优先级切换输入电源电路是由P沟道MOS晶体场效应管和肖特二极管组成的,当栅极有输入电源时,P-MOSFET被切断(源极的电压小于栅极的电压:VGS>0.7V),此时源极输出的电源为栅极电源通过肖特二极管输出的;一旦栅极无输入电源时,P-MOSFET处于导通状态,那么源极输出的电源为漏极输入的电源。 ### 3.5.2 锂电池选择输入电源充电电路   由于直流锂电池充电电路和太阳能锂电池充电电路都需要对电池做检测与反馈的电信号处理,所以这里不能使用P沟道MOS晶体场效应管来做切换电路,需要使用继电器这种接触式的,因为继电器工作需要消耗一部分的能量,所以为了使室外进行太阳能锂电池充电的设备尽可能充分利用太阳能转换的电能,选择继电器常闭接口用在太阳能充电上,这样就可以消除继电器在室外对设备带来不必要的能源消耗了,而室内可以使用市电对设备供电和充电,所以继电器的电能消耗就可以忽略不计了。电路图如下图3-10所示,其中二极管D20为续流保护作用。

图 3-10 锂电池选择输入电源充电电路

3.6 单片机控制电路

3.6.1 STM32F103C8T6最小系统电路

  使用型号STM32F103C8T6增强型系列的MCU设计单片机最小系统。而单片机最小系统指使用最少的元器件组成的最小电路系统,并且它可以正常的工作的系统,它是最基本的功能单元[4]。 STM32单片机最小系统设计步骤如下:

  1. 为了让最小系统掉电后能继续保持其内部的RTC时钟正常工作,增加了纽扣电池电路作为掉电后继续为STM32内部RTC时钟续航,保证其正常运行。
图 3-11-1 后备纽扣电池电路
  上图肖特二极管SS34是为了与线性稳压电路的3.3V输入电源隔离开,防止纽扣电池为整个STM32最小系统供电。
  1. 本最小系统是使用LDO线性稳压电源输入的3.3V的单电源供电的。如下图3-11-2电路图所示,本电路是参考官方STM32F103X8数据手册设计的。
图 3-11-2 单电源输入STM32F103C8T6处理器电路
  1. 单片机是通过复杂的时序电路完成不同的指令功能的,而时钟电路就是单片机的“脉搏”,它是控制着单片机的工作节拍的。根据官方数据手册,设计了两个时钟电路,分别是外部低速时钟电路和外部高速时钟电路。
图 3-11-3 外部时钟电路
  1. 复位是单片机最小系统必不可少的功能,它可以在单片机程序运行卡死或程序运行错乱的时候将系统复位,使其程序重新开始运行。而复位可以分为硬件复位和软件复位,硬件复位电路如下:
图 3-11-4 复位电路
  当复位引脚RESET为低电平时就会触发系统复位,而上图电路中的电容C64的作用是在系统刚刚上电时不稳定的输入电源会使电容导通,使得复位引脚RESET为低电平触发系统复位,直至电源稳定后才会撤销系统复位,得以使单片机能够正常稳定工作。
  1. BOOT电路是STM32手动选择三种自举模式的电路。
图 3-11-5 BOOT电路
  1. SWD是串行总线调试接口,它具有将PC宿主机上编译好的程序下载到单片机和两种终端设备之间进行运行调试操作,SWD电路如下:

图 3-11-6 SWD电路 上图电路中的电容C73是为了滤除接入外部仿真器时涟起的纹波,保证仿真器工作稳定可靠。

3.6.2 Type C接口USB转串口电路

  Type C接口现在终端移动设备上比较普遍使用,在电路设计连接上不会太过复杂,而将Type C接口的USB信号转换为串口信号使用的现在嵌入式开发板上最为常见的CH340系类的芯片,它是一个USB总线的转接芯片,能实现USB转串口或者USB转打印口,并且它具有全速USB设备接口,兼容USB V2.0。经过筛选,选择使用CH340C这款IC,这款芯片已经内置了时钟信号发生器,无需要外部添加晶振及震荡电容了,因此可以节省一些成本材料。

图 3-12 Type C接口USB转串口电路
  图3-12 Type C接口USB转串口电路在市面上很多设备都是比较普遍的,该电路的设计是从官方提供的手册及网上的资料参考设计的,设计如下:
  1. Type C连接如上图所示D+、D-分别是USB2.0差分信号的正和负,而VUSB是USB2.0的总线电源,也就是USB的输入电源。
  2. CH340C的是实现串口数据传输的关键,除了参考CH340官方的Datasheet提供的参考电路实现了串口数据传输外,经过查阅相关的嵌入式硬件开发书籍中参考一些USB转串口电路实现MCU的ISP连接,从而达到直接通过USB下载程序。实现USB下载程序电路设计步骤: ① 首先要知道STM32在启动时会通过自举引脚(BOOT)选择三种自举模式,这三种模式分别是:从程序闪存存储器自举、从系统存储器自举(ISP模式)、从内部SRAM自举[5]。当BOOT0接地时,STM32就会从程序闪存存储器自举,从而进入用户程序;当BOOT0接3.3V和BOOT1接地时,STM32就会从系统存储器自举,从而进入厂家预设定的Bootloader程序里实行更新程序。 ② STM32的ISP连接过程:首先RTS输出低电平,此时电路中S8550就会导通,BOOT0被拉为高电平,配置为ISP模式;其次DTR输出高电平,此时电路中S8050也导通了,STM32的RESET复位引脚被拉为低电平,使得STM32重新启动进入ISP模式;当系统进入ISP模式后,RTS输出高电平和DTR输出电平,使其BOOT0和RESET恢复初始状态;最后程序下载完毕,自动运行用户程序。 ③ 为了观察串口的数据传输和看起来比较好看,串口TX和RX传输线分别接了两个上拉了4.7K电阻的两种颜色的LED灯。

3.6.3 外部拓展电源接口电路

   为了保证设备能对拓展模块供电,这里增加了3类外拓展电源接口,分别为12V接口、5V接口和3.3V接口。电路图如下:

图 3-13 外拓展电源接口电路
外拓展电源电路有一些不足的地方,左边5V和3.3V接口电路除了需要需要TVS瞬态二极管解决热拔插带来的浪涌危害外,需要增加一组滤波电容进行滤波,保证后级电路正常稳定工作。而12V接口也需要增加增加TVS瞬态二极管和电容组。 ### 3.6.4 BT04蓝牙模块   蓝牙模块实现了设备短距离的无线通信,让消防栓检测系统与手机端的蓝牙APP上位机通信,方便工程师在室外进行无连接模式下查看运行调试信息。而蓝牙模块是串口形式与STM32对应的串口2引脚连接通信的。

图 3-14 蓝牙模块
  蓝牙模块电路中的按键B2、B3分别是用于复位和选择模式的;而LED灯D25、D35分别为模式指示灯和通信指示灯。

此原理图是有引脚画错的地方,大家仔细观察,可对照已经修改的工程图

3.6.5 ADC模数转换电路

  ADC模数转换电路就是将具有连续值的电压模拟信号转换成计算机的二进制编码数字信号。由于STM32处理器内置了ADC转化器,它的模拟电压转换范围0-3.3V,因此当外部的模拟电压超过STM32规定的模拟电压转换范围的话,就需要使用外部分压电阻电路将外部输入的模拟电压控制在规定的模拟电压转换范围内,一般分压电路需要使用阻值在千欧姆以上和精度百分之一的电阻,保证外部输入的模拟电压可以精确地等比例转换。在外部输入模拟电压接口增加一个滤波电容可以有效过滤掉一些干扰电压信号。这里设计了水压传感器检测和电池电压检测的ADC模数转换电路,电路设计如下:

图 3-15 ADC模数转换电路
### 3.6.6 继电器控制电路   继电器是一个使用通电的线圈控制开关的分合的控制器,它可实现弱的直流电信号控制强的直流电,甚至是强交流电。这里使用继电器控制电路实现电磁水泵阀和电磁锁的开关。继电器控制电路设计如下:

图 3-16 继电器控制电路
  因为STM32不具备驱动继电器的能力,这里通过IO口控制三极管的基极进而控制继电器。而并联的二极管是防止继电器中的线圈在断电后产生反向高压对三极管造成不可逆的破坏,它可以起到续流作用,让电压通过自身慢慢释放完。

3.7 消防栓监测系统外壳

  本消防栓监测系统外壳是使用solidworks软件绘制的3D模型[6],然后通过3D打印机做出的,3D模型和外壳实物如下图3-17和3-18所示。

图 3-17 SolidWorks 3D模型

图 3-18 消防栓监测系统外壳

4 消防栓监测系统软件设计

4.1 下位机软件系统设计

4.1.1 整体软件系统设计通用思路

  一个系统设备中的软件系统是让一堆像无头苍蝇的硬件变得彼此之间有条有序的工作,最终完成设定的工作目标。而设计软件系统的编写是非常需要考虑每一个功能程序的之间的逻辑关系的,因此在编写软件系统程序前需要做大量的分析和整合工作,将每一个功能方面和每一个程序执行步骤都需要做到条理清晰,将这些考虑到的方方面面起草成一个软件系统的初步架构图。因为良好的程序编写习惯要先绘制程序流程图后进行程序编程,而程序流程图也就是参考软件体统的初步架构图而绘制出来的。在参考程序流程图编写程序前需要先将工程文件进行BSP工程管理,将编译生成的文件、调用的库文件、自己编写的每一种功能模块驱动程序文件进行文件夹归类,这样使得整个工程美观、各功能模块驱动程序清晰、易于阅读。BSP工程管理完后再进行库文件引进和有序进行每一种功能模块驱动程序编写、调试,尽可能将每一种功能模块的驱动程序错误率降到最低,促使在最后主程序将各个功能模块的驱动程序进行逻辑整合阶段的程序运行上BUG出现次数减少。

4.1.2 主程序程序流程图设计

  主程序是软件系统的“树干”,它是将“树根”(功能模块的驱动程序)程序到“树冠”(图形画界面等)中,而程序流程图则是将主程序的运行过程直观体现出来,能让人快速清除各个子程序与主程序之间的逻辑关系。主程序流程图如下图4-1所示。   消防栓监测系统的主程序运行:当消防栓监测系统上电后,主程序第一步初始化STM32内部的底层驱动。第二步显示Logo。第三步初始化各个模块;第四步获取第一次的陀螺仪角度数据。第四步进入主循环体,在主循环内会根据循环体循环的次数轮流显示学号姓名和设备ID号,而时间是每一次循环体循环都会刷新的;然后获取环境温度、芯片温度、水压、陀螺仪角度、电池电压的数值,如果环境温度高于预设值就会触发降温设备的电磁阀门打开降温,如果当前陀螺仪角度与上一次的陀螺仪角度相差大于十度就会触发报警;最后将采集的数据进行上传到云端并开始新的循环。

图 4-1 主程序流程图

4.1.3 EEPROM获取设备ID号实现

  EEPROM这类可读写存储器在很多设备上都会有应用。实现步骤:第一步使能相应的时钟和引脚;第二步将STM32的IIC驱动初始化;第三步使用IIC驱动程序初始化型号为AT24C20的EEPROM存储器;第四步编写型号为AT24C20的EEPROM存储器的读写操作的驱动程序;第五步读取EEPROM内部的设备ID号,最后显示到OLED屏上。

图 4-2 获取设备ID号子程序流程图
### 4.1.4 IMU901陀螺仪获取角度实现   IMU901陀螺仪是一种九轴的角度测量传感器[6],目的是通过检测角度来判断消防栓是否发生碰撞损坏和是否发生螺栓被拧开盗水,而其输入输出接口是采用串口形式的。实现步骤:第一步使能相应的时钟和引脚;第二步将STM32的USART2的驱动初始化;第三步编写IMU901解析处理获取角度驱动程序;第四步调用IMU901解析处理获取角度程序;第五步判断当前角度值和上一次角度值之差是否超出预设值;第六步保存当前角度值并重新获取新的IMU901角度。

图 4-3 获取IMU901陀螺仪角度子程序流程图
### 4.1.5 DS18B20温度传感器获取环境温度实现   DS18B20温度传感器是一种数字型的传感器。实现步骤:第一步使能相应的时钟和引脚;第二步初始化DS18B20温度传感器;第三步编写DS18B20数据转换获取温度驱动程序;第四步调用DS18B20数据转换获取温度程序;第五步判断温度是否超过预设值并重新用DS18B20数据转换获取温度。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a503387ef53e4896bafdd97043531418.png)
图 4-4 获取DS18B20温度传感器温度子程序流程图

4.1.6 BC20物联网模块无线通信与GPS定位

  BC20物联网模块是消防栓监测系统非常重要的组成部分[7]。实现步骤:第一步使能相应的时钟和引脚;第二步编写检测BC20物联网模块启动和通信是否正常的程序;第三步调用第二步编写的程序进行检测BC20物联网模块是否正常;第四步编写GPS激活连接的程序;第五步调用第四步编写的程序将GPS激活连接;第六步编写连接阿里云物联网平台的程序;第七步调用第六步编写的程序进行连接阿里云物联网平台;第八步编写获取GPS定位的程序;第九步调用第八步编写的程序进行获取GPS定位信息;第十步将采集的数据等信息上传至阿里云物联网平台上。

图 4-5 BC20无线通信与GPS定位子程序流程图

4.2 上位机软件系统设计

  该安卓蓝牙APP是使用JAVA及少部分的HTML语言在Android Studios开发软件平台所设计的。它主要是用于与下位机进行无线短距离通讯,方便调试和控制等功能[8]。   因为在程序编写前一般都先画出的程序流程图,如4-6所示。   安卓蓝牙APP的设计步骤:第一步添加所有相关的权限的程序;第二步编写确定手机是否支持蓝牙功能的程序;第三步编写打开与关闭蓝牙的程序,在打开蓝牙前先调用第二步编写的手机是否支持蓝牙功能的程序,确保不做无用功;第四步编写搜寻附近蓝牙设备程序;第五步进行调用第四步编写的搜寻附近蓝牙设备的程序,然后进行调试打印和日志查看,确保能正常搜寻出附件设备的名称和地址信息;第六步编写创建广播与对话框列表,将搜寻到的附近蓝牙设备的名称与地址信息一一地存放到对话框列表中呈现的程序;第七步调用第六步编写的程序进行观察搜寻到的附近蓝牙设备信息正常呈现到对话框列表中;第八步编写对话框列表每一行可点击触发的按键功能和将对话框列表中的每一行按键与其对应的蓝牙设备信息建立联系关系的程序;第九步调用第八步编写的程序进行观察两个设备之间是否真的连接;第十步编写将编辑框输入等数据进行发送的程序;第十一步调用第十步编写的程序查看接收方应用程序是否接收到发送的数据;第十二步编写实时接收数据的程序;第十三步运行整个应用程序,观察每个功能是否正常运行;第十四步编写发送相关控制命令的按钮;第十五步进行整机测试,确保上位机与下位机之间正常通讯。

图 4-6 蓝牙APP程序流程

5 消防栓监测系统测试

5.1 SWD接口烧录程序测试

  如下图5-1所示,通过杜邦线将ST-Link仿真器连接到SWD接口,然后使用IDE软件Keil进行程序编译,并进行烧录程序。从图中可以清晰看到,keil软件将编译出来的.hex文件无错误、无警告地烧录进了单片机中。

图 5-1 IDE软件Keil烧录程序

5.2 USB接口烧录程序测试

  如下图5-2-1所示,连接Type C类型的USB接口后,通过上位机来触发STM32进入ISP自举模式,进而进行烧录程序,在图中可以清晰知道,该烧录方式也是将编译出来的.hex文件进行烧录的,此时的进度条和日志可反映出程序烧录工作正在进行中。下图5-2-2所示,此时的进度条和日志反映出程序烧录工作已经完成

图 5-2-1 ISP模式烧录程序进行中

图 5-2-2 ISP模式烧录程序完成

5.3 消防栓监测系统上电启动测试

  当消防栓监测系统上电,设备进入各种内置外设及模块的初始化阶段,如下图5-3-1所示,该图为设备上电启动后初始化工作正常情况下打印输出的日志信息。而下图5-3-2为设备上电启动后初始化工作正常情况下各模块设备正常工作的状态,而OLED显示正常的时间也可说明设备的初始化工作是正常的。

图 5-3-1 设备启动输出日志

图 5-3-2 设备正常启动现象

5.4 云智能APP无线远程观控设备测试

  使用阿里云生活物联网平台提供的云智能APP远程观控消防栓监测系统设备,如下图5-5-1所示,图右边的APP已经显示出接收到设备上传的数据信息,当APP按下按键,下位机就会触发开锁等动作,从图右边的设备现象可知其远程控制功能正常,而其功能是实现无线开锁(一般使用近距离的无线蓝牙开锁)和在北方地区寒冷季节可以人为触发电磁阀释放防冻液或在高温地区洒水物理降温,保护消防栓设备。至于LED灯只是用来测试使用的,还未进行实际使用。图5-5-2为接收到上位机数据打印输出的日志及芯片温度记录曲线图(确保设备芯片运行正常)。

图 5-5-1 云智能APP无线远程控制设备

图 5-5-2 云智能APP无线远程控制输出日志及曲线图

5.5 蓝牙APP无线近程观控设备测试

  使用蓝牙APP实现近距离无线收发数据,如下图5-5所示,使用左图蓝牙APP发送打开电磁锁及电磁阀命令,并接收上位机返回的数据;右图是的下位机则打开了电磁锁和电磁阀,上边的中间两个指示灯也随之亮起,其目的除了是实现近距离的无线开锁和查看调试信息外,也是为以后无线升级等拓展功能做准备的。

图 5-5 安卓蓝牙APP无线近程观控

5.6 云智能APP获取GPS定位测试

  如下图5-6所示,云智能APP获取到智能消防栓上传的定位信息,其定位信息为经度和维度左边。在下图中也可以看到获取的坐标值是实际坐标值的100倍,这是因为云智能APP呈现的数据最多精确到小数点后两位,因此在下位机上传的定位坐标数据是进行扩大100倍后才上传的。   从以下图测试表中可知,云智能获取到的下位机上传的GPS定位的经纬度数据与手机获取的GPS定位的经纬度数据只偏差在小数点后的第五位。实际测试中,误差在10米范围内,精度上还算十分可观的。

图 5-6 查看获取当前GPS定位坐标信息
获取下位机GPS定位的经纬度信息测试表

5.7 三种输入电源测试

  通过反激式开关电源、Type C类型的USB接口和太阳能板三种种输入电源对消防栓监测系统进行供电。如图5-7-1所示,当接入反激式开关电源时,反激式开关电源正常工作指示灯会打开,此时电路会优先选择使用该输入电源作为供电源,现象是双节锂电池电路充电指示灯打开,表示锂电池正在充电,并且设备正常运行中。如图5-7-2所示,当断开反激式开关输入电源,此时电路则会选择使用USB输入电源作为供电源。如图5-7-2所示,无USB输入电源时,太阳能板输入电源会作为最低优先级的输入电源,此时太阳能充电电路的指示灯会打开。

图 5-7-1 反激式开关电源供电

图 5-7-2 USB电源供电

图 5-7-2 太阳能供电
锂电池充1%电量需要的时间测试表

  由上面测试表可知,使用反激式开关电源作为输入电源,在剩余电量为56%时,充1%的电量需要68秒;在剩余电量为30%时,充1%的电量需要51秒;在剩余电量为80%时,充1%的电量需要80秒。以上原因是因为电源管理

标签: 钳位二极管可以用电阻代替吗交流电能通过二极管的正极吗m系列倾角传感器2a200v超快恢复二极管820p安规电容rx20陶瓷大功率电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台