久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于 PIR 運動傳感器與 Particle Photon 2 的自動作業頁面觸發系統

基于 PIR 運動傳感器與 Particle Photon 2 的自動作業頁面觸發系統

作者: 時間:2025-11-14 來源: 收藏


——“門一開,我就在寫作業” 的智能自控解決方案

1. 引言:把童年陰影做成一個項目

許多人都有類似的經歷:正專心玩游戲時,房門突然被推開。電腦屏幕上還來不及切換,“暴露瞬間” 已經發生。
本項目從一個有趣的日常問題出發,構建了一個自動化系統——只要檢測到房門被推開(即檢測到運動),電腦端就自動切換到“作業頁面”(如 Google Classroom)。

整個系統背后涉及:

  • PIR 運動檢測傳感器

  • Particle Photon 2 Wi-Fi 微控制器

  • Webhook 數據推送機制

  • Node.js 本地服務器

  • ngrok 公網通道轉發

  • AutoHotkey 本地腳本自動觸發瀏覽器動作

這個項目雖然玩法輕松,但實際上十分完整,涵蓋 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 傳感器通常有三個引腳:

  • VCC → Photon 2 3V3

  • GND → Photon 2 GND

  • OUT → Photon 2 D6

你將傳感器通過膠帶固定在桌角,使其能直接“看到”房門,避免誤觸發。


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;
}

功能說明:

  • 從 D6 引腳讀取 PIR 輸出。

  • 檢測到 LOW → HIGH 的上升沿視為“檢測到新運動”。

  • 調用 Particle.publish("switchTabs1") 發布事件。

  • Cloud 將事件推送到 webhook URL。


7. 電腦端邏輯(Node.js + AutoHotkey)

當 webhook 到達本地 Node.js 服務器后:

  1. Node.js 腳本收到請求;

  2. 調用 AutoHotkey 腳本;

  3. AutoHotkey 腳本執行:

Run, https://classroom.google.com

即可自動打開你的作業頁面。

這使得“檢測運動 → 自動切換到作業瀏覽器標簽頁”成為可能。


8. 最終效果展示

完成搭建后,系統表現如下:

  • 當房門被推開時,PIR 檢測到運動;

  • Photon 2 立即發出云事件;

  • 電腦端收到 webhook;

  • AutoHotkey 自動切換到作業頁面;

  • 屏幕上瞬間出現 Google Classroom,完美掩護。

你的視頻演示展示了整個觸發過程,非常有趣,也具有極高的互動性。

Motion sensor taped into place


9. 工程化分析與可擴展性

盡管項目旨在“娛樂與隱藏游戲界面”,但技術架構十分完整,值得擴展為更多嚴肅用途:

  • 家庭自動化:門禁檢測、燈光觸發、語音提醒

  • 實驗室與辦公空間的入侵/訪問監控

  • 私人工作站自動鎖屏

  • 結合攝像頭的事件觸發式錄影

未來還可加入:

  • Photon 2 端增加防抖動邏輯與事件冷卻時間;

  • 用 WebSocket 代替 webhook,實現更低延遲;

  • 將 ngrok 替換為局域網監聽 + 局域網觸發腳本;

  • 使用云平臺執行更多動作(IFTTT、Home Assistant 等)。


10. 總結

這個項目雖然故事輕松,動機有趣,但技術路徑完整,邏輯清晰,是一個非常好的 IoT 入門 Showcase:

  • 傳感器輸入(PIR)

  • 邊緣計算(Photon 2)

  • 云事件與 webhook

  • 公網穿透(ngrok)

  • 本地服務端執行(Node.js)

  • 桌面自動化(AutoHotkey)

是一個“從物理世界到電腦桌面”的完整鏈路示例。


關鍵詞: DIY

評論


相關推薦

技術專區

關閉