所有关于电路
项目

如何构建一个数字输入和数字控制使用芯片的RN487x蓝牙模块

2019年10月13日通过亚伦•汉森

学习如何使用一个芯片模块原型数字输入和数字控制外围设备。

在本文中,第二个在系列文章微芯片的RN487x蓝牙模块,我将向您展示如何创建一个数字输入(开关)和数字控制(LED)。

请回到我的第一篇文章的背景和说明如何配置RN487x模块

项目1:RN478x数字输入开关

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

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

以下是组件故障。

数字输入硬件

“数字输入”的作用是提供的开关;SW1。

RN487x模块内部引体向上针,所以一个常开开关连接到地面上关闭将给我们必要的国控制。

RN487x数字输入设计的示意图

因为我们只管理一个使用PWM信号,我们没有,我们选择了RN4871。电路可以由一对AAA电池,甚至coin-cell。

剩下的电路元素;

  • C1:一个旁路电容器稳定力量
  • R1 C2:延迟在接通电源的处理器复位
  • j - 1:一个串行端口配置

数字输入配置

在创建这个示例的配置,确保模块处于已知状态。这是描述在附录部分常见的初始化。不要跳过这一步!

我们只需要一个数据库中的特征来表示我们的传感器状态。所以我们创建一个服务,该服务特征之一。两个相应的命令是:

PS, 59 c88760536411e7b114b2f933d5fe66 PC, 59 c889e0536411e7b114b2f933d5fe66, 01

第一个命令,PS,创建服务。第二个命令,PC,创建特色。在这两个命令,第一个参数是标识符,允许我们在宇宙中的外围存在其他蓝牙外设和仍然是独特的访问。该参数必须符合UUID标准。您可以使用显示的示例值。它也很容易创建任意数量的标准的uuid

在个人电脑的命令,第二个参数告诉蓝牙层的变化值应该如何给客户机。在这种情况下,参数(10),说修改值会导致立即通知客户。这是一个重要的一部分,对于这个例子我们的意图。最后,在个人电脑的命令,第三个参数定义了大小的字节的值;在这种情况下只有一个(01)。

脚本的配置是这样的:

@PW_ON西南,0,09年@PIO1H SHW, 0072年01 @PIO1L SHW, 0072,00

有三种方法在这个脚本中,每个前缀“@”。每个方法运行在一个特定的系统事件。

  • PW_ON:在接通电源的运行。感兴趣的方法配置我们的销(P1_2)作为“触发”数字输入信号。
  • PIO1H:运行时触发信号转换到高。到数据库的方法写一个“1”。
  • PIO1L:运行时触发信号转换到低。到数据库的方法写一个‘0’。

数字输入应用程序

Python脚本开关。py和可以找到在这里。编辑脚本,并将样本MAC地址替换为你的设备的MAC地址。锻炼的例子,简单的力量应用到外围,然后用适当的系统上运行脚本蓝牙功能。请参阅附录帮助这个设置在Linux中。脚本将发布消息显示进展而连接到外围。外围连接后,按下和释放开关几次。每一个打开/关闭开关将指出消息的事件从正在运行的脚本。

脚本是短暂的和包含注释块和关贸总协定API调用的函数。

BLE特性我们使用,本例中是独一无二的是通知。

  • 我们使用一个回调方法来处理一个信号从外围时发生。我们不需要调查周围学习的状态信号。
  • 我们必须告诉外围,我们希望这些通知通过编写系统的特点。

项目2:RN487x数字控制

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

  • 硬件:特定于任务的硬件来表达数字输出
  • 配置:RN487x模块命令分配一个变量在一个数据库,并将变量映射到信号
  • 应用程序:脚本在一个工作站,写数据库的值

以下是组件故障。

数字控制硬件

“数字输出”的作用是提供的领导;D1。

RN487x模块参考电路显示开启GPIO所以我们照亮了因此,沉没的电流。

因为我们只管理一个使用PWM信号,我们没有,我们选择了RN4871。电路可以由一对AAA电池,甚至coin-cell。

剩下的电路元素;

  • C1:一个旁路电容器稳定力量
  • R1 C2:延迟在接通电源的处理器复位
  • j - 1:一个串行端口配置

数字控制配置

在创建这个示例的配置,确保模块处于已知状态。这是描述在附录部分常见的初始化。

不要跳过这一步!

我们只需要一个数据库中的特征来表示我们的传感器状态。所以我们创建一个服务,该服务特征之一。

两个相应的命令是:

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

第一个命令,PS,创建服务。第二个命令,PC,创建特色。在这两个命令,第一个参数是标识符,允许我们在宇宙中的外围存在其他蓝牙外设和仍然是独特的访问。该参数必须符合UUID标准。您可以使用显示的示例值。它也很容易创建任意数量的标准的uuid

在个人电脑命令,第二个参数告诉蓝牙层价值应该得到周围的变化。在这种情况下,参数(08)说,外围时必须向客户机发送一个确认值发生了改变。最后,在个人电脑的命令,第三个参数定义了大小的字节的值;在这种情况下只有一个(01)。

脚本的配置是这样的:

@CONN | O, 08年,72年

只有一个方法在这个脚本中“@CONN”。它每次运行一个客户端连接到外围。

一个脚本是一个“处理协会”的命令行,和一个非常强大的结果。它将数据库变量与数字销输出命令。08年的参数是一个指定的位掩码的销连接。“72”参数是一个独特的和永久的处理我们在数据库中创建的特征。所以客户端连接后,每次客户端将一个新值写入数据库变量,我们领导会相应的打开或关闭。

数字控制应用程序

Python脚本是轻的。py和可以找到在这里。编辑脚本,并将样本MAC地址替换为你的设备的MAC地址。锻炼的例子,简单的力量应用到外围,然后用适当的系统上运行脚本蓝牙功能。请参阅附录帮助这个设置在Linux中。脚本将发布消息显示进展而连接到外围。外围设备连接后,脚本将发送一个新的命令周边每一秒。命令会打开和关闭LED。

脚本是短暂的和包含注释块和关贸总协定API调用的函数。BLE特性我们使用,本例中是独一无二的是处理协会。

你可以看到这个例子在行动项目视频。

下一个步骤

这就是我们的系列文章的第2部分RN487x模块。

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