0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过物联网控制设备

454398 来源:网络整理 作者:网络整理 2019-12-09 15:42 次阅读

物联网IoT)是当今的流行语之一,作为软件开发人员,我很好奇关于它,并将尝试将我认为是实现它的最简单方法放入此处。当然,这意味着您可能会比我所知道的更简单,更有效地了解不同的方法。

首先,我必须承认我不是硬件专家,实际上我是我真的很不好对于我和处于相同情况的其他人来说,幸运的是,您可以使用许多工具来构建电子设备。就我而言,我使用:

Arduino Breakout开发板。

英特尔爱迪生。

看到了Studio Grove盾牌。

使LED发光。

Grove Button。

作为快速参考,英特尔爱迪生与Arduino Breakout板一起提供了与Arduino UNO相同的软件和硬件接口,但功能更强大因为它正在运行Yocto,这是为嵌入式设备创建的基于Linux的发行版。另一方面,Grove是Seeed Studio创建的工具集,使制造商和发明者能够以即插即用的方式创建具有简单构件的设备。您可以说这就像电子乐高。

在软件方面,我使用了Node-Red,它是一种工具,可通过可视化地连接流程来协调流程。网络浏览器将用于测试服务和操作LED。

在第一部分中,我将向您展示如何连接电路并发送命令以打开或关闭连接到LED的LED。通过HTTP请求进行Grove屏蔽。当然,当与Edison处于同一WiFi中时,这将允许您与LED交互。在第二部分,我将向您展示如何将电路连接到云IoT实例,以及如何通过Internet将命令发送到Edison。

步骤1:开始之前

确保已安装以下组件。

Edison已配置为连接到WiFi。如果尚未设置Edison,请按照Intel Edison网站中的步骤进行操作。

您可以登录Edison。配置WiFi后,您可以使用SSH登录。我发现本教程非常有用。

Node-Red已安装在Edison中。请遵循Node-Red文档中的说明。

Node-red-contrib-gpio模块安装在Node-Red中。请遵循GitHub官方文档中的说明。

离子已安装在您的计算机上。请遵循Ionic网站上的说明。

步骤2:组装电路

组装非常简单:

将Edison和Grove屏蔽插入Arduino Breakout。

将电缆插入Grove LED板。

将电缆插入Grove屏蔽,我选择了D6插槽,但是您可以使用任何数字引脚。

将微型USB电缆插入Arduino电源并连接到计算机以将其打开。

步骤3:在Node-Red中创建流

在这里,我假设您已经在Edison中启动并运行Node-Red,并且可以通过Web浏览器访问。

在Node-中红色,您将创建将处理GET HTTP请求的流程,提取LED上的操作参数,打开或关闭LED,格式化消息并将其以HTTP响应的形式发送回客户端。

完整流程应该像这样。请按照以下步骤完成操作。

步骤4:HTTP请求

在Node-Red的 Input 抽屉中,选择 HTTP节点,将其拖放到画布上。双击画布中的节点并指定以下参数:

方法:GET

URL :/led/:state

名称:ActionOnLED

不要错过URL中的冒号(:)。设置完这些属性后,单击完成。

我使用GET方法,因为起初我想尝试使用网络浏览器。由于这是一条命令,因此我认为POST方法更适合该目的,但我会保留正确的体系结构术语。

步骤5:从HTTP请求中提取操作

您可以在上面的URL中看到,该操作作为URL的最后一部分作为路径参数传递。因此,我们需要提取它。 Node-Red使您可以使用标准Express API从请求中获取变量。

从 Function 抽屉中选择 function 节点并拖动放到画布上双击它,然后放入以下JavaScript代码。

if (msg.req.path == “/led/on”) {

msg.payload = 1;

msg.httpMsg = “On”

} else if (msg.req.path == “/led/off”) {

msg.payload = 0;

msg.httpMsg = “Off”

} else {

msg = null;

}

return msg;

输入代码后,点击完成。

请注意,消息中的新属性将传递一个可读字符串,该字符串将用于通知客户端。

现在,该功能已完成,将两个节点彼此连接。在HTTP请求节点上,单击小灰色方块,然后将其拖放到函数的灰色方块上。现在就可以连接流了,就这么简单!

步骤6:控制LED

是时候添加一个节点来控制屏蔽板上的LED了。在输入抽屉中,选择 gpio 节点并将其拖放到画布上。双击它以指定该节点的属性。

首先,您需要指定您所拥有的电路板类型。为此,请点击委员会字段中的铅笔图标。在出现的向导中,为 Nodebot 指定板。在这种情况下,请选择 Galileo/Edison 并设置一个名称。单击更新保存更改。

配置板卡后,请指定用于控制LED的属性:

板卡:您刚刚配置的电路板。

类型:数字(0/1)。

Pin :如上所述,我使用了引脚6。

设置完这些属性后,点击完成并将该节点连接到上面创建的功能节点。

请注意,单击 Deploy 后,Node-Red将尝试连接物理板。成功后,它将在节点下方显示 connected !!! 消息。

步骤7:为客户端格式化消息

从 Function 抽屉中选择 function 节点并将其拖放到画布中。双击它,然后放置以下JavaScript代码。

msg.payload = {

message: “LED was turned ” + msg.httpMsg,

led_state: msg.payload

}

return msg;

输入代码后,单击完成,然后将此节点连接到上面创建的另一个功能节点。

步骤8:发送回响应

由于此请求是通过HTTP请求发起的,因此您必须以HTTP响应完成。为此,在 Output 抽屉中选择一个 HTTP Response 节点并将其拖放到画布上。将此节点连接到先前创建的功能以形成客户端消息。

单击 Deploy 使更改生效。

第9步:测试流

现在,流已创建,您可以使用Web浏览器或任何其他处理HTTP请求的程序,例如cURL或WGET ,对其进行测试。

打开您的网络浏览器,然后使用这两个URL之一。确保您的IP地址是您在Edison中配置的IP地址。在我的情况下,IP地址为 192.168.1.71 。

http://192.168.1.71:1880/led/off

http://192.168.1.71:1880/led/on

步骤10:局限性

在这里我只能发现一个对实际功能的限制。在直接从网络浏览器使用HTTP请求打开LED的情况下,网络应用程序中的UI不会反映该状态,因为连接是异步的并且已断开连接。也就是说,不会向Web应用程序通知LED状态的变化。

要解决此问题,您可以使用其他方法,例如使用WebSockets代替HTTP请求来建立双向通信并保持同步在HTTP请求和UI之间。也许您可以使用MQTT作为预订和发布事件的协议。

在任何情况下,您都将需要修改Node-Red中的流以适应新的传输协议,当然也要包含JavaScript代码。
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2902

    文章

    44170

    浏览量

    370637
  • Arduino
    +关注

    关注

    187

    文章

    6461

    浏览量

    186565
收藏 人收藏

    评论

    相关推荐

    联网学习路线来啦!

    通过这个网络可以实现设备之间的数据交流和互动。 联网的核心是数据,通过采集和分析数据,可以实现对设备
    发表于 11-11 16:03

    MCU在联网中的应用前景

    随着联网(IoT)技术的飞速发展,微控制器单元(MCU)作为联网设备的核心组件之一,其应用前
    的头像 发表于 11-01 13:39 256次阅读

    如何选择联网设备的PCB技术

    随着联网(IoT)技术的不断发展和应用范围的扩大,适合联网设备的PCB技术也在不断创新和进步。选择适合
    的头像 发表于 10-16 15:11 170次阅读

    如何测试联网设备的功耗

    能力的电子设备,通常通过不同的无线协议连接到其他设备或网络。降低本底噪声,查看小功率信号想要在当今的联网(IoT)
    的头像 发表于 10-11 08:05 360次阅读
    如何测试<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>设备</b>的功耗

    什么是联网技术?

    什么是联网技术? 联网技术(Internet of Things, IoT)是一种通过信息传感设备
    发表于 08-19 14:08

    请问如何使用微控制器优化电池供电的联网设备的功耗?

    如何使用微控制器优化电池供电的联网设备的功耗?
    发表于 07-23 07:09

    MQTT联网平台是什么

    。这种平台允许设备通过MQTT协议与其他设备及云端服务进行通信,实现数据的上传和下载,从而支持各种联网应用和服务。 MQTT
    的头像 发表于 07-18 14:22 488次阅读

    如何通过工业联网关实现远程控制PLC设备呢?

    随着科技的不断发展,工业联网(IIoT)已经成为工业领域的新宠。工业联网以其独特的优势,正在改变着传统的工业生产方式,使得生产过程更加智能化、高效化。其中,
    的头像 发表于 04-30 14:58 646次阅读
    如何<b class='flag-5'>通过</b>工业<b class='flag-5'>物</b><b class='flag-5'>联网</b>关实现远程<b class='flag-5'>控制</b>PLC<b class='flag-5'>设备</b>呢?

    iot联网平台是什么?

    监控、自动报警、远程控制、远程诊断、远程维护等功能。 IOT联网平台是联网解决方案的关键组成部分,负责将感知层的各类
    的头像 发表于 04-01 10:19 2751次阅读

    如何通过工业联网网关实现远程控制PLC设备

    如何通过工业联网网关实现远程控制PLC设备? 搜索蓝蜂
    的头像 发表于 03-01 16:02 550次阅读
    如何<b class='flag-5'>通过</b>工业<b class='flag-5'>物</b><b class='flag-5'>联网</b>网关实现远程<b class='flag-5'>控制</b>PLC<b class='flag-5'>设备</b>?

    通过工业联网网关实现远程控制PLC设备的策略

    通过工业联网网关实现远程控制PLC设备的策略 工业联网
    的头像 发表于 02-02 15:38 520次阅读
    <b class='flag-5'>通过</b>工业<b class='flag-5'>物</b><b class='flag-5'>联网</b>网关实现远程<b class='flag-5'>控制</b>PLC<b class='flag-5'>设备</b>的策略

    联网IOT芯片是什么?联网芯片的作用 联网芯片的应用领域

    联网IOT芯片是什么?联网芯片的作用 联网芯片的应用领域 
    的头像 发表于 02-01 11:38 3482次阅读

    联网设备管理平台如何实现?如何发挥作用?

    日益重要的问题。这时,联网设备管理平台应运而生。 联网设备管理平台是为管理特定
    的头像 发表于 12-23 10:45 606次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>设备</b>管理平台如何实现?如何发挥作用?

    如何通过工业联网网关实现远程控制PLC设备

    工业联网(IIoT)是现代制造业的重要组成部分,它通过连接设备、系统和服务,实现了数据的无缝交流和实时决策。
    的头像 发表于 12-22 16:02 1238次阅读

    桂花网蓝牙网关:功能强大、应用广泛的联网连接设备

    、体育运动、温度监测、蓝牙纸笔、工业联网、智慧校园等。它可以帮助用户实现设备的智能化管理、自动化控制和数据采集等功能,提高生产和生活效率。 二、桂花网蓝牙网关的应用场景 智慧医疗:在
    发表于 12-12 16:06