基于物联网的电磁门锁使用树莓派4
扫描二维码
随时随地手机看文章
市场上有很多种类的Wi-Fi门锁,可以让你的家更安全,节省找钥匙的时间。我们之前使用Node MCU和Adafruit IO构建了一个智能手机控制的门锁。这里我们使用相同的电磁门锁,并使用基于树莓派的web服务器控制它。该网页将有两个按钮打开和关闭门锁,可以从世界上任何地方访问,只要端口转发在您的路由器中启用。
这里我们使用Flask从网页控制门锁。Flask是一个流行的Python web框架,由Pocoo的Armin Ronacher开发。它是用于开发web应用程序的第三方Python库。Flask被归类为微框架,它基于Pocoo项目Werkzeug和Jinja2。Flask在树莓派上非常常用,因为树莓派有Linux操作系统,可以很容易地处理Python脚本。树莓派由于其高处理能力和内置Wi-Fi功能,在创建web服务器和基于物联网的项目中也很受欢迎。我们以前使用Flask来控制伺服电机和步进电机使用树莓派。
组件的要求
•树莓派4
•12v电磁锁
•继电器模块
•跳线
电磁锁
在传统的门锁中,有一把钥匙来拉动或推动门闩,我们必须手动操作,但在电磁锁中,门闩可以通过施加电压来自动操作。电磁锁有一个低压电磁阀,当中断(按钮,继电器等)被激活时,将门闩拉回门中。锁存器将保持其位置,直到中断被启用。电磁锁的工作电压为12V。您也可以使用9V,但它会导致较慢的操作。电磁门锁主要用于偏远地区,实现自动化操作,不涉及任何人力。
树莓派智能门锁电路图
树莓派电磁门锁的电路图非常简单,因为您只需要将电磁门锁连接到树莓派。电磁锁需要9V-12V才能工作,而树莓派的GPIO引脚只能提供3.3V,所以使用12V的外部电源在继电器的帮助下触发锁定。
这里继电器模块的输入引脚连接到树莓派的GPIO 18引脚,继电器模块的VCC和GND引脚连接到树莓派的5V和GND引脚。另一侧电磁锁的GND引脚接继电器模块的COM, Positive引脚接12V电源的Positive。12V电源的负引脚接在继电器模块的NO引脚上。
在完成所有连接后,我的硬件是这样的:
准备树莓派
在编程或安装任何库文件之前,首先使用以下命令更新树莓派:
现在安装Flask来创建一个Web页面。使用下面的命令来安装Flask:
安装Flask后,在树莓派上创建一个名为Solenoidlock的新目录/文件夹,并使用以下命令导航到该文件夹:
现在使用下面的命令创建一个python文件:
粘贴本文档末尾给出的python代码,并使用
在Solenoidlock目录下,用下面的命令创建另一个文件夹:
然后导航到模板目录。
在templates目录下,用下面的命令创建一个HTML文件:
将HTML代码粘贴到nano编辑器中,并使用
网页的HTML代码
通过网页控制电磁门锁的完整HTML代码如下:在这个HTML代码中,ON和OFF按钮有两个不同的整数。整数1被分配给ON按钮,2被分配给OFF按钮。Flask web框架用于在网页上按下按钮时向树莓派发送数据。
电磁门锁的Python代码
完整的python代码在文档的末尾给出。这里我们将解释代码的一些重要部分。
现在为该类创建一个实例来设置一个flask服务器。
使用下面的函数,我们告诉Flask哪个URL应该触发我们的函数。
检查changePin变量,如果它等于1,则将继电器引脚更改为高,否则将其更改为低。
用树莓派4测试电磁门锁
在完成所有设置并将螺线管锁连接到树莓派后,导航到螺线管锁目录并使用以下命令运行python代码:
然后打开端口为8000的树莓派IP地址。这里你会看到两个打开/关闭锁的按钮。按开/关按钮打开/关闭门锁。如果智能手机连接到同一网络,也可以访问该页面。
这是如何控制螺线管锁使用树莓派4。
本文编译自iotdesignpro