刘巧利++贺鹏飞++周洋
摘 要:文中构建了基于CC3200和Yeelink平台的无线远程环境监测与控制系统,通过节点上各种不同类型的传感器测量环境中的各项参数,借助CC3200片上WiFi模块和强大的互联网安全协议实现自主组网功能,将采集到的数据通过无线传输方式传送到服务器,实现在Internet中实时监测环境指标数据并进行反馈控制。基于物联网技术的远程环境监测系统可与手机和平板电脑等终端互联互通,方便灵活,可随时加入各种传感器,能够适应不同环境的监测需求。
关键词:CC3200;Yeelink平台;远程监测;反馈控制;传感器
中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2017)10-00-03
0 引 言
随着计算机技术和网络技术的不断发展,环境监测由原始的仪器设备分析向智能化的物联网方向发展,实现了无线控制的远程环境监测。然而传统远程监测设备存在功耗高、体积大、安装不方便等特点,尤其是物联网应用中远程控制设备的不完善,使其应用场合受到了极大限制。为了提高系统工作效率,扩大系统的使用范围,降低生产成本,需要一种功耗低、体积小、便于移动、安装无需布线、使用方便快捷的新型远程监测与控制系统[1]。
本文针对目前环境监测过程中出现的地域限制、网络不稳定等导致测量参数不准确的问题,应用CC3200芯片和Yeelink平台实现数据交互与连接,温度的远程监测及灯光控制,使其不受时间、地域的限制[2]。软硬件设计灵活清晰,具有很强的扩展性,利用这些成果对本设计做适当修改就能够实现各种有意义的应用系统。
1 系统硬件设计
1.1 系统设计原理
本項目主要以CC3200芯片的内置WiFi为依托,借助互联网HTTP协议来实现联网功能。解决了传感器与主控芯片的数据传输、系统联网方式、传感器节点与物联网平台的数据传输、终端用户数据的获取等问题,实现了远程监测与控制,只要手机或电脑等手持设备连接到因特网,通过服务器就可以实现手机终端对系统终端的监测控制。系统原理如图1所示。
1.2 物联网云平台
本项目采用Yeelink平台。Yeelink是一个开放的通用物联网平台,可为用户提供传感器云服务,并通过实时数据处理提供安全可靠的状态监控。Yeelink独有的高并发接入服务器和云存储方案,能够同时完成海量传感器数据接入和存储任务,确保数据能够安全保存在互联网上。Yeelink平台支持数值型、图像型、GPS型和泛型等多种数据的接入,并提供完备的API文档和代码示例。通过API接口,简单操作就能将传感器接入Yeelink平台,实现传感器数据的远程监控[3]。在Yeelink上,数据不再是孤单的节点,存储在Yeelink的数据可以简单的被API取回,放置到个人博客上,或根据规则自动转发到个人指定的微博上,实现人与数据的全面融合[4]。
图1 系统整体原理图
1.3 CC3200 Wireless MCU
该监测与控制系统的主芯片采用CC3200,它是具有内置WiFi的MCU。CC3200器件是一个完整平台解决方案,包括软件、示例应用、工具、用户和编程指南、参考设计以及TI E2E 支持社区。FT2232芯片支持串口Flash编程,可通过PC的USB口进行UART通信。测试用的板子内置天线设计、2个用户按键和3个LED指示灯及用于供电和调试的Micro USB接口、加速度和温度传感器、电流测量接口等[3]。
作为业界第一个具有内置WiFi连通性的单片微控制器单元(MCU),CC3200有着优良的特性:
(1)拥有业界最低的功耗,适用于电池供电式设备;
(2)高灵活性,CC3200的集成型可编程ARM Cortex?-M4 MCU允许用户添加其特有的代码;
(3)可利用快速连接、云支持和片上WiFi、互联网和安全协议实现针对IoT的简易开发;
(4)能够采用某种手机或平板电脑应用程序或网络浏览器简单且安全地将其设备连接至WiFi[3]。
正是基于这些优良特性,CC3200才能被广泛用于物联网应用,如家庭自动化、家用电器访问控制、安防系统、互联网网关、IP网络传感器节点等,具有广阔的发展前景。
2 系统软件设计
本系统软件设计采用分层次和模块化的设计思想,从简单的基本设备管理到无线网络配置,及BSD Socket服务与更多其他功能。这些功能被归类为不同的组件,每个组件具有不同的功能。其中包括设备(Device),WLAN连接,Socket通信,网络应用(NetApp),网络参数配置(Netcfg),文件系统(FS)等,各组件的功能见表1所列。
以上各个组件独立进行封装,通过驱动调用各种功能。在驱动上分出外设抽象层,使得程序调用更简单,可实现功能的透明化。如果使用嵌入式操作系统,还可以添加OS抽象层,使得系统便于调用底层驱动以及各种功能函数[5]。使用红外非接触式温度传感器,若采用I2C接口与CC3200通信,则需要调用I2C驱动,因此它属于Device模块。WiFi接入WLAN模块,HTTP通信属于Socket和Net App模块,数据的本地存储属于文件系统(FS)模块。
系统执行包括CC3200初始化、网络连接初始化、温度传感器TMP006以及LED初始化、HTTP Client初始化、连接云平台上传温度数据及控制信息的获取,最后执行控制。系统执行流程如图2所示。
2.1 系统初始化设计
为确保系统上电能够正常运行,需要对CC3200进行初始化配置。CC3200初始化的过程比较复杂,初始化会调用系统函数,包括促使系统运行的底层驱动。具体流程为:设置向量标记地址,使能处理器,使能系统中断,配置系统时钟,配置DMA,使能实时时钟RTC,设置SWD模式,重写JTAG线程,使能软复位,关闭休眠[6]。endprint
2.2 网络连接的初始化设计
为确保系统能够正常连接网络,需要对CC3200网络连接进行初始化配置。初始化会调用网络连接相关函数,包括WLAN连接,网络配置等相关驱动[7]。首先,配置系统进入默认状态,选择进入station模式后,获取设备版本信息,设置WLAN连接策略,使能DHCP客户端,设置发射功率,设置电源管理策略。最后,初始化变量获取SSID参数,连接WLAN即可。当无法进入station模式时,我们就要转换模式,使系统重新进入默认状态。
2.3 温度传感器TMP006的配置
温度传感器采用TMP006。TMP006为非接触式温度传感器,具有2.2~5.5 V的输入电压范围,8位可编程地址,本设计采用的TMP006地址默认为0x41。工作时电流消耗仅为240 μA,通过I2C串行总线接口与CC3200通信[8]。I2C串行总线有两根信号线,一根为双向数据线SDA,另一根为时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
为正确读取传感器数据,首先通过I2C接口函数对TMP006的MANUFAC_ID 和DEVICE_ID 进行验证,验证通过才能读取传感器值,经处理、计算后变为温度值。
2.4 HTTP Client初始化
数据要上传到物联网云平台。物联网云平台是一种服务器,规定了数据的传输协议并给出了与数据交互相关的API,协议规定使用HTTP进行连接和数据交互。要使用HTTP,需对HTTP Client进行初始化操作。本设计中主要采用了GET和POST两种方式对数据进行操作。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。因此只需定义GET和 POST方式即可。
2.4.1 定义GET
在HTTP请求中,第一行必须是一个请求行(Request Line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(Header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意其他数据,称之为主体,HTTP请求后,服务器会对请求做出响应。在请求之前,HTTP Client把这些信息封裝起来,最后调用Socket通信接口发送给服务器。
2.4.2 定义 POST
POST同样包含请求和响应,POST方式同时可把数据传输给服务器,本设计提交的数据为JSON格式,利用数组进行存储。POST的方式包含与GET方式相同的头部信息,只是在最后把温度数据信息封装在BODY里[9]。
2.5 连接云平台及数据交互
使用公共物联网云平台。该平台传输的数据为JSON格式,平台为用户提供一些API,使用的API包括创建数据点和查看数据点。
2.5.1 创建数据点
对该URL的一个HTTP POST请求会为指定的传感器创建一个新的数据点,使用此API来为传感器存储历史数据。数据格式为JSON,即一个datapoint是由key和value组成的键值对,key为timestamp, value为数值,请求方式为POST,返回值为HTTP Headers Only,需要在HTTP Header中增加API Key来授权写入操作。
2.5.2 查看数据点
对该URL的请求返回指定key的datapoint,若未指定key,则返回该sensor的最新数据,请求方式为GET,返回值为请求的传感器信息,返回值数据格式为JSON。在访问数据和创建数据之前,需要在物联网云平台注册用户,并创建设备和传感器,这样可以获取对应API Key。
2.6 执行控制结果
在通过GET和POST方式请求信息之后,服务器都会返回对应的信息,当通信成功且被云平台接受之后,服务器会返回具体的操作信息。上传温度数据之后服务器会确认上传成功。请求LED开关状态之后,服务器返回LED的亮灭状态。在本设计中,主要完成对LED状态的控制,因此,板载LED显示的状态即为服务器上的状态。控制端使用Android App修改LED状态信息,即可改变LED的亮灭。控制LED调用CC3200 GPIO修改IO口的输出状态。时序如图3所示。
3 系统功能测试
系统功能测试包括上行测试和下行测试。上行主要为监测,指温度传感器数据从CC3200发往服务器,手机App从服务器下载数据,然后以曲线形式表现出来。下行主要为控制,是指用户通过手机App或电脑访问服务器,控制指示灯的开闭。
3.1 上行测试
首先通过USB对电路板供电,然后打开Android端Yeelink平台并登录,一段时间后查看,数据以曲线形式表示,如图4所示。横坐标表示时间,纵坐标表示温度,曲线上每一个点都是对应时刻室内的温度。此次测试是在夏季,我们选择室内环境,截取了早上7点到下午1点间得到的数据。
3.2 下行测试
通过手机App登录Yeelink平台,规定在按下手机控制按钮5 s之内LED灯做出正确反应则为成功,否则为失败。经过600次测试,控制过程基本准确,统计数据见表2所列。
4 结 语
本文设计开发了基于CC3200的远程环境监测与灯光控制系统,在Yeelink平台上实现了无线远程监控,不论手机或电脑都可实现灵活操作。在系统架构上,实现了参数的远程信息采集,以太网和3G移动通信的接入方式,云计算和Web服务器发布数据及数据的监控与共享。在此控制基础上,还可以实现更多功能,如测空气湿度、摄像头监控等,对工农业的发展有实际意义。
参考文献
[1]陈颖莹.芯片上的网络TI SimpleLink Wi-Fi让联网如此简单[J].电子技术应用,2014,40(7):2.
[2] TI推出新型SimpleLink Wi-Fi CC3100和CC3200平台[EB/OL].[2014-06-17]. http://products.eccn.com/products_2014061714321497.htm.
[3] Texas Instruments Inc. CC3200 SimpleLinkTM Wi-Fi? and Internet-of-Things solution, a single-chip wireless MCU [EB/OL].[2015-02-01].http://www.ti.com/lit/ds/symlink/cc3200.pdf.
[4]申斌,张桂青,汪明,等. 基于物联网的智能家居设计与实现[J].自动化与仪表,2013,28(2):6-10.
[5] MARTIN T. The designers guide to the Cortex-M processor family: a tutorial approach[M]. Amsterdam: Elsevier Ltd,2013:109-131.
[6]郭书军.ARM Cortex-M4 + Wi-Fi MCU 应用指南[M].北京:电子工业出版社,2015.
[7]姚文祥.ARM Cortex-M3与Cortex-M4权威指南:第3版[M].吴常玉,等,译.北京:清华大学出版社,2015.
[8] Texas Instruments Inc. CC3100/CC3200 SimpleLinkTM Wi-Fi? Internet-on-a-chip users guide[EB/OL].[2016-03-01].http://www.ti.com/lit/ug/swru368a/swru368a.pdf.
[9]耿兴隆,张莹,薛玉倩.PHP 基础与案例开发详解[M].北京:清华大学出版社,2015.endprint