logo资料库

自制宿舍门禁,微信小程序蓝牙控制,比指纹更安全!.pdf

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
自制宿舍门禁,微信小程序蓝牙控制,比指纹更安全! 自制宿舍门禁,微信小程序蓝牙控制,比指纹更安全! 不用改装原有门锁,成本低,除电源外仅需30多元就能升级智能宿舍(其实只是智能门禁 0.写在最前写在最前 基于安信可TB-02开发板AT固件V0.4.2开发(C语言),使用微信小程序控制,实现多平台可用、多用户、多终端的门禁系统。 提供原始固件和配套小程序,有一定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 下教程:https://blog.csdn.net/xh870189248/article/details/104486045 Windows 下教程:https://github.com/Ai-Thinker-Open/Telink_825X_SDK/blob/master/start_windows.md 安装教学这里不再赘述,如果有问题的话可以加群获取帮助,群号也贴在文末。 2.烧录固件 烧录固件 固件开源Github:https://github.com/chillsoul/TB02-BLEControl 下载后将这个固件放在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分别是 qwerty1
qwerty2 qwerty3 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,没错就是他,点击后会显示正在配对(如果是和室友一起,同时只能配对一个,不然会出现搜索不到的情况,一个配对好了再换下一 个人),当他出现在已配对设备的时候,开始最后一步吧~ 打开小程序,点击右上角绑定设备,输入你刚才输好的名字,此处我输入F01E314(注意区分大小写):
输入完成,点击确定,这样你的数据就已经保存至云端,下次使用不必再次绑定设备,直接搜索蓝牙即可。 确定已经给开发板供电、且烧录完成已按RST重启,点击搜索蓝牙,稍等片刻,点击开门,舵机就会开始转动:
然后把绳子绑在门把手上(或者老锁的拉栓),再次测试... 不出意外的话,恭喜你,大功告成! 不出意外的话,恭喜你,大功告成 当然,如果有问题的话也很正常~欢迎评论留言探讨或者加群交流: QQ群号993455501 视频演示效果: 基于安信可TB-02开发板自制宿舍蓝牙门禁 本文开发参考: 本文开发参考: @半颗心脏 半颗心脏 TB-02开发板入门好文: 开发板入门好文:
https://blog.csdn.net/xh870189248/article/details/104486045 https://blog.csdn.net/xh870189248/article/details/104657047 Telink Kite BLE SDK Developer Handbook:: http://pan-yz.chaoxing.com/share/info/d7111ddd25675790 密码 : xvkiik 微信开放文档 学习小程序开发: 微信开放文档 学习小程序开发: https://developers.weixin.qq.com/miniprogram/dev/framework/ 作者:chillsoul
分享到:
收藏