前言
近端时间从软件视觉上开始转向一定的硬件载体研究,发现基于当前K210开发中应用中未提及继电器串口脚本化的一些通讯使用,因业务存在需求,这边简单做个记录
环境
语言:python
编辑器:Pycharm
工具包:serial
通讯硬件:双路继电器
串口测试工具:UartAssist
脚本
正常继电器模块会产生一些特定的编码内容,这部分主要由商家提供,可以寻找对应的硬件编码进行测试
使用之前可以用串口助手进行简单测试,判断是否能够完成操作
接线情况如下:
脚本大致如下:
主要进行串口检索与信息收发的实验,如果有部分USB转接头会出现拦截数据的情况,可以多发送几次进行实验
from time import sleep
import serial
import serial.tools.list_ports
# 获取所有串口设备实例。
# 如果没找到串口设备,则输出:“无串口设备。”
# 如果找到串口设备,则依次输出每个设备对应的串口号和描述信息。
ports_list = list(serial.tools.list_ports.comports())
if len(ports_list) <= 0:
print("无串口设备。")
else:
print("可用的串口设备如下:")
for comport in ports_list:
print(list(comport)[0], list(comport)[1])
ser = serial.Serial("COM3", 9600)
if ser.isOpen(): # 判断串口是否成功打开
print("打开串口成功。")
print(ser.name) # 输出串口号
# 将十六进制字符串转换为字节串
open_data = "FF 05 00 00 FF 00 99 E4"
off_data = "FF 05 00 00 00 00 D8 14"
byte_data = bytes.fromhex(open_data)
ser.write(byte_data)
sleep(1)
write_len = ser.write(byte_data)
print("打开继电器 发送数据长度:", write_len)
sleep(5)
byte_data = bytes.fromhex(off_data)
ser.write(byte_data)
sleep(1)
write_len = ser.write(byte_data)
print("关闭继电器 发送数据长度:", write_len)
else:
print("打开串口失败。")