
简介
这款智能火警应用是一系列英特尔® 物联网技术代码示例入门实践(使用英特尔® 物联网开发人员套件、英特尔® Edison 开发板、云平台、API 和其他技术)的一部分。
从该实践中,开发人员可以学习到如何:
它是什么
使用英特尔® Edison 开发板,该项目支持您创建具备下列功能的智能火警:
工作原理
该智能火警使用 Grove* 温度传感器监控外界温度。
如果温度高于阀值(比如设为 28 摄氏度),将通过蜂鸣器发出警报并在 LCD 上显示告警。
此外,它还通过 Twilio* 向特定号码发送 SMS,向他们警报火灾危险。
此外,它还可使用在 Microsoft* Azure*、IBM* Bluemix* 或 AWS*账户中运行的英特尔物联网示例数据存储 (Intel IoT Examples Datastore) 记录火灾事件。
硬件要求
Grove* Starter Kit,包括
软件要求
如何设置
首先,使用电脑上的 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 文件后,对其进行解压,然后使用目录中的文件(对本例而言)。
将程序添加至 Eclipse*
在 Eclipse* 中选择 Import Wizard 以将现有项目导入至工作区,如下所示:
1、从主菜单中选择 File > Import。

2、Import Wizard 对话框打开。 选择 General > Existing Project into Workspace 并单击 Next。

3、单击 Select root directory,然后单击相关的 Browse 按钮,以找到包含项目文件的目录。

4、在Projects下方选择目录和您希望导入的项目文件,单击 OK,然后单击 Finish 以将文件导入至 Eclipse*。

5、您的主 .cpp 程序将显示在 src 文件夹下方的工作区。

连接 Grove* 传感器
您需要具有连接至兼容 Arduino* 的 breakout 开发板的 Grove* 基座护罩 V2,以便将所有 Grove* 设备插入 Grove* 基座护罩 V2。 确保 Grove* 基座护罩 V2 上的微型 VCC 开关设置为 5V。
1、将 Grove* 线缆的一端插入 Grove* 温度传感器,并将其另一端连接至 Grove* 基座护罩 V2 的 A0 端口上。

2、将 Grove* 线缆的一端插入 Grove* 蜂鸣器,并将其另一端连接至 Grove 基座护罩 V2 的 D5 端口上。
3、将 Grove* 线缆的一端插入 Grove* RGB LCD,并将其另一端插入 Grove* 基座护罩 V2 的任意 I2C 端口。
英特尔® Edison 开发板设置
该示例使用 restclient-cpp 库执行面向远程数据服务器的 REST 呼叫。 您可在 lib 目录中获得该代码。 restclient-cpp 库要求 libcurl 软件包(默认已安装在英特尔® Edison 开发板上)。
此外,该使用使用 twilio-cplusplus 库执行面向 Twilio* SMS 服务器的 REST 呼叫。 您可在 lib 目录中获得面向 twilio-cplusplus 的代码。 twilio-cplusplus 库要求 ssl 和 crypto 软件包(默认已安装在英特尔® Edison 开发板上)。
Twilio* API 密钥
如欲选择发送文本讯息,您需要注册一个账户,并从 Twilio* 网站中获取 API 密钥:
若未事先获取 Twilio* API 密钥,您无法发送文本讯息, 不过仍然可以运行该示例,只是没有 SMS 告警。
数据存储服务器设置
您还可选择将该示例程序生成的数据存储在使用 Microsoft* Azure*、IBM* Bluemix*、AWS*、Node.js* 和 Redis* 数据存储部署的后端数据库中。
有关如何设置云数据服务器的信息,请访问:
https://github.com/intel-iot-devkit/intel-iot-examples-datastore
连接英特尔® Edison 开发板和 Eclipse*
1、在左下角右击 Target SSH Connections 选项卡的位置,并选择 New > Connection。

2、显示 Intel® IoT Target Connection 窗口。 在 Filter 字段中,输入开发板的名称。

3、在 Select one of the found connections 列表中选择设备名称并单击 OK。

4、在 Target SSH Connections 选项卡中,右击设备并选择 Connect。

如果收到有关用户名和密码的提示,用户名为 root,密码为您在配置英特尔® Edison 开发板时指定的密码。
使用云服务器运行该示例
如欲通过可选后端数据库运行该示例,需要设置 SERVER 和 AUTH_TOKEN 环境变量。 该操作可在 Eclipse* 中执行,以下所示:
1、在 Run 菜单中选择 Run Configurations。显示 Run Configurations 对话框。
2、在 C/C++ Remote Application 下方单击 doorbell。这样可以显示有关应用的信息。
3、除使用与设置对应的服务器和验证令牌外,在 Commands to execute before application 字段中添加环境变量,如下所示:
chmod 755 /tmp/fire-alarm; export SERVER="http://intel-iot-example-data.azurewebsites.net/logger/fire-alarm"; export AUTH_TOKEN="Enter Auth Token Here"; export TWILIO_SID="Enter Twilio SID Here"; export TWILIO_TOKEN="Enter Twilio Token Here"; export TWILIO_TO="Enter Number to Send to here Formattted 555-555-5555"; export TWILIO_FROM="Enter Number to be Sent >From Here Formated 555-555-5555"
4、单击 Apply 以保存新的环境变量。
现在,如果使用 Run 按钮运行应用,应该能够调用您的服务器以保存英特尔® Edison 开发板的数据。
在英特尔® Edison 开发板上运行代码
准备运行该示例时,在 Eclipse* 中单击顶部菜单栏中的 Run。

这样将使用 Cross G++ Compiler 编译程序,使用 Cross G++ Linker 进行链接、将二进制代码传输至英特尔® Edison 开发板,然后在开发板上执行代码。
运行程序后,您将看到类似于下图中的输出。

成功的输出应该与下图中的输出类似。

程序上传至英特尔® Edison 开发板后,开始持续监控温度。 如果超过阀值,Fire Alarm! 消息将显示在 LCD 上。

当温度传感器被加热,Eclipse* 控制台将显示另一条输出信息,与上图类似。 这表示您已成功发出 SMS 告警。

如欲获取 18 个英特尔® 物联网技术代码示例(用 C++ 编写)入门的完整列表,请参阅本篇英特尔® 开发人员专区博文 18 个用 C++ 编写的英特尔® 物联网技术代码示例入门。
如欲获取 18 个英特尔® 物联网技术代码示例(用 JavaScript* 编写)入门的完整列表,请参阅本篇英特尔® 开发人员专区博文 发布 18 个用 JavaScript* 编写的英特尔® 物联网技术代码示例入门。
有关该代码示例的更多详情,请访问 GitHub*