标题:
将智能电话转换为传感器和执行器(3)
[打印本页]
作者:
look_w
时间:
2018-1-13 19:39
标题:
将智能电话转换为传感器和执行器(3)
在智能电话跌落时发送警报
现在,我们将更新 Node-RED 流来使用传感器数据。
我们将执行以下步骤:
从 JSON 有效负载消息提取 “
acceleration_y
” 值
针对一个加速度值(比如
iOS
为
0.5
,
Android
为
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 应用程序的通知消息的电子邮件。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0