Raspberry Pi Pico W 環境監測:MQ-2 傳感器與 Make.com 整合

Raspberry Pi Pico W 連接 MQ-2 傳感器並透過 Make.com Webhook 上傳數據到 Notion ,並且當氣體濃度超過警戒值時,會透過 LINE Notify 來通知使用者。


📖 教案:使用 Raspberry Pi Pico W 進行空氣品質監測

🔹 課程目標

  1. 了解 MQ-2 煙霧傳感器 的原理及應用
  2. 學習 Raspberry Pi Pico W 如何連接 WiFi
  3. 學習如何透過 Make.com Webhook 來寫入數據到 Notion
  4. 設定 氣體警戒值,並透過 LINE Notify 發送警報通知

📌 一、所需設備

設備 數量
Raspberry Pi Pico W 1
MQ-2 煙霧傳感器 1
面包板 1
杜邦線 若干

📌 二、硬體連接

MQ-2 傳感器 Raspberry Pi Pico W (GPIO)
VCC 3.3V
GND GND
A0 A5

📌 三、程式說明

  1. 連接 WiFi
  2. 讀取 MQ-2 傳感器數值
  3. 透過 Make.com Webhook 上傳數據
  4. 當偵測到超標時,發送 LINE Notify

📌 四、完整程式

🔹 上傳數據到 Notion & 透過 LINE Notify 發送警報

#include <WiFi.h>
#include <HTTPClient.h>
#include <WiFiClientSecure.h>
#include <TridentTD_LineNotify.h>

// 🔹 WiFi 連線資訊
char SSID[] = "你的 WiFi 名稱";   
char PASSWORD[] = "你的 WiFi 密碼"; 

// 🔹 Make.com Webhook URL(用於寫入 Notion)
const char* MAKE_WEBHOOK_URL = "https://hook.integromat.com/你的webhook網址";

// 🔹 LINE Notify Token(當氣體超標時發送警報)
#define LINE_TOKEN "你的 LINE Notify 金鑰"

// 🔹 MQ-2 煙霧傳感器
int gasSensor = A5;
int qualityLevel = 2; // 傳感器敏感度 (qualityLevel * 200 = gasValue)

// 🔹 氣體濃度警戒值
int GAS_WARNING_LEVEL = 500; 

void setup() {
    Serial.begin(115200);

    // 連線到 WiFi
    Serial.print("正在連接 WiFi: ");
    Serial.println(SSID);
    WiFi.begin(SSID, PASSWORD);

    while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
    }

    Serial.println("\nWiFi 連線成功!");
    Serial.print("IP 地址: ");
    Serial.println(WiFi.localIP());

    // 設定 LINE Notify Token
    LINE.setToken(LINE_TOKEN);
}

void loop() {
    if (WiFi.status() == WL_CONNECTED) {
        HTTPClient http;
        http.begin(MAKE_WEBHOOK_URL);
        http.addHeader("Content-Type", "application/json");

        // 讀取 MQ-2 傳感器數值
        int gasValue = analogRead(gasSensor) * qualityLevel;
        bool isOverLimit = gasValue > GAS_WARNING_LEVEL;

        Serial.print("偵測到的氣體濃度: ");
        Serial.println(gasValue);

        // 建立 JSON 數據
        String jsonPayload = "{";
        jsonPayload += "\"timestamp\": \"" + String(millis()) + "\",";
        jsonPayload += "\"sensor_id\": \"MQ-2\",";
        jsonPayload += "\"value\": " + String(gasValue) + ",";
        jsonPayload += "\"over_limit\": \"" + String(isOverLimit ? "是" : "否") + "\"";
        jsonPayload += "}";

        // 發送資料到 Make.com
        int httpResponseCode = http.POST(jsonPayload);
        if (httpResponseCode > 0) {
            Serial.print("數據發送成功, HTTP 回應碼: ");
            Serial.println(httpResponseCode);
        } else {
            Serial.print("數據發送失敗, 錯誤: ");
            Serial.println(http.errorToString(httpResponseCode).c_str());
        }

        http.end();

        // 🔹 如果超標,發送 LINE Notify 警報
        if (isOverLimit) {
            String message = "⚠️ 煙霧警報!\n氣體濃度超標!\n";
            message += "當前濃度:" + String(gasValue) + "\n";
            message += "請儘速查看環境狀況!";
            LINE.notify(message);
        }
    } else {
        Serial.println("WiFi 未連線, 無法發送數據");
    }

    delay(60000); // 每 60 秒發送一次數據
}

📌 五、Make.com 設定

  1. 創建 Webhook

    • 步驟 1:進入 Make.com
    • 步驟 2:建立新的 Scenario
    • 步驟 3:新增 Webhook 模組,選擇 Custom Webhook
    • 步驟 4:點擊 Add,命名 Webhook,例如 MQ2_Sensor
    • 步驟 5:點擊 Copy address to clipboard,將 Webhook URL 貼到程式 MAKE_WEBHOOK_URL
  2. 寫入 Notion

    • 步驟 1:新增 Notion 模組
    • 步驟 2:選擇 Create a Database Item
    • 步驟 3:選擇你要寫入的 Notion 資料庫
    • 步驟 4:對應 sensor_idvaluetimestampover_limit 欄位
  3. 設置 LINE Notify

    • 步驟 1:新增 HTTP 模組
    • 步驟 2:選擇 Make a request
    • 步驟 3:請求類型選擇 POST
    • 步驟 4:網址填入 https://notify-api.line.me/api/notify
    • 步驟 5:Header 設置 Authorization: Bearer 你的 LINE Notify Token
    • 步驟 6:Body 設置 message=⚠️ 煙霧警報!氣體濃度超標!

📌 六、學習成果

了解 MQ-2 傳感器的工作原理
學會用 Pico W 連接 WiFi
使用 Make.com Webhook 傳送數據到 Notion
透過 LINE Notify 及時警報

🎯 未來擴展
📌 加入溫溼度感測器
📌 讓數據繪製成報表
📌 增加警報聲響裝置

這樣的課程能夠結合 物聯網 (IoT)自動化通知,適合用來設計 智慧家居或環境監測 相關應用!🚀

Make.com 核心工具介紹:Router、Aggregator 與 Iterator 的應用實例

深入解析 Make.com 的三大核心模組:Router、Aggregator 和 Iterator,並結合實際案例,展示如何設計高效的自動化流程,適用於天氣提醒、Email 附件處理與 Telegram AI 助理等場景。 閱讀更多 »

AI 工具功能與應用對照表(2025 年 4 月)

2025 年 4 月主流 AI 工具功能與應用一覽,涵蓋 Kling 2.0、Seaweed AI、Canva Visual Suite、Codex、GPT-4.1、Claude Autonomous Research、Microsoft Copilot Vision、Grok Studio、Gemini 2.5 Flash 等,從技術特性、強項、適用場景到成本,助你快速選擇最合適的 AI 工具。 閱讀更多 »

本機自動化工具 macOS vs Windows 11:跨平台任務整合與 API 實戰

詳細比較 Automator、AppleScript、Power Automate Desktop、AutoHotKey、Hammerspoon 等本機自動化工具在 macOS 與 Windows 11 上的功能差異,並提供 YouTube + Memo AI + Notion 的跨平台自動化腳本與最佳實踐。 閱讀更多 »

AI + 自動化工具設計核心需求與模型比較

從開發、設計到教學三大角色視角,全面比較 Gemini 2.5 Pro、GPT-4o、Claude 3 Sonnet 三大主流 AI 模型在自動化工具設計、推理規劃、多模態處理、成本效益等面向的優劣,並給出實務選型建議。 閱讀更多 »

Apify vs. Firecrawl vs. Crawl AI:AI 網頁爬蟲服務與框架詳細比較

全面比較 Apify、Firecrawl、Crawl AI 三大網頁爬蟲平台與框架,從功能定位、資料提取、AI/LLM 整合、API 生態、成本、部署模式到適用場景,協助開發者選擇最適合的現代爬蟲解決方案。 閱讀更多 »

使用 Yahoo Finance API 實現農產品交易數據的自動化擷取與儲存

學習如何使用 yfinance 抓取農產品交易數據,建立 FastAPI 服務,並透過 Make.com 將數據自動存入 Notion,實現金融數據分析與自動化流程。 閱讀更多 »