具有易于构建的运动检测系统的更安全的家庭
具有易于构建的运动检测系统的更安全的家庭
没有什么比在家中感到安全更普遍、更重要的了。对这种感觉的任何干扰都足以对你的整个生活产生负面影响。这就是为什么,无论威胁有多么真实,我们都会优先考虑我们的安全并尽力降低风险,家庭安全市场估计价值约为 569 亿美元这一事实凸显了这一现实。
该市场增长的一个重要贡献者是物联网的出现,再加上可靠连接技术的可用性更高,使房主有机会获得各种记录视频、警报用户或锁门的设备,除其他好处外。
尽管这些设备价格实惠且非常用户友好(易于安装和使用),但我们是 Ubidots 的制造商,这就是为什么我们的第一直觉通常是寻找零件并用我们自己的零件构建我们需要的设备手。
我们的客户成功工程师之一莱昂纳多(Leonardo)就是这样的情况,他最近面临着房屋和家人的安全可能面临风险的情况。
长话短说,有人多次看到一些看起来可疑的人在他的社区里闲逛,尽管还没有发生任何事情,但社区里一致认为他们感到多么不舒服。
就莱昂纳多而言,这种情况压力更大,因为他大多数周末都与家人一起旅行,让家里空着,给这些人(或其他人)提供了绝佳的侵入机会。
考虑到所有这些,是时候开始工作了……在评估了他已经拥有的所有工具和资源后,莱昂纳多决定制作一个运动检测系统,每次触发时都会拍照,因为,在所有其他选项中,这个选项对他的问题最有效。
他设想的系统具有既微妙又极其高效的优点,因为他不必不断监视图像(因为它会提醒他每一个新的图片/动作),而且他随时可以打电话给警察无论他身在何处,系统都会拍摄他认为有问题的东西。
该系统的工作原理是使用被动红外传感器,在记录运动后触发 ESP32-CAM 拍照。然后,图像会发送到 Google Drive,其FileID、FolderID和FileName会发送到 Ubidots,在其中可以在仪表板中可视化图片。 Ubidots 还会在每次拍摄照片时生成 Leonardo 在手机上收到的提醒,让您轻松跟上任何新奇事物。
逐步构建运动检测系统
项目使用的硬件
PIR 运动传感器 (1)
M5Stack ESP32 摄像头模组开发板 (1)
SparkFun FTDI 基本分线 – 3.3V (1)
跳线 (1)
项目中使用的软件/云工具
Ubidots 活跃帐户
Arduino集成开发环境
谷歌脚本
1. 将 PIR 运动传感器连接到 ESP32-CAM
借助一些跳线,按照下图所示的原理图将 PIR 运动传感器连接到 ESP32-CAM。请注意,您可以更改代码内的引脚分配。
2. 对 Google Script 项目进行编程。
要创建新的 Google 脚本项目,请执行以下步骤:
转至Google Apps 脚本网站。
单击左上角的“+ 新项目”按钮并创建一个新项目。
复制在此存储库中找到的代码并将其粘贴到您的 Google 脚本项目中。
将您的 Ubidots 帐户的令牌放入名为“ TOKEN ”的变量中。这样,系统将以字符串格式在点的上下文中发送fileID、folderID和fileName 。通常,上下文用于以键值对的形式存储字符串。
const TOKEN = “YOUR-TOKEN”;
您可以根据需要更改变量标签和设备标签。在此类设备和变量中,您将存储ESP32-CAM 拍摄的图片的fileID、folderID和fileName 。
部署您的代码并更改脚本的权限以允许每个人都可以看到它。
发布脚本后,复制“部署 ID”下显示的 ID。我们将在 ESP32-CAM 中使用它。
3. 对 ESP32-CAM 进行编程。
网上有很多关于如何对 ESP32-CAM 进行编程的教程,例如这个。从该存储库下载相应的代码并在 Arduino IDE 中打开它。
但是,必须对代码进行一些更改才能使其在 ESP32-CAM 上正常运行。
将您的无线网络凭据放入 SSID 和密码字段中。
const char* ssid = “YOUR-SSID”;
const char* password = “YOUR-PASSWORD”;
将 Google 脚本的 ID 粘贴到以下变量中。
String myScript = “/macros/s/YOUR-URL-ID/exec”; //Replace only “YOUR-URL-ID”
最后,在 Arduino IDE 中运行所有代码并刷新 ESP32-CAM。
4. 自定义您的 Ubidots 小部件
HTML 画布小部件允许您制作自己的自定义小部件。点击这里了解更多。通过以下步骤创建的小部件,您将能够看到 ESP32-CAM 拍摄的照片。此外,您还会看到一个下拉列表,其中包含一些图片寄存器,如果您愿意,可以将其删除。
现在,让我们使用这些代码片段创建我们自己的小部件:
转到导航栏中的 Ubidots“数据”下拉菜单,然后转到“仪表板”,最后选择您要使用的仪表板。
单击仪表板右上角的“+”按钮。
选择“HTML 画布”选项。
复制HTML、CSS和JavaScript代码并将它们粘贴到小部件的代码编辑器中。
在 JavaScript 代码中,将您的 Ubidots 帐户的令牌放入名为“ TOKEN ”的变量中。
var TOKEN = ‘YOUR-TOKEN’;
验证包含所有图片的 Google 云端硬盘文件夹的权限。您必须允许“知道链接的任何人”访问。
重要提示:您必须确认 Google 脚本项目中设置的设备和变量标签与 JavaScript 代码中设置的设备和变量标签匹配。
5. 设置警报
Ubidots事件允许您根据传感器数据触发电子邮件、短信、语音通话甚至 Webhook 通知。在本例中,我们将使用这些事件来接收包含 ESP32-CAM 捕获的图片的电子邮件。请按照以下步骤操作。
转到导航栏中的“数据”下拉菜单,然后转到“事件”。
单击右上角的“+”按钮并创建一个新事件。
将事件设置为在变量接收到“1”时触发。
请注意,Ubidots 允许您在事件操作中使用自定义字段。例如,我们将包含图像文件的 URL,该文件存储在数据点的上下文中。要访问上下文,请使用以下表示法:
您好,系统检测到外部人员位于:{{variable.last_value_timestamp}},请检查以下链接中的图片:https://drive.google.com/file/d/ {{variable.last_value_context.fileID}}/view?usp=sharing
在“THEN actions”中将变量设置为零以重置事件触发器。就像这样,您可以像莱昂纳多一样,构建一个简单但有效的物联网系统,提高您家庭的安全性,让您的生活安心。