我们认为,没有某种形式的安全系统,任何智能家居都是不完整的。这只是我们安全系统的原型,在设计最终确定之前,硬件和软件将进行许多修改。无论如何,这里是我们一直在努力的一瞥。
首先收集上面零件列表中列出的所有硬件。我们将从键盘和 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 将不会亮起。**
使用下面列出的原理图和面包板视图作为参考。
现在让我们组装触发器威廉希尔官方网站 。我们建议为该威廉希尔官方网站 使用面包板,因为它可以更轻松地为所有组件供电。
拿起你的面包板,将 GND 和 Vcc 导轨分别连接到 Builder Base 上的 GND 和 5V 端口。
现在,让我们连接运动传感器。将 VCC 和 GND 引脚连接到面包板上的 5V 和 GND 导轨。将数据引脚连接到 Builder Base,如下所示:
现在,我们将连接蜂鸣器。将蜂鸣器上的 GND 引脚连接到面包板上的 GND 导轨,并将正极引脚连接到 Builder Base,如下所示:
最后,我们将连接距离传感器。再次,将距离传感器上的 Vcc 和 GND 引脚连接到面包板上的 5v 和 GND 导轨。现在将 Echo 和 Trigger 引脚连接到构建器底座,如下所示:
恭喜!安全系统所需的所有威廉希尔官方网站 现已完成!
由于我们在这个项目中使用了两个 Builder Base,我们需要构建两个单独的固件文件。
首先导航到固件生成器并创建一个名为“安全键盘”的新固件。
单击“+添加硬件”按钮并添加 LCD 和 4x3 键盘。
现在,单击 LCD 设备并从驱动程序下拉菜单中选择“Generic LCD2004 Display (I2C)”驱动程序。
配置驱动程序如下:
I2C 地址:0x27
布局:2x16
现在,我们将配置 4x3 键盘。您会注意到 4x3 键盘有 12 种服务需要配置。您可以通过单击左右箭头来循环浏览这些内容。
对于每项服务,您必须选择驱动程序以及服务的行/列引脚。每个服务对应于键盘上的一个按钮。按照下表配置所有 12 项服务。
配置完所有服务后,保存固件!
现在,创建另一个名为“Security Triggers”的固件文件。
现在,单击“+ 添加硬件”按钮并将运动传感器、距离传感器和模拟输出设备添加到您的文件中。像我们一样命名它们。
对于运动传感器,从驱动程序下拉菜单中选择 HC-SR501 驱动程序。
配置驱动程序如下:
引脚:GP0
现在我们将配置蜂鸣器。从驱动程序下拉菜单中选择“GPIO”驱动程序。
现在我们将配置驱动程序如下:
引脚:GP1
现在,我们将配置距离传感器。
从驱动程序下拉菜单中选择 HC-SR04 驱动程序:
现在我们将配置驱动程序如下:
回声针:GP3
触发引脚:GP2
分辨率(I):1
**我们的系统在设置中设置为英制。如果您的设置为公制,您可能需要更改分辨率值。**
就是这样,您的安全系统固件文件现已完成。保存并上传您的固件文件。安全键盘固件应上传到连接键盘和 LCD 的 Builder Base,安全触发器固件应上传到连接传感器和蜂鸣器的 Builder Base。
对于这个应用程序,我们将引导您了解所涉及的基本逻辑。您可以按照我们的描述构建应用程序,或者您可以下载该应用程序并将其导入您的应用程序列表。
这是安全系统应用程序:
**请注意,此安全系统应用程序处于高度原型状态,无法完美运行。我们将在未来几个月内更新此应用程序以更有效地工作。**
在本说明中,我们将把应用程序分为四个主要部分:1. 代码集,2. 代码输入/评估,3. 传感器输入,和 4. 布防警报倒计时
在当前状态下,当应用程序启动时,您需要通过仪表板界面设置密码。这发生在应用程序的代码集部分。
使用两个自定义代码块设置引脚。一个将仪表板按钮按下转换为数字,另一个将数字存储在全局上下文数组中。
对于Number Convert代码和Set Pin 代码,请查看我们的文档。
现在我们来看看程序的代码输入/评估部分。
在这里,我们有一个 4x3 键盘对象连接到另一个数字转换自定义片段。这会从 4x3 键盘对象获取数字输出,并根据接收到的端口将其转换为数字。此数字转换自定义代码段与上面使用的代码段相同。
然后将此数字传递到名为“安全?”的自定义片段中。
“安全?” 片段从三个端口获取输入。第一个端口“InNode0”用作布防系统的一种方式。我们通过使用键盘上的“*”键来布防系统如果从该端口接收到触发器,则执行以下代码:
1.案例0:{
2. globalContext.safe = 0;
3.};打破;
第二个端口“inNode1”从数字转换自定义片段中获取数字并将它们存储在输入数组中。当通过此端口接收到值时,将执行以下代码:
1.案例1:{
2. context.entr[context.i] = val2;
3.上下文.i++;
最后,第三个端口用作代码评估的触发器。第三个端口连接到 4x3 键盘对象上的“#”键。当按下“#”键时,它充当输入按钮。你可以在这里看到代码:
这是“安全?”的完整代码 自定义片段:
每次按下 4x3 键盘上的一个数字时,此程序部分还会向 LCD 发送一个“*”。每按下一个数字,就会触发“Send *”数据序列,然后将计数加一,范围为 [10 → 16]。此计数对应于 LCD 上的列位置,因此每次输入一个新数字时,在最后一个数字之后输入一个新的“*”。此外,每次按下“#”键时,都会重置此计数。无论如何,这个数字被发送到 LCD 对象上的列位置端口。
然后数据序列触发包含“*”的静态字符串块,并将其发送到 LCD 上的字符串端口。
最后,数据序列触发 LCD 上的“Send to Display”端口,实际上使新消息出现在 LCD 上。
我们现在来看看程序的传感器输入部分。
我们有一个初始触发器连接到一个名为“Set Safe”的自定义片段。当应用程序最初启动时,系统被设置为安全位置,因此警报不会立即触发。
这是代码:
1.
globalContext.safe = 1;
初始触发器还触发“输入代码”数据序列。此数据序列触发“输入代码:”的静态字符串并将其发送到 LCD 硬件对象。
现在,我们将看看所有传感器如何用作警报的触发器。
所有三个传感器,门触点、运动传感器和距离传感器,都通向一个 2 秒的超时对象。然后,此超时对象会导致一个名为 Sound Alarm 的自定义代码片段。
此自定义代码段检查 globalContext.safe 变量是设置为 0 还是 1。如果设置为 1,则系统是安全的,并且没有任何反应。但是,如果变量设置为 0,则字符串“Intruder Alert”通过端口“outNode0”发送到“Access G/D Data Sequence”,并通过第二个端口向“Beep Alarm”振荡器对象发送触发器“outNode1”。
然后触发“拉伸脉冲”脉冲拉伸器,进而激活蜂鸣器。
如果我们正在输入代码并试图撤防系统,则采用 4x3 键盘上的“#”键的这条路线。
在 4x3 键盘上“授予访问权限?” 触发自定义片段,如果 globalContext.safe 变量设置为 1,则将字符串“Access Granted”传递给 LCD,并触发“Access G/D”数据序列。
这是“授予访问权限?”的代码。自定义片段:
1.
if(globalContext.safe ===1){
2.
return["Access Granted",new Date()];
3.
}
最后,我们将看看应用程序的 Arm Alarm Countdown 部分。
当按下 4x3 键盘上的“*”键时,会触发“倒计时序列”对象,并触发 20 秒超时。这些同时执行。20 秒超时结束后,系统将在“安全?”上设置为“inNode0”。我们之前讨论的块将被触发。
倒计时序列对象处理出现在 LCD 屏幕上的 20 秒倒计时。首先,清除 LCD,然后将字符串“Alarm Armed:”发送到“字符串合并”对象。
接下来,数字 20 被发送到数据计数器对象上的值端口。然后将该值传递到数据计数器上的“字符串 B”端口。“Alarm Armed:”+“20”的连接字符串然后通过任意数据序列发送到 LCD。
然后触发振荡代码块,计数设置为 20,间隔设置为 1000 毫秒。
然后这会触发数据计数器 20 次,每秒递减一次计数器,直到计数达到 0。每次计数递减时,都会向 String Merge 对象发送一个新值,然后将新合并的字符串传递给“Any Data Sequence”,最终将新字符串“Alarm Armed:”+“(一些新的计数)”到液晶显示器。
最后,已同时运行的超时块完成其超时并触发 LCD 上的“清除”端口和“输入代码:”序列。这使系统处于其布防状态,准备好输入密码以解除其布防。
这就是对应用程序进行编程的过程。保存您的应用程序并返回应用程序页面。
您现在应该回到应用程序页面。
找到您的“安全系统”应用程序并点击播放按钮。
包含应用程序中所有设备的列表将展开。
接下来单击“运动传感器”设备,客户端下拉菜单将出现在右侧。
从下拉菜单中选择运动传感器驱动程序并点击“完成”。
对其余设备重复相同的步骤。对于此应用程序,每个设备应该只有一个可选驱动程序。
请注意,除了一个状态符号之外的所有状态符号都已更改为绿色复选标记。我们在我们的应用程序中使用了门触点设置,但目前我们没有通过三星 SmartThings 或我们的 Builder Bases 之一设置。因此,您可以将此设备保留为未映射,或者您可以将一个设备与系统配对。
**将固件设备映射到您的应用程序中的对象时,请务必注意,只有相同类型的设备和对象才能映射在一起。例如,使用此应用程序,我们只能选择将带有按钮固件的客户端映射到按钮对象。**
您现在已经完成了应用程序的映射!
接下来,点击“保存+运行”
恭喜!您的安全系统现已完成,玩得开心!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !