【项目实战】——USB双路继电器电脑控制灯的开关(Python)
2023-09-11 14:21:45 时间
环境:window10、Python3.7.9
依赖库:pyserial
1、安装Python第三方库pyserial
2、清楚插座的零火线(用电笔去测试,灯亮为火线)
3、清楚灯的零火线(一般红线为火线,蓝线为零线)
4、按照下面的电路图接线(继电器的NO端接插座的火线,COM端接等的火线)
NO:常开端
NC:常闭端
COM:公共端
5、USB连接电脑后,需要安装驱动,驱动可以直接找商家拿
6、安装完驱动后,用自带的软件进行测试(指令为16进制的)
注意:上面的串口是驱动安装成功后,会自动识别的,点击上面的按钮就能对继电器进行上下电操作进而控制等的开闭啦
7、利用Python来控制继电器来实现灯的开闭
代码:
# -*- coding: utf-8 -*-
import serial
import binascii
import string
import time
#打开串口
serialPort="COM5" #串口
baudRate=9600 #波特率
s=serial.Serial(serialPort, baudRate, timeout=0.5)
print("参数设置:串口={0} ,波特率={1}".format(serialPort,baudRate))
#收发数据
#n = s.inWaiting()
#if n:
# data = str(binascii.b2a_hex(s.read(n)))[2:-1]
# print(data)
#通讯协议
#指令通过16进制形式发送
#数据(1)---启始标识(默认为0xA0)
#数据(2)---开关地址码(默认为0x01,标识第1路;0x02标识第2路…依次类推)
#数据(3)---操作数据(0x00为关不反馈,0x01为开不反馈,0x02为关并反馈,0x03为开并反馈,0x04为取反并反馈,0x05为查询状态0X06为闪断并反馈)
#数据(4)---校验码(前面三个数据加和)
#示例
#打开第1路USB开关不反馈:A0 01 01 A2,继电器会吸合,但不会反馈数据
#关闭第1路USB开关不反馈:A0 01 00 A1,继电器会释放,但不会反馈数据
#打开第1路USB开关并反馈:A0 01 03 A4,继电器会吸合,并反馈状态A0 01 01 A2
#关闭第1路USB开关并反馈:A0 01 02 A3,继电器会释放,并反馈状态A0 01 00 A1
#取反第1路USB开关并反馈:A0 01 04 A5,继电器的状态会变化,并反馈最终状态
#关闭第1路USB开关不反馈:A0 01 05 A6,继电器会反馈实时状态
#打开第2路USB开关不反馈:A0 02 01 A3,继电器会吸合,但不会反馈数据
#关闭第2路USB开关不反馈:A0 02 00 A2,继电器会释放,但不会反馈数据
#打开第3路USB开关不反馈:A0 03 01 A4,继电器会吸合,但不会反馈数据
#关闭第3路USB开关不反馈:A0 03 00 A3,继电器会释放,但不会反馈数据
#打开第4路USB开关不反馈:A0 04 01 A5,继电器会吸合,但不会反馈数据
#关闭第4路USB开关不反馈:A0 04 00 A4,继电器会释放,但不会反馈数据
#发送
while(1):
d=bytes.fromhex('A0 01 01 A2')
s.write(d)
print("打开1")
time.sleep(2)
d = bytes.fromhex('A0 01 00 A1')
s.write(d)
print("关闭1")
time.sleep(2)
d=bytes.fromhex('A0 02 01 A3')
s.write(d)
print("打开2")
time.sleep(2)
d = bytes.fromhex('A0 02 00 A2')
s.write(d)
print("关闭2")
time.sleep(2)
# d=bytes.fromhex('A0 03 01 A4')
# s.write(d)
# print("打开2")
# time.sleep(1)
# d = bytes.fromhex('A0 03 00 A3')
# s.write(d)
# print("关闭2")
# time.sleep(1)
s.close()
8、相关资源
作品展示:https://www.bilibili.com/video/BV1Wf4y1k7UV?t=9
打包文件(含源码、驱动、说明):
https://pan.baidu.com/s/19my0Kyw92W_f3MBHCl6pTA
提取码:6666
转载请注明出处,谢谢~~~
相关文章
- Python 接口自动化测试框架
- 【python基础】Linux环境下非root用户安装Python和第三方包
- 【Python实战】python中含有中文字符无法运行
- Python当前进程信息 (os包)
- 【python】常用内建模块
- Python海龟作图
- 蓝桥杯 扩散python实现
- 华为OD机试 - 信号发射和接收(Java & JS & Python)
- 【Python基础】python爬虫之异步网络爬虫ǃ
- Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
- Python:利用python语言实现18位身份证号码和15位身份证号码相互转换
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画、版权声明(如README.md)等之详细攻略
- Python的IDE之PyCharm:PyCharm的简介、安装、入门、使用方法之详细攻略
- 已解决Visit python.org to download an earlier version of Python.
- 〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建
- python居然能语音控制电脑壁纸切换,只需60行代码
- python-ffmpeg
- Python编程:flask_restful模块提供api接口
- cassandra cqlsh 和 python客户端
- 《Fluent Python》读书笔记-1.3 内置序列容器