首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Python控制hid继电器

使用Python控制hid继电器

原创
作者头像
JQ实验室
发布2025-08-18 14:44:46
发布2025-08-18 14:44:46
13200
代码可运行
举报
文章被收录于专栏:都到8月了都到8月了
运行总次数:0
代码可运行

通过多次尝试,终于成功使用python控制了继电器的开关;

主要的问题在于命令的发送,最后通过wireeshark抓包找到了真实的命令;

代码语言:python
代码运行次数:0
运行
复制
import ctypes
import os
import time

current_dir = os.path.dirname(os.path.abspath(__file__))
ctypes.CDLL(os.path.join(current_dir, "hidapi.dll"))

# 接下来可以继续使用hid模块
import hid

# 定义 HID 设备的厂商 ID 和产品 ID,需要根据实际继电器修改
VENDOR_ID = 0x5131 #0x140b #
PRODUCT_ID = 0x2007 #0x7d7 #

try:
    #ret = hid.enumerate(VENDOR_ID, PRODUCT_ID)
    #print(ret)
    #for device_info in hid.enumerate():
    #    print(device_info)
    # 打开 HID 设备
    device = hid.Device(vid=VENDOR_ID, pid=PRODUCT_ID)
    print("成功连接到 HID 继电器")
    # 示例:发送命令打开继电器(命令需要根据实际继电器协议修改)
    open_command = bytes([0x00,0xa0,0x01,0x01,0xa2] + [0x00]* 60 )  # 调整命令格式以适应你的设备
    print(f"Sending command: {open_command.hex()}")
    device.write(open_command)
    print("已发送打开继电器命令")
    # 尝试读取设备响应
    try:
        response = device.read(64)  # 读取最大64字节的数据,根据设备调整
        print(f"Received response: {response}")
        #response_str = response.decode('utf-8')
        #print(f"Response as string: {response_str}")
    except Exception as e:
        print(f"Failed to read from device: {e}")
    time.sleep(5)
    close_command = bytes([0x00,0xa0,0x01, 0x00, 0xa1] + [0x00]* 60 )
    print(f"Sending command: {close_command.hex()}")
    device.write(close_command)
    print("已发送关闭继电器命令")

except Exception as e:
    print(f"连接或操作 HID 继电器时出错: {e}")
finally:
    try:
        # 关闭设备
        device.close()
    except NameError:
        pass

open命令主要时如下数据:

open_command = bytes(0x00,0xa0,0x01,0x01,0xa2) # 调整命令格式以适应你的设备

其中第一位为标识符;第二位开始为抓包时获取的命令;

所有在这里下载

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通过多次尝试,终于成功使用python控制了继电器的开关;
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档