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

Intel IoT 代码示例:浇水系统

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2016年4月18日

CPOL

7分钟阅读

viewsIcon

26882

这个自动浇水系统应用程序是利用 Intel® IoT Developer Kit、Intel® Edison 开发平台、云平台、API 和其他技术的一系列 Intel 物联网代码示例教程练习的一部分。

获取新的 Intel® IoT Developer Kit,这是一个完整的硬件和软件解决方案,可让开发者使用 Intel® Galileo 和 Intel® Edison 主板创建激动人心的新解决方案。请访问 Intel® 开发者中心(面向物联网)

引言

这个自动浇水系统应用程序是利用 Intel® IoT Developer Kit、Intel® Edison 开发平台、云平台、API 和其他技术的一系列 Intel 物联网代码示例教程练习的一部分。

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

  • 连接英特尔® Edison 开发平台,这是一种专为原型设计和生产物联网和可穿戴计算产品而设计的计算平台。
  • 使用 Intel® IoT Developer Kit 中的 MRAA 和 UPM 与 Intel® Edison 平台 IO 和传感器存储库进行交互,Intel® IoT Developer Kit 是一个完整的硬件和软件解决方案,可帮助开发者探索物联网并实施创新项目。
  • 在 Intel® XDK IoT Edition 中运行此代码示例,这是一个用于创建与传感器和执行器交互的应用程序的 IDE,可以快速开始为 Intel® Edison 或 Intel® Galileo 主板开发软件。
  • 设置一个 Web 应用程序服务器,使用 Microsoft* Azure* 的 Azure Redis Cache* 来存储浇水系统数据,Azure* 是用于连接物联网解决方案的云服务,包括数据分析、机器学习和各种生产力工具,可简化将传感器连接到云并将您的物联网项目快速启动并运行的过程。
  • 调用 Twilio* API 的服务以发送短信。

它是什么

使用 Intel® Edison 主板,该项目可让您创建一个自动浇水系统,该系统能够

  • 根据可配置的时间表打开或关闭水泵;
  • 使用水流传感器检测泵送是否按预期进行;
  • 通过内置的 Web 界面,使用手机可以访问该系统以设置浇水时间;
  • 使用基于云的数据存储跟踪浇水事件;
  • 如果系统未按预期工作,则发送短信通知收件人。

工作原理

此浇水系统允许您通过 Intel® Edison 直接提供的网页,使用您的手机设置浇水时间表。

它会在定期间隔自动检查湿度传感器数据,并在网页上显示这些数据。

如果水泵本应开启,但水流传感器未能按预期检测到水泵正在工作,它将通过 Twilio* 向指定号码发送短信,以便对浇水系统进行维修。

另外,它还可以使用您自己的 Microsoft* Azure* 帐户中运行的 Intel IoT Examples Datastore 来记录浇水系统事件。

硬件要求

Grove* 环境与农业套件,包含

  1. Intel® Edison 及 Arduino* 分线板
  2. Grove* 湿度传感器
  3. 水泵
  4. 水流传感器
  5. Grove* 干簧继电器

软件要求

  1. 英特尔® XDK 物联网版
  2. Microsoft* Azure* 帐户
  3. Twilio* 帐户

如何设置

首先,请按照以下步骤使用 Git* 在您的计算机上克隆 Intel 物联网代码示例教程存储库

$ 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 文件后,将其解压缩,然后使用此示例目录中的文件。

将程序添加到 Intel® XDK IoT Edition

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

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

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

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

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

在 Intel® Edison 上手动安装程序

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

在建立到该板的 SSH 连接后,克隆 Intel 物联网代码示例教程存储库到您的 Intel® Edison 板,如下所示

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

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

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

$ opkg install git

连接 Grove* 传感器

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

您需要使用随您的入门套件附带的外部电源适配器为 Intel® Edison 供电,或者用外部 12V 1.5A 电源替换它。您也可以使用外部电池,例如 5V USB 电池。

此外,您还需要一个面包板和一个额外的 5V 电源为水泵供电。注意:您需要为水泵配备单独的电池或电源。您不能为 Intel® Edison 板和水泵使用相同的电源,因此总共需要 2 个电池或 2 个电源。

您需要使用 Grove* 干簧继电器板连接水泵。

  1. 将 Grove* 电缆的一端插入 Grove* 干簧继电器,另一端连接到 Grove* 扩展板上的 D4 端口。
  2. 将水泵的一根线连接到为水泵保留的 5V 电源。
  3. 将水泵的另一根线连接到 Grove* 干簧继电器板上的一个电源连接器。
  4. 将 Grove* 干簧继电器板上的另一个电源连接器连接到为水泵保留的 5V 电源的接地。
  5. 通过将红色线插入 5V 引脚、黑色线插入 GND 引脚、黄色线插入 Grove* 扩展板上的数字引脚 2 来连接水流传感器。
  6. 将 Grove* 电缆的一端插入 Grove* 湿度传感器,另一端连接到 Grove* 扩展板上的 A0 端口。

手动设置 Intel® Edison

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

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

npm install

Twilio* API 密钥

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

https://www.twilio.com

您必须先获取 Twilio* API 密钥才能发送短信。您仍然可以运行该示例,但没有短信功能。

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

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

Microsoft* Azure* 服务器设置

另外,您还可以将此示例程序生成的数据存储在通过 Microsoft* Azure*、Node.js* 和 Redis* 数据存储部署的后端数据库中。

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

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

配置示例

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

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

要配置该示例以用于可选的 Microsoft* Azure* 数据存储,请更改 config.json 文件中的 SERVERAUTH_TOKEN 键,如下所示

{
  "SERVER": "http://intel-examples.azurewebsites.net/logger/watering-system",
  "AUTH_TOKEN": "s3cr3t"
}

要同时配置该示例以用于短信和 Microsoft* Azure* 数据存储,请更改 config.json 文件中的 TWILIO_ACCT_SIDTWILIO_AUTH_TOKENSERVERAUTH_TOKEN 键,如下所示

{
  "TWILIO_ACCT_SID": "YOURAPIKEY",
  "TWILIO_AUTH_TOKEN": "YOURTOKEN",
  "SERVER": "http://intel-examples.azurewebsites.net/logger/watering-system",
  "AUTH_TOKEN": "s3cr3t"
}

使用 Intel® XDK IoT Edition 运行程序

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

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

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

如果您更改了代码,请单击 Upload and Run。这将会在 Intel® Edison 上运行您更改后的最新代码。

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

手动运行程序

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

node index.js

设置浇水时间表

浇水系统的时间表是通过在示例程序运行时从 Intel® Edison 提供的单页 Web 界面设置的。

Web 服务器运行在端口 3000 上,因此如果 Intel® Edison 连接到 Wi-Fi* 地址 192.168.1.13,如果您在同一网络上,则需要浏览的地址是 http://192.168.1.13:3000

确定 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

如需查看所有 Intel 物联网代码示例教程的完整列表,请访问 Intel® Developer Zone

有关此代码示例的更多详细信息,请访问 GitHub*。

© . All rights reserved.