menu LittleJake's Blog
color_lens
avatar
Jake Liu
Never Settle
creative commons by-nc-sa
hit
Category
keyboard_arrow_down

© 2024 LittleJake's Blog.

萌ICP备20223020号

(挖坑)Arduino智能门锁(蓝牙+wifi+指纹+TOTP+RFID)


esp32

起因

之前见到酷安大佬人才辈出,一堆人弄RFID+舵机、指纹+舵机、蓝牙+舵机、wifi+舵机的形式解锁宿舍门。
身为一个成年人,还用选择么,我全都要。
可惜arduino数据口不太够用,需要研究一下如何精简之或者扩展。

材料清单

指纹模块:AS608
显示模块:LCD1602A
蜂鸣模块:无源蜂鸣器
RFID模块:RC522送白卡
键盘模块:4*4矩阵薄膜键盘
WIFI模块:集成
蓝牙模块:集成
门锁模块:12V电门锁
继电器模块:12V一路常开继电器
Arduino:ESP32开发板

TOTP部分

采用远端验证的形式,家里有一台在运行的树莓派即可,使用WiFi局域网。

添加用户

add
GET http://地址:监听端口/api/create
平台基于Django,访问网址即可生成TOTP的token并写入数据库,用户扫码添加进免费的谷歌验证器。

Token验证

GET http://地址:监听端口/api/check
参数:

  • user 用户id
  • code 谷歌验证器显示的代码
    返回:
    {
      "code": 1,
      "msg": "OK",
      "data": {
           "pass": true,
           "time": 1560510218
      },
      "integrity": "b79db2cb7e3574f5d45f869f893a094fc7f2c9e9a99b6d5d9fea1badc5aa06ed"
    }
  • code 响应代码:1-成功、0-失败
  • msg 响应信息
  • data 验证数据部分,pass:true为通过,time为时间戳
  • integrity data部分的json经过utf8编码,与添加用户时出现的secret组合并sha256加密

后期可添加函数,在用户不大于一定数量时遍历进行校验code。
若成功则写入开门记录到数据库,否则写入拒绝记录。

(未完待续)

Buy me a beer
Jake Liu
Never Settle

Title: (挖坑)Arduino智能门锁(蓝牙+wifi+指纹+TOTP+RFID)

Author: Jake Liu

Origin:

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) For any re-post you must give appropriate credit.

文章遵循CC许可 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 转载请注明出处

Tag:RFID, python, arduino, wifi, 指纹, 蓝牙, totp, django, esp32, google authenticator

评论区

2 comments.

  1. Jake Liu
    2020-06-27 11:23
    WindowsWindows Google ChromeGoogle Chrome

    Comment test.

    1. Jake Liu
      2021-06-15 20:57
      Windows Google Chrome

      test

Add a new comment.

Theme