使用 Cylon.js 配合 Intel® Edison 板和 Intel® 物联网开发者套件
Intel Edison 板在物理计算方面具有巨大的潜力。因此,我们在 Cylon.js 中为 Intel Edison 板增加了完整支持。Cylon.js 是我们用于机器人和物联网 (IoT) 应用的 JavaScript 框架。
获取新的 Intel® 物联网开发者套件,这是一套完整的硬件和软件解决方案,可让开发者使用 Intel® Galileo 和 Intel® Edison 板创建令人兴奋的新解决方案。请访问 Intel® 物联网开发者专区。
Intel® Edison 板是一款令人惊叹的新型单板计算机。凭借其双核 Intel® Atom™ 处理器、通用输入/输出 (GPIO) 和其他外部接口,Intel Edison 板在物理计算方面具有巨大的潜力。因此,我们在 Cylon.js(http://cylonjs.com)中为 Intel Edison 板增加了完整支持。Cylon.js 是我们用于机器人和物联网 (IoT) 应用的 JavaScript* 框架。
本文旨在帮助初学者了解如何入门并访问所有可用的功能。我们将向您展示如何使用 Cylon.js 来使用 Intel® 物联网开发者套件中几乎所有的设备。请注意,我们说的是几乎所有。出于安全原因,我们排除了继电器,因为将交流 (AC) 电子设备与 Intel® Edison 板集成是一个值得单独撰写文章的主题。
Intel® Edison 板与所有连接设备的图像
使用 Cylon.js,我们将套件中的所有直流 (DC) 设备组合起来,创建一个单一的集成解决方案:智能前门系统。智能前门将包括灯、门铃、LCD 显示屏、声音和光线传感器,甚至拥有自己的 API。它将是一个完整的(尽管缩小版)物联网解决方案。
请注意,您需要使用外部直流电源才能为所有设备提供足够的电流,以便同时连接到 Intel Edison 板。任何提供 7-15V 电压和约 1000mA (1.0A) 电流的电源都可以正常工作。
第一部分 - 灯
使用的零件:Grove* - LED
我们首先打开一盏灯,即套件中的 LED。打开 LED 是物联网领域的“Hello, World”,它提供了一个很好的入门点。我们将使用 LED 连接器。您还需要选择一个彩色 LED 并将其插入小型 Grove 板。请记住,LED 的长引脚是“+”极,需要与 Grove 板上的“+”极对齐。
将 LED 插入 Grove LED 板
将代码复制/粘贴或输入到 Intel® XDK IoT Edition 的“main.js”编辑器窗口中,保存它,然后将其上传到板上。
运行代码,观察 LED 闪烁。
第二部分 - 灯开关
添加的零件:按钮
现在我们将添加一个按钮,以便用户可以自己打开和关闭 LED。代码展示了 Cylon.js 如何响应物理世界中的操作。在 JavaScript 中,通常使用事件。如果您使用过 jQuery,您一定见过像“mouseOver
”这样的常见事件模式。Cylon.js 大量使用对应于硬件设备操作的事件。在本例中,按钮驱动程序支持“push”(按下)和“release”(释放)事件。我们将“release”事件连接到 LED,因此当按钮被按下然后释放时,LED 会打开/关闭。
将按钮插入 Grove 按钮板
将代码复制/粘贴或输入到 Intel® XDK IoT Edition 的“main.js”编辑器窗口中,替换之前的代码,保存它,然后将其上传到板上。
运行代码,按下按钮,然后改变 LED 的状态。
第三部分 - 显示屏
添加的零件:LCD
现在我们将添加一个显示屏,它将允许我们在继续向系统中添加更多功能时,看到板正在做什么。套件中包含的显示屏是一个液晶显示屏 (LCD),它使用内置的 RGB LED 进行背光。这使得我们可以同时更改显示的文本和背光颜色。
LCD 是一个 I2C 设备,它代表“Inter-Integrated Chip”通信。I2C 是一种标准的接口,用于许多不同类型的高级传感器和设备。我们需要将 LCD 插入 Grove 屏蔽板上的“i2c”连接器之一。
首先,我们将添加 LCD 的代码。然后,我们将添加代码,在首次运行 Cylon.js 代码时显示一条消息。最后,我们将为 button.on("released") 事件添加代码,以根据当前的灯光状态更新显示屏。
插入 LCD
将代码复制并粘贴或输入到 Intel® XDK IoT Edition 编辑器窗口的“main.js”中,替换之前的代码,保存它,然后将其上传到板上。
运行代码,按下按钮,并更改 LCD 上显示的文本。
第四部分 - Web API
添加的零件:无
我们将添加 Cylon.js HTTP API,它将允许我们查看 Web UI 并使用 REST 控制系统。Cylon.js API 是模块化的,并以几种不同的插件形式实现,因此您可以根据需要包含不同的通信方式。我们目前提供“http”、“socketio”和“mqtt”API 插件,并且很快会有更多插件加入。
HTTP API 插件还包含 Robeaux (http://robeaux.io),这是一个基于 React 的简单单页 Web 应用程序。此应用程序显示您机器人的当前状态,甚至允许您更改其数据。
在各种 Cylon.js API 插件中,都有一个一致的方法来确定您想与之通信的机器人或设备。“路由”以称为“Common Protocol for Programming Physical Input/Output”的规范的形式记录,简称为“cppp.io”。
例如,在我们当前的“Doorbot”项目中,LED 设备的路径将是“/api/robots/doorbot/devices/led”。模式是“/api/robots/<robot name>/devices/<device name>”,通过使用此模式,我们可以使用 Cylon.js API 允许其他软件控制我们的设备或向我们的机器人发送命令。
将代码复制并粘贴或输入到 Intel® XDK IoT Edition 编辑器窗口的“main.js”中,替换之前的代码,保存它,然后将其上传到板上。
运行代码,并使用端口 3000(Robeaux 的默认端口)浏览到您的板被分配到的 IP 地址。
您应该会看到 Robeaux 的屏幕截图
点击“doorbot”机器人。您应该会看到显示的设备列表。点击“button”设备。您将看到有关按钮的详细信息显示出来。
在“Device Events”下,在字段中输入“push”,然后点击“Listen”按钮。现在按下实际的物理按钮本身。您应该会在网页中看到事件出现,这得益于服务器端事件。这是测试设备是否正确连接的好方法。
第五部分 - 门铃
添加的零件:触摸传感器、蜂鸣器
现在我们将添加一种方式,让访客可以按门铃——当然,还有蜂鸣器本身。从 Cylon.js 的角度来看,触摸传感器只是一种按钮。同样,蜂鸣器也与 LED 非常相似,可以打开或关闭,但仅此而已。
触摸触摸传感器会触发 touch.on("released") 事件。我们将激活蜂鸣器并在 LCD 屏幕上显示一条消息。
Grove 触摸传感器板和蜂鸣器板的图像
插入触摸传感器和蜂鸣器。
将代码复制并粘贴或输入到 Intel® XDK IoT Edition 编辑器窗口的“main.js”中,替换之前的代码,保存它,然后将其上传到板上。
运行代码,轻触触摸传感器,然后听蜂鸣器的声音。
第六部分 - 前门开启器
添加的零件:旋转电位器、伺服电机
现在我们将通过旋转电位器来控制伺服电机,从而实现其运动能力。这可以应用于打开锁或移动安全摄像头,但为了简单起见,我们将只使用套件中的另外几个零件。
电位器,简称“pot”,是一种可变电阻器。根据您转动它的方式,它在另一端输出的电压或多或少——就像音量旋钮一样。事实上,大多数音量旋钮都是电位器。
伺服电机是一种特殊的电机,可以在一定范围内(通常是 180 度)来回移动。它们经常用作遥控飞机或船的一部分,以控制舵的角度。它们还可以用于打开门锁、让摄像头进行扫射移动等等。
Grove 伺服电机和电位器的图像
插入伺服电机和旋转电位器。
将代码复制并粘贴或输入到 Intel® XDK IoT Edition 编辑器窗口的“main.js”中,替换之前的代码,保存它,然后将其上传到板上。
运行代码,转动旋钮,观察伺服电机移动。
第七部分 - 火灾报警
添加的零件:温度传感器
访客不是我们智能门唯一的考虑因素。我们还希望能够检测火灾的热量并作出适当反应,设置声音报警。在发生火灾的情况下,您不会希望在火灾就在门外时打开门!
温度传感器将使用 Cylon.js 内置的 UPM 库支持。UPM 是一个 Intel® 库,支持许多不同的传感器。Grove* - 温度传感器就是其中之一。
Grove 温度传感器的图像
插入温度传感器。
将代码复制并粘贴或输入到 Intel® XDK IoT Edition 编辑器窗口的“main.js”中,替换之前的代码,保存它,然后将其上传到板上。
运行代码,在 LCD 上查看最新的温度读数。
第八部分 - 安防报警
添加的零件:声音传感器
如果有人(或有东西)来到前门,我们的智能门就可以通过声音传感器检测到声音并打开灯。入侵者会被吓跑,而受邀的客人则可以找到门铃。
套件中的声音传感器仅仅是一个模拟输入设备。与旋转拨盘类似,它提供 0 到 1024 的范围输入。在这种情况下,传感器检测到的声音的音量对应于传感器引脚输出的电压。
Grove 声音传感器的图像
插入声音传感器。
将代码复制并粘贴或输入到 Intel® XDK IoT Edition 编辑器窗口的“main.js”中,替换之前的代码,保存它,然后将其上传到板上。
运行代码,制造噪音,观察 LED 点亮。
第九部分 - 安防报警(续)
添加的零件:光线传感器
与声音传感器类似,当有人晚上来到前门时,我们可以检测到光线的存在并打开我们自己的灯。同样,入侵者会被吓跑,而受邀的客人则可以找到门铃。
套件中的光线传感器是另一个模拟输入设备,因此它的代码与声音传感器的代码类似。
Grove 光线传感器板的图像
插入光线传感器。
将代码复制并粘贴或输入到 Intel® XDK IoT Edition 编辑器窗口的“main.js”中,替换之前的代码,保存它,然后将其上传到板上。
运行代码,让传感器暴露在光线下,观察 LED 点亮。
结论
在本文中,我们向您展示了如何将 Cylon.js 与 Intel® Edison 板配合使用,并整合了 Intel® 物联网开发者套件中的所有零件,继电器除外。此外,我们还创建了一个完整的、微型的智能前门系统。
Intel® Edison 板是一款功能强大的小型设备,而我们才刚刚开始探索它的功能。得益于 Cylon.js,它还易于利用这些功能来创建下一代智能硬件设备。您会创造什么?
立即开始创新!Intel® 物联网开发者计划提供知识、工具、套件以及专家社区,助您快速轻松地将您的创新想法转化为物联网解决方案。
使用 Intel® 物联网开发者套件,为 Intel® Edison 和 Intel® Galileo 平台实现梦想,并付诸实践。这些套件是通用、性能优化且完全集成的端到端物联网解决方案,支持各种编程环境、工具、安全、云连接和硬件。
如需更多资源并了解新的 Intel® 物联网开发者套件 v1.0 如何帮助您简化物联网项目
- 下载 Intel® 物联网开发者套件
- 访问 Intel® 物联网开发者中心
- 参加我们的 Roadshows,获取创建您自己的物联网项目的实践培训