蓝牙门锁PC端上位机

键盘快捷键开门

Posted by Shao Guoji on June 7, 2016

把开门偷懒到底?

好吧还是关于我们宿舍的蓝牙锁。虽然门锁“内有物理拉绳手动开门,外有手机APP遥控开门”,但似乎还是不过瘾。想象一下,你在玩着电脑,手刚好在键盘上操作,这时突然有人敲门,伸手去拉绳,好像还是有点麻烦。虽然已经不用离开座位(靠门床位福利),但身体要倾斜,眼睛要找绳子,手要抓绳子,还要用力拉绳子,直到访客推开门才能松手……

但如果你这时只需随手甩一个“ALT+X”,伴随舵机清脆“吱”的一声,门已经打开,别人爱推不推,而你的眼睛无需离开屏幕半寸……

硬件制作详见文章:DIY宿舍蓝牙门锁-蓝牙门锁开发笔记



软件功能介绍

  • 通过笔记本电脑开锁及松锁
  • 键盘快捷键开锁(核心功能)
  • 一分钟超时自动断开连接
  • 额……自用的东西就这样,没什么其他特别的功能了。。。



废话照常

学C#那么久好像也没给自己写过什么东西,早就想写一个门锁的电脑控制端了。之前在博客园偶入“beautifulzzzz”这位大神的博客,这位嵌入式大神的博客可谓包罗万象,内容涵盖硬件的芯片、嵌入式和单片机到软件的算法数据结构、操作系统及各种编程语言,当中就有许多关于C#的软硬结合的实例。当看到“编程控制笔记本蓝牙与外部蓝牙设备通信”这篇文章时,我就知道,我的想法不久就会变成现实。而现在,这个“现实”已经在我的固态硬盘里乖乖躺着了呢……



功能实现

程序的核心部分就三个

  • 串口操作,数据发送(系统将蓝牙模拟为串口)
  • 程序最小化到托盘图标(即程序的后台执行)
  • 全局键盘事件监听(实现快捷键开锁)

而我的程序就是通过谷歌(用百度会死人的)搜到了别人实现好的代码模块,然后根据自己的需要“组装”而成的,所以依然没有什么太大的技术含量。



程序执行效果

程序主界面

任务栏图标1

任务栏图标2

任务栏图标3

任务栏图标4



使用方法

首先要在系统的蓝牙设置里添加设备(详细步骤见编程控制笔记本蓝牙与外部蓝牙设备通信这篇文章),驱动安装成功后会得到一个COM口,打开软件并选择相应COM口连接,点击按钮或用快捷键(ALT+X开锁,ALT+C松锁)即可操控门锁。目前暂时就实现了开锁松锁的功能,其他功能感觉没必要……



说明

1、 直接“叉掉”软件会最小化至任务栏图标后台运行,若要退出程序请右击任务栏图标“退出”选项

2、程序会在无操作后1分钟断开连接,避免占用硬件资源导致其他设备连接失败

3、 请确保蓝牙模块工作正常,上电、并处于“待连接”状态。如果门锁正被其他设备连接着或是其他原因导致连接失败,软件会出现异常并退出(我技术渣渣,懒得改了……)

4、保持程序后台运行以便随时使用快捷键开锁,让开门更加方便

5、不保证所有电脑都能用,因为有的电脑无法安装蓝牙驱动,得不到串口,比如我舍友的电脑



EXE下载地址:BlueDoor-PC.rar

项目源码github地址:https://github.com/shaoguoji/BlueDoor-PC-version

参考文章

[C#] 编程控制笔记本蓝牙与外部蓝牙设备通信 - beautifulzzzz - 博客园

C#托盘图标程序 - zhangkui的博客 - 51CTO技术博客

C#实现WinForm窗口最小化到系统托盘 - 钢钢 - 博客园

C#全局键盘监听(Hook) - 梦烬 - 博客园