ZigBee-Lock 智能门锁项目
本文系 EMQ&Intel 联合举办的首届“中国物联网数据基础设施最佳案例评选大赛“个人开发者赛道三等奖作品。
项目作者:李小文
项目简介
本项目可用于不可嵌入安装门锁的门,实现门锁的智能控制。项目包含硬件、云服务器和 Android 客户端。其中硬件平台采用两个 Zigbee 设备实现设备间通信,云服务器包含 Web 服务器和 MQTT 服务器,客户端通过和服务器通信间接控制硬件。
项目地址:https://github.com/Magiclxw/ZigBee-Lock
技术框架
硬件平台使用 ESP8266 模块与 EMQX MQTT 消息服务器通信,Android 客户端通过连接 MQTT 服务器实时控制硬件。
架构图
使用说明
在和 EMQX MQTT 服务器通信时需要发布/订阅的消息如下:
- LockControl 值:open(开锁命令)/close(上锁命令)
- willTopic 值:online(在线状态)/offline(离线状态)
- LockState 值:lockon(门开状态)/lockoff(门关状态)/TH(室内温湿度)
在使用 Android 和服务器通信时需要注意从 Android 9.0(API 级别 28)开始,不能直接使用 HTTP 访问服务器地址,解决方法见:https://blog.csdn.net/qq_45255519/article/details/120511356?spm=1001.2014.3001.5501。
在使用 Android 连接 MQTT 服务器时,需要在服务器地址前添加 ”tcp://”。
作者寄语
本项目不论是在手机的实时控制还是温湿度的实时更新上都实现了很好的效果。后期还可使用 EMQX 充分利用 MQTT 协议的诸多特性,实现更加丰富的功能。
在开发 IoT 项目时,构思并画出整体框架对开发过程十分有用,因此需要在项目开始前尽可能的完善整体思路。