<br><strong><font size="5">简介</font></strong></br>
这款智能火警应用是一系列英特尔® 物联网技术代码示例入门实践(使用英特尔® 物联网开发人员套件、英特尔® Edison 开发板、云平台、API 和其他技术)的一部分。
从该实践中,开发人员可以学习到如何:
<li>连接英特尔® Edison 开发板 — 一个旨在创建原型,生产物联网和可穿戴计算产品的计算平台。</li>
<li>使用英特尔® 物联网开发人员套件中的 MRAA 和 UPM 与英特尔® Edison 开发板 IO 和传感器库交互;该套件是一款完整的软硬件解决方案,可帮助开发人员探索物联网和实施创新项目。</li>
<li>在英特尔® System Studio IoT Edition(面向 C/C++ 和 Java* 开发的 Eclipse* IDE)中运行这些代码示例;该工具是一个 IDE,可创建与传感器和制动器交互的应用,支持立即开发面向英特尔® Edison 或英特尔® Galileo 开发板的软件。</li>
<li>使用 Microsoft* Azure* 的 Azure Redis Cache*、IBM* Bluemix* 的 Redis Store* 或使用 Amazon* Web Services* 的 Redis* 的 ElastiCache*,连接物联网解决方案(包括数据分析、机器学习和各种生产力工具)的不同云服务以简化将传感器连接到云,支持物联网项目快速正常运行的效率提高工具,设置 Web 应用服务器以保存火警数据。</li>
<li>调用 Twilio* API 服务以发送文本讯息。</li>
<br><strong><font size="5">它是什么</font></strong></br>
使用英特尔® Edison 开发板,该项目支持您创建具备下列功能的智能火警:
<li>持续监控存在危险的温度水平;</li>
<li>使用蜂鸣器发送声响告警;</li>
<li>使用 LCD 发送可视告警;</li>
<li>使用基于云的存储跟踪火警数据;</li>
<li>向他人发送有关火警的文本信息。</li>
<br><strong><font size="5">工作原理</font></strong></br>
该智能火警使用 Grove* 温度传感器监控外界温度。
如果温度高于阀值(比如设为 28 摄氏度),将通过蜂鸣器发出警报并在 LCD 上显示告警。
此外,它还通过 Twilio* 向特定号码发送 SMS,向他们警报火灾危险。
此外,它还可使用在 Microsoft* Azure*、IBM* Bluemix* 或 AWS*账户中运行的英特尔物联网示例数据存储 (Intel IoT Examples Datastore) 记录火灾事件。
<strong><font size="5">硬件要求</font></strong>
Grove* Starter Kit,包括
<li>1、带有 Arduino breakout 开发板的英特尔® Edison 开发板</li>
<li>2、Grove * 基座护罩 V2</li>
<li>3、<a href="http://iotdk.intel.com/docs/master/upm/node/classes/grovetemp.html">Gro…* 温度传感器</a></li>
<li>4、<a href="http://iotdk.intel.com/docs/master/upm/node/classes/buzzer.html">Grove* 蜂鸣器</a></li>
<li>5、<a href="http://iotdk.intel.com/docs/master/upm/node/classes/jhd1313m1.html">Gro…* RGB LCD</a></li>
<br><strong><font size="5">软件要求</font></strong></br>
<li>1、<a href="https://software.intel.com/zh-cn/eclipse-getting-started-guide">英特尔® System Studio IoT Edition(面向 C/C++ 和 Java* 开发的 Eclipse* IDE)</a></li>
<li>2、Microsoft* Azure*、IBM* Bluemix* 或 AWS* 账户</li>
<li>3、Twilio* 账户</li>
<br><strong><font size="5">如何设置</font></strong></br>
首先,使用电脑上的 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 size="5">将程序添加至 Eclipse*</font></strong>
在 Eclipse* 中选择 Import Wizard 以将现有项目导入至工作区,如下所示:
1、从主菜单中选择 File > Import。
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10793-1.png…; alt=""></center>
<br>2、Import Wizard 对话框打开。 选择 General > Existing Project into Workspace 并单击 Next。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10794-2.png…; alt=""></center>
<br>3、单击 Select root directory,然后单击相关的 Browse 按钮,以找到包含项目文件的目录。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10795-3.png…; alt=""></center>
<br>4、在Projects下方选择目录和您希望导入的项目文件,单击 OK,然后单击 Finish 以将文件导入至 Eclipse*。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10796-4.png…; alt=""></center> </br>
<br>5、您的主 .cpp 程序将显示在 src 文件夹下方的工作区。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10797-5.png…; alt=""></center>
<br><strong><font size="5">连接 Grove* 传感器</font></strong></br>
您需要具有连接至兼容 Arduino* 的 breakout 开发板的 Grove* 基座护罩 V2,以便将所有 Grove* 设备插入 Grove* 基座护罩 V2。 确保 Grove* 基座护罩 V2 上的微型 VCC 开关设置为 5V。
1、将 Grove* 线缆的一端插入 Grove* 温度传感器,并将其另一端连接至 Grove* 基座护罩 V2 的 A0 端口上。
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10798-6.jpg…; alt=""></center>
<br>2、将 Grove* 线缆的一端插入 Grove* 蜂鸣器,并将其另一端连接至 Grove 基座护罩 V2 的 D5 端口上。</br>
3、将 Grove* 线缆的一端插入 Grove* RGB LCD,并将其另一端插入 Grove* 基座护罩 V2 的任意 I2C 端口。
<strong><font size="5">英特尔® Edison 开发板设置</font></strong>
该示例使用 restclient-cpp 库执行面向远程数据服务器的 REST 呼叫。 您可在 lib 目录中获得该代码。 restclient-cpp 库要求 libcurl 软件包(默认已安装在英特尔® Edison 开发板上)。
此外,该使用使用 twilio-cplusplus 库执行面向 Twilio* SMS 服务器的 REST 呼叫。 您可在 lib 目录中获得面向 twilio-cplusplus 的代码。 twilio-cplusplus 库要求 ssl 和 crypto 软件包(默认已安装在英特尔® Edison 开发板上)。
<strong><font size="5">Twilio* API 密钥</font></strong>
如欲选择发送文本讯息,您需要注册一个账户,并从 Twilio* 网站中获取 API 密钥:
若未事先获取 Twilio* API 密钥,您无法发送文本讯息, 不过仍然可以运行该示例,只是没有 SMS 告警。
<strong><font size="5">数据存储服务器设置</font></strong>
您还可选择将该示例程序生成的数据存储在使用 Microsoft* Azure*、IBM* Bluemix*、AWS*、Node.js* 和 Redis* 数据存储部署的后端数据库中。
有关如何设置云数据服务器的信息,请访问:
https://github.com/intel-iot-devkit/intel-iot-examples-datastore
<strong><font size="5">连接英特尔® Edison 开发板和 Eclipse*
1、在左下角右击 Target SSH Connections 选项卡的位置,并选择 New > Connection。
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10799-7.png…; alt=""></center>
<br>2、显示 Intel® IoT Target Connection 窗口。 在 Filter 字段中,输入开发板的名称。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10800-8.png…; alt=""></center>
<br>3、在 Select one of the found connections 列表中选择设备名称并单击 OK。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10801-9.png…; alt=""></center>
<br>4、在 Target SSH Connections 选项卡中,右击设备并选择 Connect。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10802-10.pn…; alt=""></center>
<br>如果收到有关用户名和密码的提示,用户名为 root,密码为您在配置英特尔® Edison 开发板时指定的密码。</br>
<strong><font size="5">使用云服务器运行该示例</font></strong>
如欲通过可选后端数据库运行该示例,需要设置 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 开发板的数据。
<strong><font size="5">在英特尔® Edison 开发板上运行代码</font></strong>
准备运行该示例时,在 Eclipse* 中单击顶部菜单栏中的 Run。
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10803-11.pn…; alt=""></center>
<br>这样将使用 Cross G++ Compiler 编译程序,使用 Cross G++ Linker 进行链接、将二进制代码传输至英特尔® Edison 开发板,然后在开发板上执行代码。</br>
运行程序后,您将看到类似于下图中的输出。
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10804-12.pn…; alt=""></center>
<br>成功的输出应该与下图中的输出类似。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10805-13.pn…; alt=""></center>
<br>程序上传至英特尔® Edison 开发板后,开始持续监控温度。 如果超过阀值,Fire Alarm! 消息将显示在 LCD 上。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10806-14.jp…; alt=""></center>
<br>当温度传感器被加热,Eclipse* 控制台将显示另一条输出信息,与上图类似。 这表示您已成功发出 SMS 告警。</br>
<center><img src="http://intel.eetrend.com/files/2016-10/wen_zhang_/100003307-10807-15.pn…; alt=""></center>
<br>如欲获取 18 个英特尔® 物联网技术代码示例(用 C++ 编写)入门的完整列表,请参阅本篇英特尔® 开发人员专区博文 <a href="https://software.intel.com/zh-cn/blogs/18-how-to-intel-iot-code-samples…; rel="nofollow">18 个用 C++ 编写的英特尔® 物联网技术代码示例入门</a>。</br>
如欲获取 18 个英特尔® 物联网技术代码示例(用 JavaScript* 编写)入门的完整列表,请参阅本篇英特尔® 开发人员专区博文 <a href="https://software.intel.com/zh-cn/blogs/2015/11/04/announcing-18-new-how…; rel="nofollow">发布 18 个用 JavaScript* 编写的英特尔® 物联网技术代码示例入门</a>。
有关该代码示例的更多详情,请访问 <a href="https://github.com/intel-iot-devkit/how-to-code-samples" rel="nofollow">GitHub*</a>