带短信通知的入侵警报
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
|
关于这个项目
这很容易做到,不需要焊接或高级技能。
这是它的工作原理:
范围传感器检测到 ping 中断 --->
通过WIFI呼叫Temboo --->
告诉 Twilio API 发送文本!
本教程向您展示如何创建入侵者警报,在检测到运动时向您发送文本消息警报。这听起来可能很复杂,但我非常有信心任何电子初学者都应该能够做到这一点。范围传感器感知运动并告诉您的 Arduino 板发送文本。因此,只要您有手机服务,您就可以将入侵者探测器留在家中,连接到您的网络,并且无论您身在何处,仍然可以收到短信警报。
这是一个非常快速和简单的项目,可能需要 45 分钟才能完成。零件可以在亚马逊上以大约 80-90 美元的价格购买,如果您不介意从速卖通网站等待,则大约为 50 美元。主要成本是一个具有 WIFI 功能的 Arduino 板,但是一旦你拥有它,它就可以用于大量其他项目,并且可以获得更多乐趣......
您需要的零件:
-HC-SRO4 距离传感器
-Arduino Yun板或Leonardo带WIFI屏蔽
-4 跳线
-一个迷你面包板(如果你愿意)
-一节9V电池
-一个9V电池盒,带桶形插头和开/关开关
可以在此处找到部件和代码的链接:
部分链接和代码
第 1 步:建立这些连接并进行测试!
将您的范围传感器连接到您的电路板,如图所示。
首先,我们将测试我们的距离传感器并确保其正常工作。
转到这里的第一个代码块 http://wirebeings.com/arduino-intruder-alarm.html
并将其复制/粘贴到 Arduino IDE 中。
插入您的电路板并上传草图。
拉起串行监视器并确保它在 9600 BAUD 上。
你会看到一串数字被打印出来
(这是最近物体离传感器的距离,单位为英寸)
每当传感器检测到足够大的 ping 差异时,它都会向串行监视器打印“检测到入侵者”。
第 2 步:将您的开发板连接到您的 WiFi 网络。
如果您使用的是 Arduino Yun,请按照此处的说明进行操作:
https://www.arduino.cc/en/Main/ArduinoBoardYun
如果您使用的是带有 Iduino wifi 屏蔽的 Leonardo,请按照此处的说明进行操作:
http://www.geeetech.com/wiki/index.php/Iduino_Yun_Shield
要测试 a 确保它连接到与您的计算机相同的网络,您可以使用终端并快速对您的网络进行 LAN 扫描,或下载一个免费程序来为您执行此操作。
我使用的是 Mac,所以我从 Mac 商店下载了 LanScan。
第三步:添加短信功能。
打开 Arduino IDE 并创建一个新草图。
将此处的第二个代码块复制并粘贴到 Arduino IDE 中:
http://wirebeings.com/arduino-intruder-alarm.html
点击右侧的向下箭头,然后点击创建新标签。
称之为 TembooAccount.h
返回上面的网站并将最后一个代码块(头文件)复制并粘贴到那里。
保存它。
现在您需要在 Temboo 和 Twilio 上创建一个帐户,以便您可以将您的信息添加到代码中。
第 4 步:将您的 Twilio 和 Temboo 凭据添加到草图中。
导航到您的 Twilio 帐户中的帐户设置以找到您的帐户 SID 和身份验证令牌(单击锁定按钮以显示它)
将这些添加到引号内的主草图中适当的“***********”
返回 Twilio 主页并再次点击帐户。点击电话号码,这将为您提供“发件人”电话号码,将其添加到代码中。
最后,添加要接收文本的电话号码,并根据需要自定义消息。
(保持这种格式的电话号码,否则它不会工作“+1*******”)
现在转到头文件并添加您的 Temboo 帐户信息。登录到您的 Temboo 帐户并点击应用程序以获取所有这些信息。
保存并点击上传。
使用 9V 电池组为您的电路板供电(按下开关)并拉起串行监视器以确保其正常工作!!!
连接可能需要 20 秒左右。
第 5 步:然后……你完成了!
如果您遇到无法正常工作的问题。更改此处图片中突出显示的语句中的数字范围。
此语句意味着如果与最近物体的距离小于 20 或大于 500,您将发送消息。根据它在您家中的位置以及最近的物体是什么,需要使用这些值以使其正常工作。
这最好在代码实际上不发送文本消息(网站上的第一个代码块)的测试阶段完成,因为您只能获得有限数量的 Temboo 和 Twilio API 的免费调用,所以不要浪费他们!不要担心,尽管代码实际上会阻止您在必须拔下并重新启动电路板之前发送 10 个以上的调用。
有任何问题都可以问我,我很乐意提供帮助!
代码
- IntruderDetectorTEST
- 具有文本功能的完整代码
IntruderDetectorTESTArduino
//TEST CODE #includeint trigPin =2;int echoPin =4;long duration, cm,inches;void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);延迟(5000); Serial.println("巡逻模式启动...");}void loop(){ digitalWrite(trigPin, LOW);延迟微秒(1);数字写入(触发引脚,高);延迟微秒(2);数字写入(trigPin,低); pinMode(echoPin, INPUT);持续时间 =脉冲输入(echoPin,高);英寸 =(持续时间 / 2) / 74; Serial.println(英寸);如果(英寸 <20 || 英寸> 1000){ Serial.println(“检测到入侵者!”); Serial.println("发送文本通知...");延迟(5000); Serial.println("巡逻模式启动..."); }//结束if语句}//结束循环
具有文本功能的完整代码Arduino
#include#include #include "TembooAccount.h" // 包含 Temboo 账户信息,如下所述#include int numRuns =1; // 执行计数,所以这不会永远运行int maxRuns =5; // Choreo 应执行的最大次数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);延迟微秒(1);数字写入(触发引脚,高);延迟微秒(2);数字写入(trigPin,低); pinMode(echoPin, INPUT);持续时间 =脉冲输入(echoPin,高);英寸 =(持续时间 / 2) / 74; Serial.println(英寸);如果(英寸 <20 || 英寸> 1100){ Serial.println(“检测到入侵者!”); Serial.println("发送文本通知..."); if (numRuns <=maxRuns) { Serial.println("Running SendSMS - Run #" + String(numRuns++)); TembooChoreo SendSMSChoreo; // 调用 Temboo 客户端 SendSMSChoreo.begin(); // 设置 Temboo 账户凭据 SendSMSChoreo.setAccountName(TEMBOO_ACCOUNT); SendSMSChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); SendSMSChoreo.setAppKey(TEMBOO_APP_KEY); // 设置 Choreo 输入 SendSMSChoreo.addInput("AuthToken", "e684a4f37ee686636e2b1e24c12f4279"); SendSMSChoreo.addInput("To", "+14125236422"); SendSMSChoreo.addInput("发件人", "+14123608633"); SendSMSChoreo.addInput("Body", "检测到入侵者!!!!!!"); SendSMSChoreo.addInput("AccountSID", "ACf3be01a84d78829e5619c16b6e16a9e4"); // 确定要运行的 Choreo SendSMSChoreo.setChoreo("/Library/Twilio/SMSMessages/SendSMS"); // 运行 Choreo;当结果可用时,将它们打印到串行 SendSMSChoreo.run(); while(SendSMSChoreo.available()) { char c =SendSMSChoreo.read(); Serial.print(c); SendSMSChoreo.close(); Serial.println("等待中...");延迟(10000); // 在 SendSMS 调用之间等待 10 秒 Serial.println("Patrol Mode Initiated..."); }//结束if语句 }//结束循环
示意图
制造工艺
- 传感器数据与 Raspberry Pi 微处理器的集成
- 带 RPi 的线跟踪传感器
- 带有 RPi 的环境传感器 API
- 树莓派上的 HA 中的运动传感器、警报、视频录制
- 带有 t cobbler plus 的 Raspberry pi 2 水报警器
- 树莓派上的 HC-SR04 超声波距离传感器
- 带有 Raspberry Pi 和湿度传感器的 Aeroponics
- 带有 PIR 运动传感器的 Raspberry Pi GPIO:最佳教程
- 将 A111 脉冲雷达传感器与 Raspberry Pi 结合使用
- 将 HC-SR501 PIR 运动传感器与 Raspberry Pi 连接
- Python/MicroPython Sensor Logger with Google Sheets
- 带 DS1302 RTC 的简单闹钟