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

Arduino Yun 入侵报警器 – 超声波检测 + 短信告警 (Twilio + Temboo)

组件与物料

Arduino Yun(或 Leonardo + WiFi 扩展板) ×1
HC-SR04 超声波测距模块 ×1
9V 电池及电池盒(带开关) ×1
杜邦线 ×4
迷你面包板(可选) ×1

应用与在线服务

工作原理

  1. HC-SR04 持续发射超声波脉冲,测量往返时间计算距离
  2. 检测到距离突变(有人闯入)时,Arduino Yun 通过 WiFi 调用 Temboo Choreo
  3. Temboo 触发 Twilio API 发送短信到预设手机号

无需焊接,约 45 分钟完成。成本约 $80-$90(含 Yun 板)。

步骤 1:接线与测试超声波模块

VCC→5V, GND→GND, Trig→D2, Echo→D4。上传测试代码,打开串口监视器 (9600 波特率),观察距离读数。若距离 <20 英寸或 >1000 英寸则打印 "Intruder Detected!"。

步骤 2:连接 WiFi

Yun 板按官方指南连接本地 WiFi;Leonardo + WiFi 扩展板参考对应文档。可用局域网扫描工具确认连接成功。

步骤 3:添加短信功能

  1. 在 Arduino IDE 新建草图,粘贴完整代码
  2. 新建标签页命名 TembooAccount.h,粘贴账号信息模板
  3. 注册 Temboo 和 Twilio 账号,获取:
  1. 将上述凭据填入代码对应位置(电话号码格式:+1xxxxxxxxxx)
  2. 上传代码,接上 9V 电池,打开串口监视器验证

步骤 4:调整灵敏度

代码中 if (inches < 20 || inches > 1100) 判断阈值需根据安装环境调整。建议先用测试代码观察正常距离范围,再设定触发阈值,避免误报消耗免费 API 额度(每上电最多 10 次发送)。

代码

测试代码 (无短信)

// 测试代码
#include <SoftwareSerial.h>
int trigPin = 2;
int echoPin = 4;
long duration, cm, inches;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  delay(5000);
  Serial.println("巡逻模式启动...");
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(1);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(2);
  digitalWrite(trigPin, LOW);
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
  inches = (duration / 2) / 74;
  Serial.println(inches);
  
  if (inches < 20 || inches > 1000) {
    Serial.println("检测到入侵者!");
    Serial.println("正在发送短信通知...");
    delay(5000);
    Serial.println("巡逻模式启动...");
  }
}

完整代码 (含 Twilio 短信)

#include <Bridge.h>
#include <Temboo.h>
#include "TembooAccount.h"  // 包含 Temboo 账号信息
#include <SoftwareSerial.h>

int numRuns = 1;
int maxRuns = 5;  // 最大发送次数,防止无限循环
int trigPin = 2;
int echoPin = 4;
long duration, cm, inches;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  delay(5000);
  Bridge.begin();
  Serial.println("巡逻模式启动...");
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(1);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(2);
  digitalWrite(trigPin, LOW);
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
  inches = (duration / 2) / 74;
  Serial.println(inches);
  
  if (inches < 20 || inches > 1100) {
    Serial.println("检测到入侵者!");
    Serial.println("正在发送短信通知...");
    
    if (numRuns <= maxRuns) {
      Serial.println("发送短信 - 第 " + String(numRuns++) + " 次");
      TembooChoreo SendSMSChoreo;
      SendSMSChoreo.begin();
      SendSMSChoreo.setAccountName(TEMBOO_ACCOUNT);
      SendSMSChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
      SendSMSChoreo.setAppKey(TEMBOO_APP_KEY);
      
      // Twilio 参数(请替换为你自己的)
      SendSMSChoreo.addInput("AuthToken", "your_twilio_auth_token");
      SendSMSChoreo.addInput("To", "+1xxxxxxxxxx");       // 接收号码
      SendSMSChoreo.addInput("From", "+1xxxxxxxxxx");     // Twilio 发送号码
      SendSMSChoreo.addInput("Body", "入侵警报!!!!!!");
      SendSMSChoreo.addInput("AccountSID", "your_twilio_account_sid");
      
      SendSMSChoreo.setChoreo("/Library/Twilio/SMSMessages/SendSMS");
      SendSMSChoreo.run();
      
      while (SendSMSChoreo.available()) {
        char c = SendSMSChoreo.read();
        Serial.print(c);
      }
      SendSMSChoreo.close();
    }
    Serial.println("等待中...");
    delay(10000);  // 10 秒冷却
    Serial.println("巡逻模式启动...");
  }
}

原理图

Arduino Yun 入侵报警器 – 超声波检测 + 短信告警 (Twilio + Temboo)

参考链接

制造工艺

  1. 树莓派传感器数据融合实战:GPS 与 MPU‑9150 IMU 的 I²C 与 UART 接入
  2. 树莓派接 KY‑033 循迹/门状态传感器:简易 Python 实现
  3. 树莓派构建稳健传感器 API:基于 GY‑91 多功能模块的 Flask 实现
  4. 树莓派 Home Assistant 安全监控:PIR 运动检测、报警面板与视频抓拍
  5. 树莓派 2 无头模式水浸报警器:基于 Adafruit T‑Cobbler Plus 构建
  6. 树莓派连接 HC-SR04 超声波传感器实战指南
  7. 树莓派自动化气雾栽培系统:湿度传感器智能控制
  8. 掌握树莓派 GPIO:在 B+/Model 2 上接入 PIR 运动传感器
  9. 将 Acconeer A111 脉冲雷达与树莓派集成:实用指南
  10. HC‑SR501 PIR 运动传感器与树莓派接线、校准与 Python 编程全指南
  11. Python/MicroPython 传感器记录仪:无缝写入 Google Sheets
  12. 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟