跳转到主要内容

英特尔物联网代码示例入门: 闹钟

editor 提交于

<br><strong><font color="#0000C6"><font size="5">简介</font> <strong></br>

这款智能闹钟应用是一系列英特尔物联网代码示例入门实践(使用英特尔® 物联网开发人员套件、英特尔® Edison 开发平台、API 和其他技术)的一部分。

从该实践中,开发人员可以学习到如何:

<li>连接英特尔® Edison 开发平台;该平台是一个旨在创建原型,生产物联网和可穿戴计算产品的计算平台。</li>

<li>使用英特尔® 物联网开发人员套件中的 MRAA 和 UPM 与英特尔® Edison 平台 IO 和传感器库交互;该套件是一款完整的软硬件解决方案,可帮助开发人员探索物联网和实施创新项目。</li>

<li>在英特尔® XDK 物联网版中运行该代码示例;该工具是一个 IDE,可创建与传感器和制动器交互的应用,支持立即开发面向英特尔® Edison 或英特尔® Galileo 开发板的软件。</li>

<li>使用 Microsoft* Azure* 的 Azure Redis Cache*、连接物联网解决方案(包括数据分析和机器学习)的云服务以及多种简化将传感器连接到云,支持物联网项目快速正常运行的效率提高工具,设置 web 应用服务器以设置闹钟时间并保存该数据。<li>

<li>调用 Weather Underground* API 服务以访问天气数据</li>

<br><strong><font color="#0000C6"><font size="5">它是什么</font> <strong></br>

使用英特尔® Edison 开发板,该项目支持您创建具备下列功能的智能闹钟:

<li>支持使用手机通过内置 Web 界面访问以设置闹铃时间;</li>

<li>在 LCD 上显示实时天气数据;</li>

<li>使用基于云的数据存储跟踪每天早晨唤醒您所花的时间。</li>

<br><strong><font color="#0000C6"><font size="5">工作原理</font> <strong></br>

这款智能闹钟具备多项实用的特性。 您可以使用手机,通过直接由英特尔® Edison 开发板显示的 Web 页面设置闹钟。 闹钟到点后,蜂鸣器响起,LCD 显示起床时间到。 可使用旋转拨盘调节显示屏的亮度。

此外,这款智能闹钟还可通过 Weather Underground* API 访问每天的天气数据,并用来改变 LCD 的颜色。 此外,它还可使用在 Microsoft* Azure* 账户中运行的英特尔物联网示例数据存储 (Intel IoT Example Datastore) 保存所有数据。

<strong><font color="#0000C6"><font size="5">硬件要求</font> <strong>

Grove* Starter Kit Plus,包括

1、带有 Arduino* breakout 开发板的英特尔® Edison

2、<a href="http://iotdk.intel.com/docs/master/upm/node/classes/groverotary.html">G…* 旋转模拟传感器</a>

3、<a href="http://iotdk.intel.com/docs/master/upm/node/classes/buzzer.html">Grove* 蜂鸣器</a>

4、<a href="http://iotdk.intel.com/docs/master/upm/node/classes/grovebutton.html">G…* 按钮</a>

5、<a href="http://iotdk.intel.com/docs/master/upm/node/classes/jhd1313m1.html">Gro…* RGB LCD</a>

<strong><font color="#0000C6"><font size="5">软件要求</font> <strong>

1、英特尔® XDK 物联网版

2、Microsoft* Azure* 账户

3、Weather Underground* API 密钥

<strong><font color="#0000C6"><font size="5">如何设置</font> <strong>

首先,使用电脑上的 Git*(如下) 复制英特尔物联网代码示例入门库:

$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git

想要下载 .zip 文件? 在您的 Web 浏览器中,访问 https://github.com/intel-iot-devkit/how-to-code-samples,并点击右下方的 Download ZIP 按钮。 下载 .zip 文件后,对其进行解压,然后使用目录中的文件(对本例而言)。

<strong><font color="#0000C6"><font size="5">将该程序添加至英特尔® XDK 物联网版</font> <strong>

在英特尔® XDK 物联网版中,选择 Import Your Node.js Project:

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5382-1.png&…; alt=""></center>

<br>然后,导航至该示例项目所在的目录,并选择它:</br>

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5383-2.png&…; alt=""></center>

<br>您需要将电脑连接至您的英特尔® Edison 开发板以向其发送代码。</br>

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5384-3.png&…; alt=""></center>

<br>点击左下角的 IoT Device 菜单。 如果您的英特尔® Edison 被自动识别,选择它。</br>

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5385-4.png&…; alt=""></center>

<br>否则,选择 Add Manual Connection。 在 Address 字段,键入 192.168.2.15。 在 Port 字段,键入 58888。 点击 Connect 以保存连接。</br>

<strong><font color="#0000C6"><font size="5">在英特尔® Edison 上手动安装该程序</font> <strong>

或者,您可以在英特尔® Edison 开发板上手动设置代码。

与您的英特尔® Edison 开发板建立 SSH 连接,然后将英特尔物联网代码示例入门库复制到该开发板中,如下:

$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git

然后,导航至该目录(对本例而言)。

如欲在英特尔® Edison 上安装 Git*(若没有),请与该开发板建立 SSH 连接,并运行下列命令:

$ opkg install git

<strong><font color="#0000C6"><font size="5">连接 Grove* 传感器</font> <strong>

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5386-5.jpg&…; alt=""></center>

<br>您需要具有连接至兼容 Arduino* 的 breakout 开发板的 Grove* Shield,以便将所有 Grove* 设备插入 Grove* Shield。 确保 Grove* Shield 上的微型 VCC 开关设置为 5V。</br>

将 Grove* 线缆的一端插入 Grove* 旋转模拟传感器,并将其另一端连接至 Grove* Shield 的 A0 端口上。

将 Grove* 线缆的一端插入 Grove* 按钮,并将其另一端连接至 Grove* Shield 的 D4 端口上。

将 Grove* 线缆的一端插入 Grove* 蜂鸣器,并将其另一端连接至 Grove* Shield 的 D5 端口上。

将 Grove* 线缆的一端插入 Grove* RGB LCD,并将其另一端连接至 Grove* 护罩的任意 I2C 端口上。

<strong><font color="#0000C6"><font size="5">英特尔® Edison 手动设置</font> <strong>

如果您在英特尔® Edison 上手动运行该代码,您需要安装一些关联组件。

如欲获得在英特尔® Edison 上执行该示例所需的 Node.js* 模块,请运行下列命令:

npm install

<strong><font color="#0000C6"><font size="5">Weather Underground* API 密钥</font> <strong>

如要获取实时天气信息,需要从 Weather Underground* 网站获取 API 密钥:

http://www.wunderground.com/weather/api

如果不首先获取 Weather Underground* API 密钥,将无法检索天气状况。 不过仍然可以在没有天气数据的情况下运行该示例。

将您的 Weather Underground* API 密钥传送至示例程序,具体方式是修改 WEATHER_API_KEY 密钥(在 config.json 文件中),如下:

{ WEATHER_API_KEY: "YOURAPIKEY" }

<strong><font color="#0000C6"><font size="5">Microsoft* Azure* 服务器设置</font> <strong>

您还可选择将该示例程序生成的数据存储在使用 Microsoft* Azure*、Node.js* 和 Redis* 数据存储部署的后端数据库中。

有关如何设置云数据服务器的信息,请访问:

https://github.com/intel-iot-devkit/intel-iot-examples-datastore

<strong><font color="#0000C6"><font size="5">配置该示例</font> <strong>

如欲配置面向可选实时天气数据的示例,请按照上述说明从 Weather Underground* 网站中获取密钥,然后修改 WEATHER_API_KEY 和 LOCATION 密钥(在 config.json 文件中),如下:

{ "WEATHER_API_KEY": "YOURAPIKEY", "LOCATION": "San_Francisco" }

如欲配置该示例以使用可选的 Microsoft* Azure* 数据存储,请修改 SERVER 和 AUTH_TOKEN 密钥(在 config.json 文件中,如下:

{ "SERVER": "http://intel-examples.azurewebsites.net/logger/alarm-clock&quot;, "AUTH_TOKEN": "s3cr3t" }

如欲配置该示例以同时使用天气数据和 Microsoft* Azure* 数据存储,请修改 WEATHER_API_KEY、LOCATION、SERVER 和 AUTH_TOKEN 密钥(在 config.json 文件中),如下:

{ "WEATHER_API_KEY": "YOURAPIKEY", "LOCATION": "San_Francisco" "SERVER": "http://intel-examples.azurewebsites.net/logger/alarm-clock&quot;, "AUTH_TOKEN": "s3cr3t" }

<strong><font color="#0000C6"><font size="5">使用英特尔® XDK 物联网版运行该程序</font> <strong>

准备好运行该示例时,确保保存了所有文件。

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5387-6.png&…; alt=""></center>

<br>点击 Upload 图标,将文件上传至英特尔® Edison 开发板。</br>

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5388-7.png&…; alt=""></center>

<br>点击英特尔® XDK 物联网版底部的 Run 图标, 在英特尔® Edison 上运行该代码。</br>

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5389-8.png&…; alt=""></center>

<br>如果您修改了该代码,请点击 Upload and Run, 在英特尔® Edison 上运行包含您所做修改的最新代码。</br>

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5390-9.png&…; alt=""></center>

<br>当该程序在运行时,您会看到与上述内容类似的输出信息。</br>

<strong><font color="#0000C6"><font size="5">手动运行该程序</font> <strong>

如欲在英特尔® Edison 上手动运行该程序,请与该开发板建立 SSH 连接,并执行下列命令:

node index.js

设置闹钟

<center><img src="http://intel.eetrend.com/files/2016-07/wen_zhang_/100001898-5391-10.png…; alt=""></center>

<br>使用该示例程序运行时英特尔® Edison 开发板显示的单页 Web 界面设置闹钟。</br>

该 Web 服务器运行在端口 3000 上,因此,如果英特尔® Edison 连接至 192.168.1.13 上的Wi-Fi*,您在同一网络上时浏览的地址是 http://192.168.1.13:3000

<strong><font color="#0000C6"><font size="5">确定英特尔® Edison 的 IP 地址</font> <strong>

您可以通过运行下列命令确定英特尔® Edison 所连接的 IP 地址:

ip addr show | grep wlan

您会看到与下列内容相似的输出信息:

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 inet 192.168.1.13/24 brd 192.168.1.255 scope global wlan0

IP 地址显示在 inet 旁边。 在上述示例中,IP 地址为 192.168.1.13。

如欲查看英特尔物联网代码示例入门的完整列表,请访问<a href="https://software.intel.com/zh-cn/blogs/2015/11/04/announcing-18-new-how…;。

有关该代码示例的更多详情,请访问<a href="https://github.com/intel-iot-devkit/how-to-code-samples/tree/master/ala…; rel="nofollow">GitHub</a>。

文章来源:<a href="https://software.intel.com/zh-cn/articles/alarm-clock">英特尔开发人员专区