python控制继电器
继电器的工作是基于串口控制的, 一般需要先安装继电器的驱动程序, 然后根据厂家的文件进行相关的开发工作, 代码中的指令实际上是从制造商的文档中获得的
源码
import serial import time portx = "COM3" bps = 9600 timex = 10 def getRsp(): # 这一步等待数据是关键。timeout压根没用 time.sleep(1) count = ser.inWaiting() # 数据的接收 if count > 0: data = ser.read(count) if data != b'': # 接受的16进制数据格式,如b'h\x12\x90xV5\x12h\x91\n4737E\xc3\xab\x89hE\xe0\x16' # 转换成b'6812907856351268910a3437333745c3ab896845e016' # 前后通过[]去除b得到我们真正想要的数据 # print("receive", str(binascii.b2a_hex(data))[2:-1]) print(data) return data def serialReq(param): time.sleep(1) # result = ser.write("0x24\x01\x02\x00\x27") # result = ser.write(b'\x24\x01\x02\x00\x27') # result = ser.write(b'\x24\xFF\x02\xA0\xC5') result = ser.write(param) print(result) open1 = b'\x01\x05\x00\x00\xFF\x00\x8C\x3A' close1 = b'\x01\x05\x00\x00\x00\x00\xCD\xCA' open2 = b'\x01\x05\x00\x01\xFF\x00\xDD\xFA' close2 = b'\x01\x05\x00\x01\x00\x00\x9C\x0A' open3 = b'\x01\x05\x00\x02\xFF\x00\x2D\xFA' close3 = b'\x01\x05\x00\x02\x00\x00\x6C\x0A' open4 = b'\x01\x05\x00\x03\xFF\x00\x7C\x3A' close4 = b'\x01\x05\x00\x03\x00\x00\x3D\xCA' if __name__ == '__main__': ser = serial.Serial(portx, bps, timeout=timex)
serialReq(open1)
serialReq(open2)
serialReq(open3)
serialReq(open4)
serialReq(close1)
serialReq(close2)
serialReq(close3)
serialReq(close4)
print(getRsp())
# 关闭串口
ser.close()