亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 门磁传感器:PHPoC WiFi Shield 经 IFTTT 推送 Messenger 实时告警

⚠️ 重要提示

IFTTT 已于 2023 年停止 Facebook Messenger 服务(因 Meta 政策变更),本项目原演示功能**不再可用**。文档保留供学习 Arduino + WiFi Shield + IFTTT Webhooks 通信架构参考,可替换为 Telegram、Email、Slack 等仍支持的 Action 服务。

项目架构

Arduino UNO + PHPoC WiFi Shield 监测门磁开关 (A0) 状态变化 → 触发 HTTPS GET 请求至 maker.ifttt.com Webhooks 端点 → IFTTT 触发下游 Action(原为发送 Messenger 消息)。

硬件清单

软件与库

IFTTT Applet 配置步骤(通用模板)

  1. Create Applet → If This → **Webhooks** → Receive a web request → Event Name: door_open
  2. Then That → 选择目标服务(如 **Telegram** → Send message、Email** → Send email、Slack** → Post to channel)
  3. 消息内容可嵌入 {{OccurredAt}} 等 Ingredient
  4. Finish → 获取 Webhooks Key:https://ifttt.com/maker_webhooks → Documentation

接线说明

  • 门磁传感器:一线接 GND,一线接 A0
  • PHPoC Shield 直接插在 UNO 顶部,无需额外接线

核心代码逻辑

#include <Phpoc.h>
#include <ezButton.h>

String IFTTT_WEBHOOKS_KEY = "你的_Key";
char server[] = "maker.ifttt.com";
PhpocClient client;
ezButton button(A0);  // 内部上拉,低电平触发

void sendNotification() {
  if (client.connectSSL(server, 443)) {
    client.println("GET /trigger/door_open/with/key/" + IFTTT_WEBHOOKS_KEY + " HTTP/1.1");
    client.println("Host: maker.ifttt.com");
    client.println("Connection: close");
    client.println();
    // 读取响应并串口打印
    while (client.connected()) {
      if (client.available()) Serial.write(client.read());
    }
    client.stop();
  }
}

void setup() {
  Serial.begin(9600);
  Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
  button.setDebounceTime(100);
}

void loop() {
  button.loop();
  if (button.isPressed()) {
    Serial.println("door is opened");
    sendNotification();
    delay(100);
  } else if (button.isReleased()) {
    Serial.println("door is closed");
  }
}

关键技术点

  • PHPoC Shield 优势:硬件级 SSL/TLS,无需在 2KB RAM 的 UNO 上实现加密协议栈,connectSSL() 一行搞定 HTTPS
  • ezButton 去抖:100 ms 去抖动,避免门磁震荡触发多次
  • 事件驱动:仅在状态变化时发送请求,节省流量与电量
  • 固定 IP 可选:代码示例展示 WiFi.config() 设置静态 IP

迁移建议(替代 Messenger)

学习价值

尽管 Messenger 通道已失效,本项目完整演示了:

  1. Arduino + 专用 WiFi Shield 实现安全 HTTPS 请求
  2. IFTTT Webhooks 作为云端事件总线的连接范式
  3. 干簧管门磁信号调理与去抖动
  4. 事件驱动架构在物联网终端的落地

读者可直接复用代码框架,仅修改 IFTTT Action 即可部署生产可用的门磁告警系统。

制造工艺

  1. 使用 Arduino Uno 轻松编程 Atmel AT89 系列单片机——分步指南
  2. K30 CO₂ 传感器:室内空气质量实时监测
  3. 非接触体温筛查闸机:Arduino MKR1000 + 红外测温 + 舵机控制
  4. 基于 Arduino、Yaler 与 IFTTT 构建 Web 化 IoT 仪表盘
  5. 实时森林火灾监测系统:短信报警方案
  6. Arduino UNO + WiFi 盾板:串口实时推送温度到网页绘图
  7. 校园智能体温监测系统 - 精准、实时、安全的学生健康守护方案
  8. Intel Curie 加速度计驱动的体感触发灯光系统
  9. 基于 Arduino 和超声波传感器的自动门控制系统
  10. 智能无钥匙门锁:Arduino + Android 蓝牙密码控制舵机开锁
  11. 基于 Arduino 的智能温室监测与自动灌溉系统
  12. 基于 Arduino 与 ESP8266 的 WiFi 智能门锁:手机扫码解锁

替代目标IFTTT Action 服务适用场景
Telegram BotTelegram → Send message即时通讯、群组通知、支持 Markdown
EmailEmail → Send me an email正式记录、归档、无需安装 App
Slack/DiscordSlack → Post to channel / Discord → Post message团队协作、运维告警
Google SheetsGoogle Sheets → Add row to spreadsheet长期日志、数据分析
Webhook 自建Webhooks → Make a web request对接自有服务器、Home Assistant、Node-RED