红外控制Windows音量by python
2021/12/8 7:19:55
本文主要是介绍红外控制Windows音量by python,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在宿舍刷剧时经常会贪在凳子上懒得调音量,看着实验室吃灰的8266,故有了想法做一个遥控控制音量的东东。
esp8266部分
arduino比较简单,直接给出代码。
#include <Arduino.h> #include <IRremoteESP8266.h> #include <IRrecv.h> #include <IRutils.h> int RECV_PIN = 2; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(115200); // 假如启动过程出现问题,提示用户启动失败 Serial.println("Enabling IRin"); irrecv.enableIRIn(); // Start the receiver Serial.println("Enabled IRin"); } void loop() { if (irrecv.decode(&results)) { //检查是否接收到红外遥控信号 serialPrintUint64(results.value, HEX); irrecv.resume(); //接收下一指令 } delay(100); }
其中需要安装一个红外库:
接线图如下:
其中红外左引脚为信号输出,接到8266的D4引脚
采用买套件送的红外遥控
如图所示,当收到信号后,led会闪烁。
python代码解析部分
import pyautogui #pyautogui.press('volumeup') #调大音量 import serial #导入模块 try: portx="COM6" bps=115200 #超时设置,None:永远等待操作,0为立即返回请求结果,其他值为等待超时时间(单位为秒) timex=None ser=serial.Serial(portx,bps,timeout=timex) #print("串口详情参数:", ser) #十六进制的发送 #result=ser.write(chr(0x06).encode("utf-8"))#写数据 #print("写总字节数:",result) #十六进制的读取 while 1: #print(ser.read().hex())#读一个字节 sign = ser.read(6) print(sign) # 读一个字节 if sign == b'FFA857': print("音量加") pyautogui.press('volumeup') if sign == b'FFE01F': print("音量减") pyautogui.press('volumedown') ser.flushInput() ser.close()#关闭串口 except Exception as e: print("---异常---:",e)
控制部分采用pyautogui,模仿真实按键按下,当收到指定信号后,调高或调低音量。
就这样。
这篇关于红外控制Windows音量by python的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南