Intel® IoT 技术代码示例:C++ 中的门铃
这个智能门铃应用程序是英特尔® 物联网技术代码示例系列教程的一部分,该系列教程使用英特尔® 物联网开发套件、英特尔® 爱迪生开发板、云平台、API 和其他技术。
获取全新的英特尔® 物联网开发套件,这是一个完整的硬件和软件解决方案,可帮助开发人员使用英特尔® Galileo 和英特尔® 爱迪生开发板创建激动人心的新解决方案。访问英特尔® 物联网开发人员专区。
引言
这个智能门铃应用程序是英特尔® 物联网技术代码示例系列教程的一部分,该系列教程使用英特尔® 物联网开发套件、英特尔® 爱迪生开发板、云平台、API 和其他技术。
通过此练习,开发人员将学习如何:
- 连接英特尔® Edison 开发板,这是一个专为物联网和可穿戴计算产品原型设计和生产而设计的计算平台。
- 使用英特尔® 物联网开发套件中的 MRAA 和 UPM 接口英特尔® Edison 开发板的 IO 和传感器库,这是一个完整的软硬件解决方案,可帮助开发人员探索物联网并实施创新项目。
- 在英特尔® System Studio 物联网版(用于 C/C++ 和 Java* 开发的 Eclipse* IDE)中运行这些代码示例,以创建与传感器和执行器交互的应用程序,从而快速启动英特尔® 爱迪生或英特尔® Galileo 开发板的软件开发。
- 使用 Microsoft* Azure* 的 Azure Redis Cache*、IBM* Bluemix* 的 Redis Store* 或 Amazon Web Services* 使用 Redis* 的 ElastiCache* 存储门铃响铃数据,这些都是用于连接物联网解决方案的不同云服务,包括数据分析、机器学习和各种生产力工具,以简化将传感器连接到云并快速启动物联网项目的过程。
它是什么
使用英特尔® 爱迪生开发板,这个项目可以让你创建一个智能门铃,它可以
- 在门铃响起时发出声音通知;
- 在门铃响起时显示视觉通知;
- 使用基于云的数据存储跟踪访客。
工作原理
当然,当按下 I2C 触摸传感器时,这个智能门铃会通过蜂鸣器发出声音。此外,它还在 LCD 上显示一条消息。
可选地,门铃响铃数据也可以使用运行在您自己的 Microsoft* Azure*、IBM* Bluemix* 或 AWS* 帐户中的英特尔物联网示例数据存储来存储。
硬件要求
Grove* 入门套件,包含
- 带有 Arduino* 扩展板的英特尔® Edison 开发板
- Grove* 基座扩展板 V2
- Grove* 触摸传感器
- Grove* 蜂鸣器
- Grove* RGB LCD
软件要求
- 英特尔® System Studio 物联网版(用于 C/C++ 和 Java* 开发的 Eclipse* IDE)
- Microsoft* Azure*、IBM* Bluemix* 或 AWS* 帐户
如何设置
首先,使用 Git* 在您的计算机上克隆如何使用英特尔® 物联网技术代码示例存储库,如下所示:
$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git
想下载 .zip 文件?在您的网络浏览器中,访问https://github.com/intel-iot-devkit/how-to-code-samples,然后点击右下角的下载 ZIP 按钮。下载 .zip 文件后,解压缩它,然后使用该目录中的文件作为此示例。
将程序添加到 Eclipse*
在 Eclipse* 中,选择导入向导,将现有项目导入工作区,如下所示:
- 从主菜单中,选择文件 > 导入。
- 导入向导对话框打开。选择通用 > 现有项目到工作区,然后点击下一步。
- 点击选择根目录,然后点击相关的浏览按钮,找到包含项目文件的目录。
- 在项目下,选择包含您要导入的项目文件的目录,然后点击确定,再点击完成,将文件导入 Eclipse*。
- 您的主 .cpp 程序现在显示在工作区的src文件夹下。
连接 Grove* 传感器
您需要将 Grove* Base Shield V2 连接到 Arduino* 兼容的扩展板,以便将所有 Grove* 设备插入 Grove* Base Shield V2。确保将 Grove* Base Shield V2 上的微型 VCC 开关设置为 5V。
- 将 Grove* 电缆的一端插入 Grove* 触摸传感器,另一端连接到 Grove* 基座扩展板 V2 上的 D4 端口。
- 将 Grove* 电缆的一端插入 Grove* 蜂鸣器,另一端连接到 Grove* 基座扩展板 V2 上的 D5 端口。
- 将 Grove* 电缆的一端插入 Grove* RGB LCD,另一端连接到 Grove* Base Shield V2 上的任何 I2C 端口。
英特尔® Edison 开发板设置
此示例还使用 restclient-cpp 库来对远程数据服务器执行 REST 调用。代码可以在 lib 目录中找到。restclient-cpp 库需要 libcurl 包,该包默认已安装在英特尔® 爱迪生开发板上。
数据存储服务器设置
或者,您可以将此示例程序生成的数据存储在后端数据库中,该数据库使用 Microsoft* Azure*、IBM* Bluemix* 或 AWS*,以及 Node.js* 和 Redis* 数据存储进行部署。
有关如何设置自己的云数据服务器的信息,请访问:
https://github.com/intel-iot-devkit/intel-iot-examples-datastore
将英特尔® Edison 开发板连接到 Eclipse*
- 在左下角,右键点击目标 SSH 连接选项卡上的任意位置,然后选择新建 > 连接。
- 出现英特尔® 物联网目标连接窗口。在过滤器字段中,输入您的开发板名称。
- 在选择一个找到的连接列表中,选择您的设备名称,然后点击确定。
- 在目标 SSH 连接选项卡上,右键点击您的设备,然后选择连接。
如果提示输入用户名和密码,则用户名为 root,密码是您在配置英特尔® Edison 开发板时指定的密码。
使用云服务器运行示例
要使用可选的后端数据存储运行示例,您需要设置 SERVER
和 AUTH_TOKEN
环境变量。您可以在 Eclipse* 中完成此操作,如下所示:
- 从运行菜单中,选择运行配置。
显示运行配置对话框。 - 在C/C++ 远程应用程序下,点击门铃。
这会显示应用程序的信息。 -
在应用程序执行前要执行的命令字段中,添加环境变量,使其看起来像这样,除了使用与您自己的设置对应的服务器和身份验证令牌:
chmod 755 /tmp/doorbell;export SERVER="http://intel-examples.azurewebsites.net/counter/doorbell/inc"; export AUTH_TOKEN="YOURTOKEN"
-
点击应用保存您的新环境变量。
现在,当您使用运行按钮运行程序时,它应该能够调用您的服务器,直接从英特尔® Edison 开发板保存数据。
在英特尔® Edison 开发板上运行代码
当您准备运行示例时,点击 Eclipse* 顶部菜单栏中的运行。
这将使用 Cross G++ Compiler 编译程序,使用 Cross G++ Linker 链接程序,将二进制文件传输到英特尔® Edison 开发板,然后在开发板本身上执行它。
运行程序后,您应该会看到与下图类似的输出。
当程序上传并在英特尔® 爱迪生开发板上运行时,Grove* RGB LCD 显示上述消息。当按下 Grove* 触摸传感器时,您会听到蜂鸣器响起,如果您的服务器设置正确,您将收到通知。
有关 C++ 中 18 个“如何使用英特尔® 物联网技术代码示例”的完整列表,请访问此英特尔® 开发人员专区博客文章:现在提供 18 个“如何使用英特尔® 物联网技术代码示例”(C++ 版)。
有关 JavaScript* 中 18 个“如何使用英特尔® 物联网技术代码示例”的完整列表,请访问此英特尔® 开发人员专区博客文章:宣布 18 个新的“如何使用英特尔® 物联网技术代码示例”。
有关此代码示例的更多详细信息,请访问GitHub*。