项目简介
本项目作为耶路撒冷希伯来大学物联网课程的一部分,构建了一个基于蓝牙设备接近度的智能门锁系统。系统通过扫描附近蓝牙设备,将设备MAC地址发送到服务器进行数据库匹配,匹配成功则发送开门指令,同时会通过Telegram消息通知系统管理员。门锁设备借助蜂窝调制解调器联网,门锁设备与服务器通过MQTT协议通信。
项目的主要特性和功能
- 蓝牙扫描与距离判断:智能门锁设备扫描附近蓝牙设备,利用蓝牙RSSI值判断设备与门的距离,满足条件时将设备MAC地址发送给服务器。
- MQTT通信:门锁设备和服务器基于MQTT协议通信,使用HiveMQ作为MQTT代理,支持SSL或TSL加密通信。
- Telegram交互:通过Telegram bot与系统管理员交互,管理员可在Telegram上控制门的状态,系统会在Telegram日志频道发布门锁状态信息。
- 设备管理:服务器使用Pony ORM管理数据库,存储蓝牙设备信息,管理员可在Telegram上对设备进行添加、删除、修改有效期等操作。
- 门状态控制:服务器根据设备匹配情况和管理员指令控制门的开关,支持正常、锁定、解锁等多种门状态。
安装使用步骤
假设用户已经下载了本项目的源码文件,按以下步骤操作:
1. 硬件连接:按照readme/sys_connection.jpg
所示连接硬件,将EFR32与蜂窝调制解调器Gemalto (Cinterion ®) EHS6 Concept Board连接。
2. 配置文件:打开server/config.ini
文件进行如下配置:
- 在https://core.telegram.org/api/obtaining_api_id创建Telegram应用,获取api_id
和api_hash
。
- 使用BotFather创建bot token。
- 将api_id
、api_hash
和bot_token
填入config.ini
文件(不使用引号)。
- 在owner
字段填入系统管理员的Telegram用户ID。
- 在log_channel
字段填入日志频道ID。
3. Telegram设置:将创建的bot添加为日志频道的管理员,并让系统管理员向bot发送/start
命令。
4. 运行程序:
- 运行Python服务器程序,启动服务器。
- 构建项目并将程序烧录到EFR32设备中。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】