NEWTON 项目—— 智能家庭物联网控制完整解决方案

2016-01-261.5万
AI 快速预览详细 收起
Newton 项目是一种智能家庭物联网控制的整体解决方案,旨在解决当前智能家居存在的两大问题:没有统一的解决方案和缺乏实用性。该项目通过使用 CoAP 协议实现了跨平台连接,支持多种主流操作系统和物联网平台,如英特尔® Edison 开发板、Arduino、Mbed、RIOT 和 OpenWRT。Newton 项目能够实时连接运行于所有当前主流操作系统的平台,并且具有低成本、不依赖手持设备和不受环境因素影响的特点。
1. intel独家授权转载【intel开发人员专区】文章。
2. 定期为创客小主po上最全最细最专业的intel项目教程或另类态度。
3. DF创客社区“创客召集令”带你玩转intel,更多惊喜,颠覆你想象。


原文链接

简介
“智能家庭” 这一术语专门用于描述各种广泛的功能,这些功能支持用户通过智能手机、平板电脑和笔记本电脑控制和管理家庭设备,例如通过智能手机应用远程控制恒温器。 不过,许多人认为智能家庭存在两大主要劣势:没有统一的解决方案,缺乏实用性。 Newton 是英特尔的最新创新项目之一,能够有效缓解这些问题。
问题
“没有统一的解决方案”: 用户希望做出自己的选择。 他们希望购买智能设备,比如苹果、三星、腾讯或小米的电视、冰箱、空调。但制造商都各自开发了自己的智能家庭解决方案(例如,制造商们使用的通信协议各不相同)。 几乎无法形成标准化生态系统。
“缺乏实用性”: 之前的智能家庭物联网控制解决方案包括: 语音控制:可能会受到背景噪音的影响;电话控制或其他远程控制器:便捷性不足,因为涉及到取电话、启动相关应用,搜索想要控制的物联网设备等;通过摄像头进行手势识别:依赖于光照条件和在房间内所站的位置/方向。
Newton 项目
Newton 旨在提供一款高级整体解决方案,以支持智能家庭物联网控制。
  • 连接所有智能家庭物联网设备
  • 不依赖手持设备
  • 低成本
  • 不受制于环境、光照强度、噪音水平或用户的方向
我们开发了一款可用于智能家庭物联网控制的高级整体解决方案 — Newton 项目。 该系统包含所有主要平台(英特尔® 酷睿™ 处理器、英特尔® Centrino* 处理器技术、英特尔® 凌动™ 处理器、ARM* 移动平台)和所有物联网平台(英特尔® Edison 开发板、英特尔® Galileo 开发板、Raspberry*、Spark*、Mbed*、Freescale*、Arduino Uno* 等)之间的连接。 因此,Newton 项目能够实时连接运行于所有当前主流操作系统(Windows*、Linux*、Android*)和 NonUI-OS(Mbed*、Contiki*、RIOT*、Spark*、OpenWRT*、Yocto*、WindRiver*、VxWorks*、Raspbian* 等)的平台。
智能家庭厂商通常定义一套应用层通信协议,但这些协议相对比较封闭。 我们在 Newton 项目中使用 CoAP(受限应用协议),该软件协议旨在支持简易的电子设备通过互联网进行交互式通信。 CoAP 协议基于 RESTful 框架,可转化为 HTTP 协议以轻松构建智能网关。 Newton 项目中 CoAP 协议的基本设计过程如下所示。

Newton 项目的 CoAP 设计
为将该创意支持的所有操作系统进行分类,英特尔® Galileo 开发板、英特尔® Edison 开发板、UNO、和 Spark 开发板均支持 Arduino 编程标准。 通用物联网 LPC1768 开发板支持 Mbed 和 RIOT 操作系统。 Mbed 是面向联网设备(基于 ARM)的平台和操作系统,有利于通过调用相应对象轻松地运行硬件资源。 RIOT 是能够支持多线程和多种不同开发板的开源操作系统。 它的程序可由标准 C 语言编写而成。 LPC1768 芯片需使用外部 Wi-Fi* 模块进行通信。 Windows、Linux 和 Android 也可轻松适应 CoAP。 Newton 项目的软件架构如下所示。

Newton 项目的软件架构
实施 Newton 项目的操作系统连接
  • CoAP 实施
CoAP 的源代码是被称为 "MicroCoAP" 的开源代码,支持下载。 它是用标准 C 代码编写而成的轻量级代码,能够在不同平台上轻松转化。 MicroCoAP 包含四个文件(CoAP.h、CoAP.c、endpoints.c 和 main.c)。 CoAP.h 和 CoAP.c 实施 CoAP 协议(如下所示);endpoints.c 包含与特定节点相关的响应函数。
main.c 文件构建 CoAP 服务器。 我们主要使用 CoAP_packet_t、CoAP_parse、CoAP_handle_req 和 CoAP_build。 CoAP_packet_t 定义 CoAP 数据包的数据结构。 CoAP_parse function 解析从网络或串行端口接收的十六进制数据,并将数据转化为 CoAP_packet_t 结构。 CoAP_handle_req 函数分析接收的 CoAP 数据包并做出适当响应。 CoAP_build 函数将响应数据包转换成十六进制数据。 用于构建 CoAP 服务器的关键源代码如下所示。
  • Arduino* 实施
Arduino 是一款可创建 Arduino 软件和硬件标准的开源电子原型构建平台。 英特尔® Edison 开发板、英特尔® Galileo 开发板和 Spark 核心开发板均遵循 Arduino 标准。 它主要包含两种函数:设置函数和循环函数。 设置函数对硬件进行初始化,并在循环函数前调用一次。 循环函数是一种死循环,可用于执行主函数。
如欲将 COAP 添加至 Arduino 开发板,只需将三个文件(CoAP.h、CoAP.c、endpoints.c)添加至项目,并根据 microCoAP 中的 main.c (如下所示)修改设置函数和循环函数。
  • Mbed 实施
Mbed 是面向对象的 C++通用库,专门针对 ARM Cortex*-M 处理器而开发。 我们可以通过使用相关类运行通用输入/输出 (GPIO) 和其他硬件资源。 不过没有默认 Wi-Fi 模块或通用库。 这时,我们可以通过 UART 转 WIFI 模块将 Wi-Fi 功能添加至 Mbed。 Class WIFI 基于 UART-WIFI 模块的产品说明开发而成,其所有函数均可向 UART-WIFI 模块发送相关字符串。
您需要将三个文件(CoAP.h、CoAP.c、endpoints.c)添加至项目,并根据 microCoAP 项目中的 main.c 文件修改 main.c 文件。 为此,只需使用 make 命令,因为 Makefile 中的所有设置均已完成,如下所示。

Mbed 平台上的 CoAP 服务器
  • RIOT 实施
RIOT 是面向物联网的开源开发商友好型操作系统,支持多种不同的开发板,比如 Mbed LPC1768 和 Spark Core 开发套件。 它支持 C 和 C++ 语言编程。 测试文件夹包含许多可连接硬件的示例 API。 与 Mbed 类似,CoAP 服务器的实施方式是将 Mbed 的 Wi-Fi 类更改为 C 函数,然后修改与串行端口相关的 API。 不过,试验过程中它通常发生崩溃,因此仅仅面向测试阶段。 如欲编译该服务器,请使用根文件夹中的 “BOARD=Mbed_lpc1768 make clean all flash” 命令,并使用 “BOARD=Mbed_lpc1768 make term” 监控串行端口并获得来自 Mbed 的打印信息。 面向 RIOT 的 CoAP 服务器代码结构如下所示。

RIOT 代码结构
  • Contiki 实施
Contiki 是一款多进程开源操作系统。 示例文件夹包含多个使用 API 控制硬件的示例。 它也不包含默认 Wi-Fi 模块。 为实施 CoAP 服务器,可使用 RIOT 的类似函数并重写 UART 示例。 如欲进行编译,可使用 “TARGET=cc2530dk make” 命令,并使用 jlink 下载二进制程序。 查看以下示例代码。

基于 Contiki 的 CoAP 服务器的示例代码
  • OpenWRT 实施
OpenWRT 是一款面向路由器的 eMbedded Linux。 它支持标准 Linux API, 因此其 microCoAP 代码可以直接使用。 在软件包文件夹中设置 microCoAP 项目,并根据其他项目的 Makefile 修改 Makefile。 然后在根目录中运行 make 命令。 编译后的应用将位于 bin 文件夹。 该应用可通过 ftp 或 usb 存储上传至开发板。 最后,使用 opkg 命令安装 CoAP*.ipk,以安装 CoAP 应用;CoAP 将被安装至 OpenWRT。 将 “/usr/bin/CoAP &” 添加至 /etc/rc. 本地文件。 面向 OpenWRT 的 CoAP 服务器代码结构如下所示。

OpenWRT 代码结构
Newton 项目中的实际解决方案
要想成为物联网的实际解决方案,必须能够通过自然手势控制所有物联网设备,无需穿戴任何电子可穿戴设备,也不受外界光照/噪音/等因素的影响。 通过使用 9 轴陀螺仪检测用户的手部动作,可以实施类似这种解决方案。

使用 Wi-Fi* 的 9 轴陀螺仪示例
模式识别算法能够实时分析数据,并检测用户的位置、方向和手势。 通过计算用户与物联网设置之间的相对位置/方向,系统能够识别用户所面向的设备。 进一步计算用户的手部方向和手势后,就可选择和控制目标物联网设备
Newton 项目演示案例
以下是我们实验室进行的演示案例,使用 Newton 项目连接和控制基于不同操作系统的设备。 这些演示案例包括环境(图 1)、控制开发板(英特尔® Edison 开发板(图 2))、控制安卓设备(图 3)、控制机械手臂(图 4),以及控制机器人汽车(图 5)。
NEWTON 项目—— 智能家庭物联网控制完整解决方案图1
图 1: 实验室环境演示案例

图 2: 在 Newton 项目中选择(蓝色)和控制(绿色)开发板

图 3: 在 Newton 项目中控制安卓设备

图 4: 在 Newton 项目中控制机械手臂

图 5: 在 Newton 项目中控制机器人汽车

未来计划
Newton 项目是一款专门用于智能家庭物联网控制的高级整体解决方案,并且易于使用,支持用户连接所有想要连接的智能家庭物联网设备。 它是一款低成本解决方案,用户无需使用任何手持设备。 此外,它还不受外界因素(比如光照、噪音级别等)的影响。
与所有开源项目一样,Newton 项目还有很大的提升空间。 我们下一步计划改进手势识别、启动性能,并集成可穿戴设备。 例如,据说,下一代 Google* Glass 将配备更大的凌镜,并采用英特尔凌动处理器。对于 Newton 项目来说,这将是更为出色的实际物联网控制解决方案。

关于作者
Zhen Zhou 拥有上海交通大学软件工程专业的硕士学位。 他于 2011 年加入英特尔,在开发商关系部门移动支持团队担任一名应用工程师。 他与内部相关各方与外部 ISV、SP 和 运营商密切合作,负责在英特尔凌动处理器、传统英特尔架构和嵌入式英特尔® 架构平台等领域设计新的使用模式以及开发原型。

原文链接

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
swanglei
swanglei
有人说过,字数少于3000字的都不算好文章,你的应该算好文章
swanglei
swanglei回复孙毅
好大的原文链接。。。才看见
孙毅
孙毅
作者
回复swanglei
转发的“好文章” 。。。吼吼
Juice
Juice
版主好认真!!!科普小王子 ~~
孙毅
孙毅
作者
回复Juice
我有点受宠若惊,您是如何临幸到我的啊?!
凌风清羽
凌风清羽
大圣,话说OLED点亮了吗
孙毅
孙毅
作者
回复凌风清羽
评论内容
吹口琴的钢铁侠
吹口琴的钢铁侠
看起来很厉害
但是感觉这种东西做起来一般会有很多坑。。。。
qq815076543322
qq815076543322
智能家庭物联网控制完整解
qq815076543322
qq815076543322回复孙毅
你都搞不定 我怎么搞
孙毅
孙毅
作者
回复qq815076543322
你能搞定不。。。。。玩一个呗
dsweiliang
dsweiliang
Edison为啥用arduino编译的?
孙毅
孙毅
作者
回复dsweiliang
看到的那只是个文本编辑器,其实背后的编译器用啥挺随意的啊。。。。。
Edison有一个 Edison for Arduino的IDE
孙毅
孙毅
作者
啊,虽然跟Edison没啥关系,但是挺好玩的一个东东,Intel inside,大家当娱乐了啊。
楼主也不懂NEWTON
hnyzcj
hnyzcj回复孙毅
不干嘛,不干嘛,召唤神兽呢
孙毅
孙毅
作者
回复hnyzcj
干嘛,干嘛。。。。
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
- 没有更多了 -