通过 USB 控制简单的继电器开关

Posted

技术标签:

【中文标题】通过 USB 控制简单的继电器开关【英文标题】:Controlling simple relay switch via USB 【发布时间】:2011-03-15 20:03:21 【问题描述】:

我希望通过一个通过 USB 连接到计算机的简单继电器开关来控制电源供电的灯。

继电器开关甚至不是 USB 设备,它只是一个需要 USB 电压才能打开的简单开关。当电压低于阈值时,开关将关闭灯。

我的问题是我无法控制 USB 端口的电源输出。我很乐意在 Windows 或 Linux 上使用任何语言(但最好是 Java,因为我已经习惯了)。

【问题讨论】:

【参考方案1】:

很遗憾,在大多数情况下,您无法控制 USB 端口的电源。电源通常是硬接线的,不能在软件中切换。你可以send a reset to a USB device,但这不适用于你的情况。

有许多关于教科书的项目与您描述的类似,但不幸的是,它们似乎相当复杂或需要昂贵的零件。

编辑:目前新闻中确实有一种产品确实想要你想要,但它似乎还没有发货:http://www.pwrusb.com/

编辑(再次):显然是you can do this with some usb hubs。 This post 建议 the Linksys USB2HUB4 是一种有效的方法。

编辑(再次):显然有许多类似的问题,但似乎没有任何更有用的答案:

https://***.com/questions/405269/custom-usb-device-that-disables-power-to-usb-devices-plugged-into-it Power off an USB device in software on Windows Is there software or code to alter USB power output Can I write a program that swiches USB on/off

【讨论】:

【参考方案2】:

大多数 USB 转串口或 USB 转 RS232 10 美元的转换器都支持硬件握手。将其中一个用作单通道数字 io。

将驱动继电器的晶体管连接到转换器板上的 DTR,并使用转换器驱动程序命令 DTR 开/关。

2N7002 是一个很好的晶体管(实际上是 FET),因为它可以在 3V 电压下工作,并且在任何地方都不需要任何电阻。

【讨论】:

【参考方案3】:

这是一个完整的解决方案。

它使用带有 USB 连接的 Arduino 板(例如 Uno)来控制继电器,并将其与 pfod(操作发现协议)www.pfod.com.au 相结合,让您可以从任一Arduino IDE SerialMonitor,或终端窗口 (TeraTerm) 或 Java 程序。消息协议将命令包含在 中,考虑为 micros 的简化 html,并提供大量屏幕、菜单、滑块、文本和数字输入等。提供详细的协议规范

有关详细示例,请参阅 Garage Door Remote,其中包含完整的 Arduino 代码以及从 TeraTerm 和 Arduino IDE SerialMonitor 控制继电器的示例。

还有一个 android 应用程序,pfodApp,它将通过蓝牙或具有 128 位安全性的 wifi/互联网进行通用控制。 pfodApp 完成了所有的 Android 工作,您只需在 Arduino 代码中编写一些简单的字符串即可获得您想要的任何菜单系统。有关众多示例,请参见 www.pfod.com.au。

【讨论】:

【参考方案4】:

您需要一个 USB-GPIO 微控制器:

Adafruit FT232H(约 15 美元)

Arduino Nano ATmega328(约 7 美元)

See this answer

【讨论】:

【参考方案5】:

我建议放置一个单独的 Raspberry Pi 单元,激活 LAN 唤醒功能,这样您就可以关闭和打开它。

【讨论】:

您能否提供有关如何使用 Raspberries 设置 LAN 唤醒的文档或教程? 作为 RPi 所有者,我不知道 MicroChip LAN9512(2-USB 端口 B 型号)或 LAN9514(4-USB 端口 B+ 型号)提供的 RPi 有线 LAN 连接是在软件/固件/硬件中连接 - 虽然 IC 确实具有 LAN 唤醒功能,所以看看它是否可以完成可能会很有趣......!【参考方案6】:

您可以将 Pololu 的这两种产品组合起来,大约 25 美元:

    Micro Maestro (assembled) Basic SPDT Relay Carrier with 5VDC Relay (Assembled)

Maestro 主要是一个伺服控制器,但您可以将其任何通道设置为简单的数字输出。可以从 Maestro Control Center 软件控制输出,也可以编写自己的软件。 Maestro 的数字输出适合打开继电器载体上的继电器。继电器可以通过 Maestro 从 USB 供电;我认为它消耗大约 100 mA 的电流,因此对于大多数 USB 端口来说可能不会成为问题,尽管它不符合 USB 标准,因为 Maestro 和继电器消耗的总电流将超过 100 mA。如果您担心这一点,您可以为继电器提供自己的电源。

【讨论】:

以上是关于通过 USB 控制简单的继电器开关的主要内容,如果未能解决你的问题,请参考以下文章

程序如何写串口控制继电器开关?求思路和源码?

12V继电器开关控制

命令模式

继电器通过工业网关实现远程控制功能

花 1 小时,开源设计 LoRa 继电器开关

c# 调用c++类库控制usb继电器