基于 PIR 运动传感器与 Particle Photon 2 的自动作业页面触发系统

嵌入式系统 时间:2025-11-14来源:


——“门一开,我就在写作业” 的智能自控解决方案

1. 引言:把童年阴影做成一个项目

许多人都有类似的经历:正专心玩游戏时,房门突然被推开。电脑屏幕上还来不及切换,“暴露瞬间” 已经发生。
本项目从一个有趣的日常问题出发,构建了一个自动化系统——只要检测到房门被推开(即检测到运动),电脑端就自动切换到“作业页面”(如 Google Classroom)。

整个系统背后涉及:

这个项目虽然玩法轻松,但实际上十分完整,涵盖 IoT 设备输入、云事件发布、Webhook 回调、桌面端自动化等多个技术点。

Motion detector connected to Photon 2


2. 系统整体工作流程

完整系统由三个部分共同运行:

PIR 运动传感器 → Photon 2 → Webhook → ngrok → Node.js → AutoHotkey → 打开作业网页

流程分解如下:

  1. PIR 运动传感器 检测到门打开时的运动。

  2. Photon 2 读取传感器状态,如果从 LOW→HIGH 发生变化,则发布云事件 switchTabs1

  3. Particle Cloud 将事件推送到预设 webhook。

  4. ngrok 暴露本地 Node.js 服务器的公网地址。

  5. Node.js 服务端脚本 接收 webhook 调用,本地执行系统命令。

  6. AutoHotkey (AHK) 脚本自动打开 Google Classroom 或任何指定“作业页面”。

  7. 最终,实现“父母开门 → 电脑立即跳到作业页面”的效果。


3. 使用到的硬件与软件组件

3.1 硬件组件

组件数量功能说明
PIR Motion Sensor1检测人体运动(门开动作被视为运动)
Particle Photon 21Wi-Fi MCU,用于读取传感器并发布事件
杜邦线 + 面包板若干原型连接
Micro-USB 数据线1为 Photon 2 通电与编程

3.2 软件组件

软件功能
Particle Web IDE编写与烧录 Photon 2 端固件
Node.js本地服务器,接收 webhook 回调
ngrok为本地 Node.js 开端口映射到公网
AutoHotkey自动执行电脑端操作,如打开网页

4. 系统安装与运行方式概述

使用前需要先启动两个服务:

① Node.js 本地服务器

用于监听来自 Photon 2 Webhook 的 HTTP 请求。
启动方式(示例):

node index.js

② 启动 ngrok

将 Node.js 服务器暴露为公网地址:

ngrok http 3000

ngrok 输出中会包含类似:

https://abc123.ngrok.io  →  http://localhost:3000

该地址就是 Webhook 在 Photon 端配置时使用的 URL。


5. 硬件搭建

PIR 传感器通常有三个引脚:

你将传感器通过胶带固定在桌角,使其能直接“看到”房门,避免误触发。


6. 核心代码解析

6.1 Photon 2 端固件(读取 PIR → 发布 webhook 事件)

你提供的代码如下:

#include "Particle.h"

int motionSensor = 6;
int lastMotionState = LOW;

void setup()
{
    pinMode(motionSensor, INPUT);
    Serial.begin(9600);
}

void loop()
{
    int motionState = digitalRead(motionSensor);

    if (motionState == HIGH && lastMotionState == LOW)
    {
        Particle.publish("switchTabs1");
        Serial.println("Motion sensed");
    }

    lastMotionState = motionState;
}

功能说明:


7. 电脑端逻辑(Node.js + AutoHotkey)

当 webhook 到达本地 Node.js 服务器后:

  1. Node.js 脚本收到请求;

  2. 调用 AutoHotkey 脚本;

  3. AutoHotkey 脚本执行:

Run, https://classroom.google.com

即可自动打开你的作业页面。

这使得“检测运动 → 自动切换到作业浏览器标签页”成为可能。


8. 最终效果展示

完成搭建后,系统表现如下:

你的视频演示展示了整个触发过程,非常有趣,也具有极高的互动性。

Motion sensor taped into place


9. 工程化分析与可扩展性

尽管项目旨在“娱乐与隐藏游戏界面”,但技术架构十分完整,值得扩展为更多严肃用途:

未来还可加入:


10. 总结

这个项目虽然故事轻松,动机有趣,但技术路径完整,逻辑清晰,是一个非常好的 IoT 入门 Showcase:

是一个“从物理世界到电脑桌面”的完整链路示例。

关键词: DIY

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版