罗天舒 李源潮
(1.常州工学院计算机信息工程学院 江苏省常州市 213001)
(2.苏州科技大学电子与信息工程学院 江苏省苏州市 215009)
在生产和生活中,温度对人们的影响很大,也是工业生产和社会生活中非常重要的一个基本工艺参数。温度监测是常见的需求。NB-IoT(Narrow Band Internet of Things)即窄带物联网,在万物互联网络的浪潮中,NB-IoT是IoT领域一个新兴的技术,具备低功耗、广覆盖、低成本、大容量等优势,只需要消耗大约180KHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。借助其多种优势可以广泛应用于多种垂直行业,在家居安防、卫生医疗、工农业生产、交通管理、环境监测、智能监控等领域物联网均可得到了广泛应用。
基于NB-IoT的温度监测系统由终端设备和物联网云平台组成,终端设备分为主控制器模块、温度采集模块和NBIoT通信模块三个部分,终端设备将温度信息处理,使用NB-IoT模块将数据通过LWM2M协议传输到物联网云平台,实现数据的实时传输。搭配本系统使用的物联网云平台为中国电信CTWing云平台,借助中国电信CTWing云平台的能力实现对温度信息采集的控制,实现终端设备与平台之间的数据传输,并通过平台创建手机应用程序,真正实现实时的温度监测功能。系统整体结构如图1所示。
图1:系统整体结构
本系统使用赛元SC95F8617单片机作为主控芯片,具有超高速1T8051 CPU内核,运行频率高达32MHz,集成有超级丰富的硬件资源,具有非常优异的抗干扰性能、高可靠性、大资源、多接口、低功耗、高效率等特点,非常适合应用于智能家电、工业控制、物联网(IoT) 、医疗、可穿戴设备、消费品等应用领域。
本系统使用NTC热敏电阻作为测温组件,NTC热敏电阻器是一种以过渡金属氧化物为主要原材料,采用电子陶瓷工艺制成的热敏陶瓷组件。其电阻值随温度的升高而降低,根据这个特性可用来作为测温组件。将NTC热敏电阻串联在电路中,使用ADC采集其两端电压值,并根据其转化关系表得到最终温度值。因其体积小,不带引线,响应速度快,装入电子设备中所占空间小。本系统使用NTC热敏电阻测温范围-15~84℃,温度采集电路如图2。
图2:温度采集电路
本系统选用的NB-IoT通信模块是上海移远公司的基于联发科MT2625芯片平台的BC26,它可同时支持全球频段,支持2.1V~3.63V的低供电电压,BC26模块使用LCC贴片封装,并具超小尺寸,其小尺寸可以很好的封装或安装连接到其他终端设备上。BC26有丰富可靠的外部接口,可以与其他设备使用串口连接,还有支持多种协议TCP/MQTT/LwM2M等,BC26具有广连接性,支持多家物联网平台的接入,支持中国移动、中国电信、华为、阿里等的物联网平台,在物联网应用中很受欢迎。
系统主程序实现对软件复位,完成系统和各模块的初始化,协调各模块之间的工作,通过采集程序设定好温度传感器采集数据的周期和频率,采集到的数据通过NB-IoT模块上传到云平台。最后根据其设定的基础温度对比当前温度,判断当前温度是否超过设定温度,如果超过则进行声光警示。程序流程如图3所示。
图3:主程序流程图
NTC热敏电阻与主控芯片ADC引脚相接,在使用ADC进行采样时,当NTC热敏电阻的阻值随温度改变时,ADC所采集的数据亦随之改变,由热敏电阻的温度特性可通过当前ADC采集的数值求得当前的温度值。首先需要将ADC进行初始化,接着多次进行ADC采样,然后进行A/D转化去掉最大最小值取其平均数,最后读取最终结果。
ADC转化完成需要等待中断标志位为1,手动清除标志位,先高位后低位的从ADCVH、ADCVL获得12位数据,一次转换完成。重复10次,去掉最大值和最小值取平均值。
SC95F8617有12位高精度的ADC,12位无符号数取值范围0~4095,而ADC引脚采集NTC与电阻R8之间电压,在程序中定义ADCValueToTemp数组,通过该数组将ADC值转化为温度值。ADCValueToTemp数组用表1表示。
表1:ADCValueToTemp表(-15~84℃)
BC26使用LWM2M协议接入电信物联网平台。LWM2M协议栈结构如图4所示,是OMA定义的一种物联网协议,主要用于资源有限的窄带物联网终端。LwM2M将设备上的服务抽象为对象和资源,并在XML文件中定义各种对象的属性和功能。CoAP是IETF定义的Constrained Application Protocol,用来做LwM2M的传输层,下层可以是UDP或者SMS,UDP是必须支持的,SMS可选。DTLS用来保证客户端和服务器间的安全性。
图4:LwM2M协议栈
终端设备要与电信云物联网平台进行数据交互,首先要完成NB-IoT模块的初始化,并插入AT指令封装,通过调用AT指令,检查BC26的状态(卡号、激活网络、获取网络状态等)。接着对BC26进行平台注册,让终端设备在平台注册才可以进行数据交互。平台注册同样是插入AT指令封装,通过调用AT指令,让BC26在电信云物联网平台注册。主要获取BC26的IMEI号,填入IMEI号,因为LWM2M协议要求填入IMEI信息,开启连接,设置上下数据格式。在程序工作中BC26要在每段时间内将温度信息上传,发送到云平台。BC26在接收指令并执行相关操作后,会通过串口返回反馈字符,方便查看BC26执行指令情况。主要使用的AT指令如表2所示。
表2:AT指令
中国电信物联网开放平台是中国电信倾力打造的,聚集了智能终端管理、应用开发和运行服务、在线应用模板等服务提供。电信物联网开放平台降低了终端设备接入和应用开发的门栏,提供了终端设备以及物联网应用的管理,并且提供许多解决方案,为终端开发商、个人开发商等提供服务和技术支持。用户在注册并成功登录平台,进入控制台创建产品完成设备的接入,以及后续的应用开发。基于中国电信物联网开放平台的开发流程如图5所示。
图5:平台开发流程
硬件设备参数配置完成,并且将设备入网,登录电信物联网平台查看设备状态,查看设备是否在线,在电信物联网平台还可以查看设备的ID、设备状态、设备认证信息等。
终端设备成功入网,BC26模块初始化成功接收AT指令,终端设备会按照事先设定好的指令工作,主控芯片会将ADC采集的温度信息通过串口发送给NB通信模块,然后将数据上传到电信物联网平台。用户登录平台进入数据查看页面,可以查看数据详情。平台数据查看页面会显示实时上报的温度数据如图6所示。
图6:温度数据
在终端设备一步一步测试完成之后,将进行设备与手机应用的联合调试,手机应用部署在AEP平台中,可以方便调用平台的能力。将设备重新连接,并重新检查一下线路是否由松动,检查完毕之后,打开手机应用同时打开平台提供的虚拟设备测试服务,对照试验,检查终端和虚拟设备端上传数据和接收指令是否不一致。调试结果如图7所示。
图7:联合调试
NB-IoT技术是物联网技术的一个重要分支,近几年物联网行业主要研究方向和重点就是在这,凭借着其低功耗、低成本、广覆盖、多连接等优点在各个领域脱颖而出。本系统将NB-IoT技术应用于温度监测,使其具有实时监测的能力,得益于与物联网平台连接,借助平台能力开发手机应用程序,方便人们使用。本系统设计结构简单,设计成本低廉,系统运行温度可靠,后续可以通过软硬件结合向其添加更多功能,实现更多的环境监测。