本教程旨在指导开发者如何使用Intel® Edison开发板和相关硬件,结合物联网(IoT)技术,创建一个地震检测器。通过本教程,开发者将学习到如何连接Intel® Edison开发板或Intel® IoT网关,如何使用MRAA和UPM库与传感器进行交互,以及如何利用美国地质调查局(USGS)的API获取实时地震数据。
简介
地震检测器应用程序是一系列Intel®物联网(IoT)代码示例练习的一部分,这些练习使用Intel® IoT开发者工具包、Intel® Edison开发板、Intel®IoT网关、云平台、APIs和其他技术。通过这个练习,开发者将学会:
- 连接Intel® Edison开发板或Intel® IoT网关,这些计算平台专为物联网和可穿戴计算产品的原型设计和生产而设计。
- 使用Intel®IoT开发者工具包中的MRAA和UPM库,与Intel®或Arduino 101*(在美国以外地区品牌为Genuino 101*)开发板的IO和传感器库进行交互,这是一套完整的硬件和软件解决方案,帮助开发者探索物联网并实现创新项目。
- 在Intel® System Studio IoT Edition(Eclipse IDE用于C/C++和Java*开发)中运行这些代码示例,创建与传感器和执行器交互的应用程序,为开发Intel® Edison开发板或Intel® Galileo开发板的软件提供快速启动。
- 调用美国地质调查局(USGS) API的服务,获取地震数据。
项目概述
使用Intel® Edison开发板或Intel® IoT网关,本项目允许创建一个地震检测器,该检测器:
- 使用数字加速度计感应运动。
- 使用USGS API检查实时地震数据。
- 在LCD上显示地震警告。
工作原理
这个地震检测器不断地读取3轴数字加速度计,寻找可能表明地震发生的运动。当它认为检测到地震时,它使用USGS API尝试验证是否真的发生了地震。如果检测器认为确实发生了地震,它会通过LCD发出警告。
硬件要求
Grove*入门套件,包含:
- 带有Arduino*扩展板的Intel® Edison开发板
- Grove基础盾V2
- Grove 3轴数字加速度计
- Grove RGB LCD
DFRobot*入门套件,专为Intel® Edison开发板设计,包含:
- 带有Arduino*扩展板的Intel® Edison开发板
- 三轴加速度计
- LCD键盘盾
软件要求
Intel® System Studio(Eclipse IDE用于C/C++和Java*开发)
如何设置
这个示例已经包含在Intel® System Studio的IoT示例中。要开始使用它,请按照以下步骤操作:
- 从主菜单中选择Intel®IoT> Import IoT Examples。
- 展开C++ > How To Code Samples > Earthquake Detector的树状视图,然后点击Import Example。
- 从选择窗口中选择开发板,然后选择Next。
- 从Select a project type窗口中选择Intel® IoT C/C++ project,然后点击Next。
- 从Selct target OS下拉菜单中选择Yocto,然后点击Next。
- 接下来的标签会询问连接名称和目标名称。如果不知道这些,请点击Search Target。
- 从下拉列表中选择Edison。选择OK。
- 连接名称和目标名称应该已经填写完毕。选择Finish。
- 一个新的窗口将为打开,需要为项目选择一个名称,然后点击Next。
- 项目源文件现在将在IDE的左上角默认可用。
连接Grove*传感器
需要将Grove*基础盾V2连接到Arduino*兼容的扩展板,以便将所有Grove设备插入Grove基础盾V2。确保已经将Grove基础盾V2上的微小VCC开关设置为5V。
- 将Grove电缆的一端插入Grove加速度计,另一端连接到Grove基础盾V2上的任何一个I2C端口。
- 将Grove电缆的一端插入Grove RGB LCD,另一端连接到Grove基础盾V2上的任何一个I2C端口。
连接DFRobot*传感器
需要将LCD键盘盾连接到Arduino*兼容的扩展板,以便将所有DFRobot*设备插入LCD键盘盾。
- 将DFRobot*电缆的一端插入标记为"X"的三轴加速度计,然后将另一端连接到LCD键盘盾上的A3端口。
- 将DFRobot*电缆的一端插入标记为"Y"的三轴加速度计,然后将另一端连接到LCD键盘盾上的A2端口。
- 将DFRobot*电缆的一端插入标记为"Z"的三轴加速度计,然后将另一端连接到LCD键盘盾上的A1端口。
Intel® Edison开发板设置
这个示例使用restclient-cpp库执行对远程数据服务器的REST调用。代码可以在lib目录中找到。restclient-cpp库需要libcurl包,这已经在Intel® Edison开发板上默认安装了。
Intel® IoT网关设置
可以使用连接到Arduino 101*(在美国以外地区品牌为Genuino 101*)的Intel® IoT网关运行这个示例。
确保Intel® IoT网关已经使用Intel® IoT网关软件套件设置,按照这里网站上的说明进行:
Arduino 101*(在美国以外地区品牌为Genuino 101*)需要安装Firmata*固件。如果网关上安装了IMRAA,这将自动完成。否则,手动将StandardFirmata或ConfigurableFirmata草图安装到Arduino 101*(在美国以外地区品牌为Genuino 101*)上。
为硬件套件配置示例
要为使用的特定硬件套件配置示例,无论是Grove*还是DFRobot*:
- 从主菜单中选择Project > Properties,显示对话框。
- 展开C/C++ General部分。
- 点击Paths and Symbols子部分,然后点击Symbols标签。
- 现在点击GNU C++,然后点击Add按钮。
- 在Name字段中输入"INTEL_IOT_KIT"。在Value字段中,输入"GROVEKIT"(这是默认值)或"DFROBOTKIT",取决于希望使用的硬件套件。
- 新名称符号和值现在将显示出来。点击OK。
- 另一个对话框将出现,询问是否要重建项目。点击OK。
将Intel® Edison开发板或Intel® IoT网关连接到Intel® System Studio
在Target SSH Connections标签上,右键单击设备,然后选择Connect。
如果提示输入用户名和密码,用户名是root,密码是在配置Intel® Edison开发板或Intel® IoT网关时指定的密码。
在Intel® Edison开发板或Intel® IoT网关上运行代码
当准备运行示例时,点击Eclipse顶部菜单栏中的Run。
这将使用Cross G++编译器编译程序,使用Cross G++链接器链接它,将二进制文件传输到Intel® Edison开发板或Intel® IoT网关,然后在开发板上执行它。
运行程序后,应该看到类似于下图的输出。