使用树莓派模拟出一个支持APP控制的智能门锁

收拾屋子发现了角落里吃灰好几天的树莓派,迫害它当个智能门锁~

本文使用设备及版本:

  • 树莓派4B
  • Raspbian GNU/Linux 10 (buster)

环境配置

树莓派4B 内置蓝牙5.0,蓝牙工具也都集成好了

使用其他版本要注意创建智能门锁需要的蓝牙版本至少是4.0,查看版本可以使用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pi@raspberrypi:~ $ hciconfig -a
hci0: Type: Primary Bus: UART
BD Address: E4:5F:01:04:B5:13 ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:718 acl:0 sco:0 events:39 errors:0
TX bytes:447 acl:0 sco:0 commands:39 errors:0
Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT
Name: 'raspberrypi'
Class: 0x000000
Service Classes: Unspecified
Device Class: Miscellaneous,
HCI Version: 5.0 (0x9) Revision: 0x122
LMP Version: 5.0 (0x9) Subversion: 0x6119
Manufacturer: Cypress Semiconductor Corporation (305)

HCI Version: 5.0就代表蓝牙5.0

其他树莓派需要配置升级node版本并安装bluz协议工具

1
2
3
4
5
pi@raspberrypi:~ $ sudo  apt-get  remove  --purge  node*  npm*

pi@raspberrypi:~ $ curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -

pi@raspberrypi:~ $ sudo apt-get install nodejs libbluetooth-dev bluez-hcidump bluez-tools

创建虚拟门锁

1
npm  install  hackmelock

安装客户端APP控制

连接和使用

参考资料

BLE安全入门及实战(1)

build-the-ultimate-door-security-system-with-three-factor-authentication