Quantcast
Channel: 英特尔开发人员专区文章
Viewing all articles
Browse latest Browse all 583

英特尔® Edison 开发板和英特尔® 物联网开发套件上使用 Cylon.js*

$
0
0

英特尔® Edison 开发板是一款令人惊叹的全新单板计算机。 英特尔 Edison 开发板配备了双核英特尔® 凌动™ 处理器、通用 I/O (GPIO) 和其他外部接口,能够充分满足物理计算需求。 正因为如此,我们在 Cylon.js (http://cylonjs.com)、面向机器人的 JavaScript* 框架和物联网 (IoT) 应用中新增了完整的英特尔开发板支持。

本文将为初学者介绍基本的知识和信息,并帮助他们访问可用的功能。 我们将向大家展示如何借助 Cylon.js 使用英特尔® 物联网开发人员套件中的几乎所有设备。 请注意,我说的是几乎所有设备。 出于安全考虑,继电器不属于我们的设备使用范围内,因为集成交流电 (AC) 设备与英特尔® Edison 开发板比较复杂,需要另写文章对其进行论述。

连接所有组件后的英特尔® Edison 开发板图:


借助 Cylon.js,我们能够整合套件内的所有直流电设备,进而创建单个集成式解决方案:智能前门系统。 该智能前门系统将配备灯光、门铃、LCD 指示灯面板、声音和光传感器,甚至还配置自己的 API。 它将是一款完备的(即使经过了精简)物联网解决方案。

请注意,您需要使用外部 DC 电源,提供充足的电流将所有设备同时连接至英特尔 Edison 开发板。 所有电压为 7-15 伏、电流约为 1000 毫安(1.0 安)的电源均可正常使用。

第 1 部分 — 灯光

所用部件: Grove* - LED

我们首先开启灯光,由套件内的 LED 表示。 打开 LED 即为物联网 “Hello, World”,在这里您可以了解基本的入门信息。 我们将使用 LED 连接器。 您还需要选择其中一个任意颜色的 LED,将其插入小型 Grove 板。 请记住,LED 上较长的导线为“正极+”,需要连接至 Grove 板的“正极+”。

将 LED 插入 Grove LED 板:


所使用的代码如下: https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/1.js

复制/粘贴或将代码输入至英特尔® XDK IoT Edition 的 “main.js” 编辑器窗口,然后保存并上传至开发板。

运行代码,并观察 LED 闪烁。

第 2 部分 — 灯光开关

添加的部件: 按钮

现在我们添加按钮,以便用户自己打开和关闭 LED。 该代码展示了 Cylon.js 如何在物理环境下对用户操作进行响应。 JavaScript 中通常使用事件。 如果您曾经使用过 jQuery,您会看到 “mouseOver” 等通用事件术语。 Cylon.js 广泛利用能够响应硬件设备动作的事件。 在这种情况下,按钮驱动程序支持“按下 (push)和“释放 (release)”两种事件。 我们将 “release” 事件连接至 LED,如果有人按下然后释放按钮,该 LED 会开启/关闭。

将按钮插入 Grove 按钮板:


https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/images/2.jpg

所使用的代码如下:
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/2.js

复制/粘贴或将代码输入至英特尔® XDK IoT Edition 的 “main.js” 编辑器窗口,以替换之前的代码,然后保存并上传至开发板。

运行代码,按下按钮,并更改 LED 状态。

第 3 部分 — 显示器

添加的部件: LCD

现在将添加显示器,这样我们可以在向系统添加更多功能时,观察开发板的运行方式。 套件中的显示器为使用内置 RGB LED 的背光液晶显示器 (LCD)。 这样有助于我们更改文本显示和背景灯颜色。 

该 LCD 为 I2C 设备,即“内部集成芯片”通信。 I2C 是应用于多种高级传感器和设备的标准接口。 我们需要将 LCD 插入 Grove 护罩上的其中一个 “i2c” 接头。

首先添加面向 LCD 的代码。 然后添加代码,以在首次运行 Cylon.js 代码时显示消息。 最后将代码添加至 button.on(“released”) 事件,以将显示器更新至当前显示状态。

插入 LCD:


https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/images/3.jpg

所使用的代码如下:
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/3.js

复制并粘贴,或将英特尔® XDK IoT Edition 编辑器窗口中的代码输入至 “main.js”,以替换之前的代码,然后保存并上传至开发板。

运行代码,按下按钮,并更改 LED 显示的消息。

第 4 部分 - Web API

添加的部件:无

我们将添加 Cylon.js HTTP API,以便观察 web UI 并使用 REST 进行系统控制。 Cylon.js API 为模块化 API,通过多种不同的插件形式实施,因此您可以根据需求添加不同的方式来实现通信。 目前我们提供 “http”、“socketio” 和 “mqtt” API 插件,未来将添加更多插件。

HTTP API 插件(也包含 Robeaux (http://robeaux.io))是一款基于 React 的简单页面 web 应用。 该应用能够为您显示遥控装置的当前状态,并允许您更改它们的数据。

各种 Cylon.js API 插件均使用一致的方法了解您希望与之进行通信的遥控装置或设备。 这种“路径选择”通过规范(面向物理输入/输出的通用协议或简称 “cppp.io”)的形式记录下来。

例如,在当前的 “Doorbot” 项目中,LED 设备的路径为 “/api/robots/doorbot/devices/led”。 模式为 “/api/robots/<robot name>/devices/<device name>”,通过该模式,我们可以使用 Cylon.js API 支持其他软件控制设备或向遥控装置发送命令。

所使用的代码如下:
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/4.js

复制并粘贴,或将英特尔® XDK IoT Edition 编辑器窗口中的代码输入至 “main.js”,以替换之前的代码,然后保存并上传至开发板。

运行代码,并浏览找到开发板通过端口 3000(面向 Robeaux 的默认端口)分配的 IP 地址。

如下所示为 Robeaux 快照:

A screenshot of Robeaux
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/images/robeaux.png

点击 “doorbot” 遥控装置。 您将看到显示的设备列表。 点击 “button” 设备。 您将看到显示的按钮详情。

在 “Device Events” 下方的字段中输入 “push” ,然后点击 “Listen” 按钮。 现在请按下实际按钮。 您将在 web 网页中看到由服务器端事件触发的事件。 这种方法有助于我们有效测试设备是否连接正确。

第 5 部分 — 门铃

添加的部件: 触摸传感器,蜂鸣器

现在我们将添加一种方法帮助来访者使蜂鸣器(自己)发出声音。 从 Cylon.js 的角度来说,触摸传感器只是一种按钮。 因此,蜂鸣器的运行方式与 LED 类似,可以开启或关闭。

触摸触摸传感器将触发 touch.on(“released”) 事件。 我们将使蜂鸣器发出声音,并在 LCD 显示屏上显示消息。

Grove 触摸传感器板和蜂鸣器板图:


https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/images/5.jpg

插入触摸传感器和蜂鸣器。

所使用的代码如下:
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/5.js

复制并粘贴,或将英特尔® XDK IoT Edition 编辑器窗口中的代码输入至 “main.js”,以替换之前的代码,然后保存并上传至开发板。

运行代码,轻击触摸传感器,并收听蜂鸣器发出的声音。

第 6 部分 - 前门开启系统

添加的部件: 旋转式电位计,伺服器

现在我们将添加功能,以移动使用旋转式电位计进行控制的伺服器。 这项功能适用于开锁或移动安全摄像头,为简单起见,我们只使用套件内的其他几个部件。

旋转式电位计(简称 “pot”)是一种可变电阻器。 根据打开方式的不同,其另一端发出的电压也或多或少 — 类似于音量旋钮。 事实上,大多数音量刻度盘都是旋转式电位计。

伺服器是一种特殊的电机,可在一定的运动范围(通常为 180 度)内来回移动。 伺服器通常用作无线电控制飞机或船舶的零件,用于控制方向舵的角度。 它们还可用于开锁,在一定的范围内移动摄像头等等。

Grove 伺服器与旋转式电位计图:


https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/images/6.jpg

插入伺服器与旋转式电位计。

所使用的代码如下:
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/6.js

复制并粘贴,或将英特尔® XDK IoT Edition 编辑器窗口中的代码输入至 “main.js”,以替换之前的代码,然后保存并上传至开发板。

运行代码、旋转刻度盘,并观察伺服器的移动。

第 7 部分 - 火灾报警器

添加的部件: 温度传感器

智能门禁系统关注的不仅仅是来访者。 我们还希望能够检测可能引发火灾的热量,并设置声音报警,以做出适当的响应。 如果门的另一边发生火灾,您一定不希望开启这扇门。

温度传感器将运用内置于 Cylon.js 的 UPM 通用库支持。 UPM 是一种英特尔® 通用库,能够支持多种不同的传感器。 Grove* - 温度传感器就是其中的一种。

Grove 温度传感器图:


https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/images/7.jpg

插入温度传感器。

所使用的代码如下:
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/7.js

复制并粘贴,或将英特尔® XDK IoT Edition 编辑器窗口中的代码输入至 “main.js”,以替换之前的代码,然后保存并上传至开发板。

运行代码,查看 LCD 显示的最新温度值。

第 8 部分 - 安全警报

添加的部件: 声音传感器

如果有人(物体)接近前门,智能门禁系统可通过声音传感器探测到声音,并打开灯光。 闯入者会被吓跑,而来访的客人则能够找到门铃。

套件内的声音传感器只是一台模拟输入设备。 与旋转刻度盘类似,它可提供从 0 至 1024 的输入范围。 在这种情况下,传感器检测到的音量与传感器针脚输出的电压相对应。

Grove 声音传感器图:


https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/images/8.jpg

插入声音传感器。

所使用的代码如下:
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/8.js

复制并粘贴,或将英特尔® XDK IoT Edition 编辑器窗口中的代码输入至 “main.js”,以替换之前的代码,然后保存并上传至开发板。

运行代码,制造噪音,观察 LED 的开启。

第 9 部分 - 安全警报(续)

添加的部件: 光传感器

与声音传感器的工作方式类似,如果夜间有人接近前门,我们能够检测到光,并打开我们自己的灯。 同样,闯入者会被吓跑,而来访的客人则能够找到门铃。

套件内的光传感器是另一种模拟输入设备,因此其代码与声音传感器的类似。

Grove 光传感器板图:


https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/images/9.jpg

插入光传感器。

所使用的代码如下:
https://github.com/hybridgroup/Using-Cylon.js-With-The-Intel-Edison-and-IoT-Starter-Kit/blob/master/9.js

复制并粘贴,或将英特尔® XDK IoT Edition 编辑器窗口中的代码输入至 “main.js”,以替换之前的代码,然后保存并上传至开发板。

运行代码,让传感器接触到光,然后观察 LED 的开启。

结论

在本文中,我们向大家展示了如何将 Cylon.js 运用于英特尔® Edison 开发板,以及组装英特尔® 物联网开发人员套件内除继电器之外的所有部件。 此外,我们还创建了完整的缩小版智能前门系统。

英特尔® Edison 开发板是一款小外形,但功能十分强大的设备。本文中我们对该设备功能的介绍还只是冰山一角。借助 Cylon.js,我们能够轻松发掘该设备的功能来创建下一代智能硬件设备。 您将创建什么?


Viewing all articles
Browse latest Browse all 583

Trending Articles