python物联网入门(1)-用python打开一个485继电器

废话少讲,让python让物联网简单化!

硬件:电脑1台

           USB转485串口工具1个

           485继电器1个

           12V输出电源1个

            一个负载风扇(也可以用灯、马达、电磁锁等负载代替)

编程环境:win11   pycharm步骤一:硬件接线:1接12V电源  4接USB转485串口工具   另一组12V电源负极与风扇负极连接后用胶布粘好,电源正接COM1,风扇正接NO1.

步骤二:串口测试,使用串口工具向继电器发送命令,继电器正常工作

步骤三:使用python编程

知识点:使用了pyserial串口库   使用了bytes.fromhex()方法将字符串转换为字节。

以下是代码参考

#开继电器程序
#by2309278
#开1路


"""
硬件资料示例:打开1号继电器(手动模式)
发送:    01 05 00 00 FF 00 8C 3A
原样返回:01 05 00 00 FF 00 8C 3A
备注:(1)发送帧的第1个字节代表modbus从机地址,第2个字节是功能码,modbus功能码05:写1路开关量输出(2)发送帧的第3--4个字节代表继电器地址,继电器1--继电器8的地址分别为0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007
(3)发送帧的第5--6个字节代表数据,0xFF00代表打开继电器,0x0000代表关闭继电器

"""
import serial
import time

#步骤:设置串口
#ser=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5) #使用USB连接串行口
#ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5) #使用树莓派的GPIO口连接串行口
#ser=serial.Serial(1,9600,timeout=0.5)#winsows系统使用com1口连接串行口
#ser=serial.Serial("/dev/ttyS1",9600,timeout=0.5)#Linux系统使用com1口连接串行口
ser=serial.Serial("COM8", 9600, 8, "E", timeout=50,stopbits=1)
"""
(port: str | None = None, baudrate: int = 9600, bytesize: int = 8, parity: str = "N", stopbits: float = 1, timeout: float | None = None, xonxoff: bool = False, rtscts: bool = False, write_timeout: float | None = None, dsrdtr: bool = False, inter_byte_timeout: float | None = None, exclusive: float | None = None) -> None
Initialize comm port object. If a "port" is given, then the port will be opened immediately. Otherwise a Serial port object in closed state is returned.
"""
#print(ser.name)#打印设备名称



'''
#步骤:准备发送开第1路帧
On1=" 01 05 00 00 FF 00 8C 3A"
SendON1_code=bytes.fromhex(On1)
#print(SendON1_code)    #结果为b'\x01\x05\x00\x00\xff\x00\x8c:' 解析:python与串口交互格式为字节,返回符号冒号为应发字符的AscII码符号。实际硬件接收为3A

#步骤:发送开第1路码
SendON1=ser.write(SendON1_code)
time.sleep(5)#单位为秒
#继电器工作正常
'''




#步骤:关第1路
OFF1=" 01 05 00 00 00 00 cd ca"
SendOFF1_code=bytes.fromhex(OFF1)
SendOFF1=ser.write(SendOFF1_code)
#继电器关闭第1路

#步骤:关串口
ser.close(0)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值