CC3200是TI无线连接SimpleLink Wi-Fi和物联网(IoT)推出的一款业界第一个具有内置Wi-Fi的芯片方案,它主要是针对物联网应用,其内部集成高性能ARM Cortex-M4的MCU。客户能够使用单个集成电路开发整个应用,借助片上Wi-Fi、互联网和强大的安全协议即可实现快速的物联网开发。
OneNET是由移动公司所开发的专业化物联网开放平台。平台着眼于适配各种网络环境和协议类型,支持各类传感器和智能硬件的快速接入,提供丰富的API支持各类行业应用和智能硬件的开发,能够有效降低物联网应用开发和部署成本,满足物联网领域设备连接、协议适配、数据存储、数据安全、大数据分析等平台级服务需求。OneNET作为平台的平台,旨在为各个业务平台提供接入、传输、存储和展现等基础设施,降低开发成本。
物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。其英文名称是:“Internet of things(IoT)”。顾名思义,物联网就是物物相连的互联网,这包含两层含义:其一是物联网的核心和基础仍然是互联网;其二是用户端概念延伸和扩展到了任何物体与物体之间,进行信息交换和通信。物联网是各种感知技术的广泛应用,物联网不仅仅提供传感器的连接,其本身也具有智能处理的能力,能够对物体实施智能控制。物联网将传感器和智能处理相结合,利用云计算、模式识别等各种智能技术,扩充其应用领域,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应用创新是物联网发展的核心,以用户体验为核心的创新2.0是物联网发展的灵魂。国际电信联盟 2005 年一份报告曾描绘“物联网”时代的图景:当司机出现操作失误时汽车会自动报警;公文包会提醒主人忘带了什么东西;衣服会“告诉”洗衣机对颜色和水温的要求等等。物联网把新一代 IT 技术充分运用在各行各业之中,具体地说,就是把感应器嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中,然后将“物联网”与现有的互联网整合起来,实现人类社会与物理系统的整合,在这个整合的网络当中,存在能力超级强大的中心计算机群,能够对整合网络内的人员、机器、设备和基础设施实施实时的管理和控制。
本文将介绍如何使用CC3200连接可用wifi 接入OneNET互联网云平台,实现真正的物联网通信。
1、OneNET总体概述
OneNET是中国移动通信集团基于开放、共赢的理念,面向公共服务自主研发的开发云平台,为各种跨平台物联网应用、行业解决方案提供简便的云端接入、海量存储、计算和大数据可视化服务,从而降低客户的研发、运营和运维费用,使客户更加专注于应用,共建以OneNET为中心的物联网生态环境。
OneNET作为平台的平台,为各个业务平台提供接入、传输、存储和展现等基础设施,旨在为应用层的开发降低底层开发成本。平台定位为Paas层服务,即南向连接终端,北向提供能力输出,如下图所示:
图1‑1 OneNET业务架构
南向:
Ø 面向包含智能硬件、车联网、工业控制、环境监测等多种应用场景提供丰富的接入协议;
Ø 具有能主动适配用户通信协议的功能,便于各种行业的客户将终端连接到平台;
Ø 提供百万级并发量的支持,保证用户终端连接的稳定性,数据传输的可靠性;
Ø 提供海量存储功能,解决各个行业用户对数据存储的需求。
北向:
Ø 具备丰富的API接口,满足用户随时根据需求进行数据获取、设备管理、权限管理等功能需求;
Ø 具备事件触发以及主动推送的功能,便于用户快速得获取敏感信息。
1.2 OneNET的采用形式
OneNET采用产品 — 设备 — 数据流的层级资源形式来组织用户数据,一个用户账号可以建立若干个产品,一个产品目录下可以建立若干个设备,一个设备下面可以建立若干条数据流,如下图所示:
图1‑2OneNET平台资源组织结构
1.3 OneNET的设计规划
“设备”是OneNET平台上的最小资源单位;OneNET的设计规划是,物联网世界中存在多少个与平台直连的TCP终端,在平台上就有多少个虚拟设备与之一一对应,即每一个与平台直连的TCP终端(包括DTU、智能锁、智能水电气表、水质检测器、家庭网关、车载终端等等各式各样的形态),平台上都有一个“设备”与之唯一对应,该终端的所有数据,都被存放于该“设备”中;需要对实际终端进行操作时,只需要操作对应的虚拟“设备”即可实现;
图1‑3终端与设备的映射关系
“数据流”用于区分终端采集的不同种类的数据,例如对于空气质量监测仪,采集到的数据包括温度以及湿度,那么平台对应的虚拟设备就可以分别定义“温度”以及“湿度”的“数据流”用于保存这两种数据。“产品”是指一系列具有同一特征的设备的集合;
图1‑4数据流与不同种类数据的映射关系
2、平台操作示例
平台操作流程如下所示:
图2‑1平台操作流程
在终端接入OneNET之前,需在平台网站注册用户,登陆网址:http://open.iot.10086.cn/;注册过程这里不做详细描述。
2.1创建产品
新用户登陆之后,首先要创建自己的产品。
图2‑1 创建产品入口
输入产品信息,大部分信息均为统计信息,请根据实际情况填写。
选择接入协议,参考附录二。图示中选择为EDP。
图2‑2填写产品信息
图2‑3选择接入协议
点击确定,成功创建产品。选择暂不添加设备。
图2‑4完成产品创建
点击产品名称进入产品详情
图2‑5点击产品名称进入产品
在产品概况中,产品ID是一个很重要的参数,用于终端登陆的时候鉴权参数之一使用。
图2‑6产品概况及产品ID
2.2 添加数据流模板
数据流模板定位为,这一个型号产品下面,所有的终端均会上传的数据类型。
例如家用体重秤,每一个终端均会采集并上传体重这一个数据。我们可以创建“体重”这样一个数据流模板,这样,该产品下面的所有设备,均具有“体重”这样的数据流。
添加数据流模板,单位名称以及单位符号为非必要信息,可以不填写,为了终端方便上传数据,建议使用英文为数据流名称。
图2‑7添加数据流模板
数据流模板添加成功之后,在设备详情的数据展示页面中,即可以看到该条数据流了。
图2‑8查看数据流
终端接入即终端与平台唯一“虚拟设备”建立→映射关系(称为进行设备连接)并完成数据收发的过程。
2.3.1接入OneNET的基本流程:
在完成用户注册、创建产品、创建数据流模板的基础上,终端接入OneNET的基本流程为:
1.在平台完成创建设备的操作;
2.终端与OneNET建立TCP连接;
3.终端发送连接鉴权报文,与平台的设备建立一一对应关系;
4.终端按照协议规定的格式,发送上传数据报文;
图2‑9终端接入通用流程
2.3.2创建设备:
如在平台资源结构中所述:
若要将终端连接到平台,平台必须要有一个虚拟“设备”与之一一对应,所以在接入之前,必须要完成设备创建的工作。
创建设备的时候需要输入设备的鉴权信息,终端在与平台“设备”建立一一映射时,需要发送包含鉴权信息的连接报文,鉴权信息有两个方面的功能:
1.作为终端与“设备”建立映射关系的鉴权参数,防止非法的终端进行映射进而产生非法数据;
2.作为“设备”的唯一标识符,在平台的产品内部保持唯一性(即同一个产品目录下,不能同时存在多个具有相同鉴权信息的设备),保证一个终端只能映射到唯一一个“设备”上。
用户在创建设备的时候,建议将鉴权信息设置为自己终端的唯一出厂序列号(sn),终端启动的时候,也利用烧写在终端内部的sn来作为鉴权信息,这样就能建立唯一的且永久的映射关系。
点击“设备管理”—“立即接入设备”。
在弹出的窗口中填写设备名称和鉴权信息,数据私有性不影响功能使用,可以忽略。点击“接入设备”,完成设备创建工作。
图2‑10创建设备
点击设备名称,或者右方操作栏中的查看详情按键,进入设备详情,可以查看到设备的详细信息。
图2‑11查看设备详细信息
3、CC3200接入OneNET云平台
此处介绍的前提是已经用CC3200在Station模式下作为客户端与服务器实现透传,实
现该功能具体方法请查阅TI CC3200相关开发资料。
3.1 CC3200与OneNET建立连接
OneNET云平台 EDP服务器地址域名为:jjfaedp.hedevice.com 端口号为:876
1)首先设定好CC3200本次连接的服务器域名及端口号
2)下载OneNET官方SDK,下载连接http://open.iot.10086.cn/doc/art254.html#68
3)选择本次要登录的OneNET设备ID及APIkey。
4)利用sdk 中EdpKit.h 中PacketConnect2 方法封包连接协议
EdpPacket* send_pkg = PacketConnect2(PID, AUTHINFO);
5)利用SDK发送连接协议包数据
int ret = DoSend (sockfd, send_pkg->_data, send_pkg->_write_pos);
6)使用完后必须删除send_pkg , 否则会造成内存泄漏
DeleteBuffer(&send_pkg);
上述步骤完成后,即可看到OneNET平台上登录的设备显示在线。
图3‑1 完成设备连接
设备的在线状态表示:模拟器终端与我们建立的OneNET设备已经建立了一一映射的对应关系,因为在OneNET平台中 产品ID+鉴权信息的组合是唯一的,终端通过产品ID+鉴权信息的参数鉴权之后,就能唯一确认OneNET上的某一个设备。
3.2 CC3200发送数据到OneNET云平台
利用SDK中提供的接口函数,编写代码将数据上传到平台,例如:上传一组温度为18℃,湿度为80%RH的数据点:
cJSON *json_data = cJSON_CreateObject();
cJSON_AddNumberToObject(json_data, "temperature", 18);
cJSON_AddNumberToObject(json_data, "humidity", 80);
EdpPacket* send_pkg=PacketSavedataJson(NULL, json_data, kTypeSimpleJsonWithoutTime, 0);
int ret = DoSend (sockfd, send_pkg->_data, send_pkg->_write_pos);
DeleteBuffer(&send_pkg);
cJSON_Delete(json_data);
上述步骤完成后在OneNET上的设备管理下点击数据展示,进入数据展示页面,点击下拉菜单,查看近期上传的数据点;也可以选择时间区间来查看历史时间。
完成上述所有步骤后,即实现了CC3200到OneNET物联网云平台通过EDP协议通信,实现了真正的物联网,该平台还可以自行搭建独立应用,即可用手机实现远程操控物理设备,不需要任何手机APP编写过程,详情请参考OneNET接入手册。
4、成品解决方案
太阳集团tcy8722E103-W02 WIFI模块出厂带有OneNET云平台透传功能,只需要进行简单的AT指令配置,在OneNET云平台上创建几个虚拟设备即可实现跨越全球的物联网通信。
详情链接:http://www.hanzaichips.com/product/183.html
5、总结
本文介绍了利用TI SimpleLink无线解决方案CC3200接入中移物联OneNET云平台的方法及步骤,包含用户如何在平台创建设备、如何利用OneNET官方SDK,从登陆设备到上传数据。该过程,只需要用户具备基础的嵌入式开发能力即可实现物联网(CC3200 WiFi模块到OneNET云平台)通信,目的在于帮助相关应用开发者快速接入云平台,将更多的时间及精力花费在开发上层应用上。