低功耗、短距离无线通信的最佳选择

电器工程 Arduino 无线的 低电量
2022-02-02 09:22:06

我正在从事一个依赖无线通信的项目,并且正在寻找最佳替代方案。这些是设计要求:

  • 易于与 Arduino 交互
  • 在小范围内工作(最多 5-6 米)
  • 消耗很少的能量 - 尽可能少
  • 设备不得相互干扰
  • 不需要是实时的,延迟可以在几百毫秒的量级
  • 通常,这些设备不在彼此的视线范围内(这意味着 IR 和类似的解决方案将不起作用)

场景是:

大约 10 台设备在同一个房间里,相互通信,不时地相互发送短消息(最多 30 个字符),持续几个小时(不更换电池)。

我能找到的最好的是蓝牙(特别是BLE),主要是因为有一些现成的Arduino+蓝牙模块和有前途的“低能耗”标签(最多是普通蓝牙能耗的一半),但我会喜欢从在这个领域有更多经验的人那里得到意见。

4个回答

看看XBee系列的收发器。根据传输范围和所需的额定功率,有多种类型。

这些设备也几乎可以与 Arduino 项目进行交互。Serial库利用了与 XBee 的 Rx 引脚直接兼容的 AVR 的 UART 硬件。另请注意,不需要电平转换器,因为 XBee Rx/Tx 引脚使用 5V!

但是请注意,XBee 必须使用 3.3V 供电,因此可以使用简单的 3.3V LDO 稳压器。

“最佳”很难定义,但我会研究 IEEE 802.15.4 收发器。

我在一个项目中使用了 MRF24J40MA ( https://github.com/briksoftware/gradusnik )。您可以尝试查看是否有一些代码可以在那里使用。该项目是为 PIC 设计的,但实际上很多东西都是独立于平台的(尤其是它所依赖的其他项目)。

模块在rx/tx消耗20mA左右,不算多。但是,要获得较长的电池使用时间,您需要在大部分时间将模块置于睡眠状态。您可以为此使用启用信标的网络,其中一台设备充当协调器。该模块在睡眠模式下消耗一些 µA(查看数据表以获取确切数字)

与 Arduino 连接的唯一问题是您需要一个 5->3.3 电平转换器(如果 Arduino 仍然使用 5v)。

另一个流行的 IEEE 802.15.4 协议收发器是 XBee 模块,但它要贵得多。

我不认为这是一个无线问题,而是更多的协议问题。

如果电池节约是游戏的名称,并且如果一个设备可以通过适当的编程,扮演临时“主人”的角色,那么可以为每个其他设备分配一个时隙。一旦分配完成,临时主节点就可以恢复为对等节点,但重要的是已经创建了一个时隙框架,并且所有对等节点都将购买该框架。

这是做什么的?有一个时隙意味着您可以将无线电关闭数百毫秒并唤醒以查看是否有正在进行的传输打算接收。当一个对等体醒来时,它必须等待以查看其他 8 个对等体中是否有任何一个正在向它发送消息。时间很关键,但如果您想要更长的电池寿命,那么请专注于协议。这个答案只是一个想法。唤醒时隙将被细分为 8 个其他时隙,其他 8 个对等体中的每一个都被分配在这些时隙上传输,如果一个正在传输,其他的可以先侦听以检查它们是否可以传输。像这样的东西: -

在此处输入图像描述

“下一个”插槽允许新的对等方加入该组。

低功率收发器很常见,所以我不打算研究这个。

试试便宜的 433 mhz txrx 模块。它们派上用场,可以很容易地与 arduino 交互。我将它们用于我的个人爱好机器人项目。