littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C和Python的蓝牙智能门锁系统

项目简介

本项目作为耶路撒冷希伯来大学物联网课程的一部分,构建了一个基于蓝牙设备接近度的智能门锁系统。系统通过扫描附近蓝牙设备,将设备MAC地址发送到服务器进行数据库匹配,匹配成功则发送开门指令,同时会通过Telegram消息通知系统管理员。门锁设备借助蜂窝调制解调器联网,门锁设备与服务器通过MQTT协议通信。

项目的主要特性和功能

  1. 蓝牙扫描与距离判断:智能门锁设备扫描附近蓝牙设备,利用蓝牙RSSI值判断设备与门的距离,满足条件时将设备MAC地址发送给服务器。
  2. MQTT通信:门锁设备和服务器基于MQTT协议通信,使用HiveMQ作为MQTT代理,支持SSL或TSL加密通信。
  3. Telegram交互:通过Telegram bot与系统管理员交互,管理员可在Telegram上控制门的状态,系统会在Telegram日志频道发布门锁状态信息。
  4. 设备管理:服务器使用Pony ORM管理数据库,存储蓝牙设备信息,管理员可在Telegram上对设备进行添加、删除、修改有效期等操作。
  5. 门状态控制:服务器根据设备匹配情况和管理员指令控制门的开关,支持正常、锁定、解锁等多种门状态。

安装使用步骤

假设用户已经下载了本项目的源码文件,按以下步骤操作: 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_idapi_hash。 - 使用BotFather创建bot token。 - 将api_idapi_hashbot_token填入config.ini文件(不使用引号)。 - 在owner字段填入系统管理员的Telegram用户ID。 - 在log_channel字段填入日志频道ID。 3. Telegram设置:将创建的bot添加为日志频道的管理员,并让系统管理员向bot发送/start命令。 4. 运行程序: - 运行Python服务器程序,启动服务器。 - 构建项目并将程序烧录到EFR32设备中。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】