首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

将智能电话转换为传感器和执行器(3)

将智能电话转换为传感器和执行器(3)

在智能电话跌落时发送警报
现在,我们将更新 Node-RED 流来使用传感器数据。
我们将执行以下步骤:
  • 从 JSON 有效负载消息提取 “acceleration_y” 值
  • 针对一个加速度值(比如 iOS0.5Android                    为 7)触发一个值。
  • 调试通知消息
  • 可选地,发表一条推文或发送一封电子邮件
转到您的 Node Red 流编辑器。您将通过拖动合适的节点并连接它们来创建下面这个流,如下图所示:                    


  • 要从 JSON 有效负载消息提取智能电话的绝对值 acceleration_y                    ,我们将添加并配置一个功能节点。在面板的功能部分,将一个函数节点拖到工作区。双击功能节点,为它配置以下值:
    • 指定 getAcceleration_y 作为此节点的名称。
    • 在此功能节点中,复制并粘贴以下代码:
      return                                {payload:Math.abs(msg.payload.d.acceleration_y)};
    • 单击 Done
  • 要在 acceleration_y                        值上创建一个触发器,我们将添加并配置一个开关节点。在面板的功能部分,将一个开关节点拖到工作区。将功能节点连接到开关节点。双击开关节点,为它配置以下值:
    • 指定 testAcceleration_y 作为此节点的名称。
    • 指定 msg.payload 作为属性。
    • condition value 下拉列表中,选择 ">=?",然后为 iOS                            指定 0.5,为 Android 指定 7。
    • 在最后的下拉列表中,选择 stopping after first match。
    • 单击 Done
  • 要定义您想在电话跌落时发送的通知消息,我们将添加和配置一个模板节点。在面板的功能部分,将一个模板节点拖到工作区。将开关节点连接到模板节点。双击模板节点,为它配置以下值:
    • 指定 Acceleration_y_exceed_message 作为此节点的名称。
    • 指定 msg.payload 作为属性。
    • 将以下代码复制并粘贴到节点编辑器中:
      Wow!Is your phone falling?
      Its                                acceleration y = {{payload}}!
    • 单击 Done
  • 要限制通知消息数量和避免重复的通知消息,我们将添加和配置一个延迟节点。在面板的功能部分,将一个延迟节点拖到工作区。将模板节点连接到延迟节点。双击延迟节点,为它配置以下值:
    • 指定 Limit Rate 作为此节点的名称。
    • Action 下拉列表中,指定 Limit rate to。然后将速率设置为                                1 并选择 Minute。
    • 勾选 Drop intermediate message 复选框。
    • 单击 Done
  • 要在流的 Debug 选项卡中显示通知消息,我们将添加和配置一个调试节点。在面板的输出部分,将一个调试节点拖到工作区。将延迟节点连接到调试节点。
  • 为了避免 Debug                        选项卡中显示太多调试信息,可以单击调试节点中的绿色矩形来激活和停用调试节点。

    浏览器顶部会显示一条消息,解释调试节点已激活还是停用。
  • 要测试您的 Bluemix 应用程序(和 Node-RED 流),完成以下步骤:
    • 单击 Deploy 重新部署您的 Node-RED 流。
    • 在智能电话上,运行 IoT Mobile Starter 应用程序,然后单击 Activate                            Sensor
    • 快速上下移动智能电话,以模拟它的跌落过程。
    • 在 Node-RED 流编辑器中的 Debug 选项卡中,确认显示了 acceleration_y 值和通知消息。                                
6a

通过推文获得通知

如果您有一个 Twitter 帐户,可通过推文形式发送通知。
  • 在 Node-RED 编辑器中,在面板的社交部分,将一个 twitter out 节点拖到工作区。将 twitter out 节点连接到延迟节点输出。                        

  • 双击 twitter out 节点,为它配置以下值:
    • 在 twitter out 对话框中,选择 Twitter ID 下拉列表旁边的铅笔图标。
    • 在下一个对话框中,单击该按钮向 Twitter 执行身份验证。在显示的窗口中,指定您的 Twitter 凭证并授权您的 Bluemix                            应用程序使用您的 Twitter 帐户。
    • 单击 Add 添加该 Twitter 帐户。
    • 在 twitter out 对话框中,确保选择了您的 ID。
  • 单击 Deploy 测试您的流的这个新版本。如果 Deploy                    按钮是红色的,则意味着您的流已更新并需要重新部署。如果 Deploy 按钮是灰色的,则意味着您的流已部署。
  • 要测试此通知方法,可完成以下步骤:
    • 在智能电话上,确保 IoT Starter 应用程序正在运行,并在必要时单击 Activate Sensor
    • 快速上下移动智能电话,以模拟它的跌落过程。
    • 在 Debug 选项卡中,确认您看到了加速度值和通知消息。
    • 访问您的 Twitter 应用程序,确认您看到了包含来自 Bluemix 应用程序的通知消息的推文。                                
6b

通过电子邮件获得通知

如果您有一个 SMTP                电子邮件帐户,可以让应用程序发送一封包含智能电话正在跌落的通知的电子邮件。您可能需要配置电子邮件的安全设置,以便允许您的应用程序发送电子邮件。例如,如果您使用的是                Gmail 帐户,则必须在 Sign-in & security 设置中启用 Allow less                    secure apps 选项。
  • 在 Node-RED 编辑器中,在面板的社交部分,将一个 e-mail out 节点拖到工作区。将 e-mail out 节点连接到延迟节点输出。                        

  • 双击 e-mail out 节点,为它配置以下值:
    • To 字段中,指定您的电子邮件地址。
    • Server 字段中,指定您的 SMTP 服务器地址,比如 smtp.gmail.com。
    • Port 字段中,指定发送电子邮件的 SMTP TCP 端口,比如 465。
    • Userid 字段中,指定用于向 SMTP                            服务器执行身份验证的用户名。此用户名可以是您的电子邮件地址。
    • Password 字段中,指定与您的用户名关联的密码。
  • 要测试此通知方法,请完成以下步骤:
    • 在智能电话上,确保 IoT Starter Mobile 应用程序正在运行,并在必要时单击 Activate                                Sensor
    • 快速上下移动智能电话,以模拟它的跌落过程。
    • 在 Debug 选项卡中,确认您看到了加速度值和通知消息。
    • 访问您的邮件应用程序,确认您看到了包含来自 Bluemix 应用程序的通知消息的电子邮件。
返回列表