【摸鱼向】利用Arduino实现自动化切屏

曾几何时,每次背着老妈打游戏的时候都要紧张兮兮地听着爸妈是不是会破门而入,这严重影响了游戏体验,因此,最近想到了用Arduino加上红外传感器来实现自动监测的功能,当有人靠近门口的时候,电脑可以自动执行预设的命令,比如切屏。下面分享一个简单的实现~(注:私以为利用这种道具逃避学习是不对的,最好的办法是与父母进行沟通,协商好娱乐和学习的时间。)

硬件清单

Arduino Nano微控制器、HC-12无线串口通讯模块、人体红外传感器模块、TTL-USB转换器。

上图是信号发生端。HC-12连接到了Arduino Nano的硬串口上,而红外传感器的输出连接到了Arduino Nano的2号引脚上。

上图是信号接收端,负责把信号传给电脑。

它的原理呢,也非常的简单,当有人从周围经过时,红外传感器的输出信号会从低电平转为高电平,而Arduino Nano会捕获这个信号,进而把信息通过HC-12串口转发出去。

当接收器的HC-12接收到信息时,就会把信息通过这个USB口继续传输到电脑,所以我们只用在电脑监视这个输入信号即可。

代码撰写

首先是Arduino Nano烧录的代码:

cpp 复制代码
#include <Arduino.h>

volatile bool warnFlag = false;

void warn() {
  warnFlag = true;
}

void setup() {
  Serial.begin(9600);
  attachInterrupt(digitalPinToInterrupt(2), warn, CHANGE);
}

void loop() {
  if (warnFlag) {
    warnFlag = false;
    if (digitalRead(2) == HIGH) {
      Serial.print("<warn>\n");
    } else {
      Serial.print("<safe>\n");
    }
  }
}

然后是电脑上用于监视信号的代码:

python 复制代码
import serial

import pyautogui

se = serial.Serial(port = "COM12", baudrate = 9600)
pyautogui.PAUSE = 0.01

while True:
    if se.readable():
        cmd = se.readline().decode()
        if cmd == '<warn>\n':
            pyautogui.keyDown('space')
            pyautogui.keyDown('volumemute')
            pyautogui.hotkey('ctrl', 'win', 'left')
        if cmd == '<safe>\n':
            pyautogui.typewrite('safe now')

我的USB接收器设备连接的端口号是COM12,大家可以根据自己电脑上的设备管理器查看是哪一个端口并修改。而且我执行的快捷键序列是先按空格,再按静音键,最后切到左侧的桌面,大家可以根据自己的需要进行修改。

如何运行

把接收器插到电脑上,并且将python代码修改好并运行,再用9V电池给Arduino Nano供电,放到门口外面,当外面有人经过的时候,python中相应的命令就会被执行了~

结语

虽然实现起来很简单,但是我觉得这可能是我目前为止做出来的第一个具有量产价值的小东西😅,不过要想量产的话,还得再设计好模具,并且把部件都给替换成更便宜的部件(比如红外信号接收便宜得多),最后全安装到一个PCB板子上集成化。现在的话,单个成本大概是三四十,替换好之后大概十几块就可以搞定了。

相关推荐
guo_wen_qiang5 分钟前
mac中iTerm有没有类似xshell远程连接服务器的用户名密码方式,不用每次都要输入用户密码
运维·服务器·macos
xzl0413 分钟前
Ubuntu24.04 生产环境 Docker(全国内源)
运维·docker·容器
lajidecrd17 分钟前
Ubuntu 24.04 LTS安装
linux·运维·ubuntu
FII工业富联科技服务21 分钟前
从“单机自动化”到“技能复用”:从WRC 2026拆解机器人模型、仿真、部署与数据回流
人工智能·机器人·自动化
沫璃染墨25 分钟前
《从零入门Linux系统篇(二十九):文件篇·二——深入文件描述符:从文件描述符表到重定向,再到Shell实现》
linux·运维·服务器·c++·驱动开发·系统架构
竣达技术1 小时前
守护变电站直流 “生命线”|竣达 BMS‑PRO‑II 智能电池综合管理单元,让蓄电池运维看得见、管得牢
运维·监控系统·机房监控
云上工程笔记1 小时前
2026 年 GPU 云服务器成本对比榜单:显存、算力、单小时价格和任务完成成本怎么算
运维·服务器
楠楠子呀1 小时前
号码验证技术解析:从原理到实践
运维·人工智能·ai·electron·自动化
Baron X1 小时前
Linux PAM登录告警
linux·运维·告警
团子股股东峥哥1 小时前
day27-RHEL-访问Linux文件系统
linux·运维·服务器