亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

如何使用 Microchip 的 RN487x 蓝牙模块构建数字输入和数字控制

了解如何使用 Microchip 模块制作数字输入和数字控制外设原型。

在本文中,作为 Microchip RN487x 蓝牙模块的三部分系列文章的第二部分,我将向您展示如何创建数字输入(开关)和数字控制(LED)。

有关如何配置 RN487x 模块的背景和说明,请返回我的第一篇文章。

项目 1:RN478x 数字输入开关

我们的设计模式需要提供三个组件:

  1. 硬件: 用于生成数字信号的特定于任务的硬件
  2. 配置: RN487x 模块命令在数据库中分配变量,并将信号映射到变量
  3. 应用: 工作站上的脚本,用于接受数据库值

接下来是组件分解。

数字输入硬件

“数字输入”的作用简单地由一个开关提供; SW1.

RN487x 模块在引脚上具有内部上拉电阻,因此在闭合时连接到地的常开开关将为我们提供必要的二态控制。

由于我们只管理一个信号并且不使用 PWM,因此我们选择了 RN4871。该电路可以由一对 AAA 电池甚至纽扣电池供电。

其余的电路元件是;

数字输入配置

在为此示例创建配置之前,请确保模块处于已知状态。这在关于常见初始化的附录部分中进行了描述。不要跳过这一步!

我们只需要数据库中的一个特征来表示我们的传感器状态。因此,我们创建了一项服务,并在该服务中创建了一个特征。两个对应的命令是:

PS,59c88760536411e7b114b2f933d5fe66 PC,59c889e0536411e7b114b2f933d5fe66,10,01 

第一个命令 PS 创建服务。第二个命令 PC 创建特征。在这两个命令中,第一个参数是允许我们的外围设备存在于其他蓝牙外围设备的世界中并且仍然可以唯一访问的标识符。此参数必须符合 UUID 标准。您可以使用显示的示例值。创建任意数量的标准 UUID 也很容易。

在 PC 命令中,第二个参数告诉蓝牙层值的变化应该如何到达客户端。在这种情况下,参数 (10) 表示对值的更改会导致立即通知客户端。这是我们在此示例中的意图的重要部分。最后,在PC命令中,第三个参数以字节为单位定义值的大小;在这种情况下只有一个 (01)。

我们配置的脚本部分如下所示:

@PW_ON SW,0A,09 @PIO1H SHW,0072,01 @PIO1L SHW,0072,00 

此脚本中有三个方法,每个方法都以“@”为前缀。每个方法都在特定的系统事件上运行。

数字输入应用

Python 脚本是 switch.py​​,可以在此处找到。编辑脚本并将示例 MAC 地址替换为您设备的 MAC 地址。然后,为了练习该示例,只需为外围设备供电,然后在具有适当蓝牙功能的系统上运行脚本。请参阅附录以获取有关 Linux 中此设置的帮助。脚本将在连接到外围设备时发出消息以指示进度。连接外设后,按几次开关。开关的每个打开/关闭事件都将通过来自运行脚本的消息进行记录。

该脚本很短,包括所有功能块和 GATT API 调用的注释。

我们使用的此示例独有的 BLE 功能是通知。

项目 2:RN487x 数字控制

我们的设计模式需要提供三个组件:

接下来是组件分解。

数字控制硬件

“数字输出”的作用只是由一个 LED 提供; D1。

RN487x 模块参考电路建议使用集电极开路 GPIO,因此我们通过吸收电流来相应地点亮 LED。

由于我们只管理一个信号并且不使用 PWM,因此我们选择了 RN4871。该电路可以由一对 AAA 电池甚至纽扣电池供电。

其余电路元件为;

数字控制配置

在为此示例创建配置之前,请确保模块处于已知状态。这在关于常见初始化的附录部分中进行了描述。

不要跳过这一步!

我们只需要数据库中的一个特征来表示我们的传感器状态。因此,我们创建了一项服务,并在该服务中创建了一个特征。

两个对应的命令是:

PS,59c88760536411e7b114b2f933d5fe66 PC,59c889e0536411e7b114b2f933d5fe66,08,01 

第一个命令 PS 创建服务。第二个命令 PC 创建特征。在这两个命令中,第一个参数是允许我们的外围设备存在于其他蓝牙外围设备的世界中并且仍然可以唯一访问的标识符。此参数必须符合 UUID 标准。您可以使用显示的示例值。创建任意数量的标准 UUID 也很容易。

在 PC 命令中,第二个参数告诉蓝牙层值的变化应该如何到达外设。在这种情况下,参数 (08) 表示外设必须在值更改时向客户端发送确认。最后,在PC命令中,第三个参数以字节为单位定义值的大小;在这种情况下只有一个 (01)。

我们配置的脚本部分如下所示:

@CONN |O,08,72 

这个脚本‘@CONN’中只有一种方法。每次客户端连接到外围设备时它都会运行。

单个脚本行是一个“处理关联”命令,具有非常强大的结果。它将数据库变量与数字引脚输出命令相关联。 ‘08’参数是一个位掩码,指定我们的 LED 连接到的引脚。 “72”参数是我们在数据库中创建的特征的唯一且永久的句柄。所以在客户端连接后,每次客户端向数据库变量写入一个新值时,我们的 LED 就会相应地亮起或熄灭。

数字控制应用

Python 脚本是 light.py,可以在这里找到。编辑脚本并将示例 MAC 地址替换为您设备的 MAC 地址。然后,为了练习该示例,只需为外围设备供电,然后在具有适当蓝牙功能的系统上运行脚本。请参阅附录以获取有关 Linux 中此设置的帮助。脚本将在连接到外围设备时发出消息以指示进度。外设连接后,脚本会每秒向外设发送一个新命令。这些命令将打开和关闭 LED。

该脚本很短,包括所有功能块和 GATT API 调用的注释。我们使用的本示例独有的 BLE 功能是句柄关联。

您可以在随附的项目视频中看到整个示例。

后续步骤

我们关于 RN487x 模块的三部分系列的第 2 部分到此结束。

第 3 部分将遵循相同的设计模式来创建模拟传感器和模拟控件。它还将包括一些适用于所有示例项目的进一步研究的主题。


物联网技术

  1. 自由如自由还是免费啤酒? ...怎么样:免费使用、建造和研究!
  2. C# 基本输入和输出
  3. 回顾:蓝牙 LE 和 XLE 如何成为资产跟踪和监控的未来
  4. 蓝牙 + 超声波如何 =更好的 RTLS 准确性和更低的成本
  5. 如何制定和优化预防性维护计划
  6. 带有 Microchip RN487x 蓝牙模块的传感器和控件
  7. 如何构建客户想要(并愿意支付)的解决方案
  8. 如何控制水力发电:管理和维护水力发电厂
  9. 您应该如何将物联网纳入您的业务和数字化转型战略?
  10. 如何使用储罐监控物联网技术构建更智能的操作
  11. 如何理解大数据:RTU 和过程控制应用
  12. 什么是精益数字化以及如何整合它?