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

JavaScript 中的火警

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (3投票s)

2017年5月18日

CPOL

9分钟阅读

viewsIcon

9814

这款智能火警应用程序是使用 Intel® IoT Developer Kit、Intel® Edison 板、Intel® IoT Gateway、云平台、API 和其他技术编写的一系列物联网 (IoT) 代码示例练习的一部分。

获取新的 Intel® IoT Developer Kit,这是一个完整的硬件和软件解决方案,允许开发人员使用 Intel® Galileo 和 Intel® Edison 板创建令人兴奋的新解决方案。请访问 Intel® Developer Zone for IoT

引言

这款智能火警应用程序是使用 Intel® IoT Developer Kit、Intel® Edison 板、Intel® IoT Gateway、云平台、API 和其他技术编写的一系列物联网 (IoT) 代码示例练习的一部分。

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

  • 连接 Intel® Edison 板或 Intel® IoT 网关,这些计算平台专为原型设计和生产物联网和可穿戴计算产品而设计。
  • 使用 Intel® IoT Developer Kit 中的 MRAA 和 UPM 与 Intel® Edison 板或 Arduino 101*(在美国以外地区品牌为 Genuino 101*)板的 IO 和传感器存储库进行接口,这是一个完整的硬件和软件解决方案,可帮助开发人员探索物联网并实现创新项目。
  • 在 Intel® XDK IoT Edition 中运行此代码示例,这是一个用于创建与传感器和执行器交互的应用程序的 IDE,可以快速开始为 Intel® Edison 板或 Intel® IoT Gateway 开发软件。
  • 设置一个 Web 应用程序服务器,允许用户输入访问代码以禁用警报系统,并使用 Microsoft Azure* 的 Azure Redis Cache*、IBM Bluemix* 的 Redis Store* 或 Amazon Web Services (AWS)* 的使用 Redis* 的 Elasticache* 来存储这些警报数据,这些是用于连接物联网解决方案的各种云服务,包括数据分析、机器学习和各种生产力工具,以简化将传感器连接到云并将您的物联网项目启动并运行的过程。
  • 连接到使用 Microsoft Azure* 的 IoT Hub、IBM Bluemix* 的 IoT、Amazon Web Services (AWS)* 的 IoT、AT&T M2X*、GE 的 Predix* 或 SAP Cloud Platform* IoT 的服务器,这些是用于机器到机器通信的各种基于云的物联网平台。
  • 调用 Twilio* API 的服务以发送短信。

它是什么

使用 Intel® Edison 板或 Intel® IoT Gateway,此项目可让您创建一个智能火警,该火警能够

  • 持续监测不安全的温度水平。
  • 通过蜂鸣器发出声音通知。
  • 通过 LCD 发出视觉通知。
  • 使用基于云的数据存储跟踪火灾事件。
  • 发送短信以警示他人可能发生的火灾。

工作原理

这款智能火警通过连接的温度传感器监测环境温度。

如果温度超过某个阈值(在此示例中设置为 28 摄氏度),它将通过蜂鸣器发出警报并在 LCD 上显示警报。

此外,它还可以通过 Twilio* 向指定号码发送短信,警告收件人可能存在的火灾危险。

可选地,数据可以使用您自己的 Microsoft Azure*、IBM Bluemix*、AT&T M2X*、AWS*、Predix* 或 SAP* 帐户存储。

硬件要求

此示例可与 Seeed Studio 的 Grove* Starter Kit Plus 或 DFRobot* Edison Starter Kit 一起使用。

Grove* Starter Kit Plus,包含

  1. 带 Arduino* 分线板的 Intel® Edison 模块或带 Arduino 101 的 Intel® IoT Gateway
  2. Grove* 温度传感器
  3. Grove* 蜂鸣器
  4. Grove* RGB LCD

DFRobot* 适用于 Intel® Edison 的入门套件,包含

  1. 带 Arduino* 分线板的 Intel® Edison 模块或带 Arduino 101 的 Intel® IoT Gateway
  2. 模拟温度传感器
  3. 蜂鸣器
  4. LCD 键盘 Shield

软件要求

  1. 英特尔® XDK 物联网版
  2. Microsoft Azure*、IBM Bluemix*、AT&T M2X*、AWS*、Predix* 或 SAP* 帐户(可选)
  3. Twilio* 账户(可选)

如何设置

要开始,请按照以下方式使用 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 文件后,解压它,然后使用此示例目录中的文件。

将程序添加到 Intel® XDK IoT Edition

在 Intel® XDK IoT Edition 中,选择 导入您的 Node.js 项目

新建项目 屏幕上,单击文件夹图标

导航到示例项目所在的目录并选择它

为项目选择一个名称,然后单击 创建 按钮。然后单击 继续 按钮完成项目的创建

您需要从计算机连接到您的 Intel® Edison 板才能将其代码发送到板上。

单击左下角的 IoT 设备 菜单。如果您的 Intel® Edison 板被自动识别,请选择它。

否则,请选择 手动添加连接。在 地址 字段中,键入 192.168.2.15。在 端口 字段中,键入 58888。单击 连接 以保存您的连接。

在 Intel® Edison 板上手动安装程序

或者,您可以手动设置 Intel® Edison 板上的代码。

在您建立与 Intel® Edison 板的 SSH 连接后,按照以下方式克隆 操作指南代码示例 存储库

$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git

然后,导航到包含此示例的目录。

要在 Intel® Edison 板上安装 Git*(如果您还没有的话),请建立与该板的 SSH 连接并运行以下命令

$ opkg install git

连接 Grove* 传感器

您需要将 Grove* Shield 连接到兼容 Arduino* 的分线板,以便将所有 Grove* 设备插入 Grove* Shield。确保 Grove* Shield 上的微型 VCC 开关设置为 5V

  1. 将 Grove* 电缆的一端插入 Grove* 温度传感器,另一端连接到 Grove* Shield 上的 A0 端口。

  2. 将 Grove* 电缆的一端插入 Grove* 蜂鸣器,另一端连接到 Grove* Shield 上的 D5 端口。

  3. 将 Grove* 电缆的一端插入 Grove* RGB LCD,另一端连接到 Grove* Shield 上的任何 I2C 端口。

连接 DFRobot* 传感器

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

  1. 将 DFRobot* 电缆的一端插入模拟温度传感器,另一端连接到 LCD 键盘扩展板上的 A3 端口。

  2. 将 DFRobot* 电缆的一端插入蜂鸣器,另一端连接到 LCD 键盘 Shield 上的 A2 端口。

手动设置 Intel® Edison 板

如果您手动在 Intel® Edison 板上运行此代码,则需要安装一些依赖项。

要获取此示例在 Intel® Edison 板上执行所需的 Node.js* 模块,请运行以下命令

npm install

Intel® IoT 网关设置

您可以使用连接到 Arduino 101 的 Intel® IoT 网关运行此示例。

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

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

您必须按照上述链接中的“连接到 Intel® XDK”部分中的说明,在 Intel® IoT Gateway 上安装 Intel® XDK。

Arduino 101 需要安装 Firmata* 固件。如果您在网关上安装了 IMRAA,这将自动完成。否则,请手动将 StandardFirmata 或 ConfigurableFirmata 草图安装到您的 Arduino 101。

您还需要配置示例中的 config.json 以使用 Arduino 101。请参阅下面的“配置示例”部分。

Twilio* API 密钥

要选择性地发送短信,您需要注册一个账户并从 Twilio* 网站获取 API 密钥

https://www.twilio.com

如果不先获取 Twilio API 密钥,您将无法发送短信。您仍然可以运行此示例,但没有短信功能。

通过修改 config.json 文件中的 TWILIO_ACCT_SIDTWILIO_AUTH_TOKEN 键,将您的 Twilio* API 密钥和身份验证令牌传递给示例程序,如下所示

{
  "ALARM_THRESHOLD": 28,
  "TWILIO_ACCT_SID": "YOURAPIKEY",
  "TWILIO_AUTH_TOKEN": "YOURTOKEN"
}

物联网云设置

您可以选择性地使用 Microsoft Azure*、IBM Bluemix*、AT&T M2X*、AWS*、Predix* 或 SAP* 的基于云的物联网平台存储此示例程序生成的数据。

有关如何连接到您自己的云服务器的信息,请访问

https://github.com/intel-iot-devkit/iot-samples-cloud-setup

数据存储服务器设置

您可以选择将此示例程序生成的数据存储在 Microsoft Azure*、IBM Bluemix* 或 AWS 中使用 Node.js* 和 Redis* 数据存储部署的后端数据库中。

有关如何设置自己的云数据服务器的信息,请访问:

https://github.com/intel-iot-devkit/intel-iot-examples-datastore

配置示例

要配置 Grove* 套件的示例,只需将 config.json 中的 kit 键设置为 grove。要配置 DFRobot* 套件的示例,请将 config.json 中的 kit 键更改为 dfrobot,如下所示

{
  "kit": "dfrobot",
  "ALARM_THRESHOLD": 28
}

要为 Arduino 101 配置示例,请将 platform 键和值 firmata 添加到 config.json,如下所示

{
  "kit": "grove",
  "platform": "firmata",
  "ALARM_THRESHOLD": 28
}

要配置发送可选短信的示例,请按照上述说明从 Twilio* 网站获取 API 密钥,然后将 TWILIO_ACCT_SIDTWILIO_AUTH_TOKEN 键添加到 config.json 文件,如下所示

{
  "kit": "grove",
  "ALARM_THRESHOLD": 28,
  "TWILIO_ACCT_SID": "YOURAPIKEY",
  "TWILIO_AUTH_TOKEN": "YOURTOKEN"
}

要配置可选的 Microsoft Azure*、IBM Bluemix* 或 AWS 数据存储的示例,请在 config.json 文件中添加 SERVERAUTH_TOKEN 键,如下所示

{
  "kit": "grove",
  "ALARM_THRESHOLD": 28,
  "SERVER": "http://intel-examples.azurewebsites.net/logger/fire-alarm",
  "AUTH_TOKEN": "s3cr3t"
}

要同时配置短信和 Microsoft Azure*、IBM Bluemix* 或 AWS 数据存储的示例,请在 config.json 文件中添加 TWILIO_ACCT_SIDTWILIO_AUTH_TOKENSERVERAUTH_TOKEN 键,如下所示

{
  "kit": "grove",
  "ALARM_THRESHOLD": 28,
  "TWILIO_ACCT_SID": "YOURAPIKEY",
  "TWILIO_AUTH_TOKEN": "YOURTOKEN",
  "SERVER": "http://intel-examples.azurewebsites.net/logger/fire-alarm",
  "AUTH_TOKEN": "s3cr3t"
}

有关如何为可选的 Microsoft Azure*、IBM Bluemix*、AT&T M2X*、AWS*、Predix* 或 SAP* IoT 云服务器配置示例的信息,请访问

https://github.com/intel-iot-devkit/iot-samples-cloud-setup

使用 Intel® XDK IoT Edition 运行程序

当您准备好运行示例时,请确保已保存所有文件。

单击 上传 图标将文件上传到 Intel® Edison 板。

单击 Intel® XDK IoT Edition 底部的 运行 图标。这将会在 Intel® Edison 板上运行代码。

如果您对代码进行了更改,请单击 上传并运行。这将在 Intel® Edison 板上运行您所做的最新更改。

程序运行时,您将看到与上面类似的输出。

手动运行程序

要在 Intel® Edison 板上手动运行示例,请建立与该板的 SSH 连接并执行以下命令

node index.js

确定 Intel® Edison 板的 IP 地址

您可以通过运行以下命令来确定 Intel® Edison 板连接到的 IP 地址

ip addr show | grep wlan

您将看到类似以下的输出

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    inet 192.168.1.13/24 brd 192.168.1.255 scope global wlan0

IP 地址显示在 inet 旁边。在上例中,IP 地址为 192.168.1.13

重要提示:本软件为示例软件。它不适用于任何医疗、生命支持或生命维持系统、运输系统、核系统或任何其他可能导致严重伤害或死亡的关键任务应用。该软件可能未经完全测试,并且可能包含错误或缺陷;它可能不适用于商业发布。尚未获得该软件的任何监管批准,因此该软件可能未在某些国家或地区获得使用认证。

© . All rights reserved.