永不断电的ESP32门禁系统

简介:基于ESP32的门禁系统,内置UPS不间断电源,24小时不断电,通过Blinker平台,可以实现远程开门,指纹开门,语音开门,网页开门,电脑命令开门

开源协议: GPL 3.0

发布时间:2021-10-14 21:22:16
  • 2.3k
  • 8
  • 33
描述

依然是旧活旧整

以前上学时弄的一个门禁系统

B站视频教程:https://www.bilibili.com/video/BV1uT4y1w7F1

简介

一个基于ESP32的物联网门禁系统。

开门动作通过舵机控制,ESP32发出PWM信号对舵机进行开门动作。

 

使用安全和可靠性申明

对于任何电子的东西,都是具有不可靠性。本人亲测可以无人为干预,即不人为重启电源,按下硬件Reset键或插拔电池等,稳定运行1个月,但本人强烈建议保留机械锁,在机械锁基础上再加装电子锁(以前有个新闻说有一家人突发大火,并且屋里停电,然而他的家里前阵子刚换的电子锁,还是纯电子锁,没有机械开锁,还是用AC电才能开的,竟然不内置电池!然后门就打不开了,一家人因为电子锁失效导致无法逃生)并且把钥匙备份,可以放在隔壁宿舍(我就是这么干的)。

 

特点

  1. 内置不间断电源,24小时供电,就算晚上宿舍没电也不怕开不了门
  2. 基于Blinker联网,在外也可以远程控制
  3. 支持指纹开门,指纹支持Touch通电功能
  4. 支持霍尔感应门开关状态
  5. 内置web,即使晚上路由器断电无网络也可以通过web开门
  6. 支持电脑bat开门
  7. 支持遥控空调功能,可自定义遥控编码
  8. 支持接入米家,小爱同学语音控制,天猫精灵语音控制
  9. 支持1.3寸和0.96寸oled显示状态

 

1.OLED指示

OLED屏幕支持1.3寸和0.96寸,通过代码即可修改屏幕定义
屏幕状态显示有两页


1.1第一页是显示关于联网的各种状态

WIFI图标:当联网时图标正常显示(只显示图标,wifi距离显示没做),当没连接wifi时显示一个x
WIFI名称:当连接WIFI时会显示连接的WIFI名字(中文不支持)
联网图标:当连接的wifi有网络时会显示网络连接的图标,当无wifi连接或者连接的wifi无网络时会显示无联网图标
IP地址显示:当连接wifi会显示连接的IP地址,可通过手机电脑连接相同的wifi或网络后访问这个ip地址即可进入web界面
AP IP显示:ESP32一直都会发出一个AP,手机电脑连接ESP32发出来的wifi然后进入AP显示的IP地址,也可以进入web界面控制开门,这个IP一般是固定的192.168.4.1,一般这种情况是宿舍断电后ESP32无法连接路由器,但还是可以通过移动设备开门
时间显示:显示当前年月日时分秒,无联网时会显示横杠

 

1.2第二页是显示关于ESP32状态的

大页面的显示是当前电池的电量剩余状态和电压的估计值,并不是精确值。代码修改建议:多次采样去掉最大最小值再取平均,本人这里只做了采样1次,因此不是很准。

还有充电状态,左边电池图标的容量会根据电池电量的剩余变化,另外还有门状态的检测,检测当前门是开还是关。

 

1.3其他显示

按下指纹时会显示“指纹识别中”“指纹错误”“识别超时”等字样
开门时显示开门字样
开机时显示系统初始化字样
重启时显示reboot字样(下文会介绍重启功能)

 

2.LED指示

LED指示灯对于有些人来说很亮眼睛在晚上,但是我没有设置硬开关来关闭,只有低电量、WIFI和网络指示灯能通过软件关闭,其他灯无法关闭

电池指示灯:打开电池电源就会亮,表面不间断电源部分已经工作

5V电源:表示供MCU的5V工作

门电源:舵机6.6V接通指示灯

指纹电源:指纹3.3V电源接通指示灯

红外指示(闪烁):表示当前有红外发射信号发射

低电指示(闪烁):表示电池电量低于20%

WIFI指示(闪烁):表示当前无WIFI连接,正常连接上WIFI指示灯是灭的,WIFI指示闪烁,网络指示也会闪烁

网络指示(闪烁):表示当前无网络连接,正常连接上网络指示灯是灭的

 

3.空调红外

内容较多,请查看B站视频、【代码使用方法以及遥控功能使用方法.docx】,并配合附件【空调编码模板.txt】

 

4.WEB

平时一般不用这个开门,只是在晚上断电断网,ESP32不能联网的情况下,可以连接ESP32自己发出的热点,连接后打开192.168.1.1进入WEB进行控制开门,应急用。

手机电脑都可以

 

5.BAT命令

请查看附件【PC上批处理命令用法.docx】配合附件【开门.bat】

在同一网络下,在电脑上点击 开门.bat 即可轻松开门,原理是调用WEB

 

6.指纹

请注意!指纹模块只能用3.3V供电,不能用5V!!!

使用附件【指纹模块上位机测试软件.zip】通过CH340工具进行录入指纹

用指纹还是比Blinker要方便的多。

指纹按照接线颜色接在PCB上就行了

演示视频中线比较短,可以买线延长到门外面去。

因为是光学指纹,因此指纹集成了Touch功能,即只有手指按下,光学模块的灯才会亮,这样比较省电,不过也可以修改软件来让指纹模块灯常亮,不过不推荐这样做,会影响指纹模块使用寿命。

 

7.Blinker

内容较多,请查看B站视频,并配合附件【Blinker配置.txt】、【Blinker配置方法.docx】、【代码使用方法以及遥控功能使用方法.docx】

配置好后界面是这样的

 

8.门状态检测

其实就是用霍尔传感器和磁铁对门状态进行检测。

建议放在上面,不碍事

不过请注意DATA脚直通MCU,这个霍尔的供电电压是6.6V,DATA输出是5V,不要接错线,6.6V接DATA会烧MCU的。

 

9.关于微调

因为每个使用者安装的门把力度,开门阈值等都有不同。有的时候,由于当时配置时没有调好舵机PWM收卷和回放参数,会导致舵机收卷少,回放多,导致门开不了的情况,因此设置了微调,当然顺时针还是逆时针自己试试就知道了。

 

10.关于重启

内置有软重启程序,重启触发条件:

如果WIFI没连接,或者连上WIFI但是断网,并且超过1800秒,即半小时,就会触发软重启

比如正常运行2小时,突然断网了就会重启。

比如已经断网30分钟了,就会重启。

具体条件可以查看代码。

软重启目的是Blinker断网断WIFI后自动重连只有几分钟,当晚上断电断网后,到早上来电有网后,Blinker都不会重连,因此只能每隔半小时重启,让Blinker尝试联网。

当然如果你的宿舍不断电不断网,我也推荐加上一个凌晨定时软重启,这样对机器有好处(代码没写,需要自己加)。

也可以通过按下Blinker上的重启按钮进行重启。

 

11.其他

红外发射管建议焊出来,封装用的是3mm的,但是可以用5mm,发射效果较好

另有纯插件版本,方便手残党焊接,工程正在整理,晚些时候发布,代码通用,功能一样

ID Designator Footprint Quantity
1 BAT1,BAT2 18650 2
2 C1,C2,C5 C 1206_M 3
3 C3,C4 C 1206_M 2
4 C6,C7,C8,C9 C 1206_M 4
5 CE1 CAP 2.5*6.3*11.2-H 1
6 D1,D2 SMA 2
7 DZ1 MELF (LL41) 1
8 FU1,FU2 FU 1812 2
9 H1,H2 HDR2.54-LI-3P 2
10 H3 HDR2.54-LI-4P 1
11 H4 HDR2.54-LI-6P 1
12 JK1 G5V 1
13 L1 CDRH74 1
14 LED1,LED2 LED 0805 2
15 LED3,LED5,LED6,LED9,LED10 LED 0805 5
16 LED4 LED 3MM-W 1
17 LED7 LED 0805 1
18 LED8 LED 0805 1
19 LED11 LED 0805G 1
20 LS1 HN9650B 1
21 Q1 SOT23-3M 1
22 Q2,Q3 SOT23-3M 2
23 R1,R3,R7,R9,R14,R15,R16,R17,R18,R20,R21,R22 R 0805_M 12
24 R2,R5,R8,R12,R23 R 0805_M 5
25 R4,R6,R11 R 0805_M 3
26 R10 R 0805_M 1
27 R13 R 0805_M 1
28 R19 R 1206_M 1
29 SW1,SW2 SS-12D10 2
30 U1 TC4056A 1
31 U2 B628 1
32 U3 PC817 1
33 USB1 USB-MICRO_B 1
34 V1 AMS1117 1
35 X1 ESP3215X2 1

展开

工程成员

服务时间

周一至周五 9:00~18:00
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 开源平台公众号

    oshwhub