电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>智能家居安全系统开源分享

智能家居安全系统开源分享

2022-10-28 | zip | 0.07 MB | 次下载 | 免费

资料介绍

描述

描述

我们认为,没有某种形式的安全系统,任何智能家居都是不完整的。这只是我们安全系统的原型,在设计最终确定之前,硬件和软件将进行许多修改。无论如何,这里是我们一直在努力的一瞥。

过程

第 1 步:构建硬件

首先收集上面零件列表中列出的所有硬件。我们将从键盘和 LCD 电路开始,然后转到触发器(运动传感器、距离传感器和蜂鸣器)电路。

键盘和 LCD 的电路非常简单。您可以使用面包板来构建此电路,但我们发现将所有组件直接连接到 Builder Base 更简单。

使用 7 MM 跳线并从左到右将键盘的引脚连接到构建器底座上的端口因此,键盘最左边的引脚连接到 GP0,最左边的第二个引脚连接到 GP1,依此类推。

现在,将 LCD 上的 Vcc 和 GND 端子连接到 Builder Base 上的 5V 和 GND 端口,然后将 LCD 上的 SDA 和 SCL 引脚连接到 Builder Base 上的 SDA 和 SCL 端口。

**在 I2C LCD 的背面应该有 6 个引脚。其中4个是5v、GND、SDA和SCL引脚,另外两个用于亮度。这两个引脚应该连接在一起,但如果不是,则需要连接它们。否则,您的 LCD 将不会亮起。**

使用下面列出的原理图和面包板视图作为参考。

 

 
 
 
pYYBAGNY07CALVbOAAA3GvIIzsk900.png
 
1 / 2
 

现在让我们组装触发器电路。我们建议为该电路使用面包板,因为它可以更轻松地为所有组件供电

拿起你的面包板,将 GND 和 Vcc 导轨分别连接到 Builder Base 上的 GND 和 5V 端口。

 
 
 
poYBAGNY07WAXzxgAAAqoN9RacE144.png
 
1 / 2
 

现在,让我们连接运动传感器。将 VCC 和 GND 引脚连接到面包板上的 5V 和 GND 导轨。将数据引脚连接到 Builder Base,如下所示:

pYYBAGNY07eAYpVNAAATfu7OzsY241.png
 

现在,我们将连接蜂鸣器。将蜂鸣器上的 GND 引脚连接到面包板上的 GND 导轨,并将正极引脚连接到 Builder Base,如下所示:

poYBAGNY07mAOCr1AAASE06SDKo838.png
 

最后,我们将连接距离传感器。再次,将距离传感器上的 Vcc 和 GND 引脚连接到面包板上的 5v 和 GND 导轨。现在将 Echo 和 Trigger 引脚连接到构建器底座,如下所示:

poYBAGNY07uAI2YvAAAaDricqow198.png
 

恭喜!安全系统所需的所有电路现已完成!

第 2 步:构建固件

由于我们在这个项目中使用了两个 Builder Base,我们需要构建两个单独的固件文件。

首先导航到固件生成器并创建一个名为“安全键盘”的新固件。

pYYBAGNY08CACuVsAAAczfpjo4k304.png
 

单击“+添加硬件”按钮并添加 LCD 和 4x3 键盘。

 
 
 
poYBAGNY08OAfXa8AAAZ1uQie_M600.png
 
1 / 2
 

 

poYBAGNY08aAHpUHAAA2QvZwlv8485.png
 

现在,单击 LCD 设备并从驱动程序下拉菜单中选择“Generic LCD2004 Display (I2C)”驱动程序。

pYYBAGNY08iAXiQ8AABBs9oRAZo154.png
 

配置驱动程序如下:

I2C 地址:0x27

布局:2x16

pYYBAGNY08qAGMweAABENPIPMKM187.png
 

现在,我们将配置 4x3 键盘。您会注意到 4x3 键盘有 12 种服务需要配置。您可以通过单击左右箭头来循环浏览这些内容。

 
 
 
poYBAGNY08-AbFHLAAAlW856Ans203.png
 
1 / 2
 

对于每项服务,您必须选择驱动程序以及服务的行/列引脚。每个服务对应于键盘上的一个按钮。按照下表配置所有 12 项服务。

poYBAGNY09KAAobtAACKZ8-QeQc973.png
 

配置完所有服务后,保存固件!

现在,创建另一个名为“Security Triggers”的固件文件。

 
 
 
poYBAGNY09WAGDHKAAAWHEEnbL0893.png
 
1 / 2
 

现在,单击“+ 添加硬件”按钮并将运动传感器、距离传感器和模拟输出设备添加到您的文件中。像我们一样命名它们。

 
 
 
pYYBAGNY09eASgNCAAAM--0qWTA382.png
 
1 / 3
 

对于运动传感器,从驱动程序下拉菜单中选择 HC-SR501 驱动程序。

poYBAGNY09yAWX0sAAB9tUf8pgI814.png
 

配置驱动程序如下:

引脚:GP0

poYBAGNY096AXrNXAAA4sglKvzY382.png
 

现在我们将配置蜂鸣器。从驱动程序下拉菜单中选择“GPIO”驱动程序。

poYBAGNY0-GARXFDAAA7g2jpxSs744.png
 

现在我们将配置驱动程序如下:

引脚:GP1

pYYBAGNY0-OAIabbAAA53jUPPyM775.png
 

现在,我们将配置距离传感器。

从驱动程序下拉菜单中选择 HC-SR04 驱动程序:

poYBAGNY0-aAVnPhAAAy4mnZPAk579.png
 

现在我们将配置驱动程序如下:

回声针:GP3

触发引脚:GP2

分辨率(I):1

pYYBAGNY0-uAK9djAABBXfrx3gs960.png
 

**我们的系统在设置中设置为英制。如果您的设置为公制,您可能需要更改分辨率值。**

就是这样,您的安全系统固件文件现已完成。保存并上传您的固件文件。安全键盘固件应上传到连接键盘和 LCD 的 Builder Base,安全触发器固件应上传到连接传感器和蜂鸣器的 Builder Base。

第 3 步:对应用程序进行编程

对于这个应用程序,我们将引导您了解所涉及的基本逻辑。您可以按照我们的描述构建应用程序,或者您可以下载该应用程序并将其导入您的应用程序列表。

这是安全系统应用程序:

**请注意,此安全系统应用程序处于高度原型状态,无法完美运行。我们将在未来几个月内更新此应用程序以更有效地工作。**

在本说明中,我们将把应用程序分为四个主要部分:1. 代码集,2. 代码输入/评估,3. 传感器输入,和 4. 布防警报倒计时

poYBAGNY0-6AUpgyAAC2TbdoQ-E668.png
 

在当前状态下,当应用程序启动时,您需要通过仪表板界面设置密码。这发生在应用程序的代码集部分。

 
 
 
pYYBAGNY0_CAM76fAAAnFR6KNwQ050.png
 
1 / 2
 

使用两个自定义代码块设置引脚。一个将仪表板按钮按下转换为数字,另一个将数字存储在全局上下文数组中。

对于Number Convert代码和Set Pin 代码,请查看我们的文档

现在我们来看看程序的代码输入/评估部分。

poYBAGNY0_KAGfPlAABegWPIqkc141.png
 

在这里,我们有一个 4x3 键盘对象连接到另一个数字转换自定义片段。这会从 4x3 键盘对象获取数字输出,并根据接收到的端口将其转换为数字。此数字转换自定义代码段与上面使用的代码段相同。

然后将此数字传递到名为“安全?”的自定义片段中。

 
 
 
poYBAGNY0_eAF17iAAAXG05NjWA412.png
 
1 / 2
 

“安全?” 片段从三个端口获取输入。第一个端口“InNode0”用作布防系统的一种方式。我们通过使用键盘上的“*”键来布防系统如果从该端口接收到触发器,则执行以下代码:

1.案例0:{

2. globalContext.safe = 0;

3.};打破;

第二个端口“inNode1”从数字转换自定义片段中获取数字并将它们存储在输入数组中。当通过此端口接收到值时,将执行以下代码:

1.案例1:{

2. context.entr[context.i] = val2;

3.上下文.i++;

最后,第三个端口用作代码评估的触发器。第三个端口连接到 4x3 键盘对象上的“#”键。当按下“#”键时,它充当输入按钮。你可以在这里看到代码:

pYYBAGNY0_qAJQRYAAB-KLce4CQ761.png
 

这是“安全?”的完整代码 自定义片段:

 
 
 
poYBAGNY0_yALv5RAABbLcd_whQ094.png
 
1 / 2
 

每次按下 4x3 键盘上的一个数字时,此程序部分还会向 LCD 发送一个“*”。每按下一个数字,就会触发“Send *”数据序列,然后将计数加一,范围为 [10 → 16]。此计数对应于 LCD 上的列位置,因此每次输入一个新数字时,在最后一个数字之后输入一个新的“*”。此外,每次按下“#”键时,都会重置此计数。无论如何,这个数字被发送到 LCD 对象上的列位置端口。

然后数据序列触发包含“*”的静态字符串块,并将其发送到 LCD 上的字符串端口。

最后,数据序列触发 LCD 上的“Send to Display”端口,实际上使新消息出现在 LCD 上。

poYBAGNY0_-AH8nWAACdJ8u_puw389.png
 

我们现在来看看程序的传感器输入部分。

 

 
 
 
poYBAGNY1AGAMtz5AAB9W1nX37c110.png
 
1 / 2
 

我们有一个初始触发器连接到一个名为“Set Safe”的自定义片段。当应用程序最初启动时,系统被设置为安全位置,因此警报不会立即触发。

poYBAGNY1AaAFp_bAAAbQA9JAOo577.png
 

这是代码:

1.globalContext.safe = 1;

初始触发器还触发“输入代码”数据序列。此数据序列触发“输入代码:”的静态字符串并将其发送到 LCD 硬件对象。

pYYBAGNY1AmAEmrMAACH6ro-vYI562.png
 

现在,我们将看看所有传感器如何用作警报的触发器。

poYBAGNY1AuAFjxCAABofeOPWg8494.png
 

所有三个传感器,门触点、运动传感器和距离传感器,都通向一个 2 秒的超时对象。然后,此超时对象会导致一个名为 Sound Alarm 的自定义代码片段。

pYYBAGNY1A6AIdQRAABpSul4Q6A664.png
 

此自定义代码段检查 globalContext.safe 变量是设置为 0 还是 1。如果设置为 1,则系统是安全的,并且没有任何反应。但是,如果变量设置为 0,则字符串“Intruder Alert”通过端口“outNode0”发送到“Access G/D Data Sequence”,并通过第二个端口向“Beep Alarm”振荡器对象发送触发器“outNode1”。

pYYBAGNY1BKAPztbAAA_FEbcnJM718.png
 

然后触发“拉伸脉冲”脉冲拉伸器,进而激活蜂鸣器。

pYYBAGNY1BWAeZZTAAAmk1-E6qU862.png
 

如果我们正在输入代码并试图撤防系统,则采用 4x3 键盘上的“#”键的这条路线。

poYBAGNY1BeAE6B1AACIlQTLW3g628.png
 

在 4x3 键盘上“授予访问权限?” 触发自定义片段,如果 globalContext.safe 变量设置为 1,则将字符串“Access Granted”传递给 LCD,并触发“Access G/D”数据序列。

poYBAGNY1BqAC165AABY34XOMDM467.png
 

这是“授予访问权限?”的代码。自定义片段:

1.if(globalContext.safe ===1){

2. return["Access Granted",new Date()];

3.}

最后,我们将看看应用程序的 Arm Alarm Countdown 部分。

pYYBAGNY1B6ASzfYAACeFPPRetE529.png
 

当按下 4x3 键盘上的“*”键时,会触发“倒计时序列”对象,并触发 20 秒超时。这些同时执行。20 秒超时结束后,系统将在“安全?”上设置为“inNode0”。我们之前讨论的块将被触发。

poYBAGNY1CCARkhVAABKKfCT49s031.png
 

倒计时序列对象处理出现在 LCD 屏幕上的 20 秒倒计时。首先,清除 LCD,然后将字符串“Alarm Armed:”发送到“字符串合并”对象。

pYYBAGNY1COALlOhAABrBDaBB3M874.png
 

接下来,数字 20 被发送到数据计数器对象上的值端口。然后将该值传递到数据计数器上的“字符串 B”端口。“Alarm Armed:”+“20”的连接字符串然后通过任意数据序列发送到 LCD。

pYYBAGNY1CWAV-vwAABuc5RfmnE677.png
 

然后触发振荡代码块,计数设置为 20,间隔设置为 1000 毫秒。

然后这会触发数据计数器 20 次,每秒递减一次计数器,直到计数达到 0。每次计数递减时,都会向 String Merge 对象发送一个新值,然后将新合并的字符串传递给“Any Data Sequence”,最终将新字符串“Alarm Armed:”+“(一些新的计数)”到液晶显示器。

pYYBAGNY1CeAPgRCAABrW9pGbyw712.png
 

最后,已同时运行的超时块完成其超时并触发 LCD 上的“清除”端口和“输入代码:”序列。这使系统处于其布防状态,准备好输入密码以解除其布防。

poYBAGNY1CyAM7UeAABwfLC8WME973.png
 

这就是对应用程序进行编程的过程。保存您的应用程序并返回应用程序页面。

第 4 步:映射应用程序

您现在应该回到应用程序页面。

找到您的“安全系统”应用程序并点击播放按钮。

pYYBAGNY1C6AFHD-AAAR7Hq1p8s353.png
 

包含应用程序中所有设备的列表将展开。

poYBAGNY1DGAbrF1AACDzy8l7Ig553.png
 

接下来单击“运动传感器”设备,客户端下拉菜单将出现在右侧。

从下拉菜单中选择运动传感器驱动程序并点击“完成”。

poYBAGNY1DSAbeP5AACDjOUNuNs798.png
 

对其余设备重复相同的步骤。对于此应用程序,每个设备应该只有一个可选驱动程序。

请注意,除了一个状态符号之外的所有状态符号都已更改为绿色复选标记。我们在我们的应用程序中使用了门触点设置,但目前我们没有通过三星 SmartThings 或我们的 Builder Bases 之一设置。因此,您可以将此设备保留为未映射,或者您可以将一个设备与系统配对。

poYBAGNY1DeAK-I0AACEOzGzypk080.png
 

**将固件设备映射到您的应用程序中的对象时,请务必注意,只有相同类型的设备和对象才能映射在一起。例如,使用此应用程序,我们只能选择将带有按钮固件的客户端映射到按钮对象。**

您现在已经完成了应用程序的映射!

第 5 步:运行应用程序!

接下来,点击“保存+运行”

poYBAGNY1DeAK-I0AACEOzGzypk080.png
 

 

poYBAGNY1D2AZtdgAAAQwtdlrCg835.png
 

恭喜!您的安全系统现已完成,玩得开心!

 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费