不用改装原有门锁,成本低,除电源外仅需30多元就能升级智能宿舍(其实只是智能门禁

PS:由于安信可在文章发布之后多次修改了SDK,提供一个我当时的版本,出错请先确认是否为20年4月的SDK:Telink_825X_SDK-0bd68dce44cd69b5f785a5bfcbfab4d342dd40fe.zip - 蓝奏云

这套方案仍然有一些问题,有时候板子会卡死(不确定是板子还是什么的原因),另外微信小程序也并不是很方便快速开门,建议有能力的同学自己研究一下,或者单纯参考一下思路。

0.写在最前

基于安信可TB-02开发板AT固件V0.4.2开发(C语言),使用微信小程序控制,实现多平台可用、多用户、多终端的门禁系统。

提供原始固件和配套小程序(已经发布了,搜索quicklyOpen),有一定C语言基础(没有也行),修改固件设备名称烧写之后就可直接在小程序绑定设备使用。利用了小爱实验室功能录屏教学还可以实现语音控制(不过不稳定),效果放在文末。

这是我的第二块开发板(第一块是ESP8266),第一次接触SDK开发,第一次接触微信小程序开发,一共差不多用了我一个星期(网课都没好好听),多有不足请多指教。

开发过程参考了@半颗心脏 的许多文章,有兴趣的可以看一看,链接贴在文末。

解释一下标题,为什么说比网上许多的指纹门禁要安全呢?

源于我看到了B站一位UP主(__Aknice)的视频,普通的指纹模块指纹数据存储在指纹模块上而非开发板上面,而指纹模块必须安装在门外,那么别人只需要把你的模块拔掉替为自己的,将可以随便开门。

这个UP主自己也有一套很好的方案,是基于ESP8266的,我一开始也是使用ESP8266做了一个WIFI门禁,但是很快就决定放弃这个方案,因为ESP8266功耗并不小,没几天充电宝就掉了一格(可能是我的方案的问题,没有设计好),扯线又存在危险性,所以我最终选择蓝牙,实测10000mAh充电宝应该至少可以用一个月(已经试了快一周,还没掉格)。

1.准备工作

元件清单:

  • 安信可TB-02开发板1个
  • 数码舵机1个,要买扭矩比较大的,比如MG995和TD8120MG
  • 公对母杜邦线数根
  • Micro-usb数据线1条
  • 结实而细的绳子1条,绑在门把手和舵机臂上开门
  • 移动电源一块,或者自己买几个18650和电池盒组装

重点说一下电源的选择,因为TB-02的工作电流很小,实测我手上这块小米移动电源2工作几十秒就会停止供电,换了一块很老的充电宝才可以用,大家可以选择买几节18650和一个电池盒自己做电源。

接线:舵机红线接电源(开发板的5V)、棕线接地(开发板的GND)、橙色线接信号(开发板的PC3)

建议接上后使用热熔胶等固定好,以免松动。

SDK环境安装:

Linux 下教程:泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ① 小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯;_徐宏的博客 | 修身齐家治国平天下-CSDN博客

Windows 下教程:Telink_825X_SDK/start_windows.md at master · Ai-Thinker-Open/Telink_825X_SDK · GitHub

安装教学这里不再赘述,如果有问题的话可以加群获取帮助,群号也贴在文末。

PS:由于安信可在此之后多次修改了SDK,提供一个我当时的版本,出错请先确认是否为20年4月的SDK:Telink_825X_SDK-0bd68dce44cd69b5f785a5bfcbfab4d342dd40fe.zip - 蓝奏云

2.烧录固件

固件开源Github:GitHub - chillsoul/TB02-BLEControl: 基于安信可TB-02制作的微信小程序蓝牙门禁控制系统。

下载后将这个固件放在SDK同目录下,如图:

本文以Windows系统为例,Linux下操作大致相同。

Windows下端口号的获取:连接开发板后桌面右击此电脑→设备管理器

makefile中修改对应的端口号 在我的电脑上显示是com3就写com3

DOWNLOAD_PORT := com3

Linux版本请参考上面的安装教程确定烧录端口,默认:

DOWNLOAD_PORT := /dev/ttyUSB0

然后打开编辑app_att.c,建议使用Visual Studio Code等编辑器。

//app_att.c line 169
#define USER_NUM  6
const char whitelist[USER_NUM][64] = {{"在这里填上你的WHITELIST"}
};

所谓whilelist是指对应我开发的微信小程序的openid

关于openid

openId是用户在当前小程序下的唯一标识(‘身份证’),就是说通过这个openId,就能区分在这个小程序下具体是哪个用户。

openid的计算方法只有微信官方知道,正是由于openid的唯一性,我选择openid作为控制门禁的钥匙,即发送openid到蓝牙设备,尽最大努力保证安全。

当然不理解也没有关系,不要求你开发,会用就行~

下一步,获取你对应我开发的小程序的openid。

扫码打开小程序:

点击右上角获取openid,即可复制你的openid到剪切板,为了安全起见,不要把这个openid发送给别人,尤其是离你实际距离比较近的人。

回到app_att.c,按照C语言标准修改二维数组:例如我宿舍有四个人,他们的openid分别是

  1. qwerty1
  2. qwerty2
  3. qwerty3
  4. qwerty4

那么就修改为:

#define USER_NUM  4
const char whitelist[USER_NUM][64] = {{"qwerty1"},{"qwerty2"},{"qwerty3"},{"qwerty4"}
};

然后保存文件,再打开app.c,修改你的设备名称。

//app.c line 95
const u8 tbl_scanRsp [] = {0x13, 0x09, 'q', 'u', 'i', 'c', 'k','l','y','O','p','e','n','\'','s',' ','D','o','o','r',//loacalName};

此处修改有讲究,第一位0x13代表其后有多少个字符,上述默认代码其后0x09和quicklyOpen's Door共19位,转换成16进制就是0x13,这里建议不要太长,小程序端限制设备名称最长是10位,修改完成,保存。如果你对C语言的字符没有什么概念,就简单点只改字母和数字,比如F01E314,就是:

const u8 tbl_scanRsp [] = {0x08, 0x09, 'F', '0', '1', 'E', '3','1','4',//loacalName};

ble_conrtol_and_AT文件夹内右键空白处选择Git Bash Here(如果没有,就是环境没装好,请回顾上文)

输入make,显示如下表示成功编译:

等待处理完成后输入make flash,再次等待进度条读满,出现这个界面就是烧录成功了:

然后按下开发板RST按键,别急,还差最后几步就可以使用了。

先打开手机自带的蓝牙界面,找到qUiCkDoOr,没错就是他,点击后会显示正在配对(如果是和室友一起,同时只能配对一个,不然会出现搜索不到的情况,一个配对好了再换下一个人),当他出现在已配对设备的时候,开始最后一步吧~

打开小程序,点击右上角绑定设备,输入你刚才输好的名字,此处我输入1111(注意区分大小写):

输入完成,点击确定,这样你的数据就已经保存至云端,下次使用不必再次绑定设备,直接搜索蓝牙即可。

确定已经给开发板供电、且烧录完成已按RST重启,点击搜索蓝牙,稍等片刻,点击开门,舵机就会开始转动:

然后把绳子绑在门把手上(或者老锁的拉栓),再次测试...

不出意外的话,恭喜你,大功告成!

当然,如果有问题的话也很正常~欢迎评论留言交流:

视频演示效果:

基于安信可TB-02开发板自制宿舍蓝牙门禁

小爱同学语音控制利用小爱实验室录屏教学功能实现

效果视频:视频去哪了呢?_哔哩哔哩_bilibili

本文开发参考:

@半颗心脏 TB-02开发板入门好文:

泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ① 小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯;_徐宏的博客 | 修身齐家治国平天下-CSDN博客

泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ② 如何实现 微信小程序蓝牙控制 Ble Mesh模组 安信可TB02,全部开源!_徐宏的博客 | 修身齐家治国平天下-CSDN博客

Telink Kite BLE SDK Developer Handbook:

http://pan-yz.chaoxing.com/share/info/d7111ddd25675790 密码 : xvkiik

微信开放文档 学习小程序开发:

微信开放文档

自制宿舍门禁,微信小程序蓝牙控制,比指纹更安全~相关推荐

  1. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ② 如何实现 微信小程序蓝牙控制 Ble Mesh模组 安信可TB02,全部开源!

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小 ...

  2. 【微信小程序控制硬件 第12篇-项目篇】微信小程序蓝牙控制硬件应如何开始动手?为您全面解析微信小程序蓝牙API的使用;(附带demo)

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  3. 【微信小程序控制硬件14 】 微信小程序蓝牙+WiFi双控制ESP32-C3应用示范;(附带Demo)

    文章目录 一.前言 二.设备核心代码 2.1 蓝牙控制 2.2 WiFi控制 2.3 外设驱动 三.微信小程序核心代码 3.1 蓝牙搜索 3.2 蓝牙服务发现 四.感谢 另外,不要把我的博客作为学习标 ...

  4. 微信小程序蓝牙ibeacon_微信开放蓝牙iBeacon接口小程序靠近原生APP功能

    腾讯一直要连接一切,特别是新的物联网浪潮涌来的时候,不管大众重视程度与否,微信已经又走在了我们前面.在物联网中最基础最通用的当属每个人手机上都具有的蓝牙功能.所以,继2014年微信开放了基于低功耗蓝牙 ...

  5. 微信小程序 - 蓝牙BLE小程序开发

    1.前言 最近领导看我比较闲,安排我开发一个蓝牙BLE微信小程序,刚开始接到这个项目时,我第一反应时,"卧槽"".老子在公司的岗位是做Windows和Android 软件 ...

  6. 微信小程序蓝牙标签打印/标签云打印开放平台(2)

    微信小程序蓝牙标签打印/标签云打印开放云平台(下面简称"平台" www.herro.cn 技术服务TEL:15759216805),支持开发者通过API调用完成标签蓝牙打印或标签云 ...

  7. axure 小程序 网盘_万门大学微信小程序实战开发特训班【完结】网盘高清全套最新系列精品课程...

    万门大学微信小程序实战开发特训班[完结]网盘高清全套最新系列精品课程 课 程 简介 我买了这个课程,课程很有价值,我们通过链接或百度网盘群的形式在共享资料库中与您共享,需要万门大学微信小程序实战开发特 ...

  8. wx.getBLEDeviceCharacteristics 微信小程序蓝牙 微信小程序热敏打印机

    1 微信小程序蓝牙功能开发概述 第一步 判断当前微信版本,是否支持蓝牙 通信 第二步 打开蓝牙 第三步扫描设备 第四步连接设备 第五步 获取服务与特征值 看是否支持读写数据操作 第六步 发送数据 本文 ...

  9. 微信小程序蓝牙模块BLE开发说明基础知识

    微信小程序蓝牙模块说明 一.简介 微信小程序作为轻量级应用的载体,确实方便了很多的应用场景.传统的产品如果要和手机互联互通,那么必须要开发两套APP,即IOS和安卓.十分的麻烦和成本巨高.但是微信小程 ...

  10. 标签云打印/微信小程序蓝牙标签打印开放平台功能

    ​微信小程序蓝牙标签打印/标签云打印开放平台(www.herro.cn),是在云端部署的云平台,支持开发者通过API调用完成标签蓝牙打印或标签云打印功能. 平台蓝牙打印模块支持各厂商各品牌蓝牙标签打印 ...

最新文章

  1. 【逆序对】Ultra - Quicksort
  2. 感知器数学表达和训练算法
  3. redis的spring的xml配置
  4. 05-JDBC学习手册:JDBC2.0 新特性之批量处理数据
  5. 云服务器deeplearning_开始使用 AWS Deep Learning AMI 进行深度学习 | AWS
  6. 二十不惑,三十而已|网易互联网人的“焦虑必杀技”
  7. 【转】Android Studio简单设置
  8. ios解锁动态图片_iOS 苹果开机启动的 滑动来解锁动画
  9. Android Zip文件解压缩代码
  10. jfinal mysql 配置文件_JFinal 如何将操作日志存入到数据库中
  11. 理解JavaScript中this的指向详解
  12. 使用git恢复未提交的误删数据
  13. 【GTK】信号量(signal)大全
  14. C# 在服务器生成文件/文件夹并压缩下载到本地
  15. Python 之 pip安装 及 使用详解
  16. Kademlia、DHT、KRPC、BitTorrent 协议、DHT Sniffer
  17. 【安装】安装OpenCV简易教程
  18. 愚人节就是要搞怪!微信公众号图文应该这样排版!
  19. 开发环境- 配置虚拟主机域名/hosts文件 - 学习/实践
  20. 2019 ICPC 上海站网络赛 K.Peekaboo (圆上整点)

热门文章

  1. 信号处理 | 维纳滤波推导
  2. jdk13新特性(jdk18新特性)
  3. [转贴]深山红叶使用图文教程
  4. 软件设计师考试感想随笔
  5. 软考中级–软件设计师考试大纲
  6. python模拟按键directx,Python3在DirectX游戏中移动鼠标
  7. dell安装linux系统网卡,DELL 2850服务器Redhat Linux 9系统安装网卡驱动记
  8. html插入activex,在HTML网页中插入ActiveX控件
  9. window2012 密钥 标准版_Windows Server 2012 R2 密钥
  10. 曼联队选择Tezos作为官方区块链和训练工具包合作伙伴