张一宇 曲向林 于学山
(北京创意博物联科技有限公司 北京市 100083)
当今生产生活中,温度采集和应用无处不在,工业领域的温度控制、工作环境中的温度控制、家居环境中的温度控制等等,它们都需要一个值或一定范围的值,基于这些需要,在控制领域出现了很多基于温度采集的集中控制系统、分布式控制系统以及温度分析系统等综合应用。随着软件和通信技术的发展,使用低功耗电子技术进行温度采集成为了下一个应用的重点,比如在节能供热领域,供热管路温度应该调节为多少才能使能源消耗性价比更高?这时就需要采集末端的温度才能准确建立分析模型进行反馈控制。类似的应用很多,它的应用创造了价值。文中围绕一个温度点的采集,从电路、通信、协议、控制以及数据平台等几个方面进行了细致的分析,为了更好的说明系统的基本原理,系统只描述了一个温度点的采集过程,文中的思想也可以扩展到复杂数据采集应用中。
整个系统由硬件和软件组成,硬件包含了CPU 芯片、存储、供电部分、温度采集部分和NBIOT 传输部分。软件包含了芯片的控制逻辑软件和物联网平台的软件,系统基本组成如图1 所示,粗线代表供电回路,细线代表数据线路。下面我们按照温度采集的流程对各部分进行阐述。主芯片CPU 实现了硬件的控制逻辑,首先控制一个MOSFET1,可以打开和关闭温度传感器和存储器的供电电路,当打开MOSFET1 时,温度传感器和存储芯片才能和CPU进行数据的交互工作。其次控制另一个MOSFET2,它负责NBIOT的电源供电,当开关打开时,CPU 可以将采集到的温度数据通过NBIOT 和物联网平台建立连接,将数据传输到平台上。
图1
图2
图3
主芯片及外围电路部分是整个硬件的核心,包括CPU、外部存储器、电池供电和功率管MOSFET 四部分。CPU 采用的是意法半导体推出的STM32L 单片机,STM32L 系列单片机是基于ARM Cortex-M3 的超低功耗微控制器,除了一般32 位CPU 芯片的基本功能外,它具有优秀的节能性能,有六个超低功耗模式,系统设计中采用了1uA 停机模式。在数据采集间歇期保证了系统的最低功耗。外部存储器采用的是串行flash 存储芯片W25Q128,芯片尺寸小,具有很好的灵活性和性价比。通过串行SPI 方式与CPU 连接。供电范围为2.7-3.6V,在激活状态下电流功耗很低,W25Q128 将16M 的容量分为 256 个块(Block),每个块大小为 64K 字节,每个块又分为 16 个扇区(Sector),每个扇区4K 个字节。W25Q128的擦写周期多达10W 次,掉电后可存储20年,满足了数据存储的设计要求。在电路设计中,有两个功率管MOSFET,一个是控制温度传感器和外部存储器的供电,另一个是控制NBIOT 芯片及外围电路的供电。最大程度保证电池的应用时间,电池采用了功率型电池,容量可以根据数据采集的周期和连续工作时间选择,它的额定电压为3.6V,终止电压为2.0V,最大持续放电电流为1A,同时它具有高能量密度和长贮存寿命的特点。
温度采集的方式有很多种,市场上温度传感器的类型也很多,有PT100 热电阻类型、NTC 负温度系数类型、热电偶型、4-20mA信号模块类型以及数字芯片型等,这样在设计一个温度采集系统时要选择满足应用的传感器或芯片,要依据具体的应用对温度的测量范围,采集精度、安装形式、功耗、成本等方面来确定。文中描述的是空气温度的测量,根据具体要求采用了瑞士Sensirion 数字温度传感器芯片SНT35,它和CPU 之间是IIC 数据接口,传感器功耗低,封装较小。供电电压为2.15V-5.5V,在测量温度为20℃-60℃时,精度能够达到绝对值0.1℃,温度偏差为图2 所示。同时具备采集环境湿度的功能,正常工作时,功耗仅为4.8uW。
传输部分采用了NBIOT 芯片SIM7020,NBIOT 构建于蜂窝网络,只消耗200KНz 的带宽,具有超强覆盖、超低功耗、超大连接和超低成本四个特点。系统应用了SIM7020 中TCP 传输模式,将数据上传到指定服务器,发送数据协议中包含了模组的IMEI 号,CPU 发送次数,系统所处位置的信号强度,存储芯片内的5 次历史数据等信息。选用了柔性PCB 天线,相比于棒状天线,柔性PCB的成本较低,和外壳配合较好,发送成功能够得到保障。供电电路使用了MOSFET 器件进行了控制,当数据传输时打开,数据传输结束后按相应的流程关闭,合理利用电池的电能。
数据采集逻辑是编写芯片程序的基础,描述了CPU 工作的流程,由于CPU的供电是直接电池供应,所以CPU始终处于工作状态,除非强制把电池电源开关关闭。CPU 启动后,逻辑程序开始运行,首先对电路中使用的IO 及内部寄存器等资源进行初始化。打开MOSFET1,温度芯片和存储芯片供电稳定后,读取温度数据到存储器,同时RAM 中记录当前采集的温度值,也可以连续读取多个温度值,采集完成后关闭MOSFET1,同时打开MOSFET2,适当延时后,发送相应的AT 指令给SIM7020,当网络状态正常,并且处于激活联网状态后,连接指定的服务器IP 地址,从而采用TCP协议发送数据到平台。SIM7020 每次发送AT 指令集的时间都不超过500 毫秒,联网指令时间为1.5-2 秒,数据发送时间大约1-2 秒钟,发送成功后,CPU 收到发送结束命令。此时先关闭MOSFET2,使CPU 处于待机休眠状态,进入低功耗模式。休眠一定时间后,自动进行上述的工作流程,直到强制关闭电源或供电结束,停止工作。在软件设计上,严格把控各个关键节点的时间,达到最小用电的效果。其次,用户可以通过发送远程指令或者电路板的按键来控制休眠时间达到合理的采集周期,从而根据具体应用达到节电或延长更换电池时间。传输部分的硬件和软件设计都是以低功耗和高效为目的来进行数据传输的。数据采集流程为图3 所示。
物联网平台采用了两台服务器,一台是采集指令和数据存储,另一台用于前端数据分析展示,结合NIO 多线程以及kafka 消费机制灵活接入多种多台采集器,本文没有对物联网平台的功能进行详细描述,简要展示了数据存储和查看界面如图4 所示。系统采用了B/S 架构,操作系统为windows server 2016,数据库采用了MySQL5.7,WEB 部分采用了Spring Boot 架构,使用了НTML 前端技术。通过设计的协议和指令格式,平台和设备进行数据的采集,并存储到数据库,由于数据传输的协议中使用了断电续传技术,即数据协议中包含了5 次历史数据信息,当传输数据出现1-5 次连续中断后,可以通过协议包信息解析,并根据中断的次数恢复历史数据达到续传的目的。平台可以查看和展示数据记录信息,也可以通过微信扫码方式查看各个采集设备对应的实时数据和前5 次的历史数据。物联网平台使用了多线程技术,满足了数据采集设备接入平台的规模化、实时性强的特点。平台也提供了第三方数据传输接口,可以通过НTTP 协议与第三方平台进行定制性传输,保证数据应用的灵活性。
我们将文中的采集设备又称作采集器,它轻小便捷,因此采用多次抽样和小规模、多地点试验。整个测试过程分为一测和二测,一测是在组装前完成的,检测采集器的数据值,对应时间,信号值等。对满足测试要求的进行二测。测试时,首先要完成一测,然后抽取部分成品分别在学校的操场、居民楼、企业厂房、开阔的道路以及信号良好的车间等进行二测。将采集器分别均匀放置在目标地点,依次打开各采集器的开关,连续采集100 次,扫码查看100 次数据接受情况,通过记录分析验证设备的数据准确性和整体稳定性。在采集器上都有设备的二维码,通过微信扫码快速查看测试结果,结果为图5 所示。
基于物联网的温度采集系统能够满足多种应用场合,特别是低功耗模式的应用,大大提高了系统的可复制性和系统安装的灵活性。整个系统采用了目前主流的技术方式,不过,在系统的研究中也存在着许多要考虑的问题,首先,有些场合需要其他形式的温度传感器,不同信号类型的传感器,它的采集电路不同,如何结合低功耗要求进行设计,需要针对性考虑。另外,NBIOT 传输方式是否可以进一步优化,结合采集频率和存储数据两个方面进行更好的提高采集器的更换时间周期。最后,系统中采集器和平台是单向传输的,如何解决采集器与平台建立数据传输时进行双向传输,可以让平台控制采集器的运行参数,都需要进行逐步的完善和优化。
图4
图5