【项目实战】——USB双路继电器电脑控制灯的开关(Python)

环境:window10、Python3.7.9

依赖库:pyserial

硬件:220V灯带、220V吊灯、USB双路继电器、电笔

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

 

转载请注明出处,谢谢~~~
 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字符串去掉空格

2019独角兽企业重金招聘Python工程师标准>>> String s1s.trim().replaceAll("\\s*", ""); 转载于:https://my.oschina.net/u/2842177/blog/1587850

基于CMake构建MSVC_CUDA及MinGW编译环境下的的OpenCV项目

前言 第一次搭建OpenCV开发环境的时候各种报错,内心那个烦啊,简直了。当时只能针对某个特定的错误去寻找特定的解决方法,在OpenCV构建过程中出现最多的问题就是各个模块文件的下载问题,本质上这类问题的解决思路都是一样的&#…

【opencv】——钢管计数(霍夫圆变换 + 阈值 + canny)

目录 方法一:霍夫圆变换 + canny 方法二 阈值 + 寻边 对图中的钢管进行计数 方法一:霍夫圆变换 + canny

DNS域传送漏洞

0x00 相关背景介绍 Dns是整个互联网公司业务的基础,目前越来越多的互联网公司开始自己搭建DNS服务器做解析服务,同时由于DNS服务是基础性服务非常重要,因此很多公司会对DNS服务器进行主备配置而DNS主备之间的数据同步就会用到dns域传送&#…

封装之--通过类中公有方法访问私有成员变量

如何在ClassB中访问ClassA的私有成员变量?(典型的封装案例) 通过在ClassA中定义公有的成员方法,然后,在ClassB中通过ClassA的对象调用ClassA中的公有方法,来访问ClassA中的私有成员变量。 转载于:https://w…

匹配物镜放大倍数与相机像元尺寸

通常来说,相机内部的CCD或者CMOS传感器上都有感光阵列,由一个一个的感光元件构成,每一个感光元件负责完成光电转换的过程。简单理解,一个感光元件可以认为就是一个像素(pixel)或像元(pel)。像元具有一定尺寸,如果像的尺…

【深度学习】——非极大值抑制(nms/soft-nms)

目录 一、相关概念 1、iou 1)理论计算 2)Python代码(代码参考yolov3模型util.py文件) 2、nms 1)基本思路 2)标准nms和soft-nms 3)Python代码实现(yolov3中util.py文件,增加了…

移动服务安全现状分析!

2019独角兽企业重金招聘Python工程师标准>>> 由于Android开源的环境,导致Android的整体环境都存在很多不安全的因素,同时用户在移动APP客户端的便捷应用,也给用户带来了巨大的安全隐患。未经过移动服务安全加固的APP存在被静态反编…

MyEclipse连接MySQL

在官网http://www.mysql.com/downloads/下载数据库连接驱动 本文中使用驱动版本为mysql-connector-java-5.1.40 一、创建一个java测试项目MySQLConnectorsTest 在项目下穿件一个lib文件夹用来存放MySQL驱动包。 右键驱动包build path进行add添加操作,打开Referenced…

在Windows系统中配置Google AddressSanitizer

Google AddressSanitizer简介 AddressSanitizer (ASan) 是 C 和 C 的内存错误检测软件,它可以检测: 释放指针后继续使用堆缓冲区溢出栈缓冲区溢出全局缓冲区溢出返回后继续使用在范围之外继续使用初始化顺序的bug内存泄漏 在 Windows 系统中&#xff…

【剑指offer】——求出一个正整数的质数因子(Python)

目录 一、题目描述 二、思路 1、短除法 2、平方根法 一、题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 ) 最后一个数后面也要有空格 输入描述…

C++ STL实现的优先队列( priority_queue )

本文参考的源码版本:gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)。 priority_queue 本质是容器适配器,它对内部容器的元素有自己的管理方式,而 priority_queue 实际维护的是一个二叉堆。STL中 priority_queue 的…

生成相关矩阵

U是X(差异矩阵)各列向量取方向后形成的矩阵,CU^T * U 即相关矩阵,即各列向量两两的夹角,(夹角越小说明关联度越高) clc avg_e66;avg_m66;avg_s76; x1[61 63 78 65 63] -avg_e; x2[53 73 61 84 5…

Java关于Properties用法的总结(一)

最近项目中有一个这样的需求,要做一个定时任务功能,定时备份数据库的操表,将表数据写入txt文件。因为文件的读写路径可能需要随时改动,所以写死或者写成静态变量都不方便,就考虑使用配置文件,这里总结些配置…

【tensorflow】——tensorboard可视化计算图以及参数曲线图loss图

参考文献: https://zhuanlan.zhihu.com/p/71328244 目录 1.可视化计算图 2.可视化参数 3. 远程tensorboard 4、报错 真是出来混迟早是要还的,之前一直拒绝学习Tensorboard,因为实在是有替代方案,直到发现到了不得不用的地步…

jQuery学习- 位置选择器

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>位置选择器</title><script src"js/jquery.js"></script><script type"text/javascript">$(function(){//获取第一个li$(&quo…

Vue3、TypeScript 实现图片数量及大小随宽度自适应调整

前言 过了这么久&#xff0c;想起自己还有个博客&#xff0c;更点内容吧&#xff01; 来&#xff0c;上需求&#xff01; 最近在做个前端界面&#xff0c;要求在一行中展示一些图片&#xff0c;展示的图片数量随着窗口宽度大小进行变化&#xff0c;除此之外还有以下要求&…

苹果Iphone/Ipad--L2T虚拟教程

1 Iphone和Ipad同为IOS&#xff0c;设置方法相同。首先进入IOS系统的“设置”程序。 2 点击“通用”进入通用设置&#xff0c;点击“”; 3 选择"添加设置 "&#xff1b; 4 选择L2TP方式&#xff0c;填写必要信息&#xff1a;描述、服务器地址 、您注册充值的账号及密…

记忆化搜索的应用

记忆化搜索的应用 一般来说&#xff0c;动态规划总要遍历所有的状态&#xff0c;而搜索可以排除一些无效状态。更重要的是搜索还可以剪枝&#xff0c;可能剪去大量不必要的状态&#xff0c;因此在空间开销上往往比动态规划要低很多。 如何协调好动态规划的高效率与高消费之间的…

Veebot-自动静脉抽血机器人

Veebot-自动静脉抽血机器人 我们可能都有过被抽血的经验。护士让你握紧拳头&#xff0c;用一根橡皮条压住你上臂的血管&#xff0c;在你的肘部内侧寻找你的静脉&#xff0c;有时还需要拍打几下&#xff0c;摸到隆起的静脉血管&#xff0c;一针下去。有时候碰到技术好的护士&…