65.9K
CodeProject 正在变化。 阅读更多。
Home

C++ 中的地震探测器

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2017年3月27日

CPOL

6分钟阅读

viewsIcon

10132

此地震探测器应用程序是英特尔® 物联网 (IoT) 开发套件、英特尔® Edison 开发板、英特尔® IoT 网关、云平台、API 和其他技术系列操作指南英特尔® 物联网 (IoT) 代码示例练习的一部分。

获取全新的英特尔® 物联网开发套件,一个完整的软硬件解决方案,让开发者能够利用英特尔® Galileo 和英特尔® Edison 开发板创建激动人心的新解决方案。访问英特尔® 物联网开发者专区

引言

此地震探测器应用程序是英特尔® 物联网 (IoT) 开发套件、英特尔® Edison 开发板、英特尔® IoT 网关、云平台、API 和其他技术系列操作指南英特尔® 物联网 (IoT) 代码示例练习的一部分。

通过此练习,开发人员将学习如何:

  • 连接 Intel® Edison 板或 Intel® IoT 网关,这些计算平台专为原型设计和生产物联网和可穿戴计算产品而设计。
  • 使用英特尔® 物联网开发套件中的 MRAA 和 UPM 接口与英特尔® 或 Arduino 101*(在美国以外地区品牌为 Genuino 101*)开发板的 IO 和传感器存储库连接,这是一个完整的软硬件解决方案,旨在帮助开发者探索物联网并实施创新项目。
  • 在英特尔® System Studio IoT 版(用于 C/C++ 和 Java* 开发的 Eclipse IDE)中运行这些代码示例,以创建与传感器和执行器交互的应用程序,从而快速开始为英特尔® Edison 开发板或英特尔® Galileo 开发板开发软件。
  • 调用美国地质调查局 (USGS) API 的服务以访问地震数据。

它是什么

使用英特尔® Edison 开发板或英特尔® IoT 网关,此项目可让您创建一个地震探测器,该探测器可以

  • 使用数字加速度计感应运动。
  • 使用 USGS API 检查实时地震数据。
  • 在 LCD 上显示地震警告。

工作原理

此地震探测器不断读取 3 轴数字加速度计,寻找可能指示地震的运动。

当它认为检测到地震时,它使用 USGS API 尝试验证地震是否确实发生。

如果探测器认为确实发生了地震,它会使用 LCD 发出警告。

硬件要求

Grove* 入门套件,包含

  1. 带有 Arduino* 扩展板的英特尔® Edison 开发板
  2. Grove Base Shield V2
  3. Grove 3 轴数字加速度计
  4. Grove RGB LCD

DFRobot* 英特尔® Edison 开发板入门套件,包含

  1. 带有 Arduino* 扩展板的英特尔® Edison 开发板
  2. 三轴加速度计.
  3. LCD 键盘 Shield

软件要求

  1. Intel® System Studio(用于 C/C++ 和 Java* 开发的 Eclipse IDE)

如何设置

此示例已是 Intel® System Studio 中包含的物联网示例之一。要开始使用它,请按照以下步骤操作

  1. 从主菜单中,选择 Intel® IoT > 导入 IoT 示例

  2. 展开树状视图中的 C++ > 操作指南代码示例 > 地震探测器,然后单击导入示例

  3. 从选择窗口中选择您的开发板,然后选择 下一步

  4. 从选择项目类型窗口中选择 Intel® IoT C/C++ 项目,然后单击 下一步

  5. 从选择目标操作系统下拉菜单中选择 Yocto,然后单击 下一步

  6. 下一个选项卡将要求输入连接名称和目标名称。如果您不知道这些,请单击 搜索目标

  7. 从下拉列表中选择您的 Edison。选择 确定

  8. 您的连接名称和目标名称应该已填写。选择 完成

  9. 将打开一个新窗口,您需要为项目选择一个名称并单击 下一步

  10. 您的项目源文件现在默认在 IDE 的左上方可用。

连接 Grove* 传感器

您需要将 Grove* Base Shield V2 连接到 Arduino* 兼容的扩展板,才能将所有 Grove 设备插入 Grove Base Shield V2。确保将 Grove Base Shield V2 上的微型 VCC 开关设置为 5V

  1. 将 Grove 连接线的一端插入 Grove 加速度计,另一端连接到 Grove Base Shield V2 上的任何 I2C 端口。
  2. 将 Grove 连接线的一端插入 Grove RGB LCD,另一端连接到 Grove Base Shield V2 上的任何 I2C 端口。

连接 DFRobot* 传感器

您需要将 LCD Keypad Shield 连接到与 Arduino* 兼容的 breakout 板,才能将所有 DFRobot* 设备插入 LCD Keypad Shield。

  1. 将 DFRobot* 连接线的一端插入三轴加速度计上标有“X”的插头,然后将另一端连接到 LCD 键盘保护罩上的 A3 端口。

  2. 将 DFRobot* 连接线的一端插入三轴加速度计上标有“Y”的插头,然后将另一端连接到 LCD 键盘保护罩上的 A2 端口。

  3. 将 DFRobot* 连接线的一端插入三轴加速度计上标有“Z”的插头,然后将另一端连接到 LCD 键盘保护罩上的 A1 端口。

英特尔® Edison 开发板设置

此示例使用 restclient-cpp 库对远程数据服务器执行 REST 调用。代码可在 lib 目录中找到。restclient-cpp 库需要 libcurl 包,该包在英特尔® Edison 开发板上默认已安装。

Intel® IoT 网关设置

您可以使用连接到 Arduino 101*(在美国以外品牌为 Genuino 101*)的 Intel® IoT 网关运行此示例。

请确保您的 Intel® IoT 网关已使用 Intel® IoT 网关软件套件设置,请按照此处网站上的说明操作

https://software.intel.com/en-us/getting-started-with-intel-iot-gateways-and-iotdk

Arduino 101*(在美国以外地区品牌为 Genuino 101*)需要安装 Firmata* 固件。如果您的网关上安装了 IMRAA,这将自动完成。否则,请手动将 StandardFirmata 或 ConfigurableFirmata 草图安装到您的 Arduino 101*(在美国以外地区品牌为 Genuino 101*)上。

为您的硬件套件配置示例

要为正在使用的特定硬件套件(Grove* 或 DFRobot*)配置示例

  1. 从主菜单中,选择 项目 > 属性 对话框会显示。

  2. 展开 C/C++ General 部分。
    单击 路径和符号 子部分,然后单击 符号 选项卡。

  3. 现在单击 GNU C++,然后单击 添加 按钮。

  4. 名称 字段中,输入“INTEL_IOT_KIT”。在 字段中,根据您希望使用的硬件套件,输入“GROVEKIT”(这是默认值)或“DFROBOTKIT”。

  5. 您的新名称符号和值现在将显示。单击 确定

  6. 将出现另一个对话框,要求重建项目。单击 确定

将 Intel® Edison 板或 Intel® IoT 网关连接到 Intel® System Studio

  1. 目标 SSH 连接选项卡上,右键点击您的设备,然后选择连接

如果提示输入用户名和密码,用户名为 root,密码是您在配置英特尔® Edison 开发板或英特尔® IoT 网关时指定的密码。

在英特尔® Edison 开发板或英特尔® IoT 网关上运行代码到英特尔® System Studio

准备好运行示例时,单击 Eclipse 顶部菜单栏中的 运行

这将使用 Cross G++ 编译器编译程序,使用 Cross G++ 链接器链接程序,将二进制文件传输到 Intel® Edison 板或 Intel® IoT 网关,然后在其板上执行。

运行程序后,您应该会看到与下图类似的输出。

当程序正确加载时,您的 Grove* RGB LCD 将显示 quakebot ready 消息。

如果您摇动加速度计,探测器会检查是否真的发生了地震。

重要提示:此软件为示例软件。它不设计或旨在用于任何医疗、救生或生命支持系统、运输系统、核系统,或任何其他任务关键型应用,其中系统故障可能导致严重伤害或死亡。该软件可能未经充分测试,可能包含错误或缺陷;它可能不打算或不适合商业发布。该软件尚未获得任何监管批准,因此该软件可能未获准在某些国家或环境中使用。

© . All rights reserved.