收藏官网首页
查看: 92896|回复: 71

iot小能手:【GAgent+STM32+UCOSIII】之智能贴锁

 

7

主题

92

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
跳转到指定楼层
楼主
发表于 2017-7-2 22:07:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
本帖最后由 iDea 于 2017-7-8 09:49 编辑

适用环境:适于用我们家庭中普通的防盗门,只要把本产品贴在门上,连上WIFI,即可让普通的门锁变成智能门锁,无需更换锁芯。本产口具有APP开关门,APP反锁,指纹开门,访客密码开门,门状态监控,室外温度测量的功能。本产品具有以下功能:
  • APP开关门
  • APP开关门闩
  • 指纹开锁
  • 访客密码开锁
  • 室外温度测量
  • 门状态监控
  • 总体设计方案
门内控制要能实现开锁,反锁,监控门的状态信息等功能,门外终端要能够实现刷指纹,密码输入,发送控制指令给门内控制系统,手机要能够对门内控制系统进行控制。
本设计采用了“机智云”作为的物联网通信方案,使手机应用与门内控制系统可以进行数据的同步。门内控制系统是设计的重心,云端通信、对门进行控制和门外终端进行通信都要依靠此系统才能完成。故本设计了WIFI模组、STM32主控芯片、2.4G无线通信技术、MOS管搭建的H桥电机驱动电路这一方案。STM32主控芯片负责同步云端的数据,与门外终端的通信和对电机的控制。
所以整个智能贴锁系统分为手机控制终端、门内控制系统、门外终端三部分组成。如图2.1所示为各个系统之间的联系:


图2.1 总体方案图

  • 门内控制系统
门内控制系统是整个产品的核心的,起着接收门外终端控制指令,接收云端控制指令并执行相关操作,操作完成后还要将数据上传到云端同步的重要功能。

  • 门外终端
为了提供更加好的产品体验,我们设计了这个门外终端。它主要是加装了指纹传感器,让用户可以更加方便的开门,不再需要要拿出手机,打开APP等诸多操作。同时,门外终端还有一个矩阵键盘,用于访客密码的输入。这个使用场景是:如果你家里请了一个钟点工之类的,你又不放心把密码或者加入他的指纹,那么我们就可以使用访客密码这个功能,这个密码由MCU随机生成,然后上传云端,你再把这个密码发给他,当他使用后,这个密码会自动报废,然后再生成一个随机密码上传云端,这样做的目的是为了防止有些用户忘记修改密码,从而产生安全隐患。门外终端还加装了一个温度传感,这样做的原因是因为在冬天的时候,你往往很难感知到室外的温度,不知道要穿多少衣服,但是有了我们这个功能,你把开APP就可以知道室外温度,多一点点人性化的关怀。
视频地址:
做得非常不好,这是我答辩前一天才做的,准备第二天答辩万一实物突然出问题,就放这个视频。不过答辩当天实物并没有出现问题,完美演示,非常争气,哈哈。
实物图:门内控制系统:

这个是磁铁,用来感觉开关门的,在门内控制系统的右侧装有干簧管:


门外终端:


只要把白色的贴在我们家里的门的后面,再为钥匙适配一个合适的套筒,就可以把普通的防盗门变成智能门锁。

#文件目录
SmartStickLock  
  |——indoor  
  |   |——PCB  
  |   |——CODE  
  |——outdoor  
  |   |——PCB  
  |   |——CODE  
  |——GizOpenSource_AppKit_Android  
  |——README.md
游客,如果您要查看本帖隐藏内容请回复

游客,如果您要查看本帖隐藏内容请回复

7

主题

92

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
推荐
 楼主| 发表于 2017-7-5 23:33:07 | 只看该作者
本帖最后由 iDea 于 2017-7-5 23:41 编辑

  • 硬件设计的总体要求

本设计由电机控制,无线通信、指纹模块和显示模块等组成,其中可能会出现大功管驱动造成的反压,高频电路对系统造成一定的EMC干扰,对通信信号线稳定以及供电的稳定性等。所以要满足以下几个条件:
  • 主控芯片的供电要稳定,不能与功率较大的元件使用同一个稳压电路供电,保证电源稳定性。
  • 设计电路时要注意要MOS管电机驱动电路进行缓冲隔离,不能让电机正反转时产生的反压对主控芯片造成影响。
  • 为门内控制系统和门外终端配置电源电压检测电路,提醒用户,防止因为无法工作而造成后果。

  • 硬件供电电路

L7805稳压电路
门内控制系统中的IR2401S半桥驱动器和74HC125D隔离芯片都采集了5V驱动或供电。如果直接把10V的电压接到ASM1117-3.3V芯片,较大的压降会导致很严重的发热量,故需要选择一个合适的中间稳压电路来把12V转换为5V。本设计采用L7805CV稳压芯片作为蹭稳压电路,因为LDO纹波小。

AMS1117-3.3V稳压电路
门内控制系统中的MCU,NRF24L01+,WIFI模组和门外的MCU,NRF24L01+以及指纹模块都需要在3.3V的电压下才能正常工作,这些芯片和模块对电源的质量要求较高,尤其是对稳定性的要求。所以选用了AMS1117系统稳压芯片中的3.3V,它是线性稳压,纹波小,稳定。

XL6009升压电路
门内控制系统中的MOS管H桥电机驱动电路,MOS的UG要比US高6V以上才可以满足工作在饱合导通的状态,所以需要一个升压电路能够把电源的4V升压到12V给MOS的G极使用。本设计使用的是XL6009芯片进行升压,可以调节滑变电阻R501的阻值来修改输出的电压。

TP4056充电管理电路
门内控制系统是安装在门内的,为了更好的解决续航问题,采用无线充电技术给电池充电。所以本设计采用TP4056,一端接无线充电,一端给电池充电。在日常的使用过程中,我们只需要把无线充电接收端的USB的插头接到MicroUSB口中即可。

  • 主控芯片电路

门内控制系统和门外终端都采用STM32F103CBT6作为主控芯片,它要与WIFI模组和NRF24L01无线通信模块进行通信,处理WIFI模组和门外终端发送过来的数据,然后进行操作处理,最后通过“机智云”的串口协议发给WFIF模块上传云端。

  • 无线通讯芯片电路

ESP8266模块电路
智能贴锁门内控制系统要实现远程控制就必须连网,其中最简单和和最方便的就是使用wifi模组。手机和云端、门内控制系统和云端之间的数据同步都要依靠WIFI模组进行中转。本设计中采用的WiFi模组的型号是:ESP8266-12F,它只能检测到2.4G频段的wifi信号,此外它支持USART等通信接口,为物联网这种低流量的应用场合作了优化。本设计的MCU与WiFi模组采用USART通信方式进行数据同步。由于把贴片封装的wifi模组直接焊接在电路板上,所以在加上了相应的0欧电阻,为了以后能够进行升级所用。

NRF24L01模块电路
智能贴锁的门内控制系统与门外终端依靠无线通信模块进行通信,门外终端通过无线通信块把所有控制信息和数据发给门内控制系统。本设计使用的无线通信模块是NRF24L01+。该模块不能用5V供电,只能采用3.3V供电,通信引脚不支持TTL电平,如果5V的MCU与之通信,需要使用1K的分压电阻进行分压。本设计的主控芯片为3V供电,引脚电平为3V,不需要进行电平转换。

  • 其他控制电路

电路驱动电路
门内控制系统的电机驱动采用N沟MOS管组成的H桥进行驱动,同时采用型号为IR2401S的半桥电机驱动芯片对MOS进行驱动。H桥所搭建的全桥电机驱动可以实现正反转和PWM无级别调速的功能。MOS管采用IRLR784 3,此MOS管只需要UGS高于4.5V即可进行驱动,能驱动的最高电压为30V,响应时间为34ns。电机驱动芯片选用IR2401S,此芯片兼容3.3V,TTL和15V逻辑电平,门驱动电压范围为10V~20V[8],开关响应时间为150ns,死区时间为520ns。

矩阵键盘电路
门外终端需要采用键盘输入密码和命令,所以采用了矩阵键盘的形式将12个按键进行连接。这样做的好处就是可以节省I/O口,而且处理起来比较简单方便。

OLED电路
门外终端需要输入相关的信息告诉用户各种状态和对用户的相关操作进行引导,所以有一个输出设备非常重要。本设计采用OLED屏,这种屏幕的功耗比一般的LCD屏要低。OLED通过SPI通信协议与单片机进行通信。

指纹识别模块电路
门外终端采用了多种身份识别方式,其中就有指纹识别。AS608模块采用了国内著名指纹识别芯片公司杭州晟元芯片技术有限公司(Synochip)的AS608指纹识别芯片。芯片内置DSP运算单元,集成了指纹识别算法,能高效快速采集图像并识别指纹特征。模块配备了串口、USB通讯接口,用户无需研究复杂的图像处理及指纹识别算法,只需通过简单的串口、USB 按照通讯协议便可控制模块。本设计采用串口的通信方式进行连接。
下面是完成的PCB设计图:
门内控制系统的控制板:


门外终端的PCB布线图,时间匆忙,就没做3D模型了:

7

主题

92

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
推荐
 楼主| 发表于 2017-7-6 00:01:09 | 只看该作者
本帖最后由 iDea 于 2017-7-7 09:47 编辑

  • 软件部分
门内控制系统和门外终端均使用了UCOSIII操作系统,门内控制系统为核心控制系统,负责和云端通信和控制。机智云移植入UCOSIII请看我之前发的帖子:http://club.gizwits.com/thread-3664-1-1.html
  • 门内控制系统

创建产品和生成框架代码的操作我就不说了,下面我说一下数据点,数据点的设计如下:

  • 门外终端:
门外终端主要功能是,指纹的录入,指纹的识别,密码的录入,密码的识别,OLED输出相应的提示功能,如:请输入录纹,识别正确,未检测到指纹,密码错误等等指令信息。
  • APP的编写:
本人非计算机专业科班出生,之前没有写过Java代码,但是由于毕业设计的需要,我开始学习了一些Java的基础知识,如:什么是类和对象,多态,继承,面向对象编程和函数式编程的区别,怎么样使用面向对向进行编程等基础知识。然后我就开始在网上找一些跟安卓编程相关的资料:如怎么样搭建开发环境,如何导入安卓SDK,什么是Activity,如何写XML布局,各个基本的控件如何使用等等。还研究了如何把数据上传到机智云的服务器,又如何从机智云的服务器里面读取到自己的数据点信息,以便UI的同步等等。后面我还发一了篇帖子,告诉大家如何点亮一个LED灯以及读取到一个LED灯的状态:http://club.gizwits.com/thread-4544-1-1.html,在APP的调试过程中,我还是比较推荐使用虚拟设备这个功能进行调试,因为实在是太方便了,完美解决了设备不在身边,更加解决了数据同步有没有成功,虚拟设备只要点一下“推送”就可以向APP发送数据,可以很好的看出APP有没有被接收到的问题,一步步地调,不像实物调试,要认真的观察现象: 然后在机智云的应用开发里面选择自己的开发平台,就可以生成相应的开源框架,里面Android Studio和eclipse两种版本都有,任君选择:


只要在框架里面写控制界面就行,如下图所示,最后我基于机智云的开源框架,做出了下面的APP:





7

主题

92

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
推荐
 楼主| 发表于 2017-7-2 22:26:03 | 只看该作者
本帖最后由 iDea 于 2017-7-2 22:40 编辑

  • 门内控制系统
门内控制系统是本设计的核心。门内控制系统在本设计中处于汇总数据,开关门控制的关键位置。Wifi模组是连接云端的唯一途径,读取到数据以后通过USART送给MCU。单片机做出相应的处理后,把数据发给WIFI模组,最后上传云端,进行数据同步。门内控制系统还要接收门外终端的控制指令,完成后也要使用串口通信发给WIFI模组进行云端的数据同步。门内控制系统的框架如下图所示:
  • 门外终端

门外终端负责指纹的录入和识别,矩阵键盘的采集和密码的判断储存,OLED负责输出相应的提示信息,如:请输入指纹,请输入密码等。最后处理之后把控制信息通过NRF24L01发给门内控制系统。


  • 手机APP
我是基于机智云的开源框架写的,只要写控制界面就行,非常方便,很适合我这种新手。下面是APP的界面:


7

主题

92

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
5#
 楼主| 发表于 2017-7-6 00:03:52 | 只看该作者
校园创客福利
本帖最后由 iDea 于 2017-7-6 09:28 编辑

  • 机械部分:
这里我们采用的是减速电机+同步带轮的组合。选这个的原因是因为减速电机可以做到比较大的扭矩,当时也想过用步进电机的方案,但是苦于找不到合适的步进电机+减速器的方案,只好放弃。下面除了电机上面的同步轮是买的之外,剩下的都是用3D打印机打印的,3D打印机也是我自己做的。

因为要在同步轮上面开一个槽,所以只能用3D打印,这样最省钱,最方便。

用solidworks建的模型:

下面是传动装置图:

后面我还用光电开关加了转动位置的反馈,但是后面没拍照,没图片了。

0

主题

5

帖子

164

积分

注册会员

Rank: 2

积分
164
6#
发表于 2017-7-7 00:01:37 | 只看该作者
一等奖给你

不过说真的,这一套做的很不错,赞一个

点评

哈哈,过奖了。论坛高手还是很多的,我这个做得有点丑  详情 回复 发表于 2017-7-7 09:25

7

主题

92

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
7#
 楼主| 发表于 2017-7-7 09:25:22 | 只看该作者
小king子 发表于 2017-7-7 00:01
一等奖给你

不过说真的,这一套做的很不错,赞一个

哈哈,过奖了。论坛高手还是很多的,我这个做得有点丑

13

主题

35

帖子

1330

积分

金牌会员

Rank: 6Rank: 6

积分
1330
8#
发表于 2017-7-7 16:02:36 | 只看该作者
也正学习这东东内容...

0

主题

4

帖子

116

积分

注册会员

Rank: 2

积分
116
9#
发表于 2017-7-7 20:01:28 | 只看该作者
非常好,顶下!

0

主题

12

帖子

346

积分

中级会员

Rank: 3Rank: 3

积分
346
10#
发表于 2017-7-7 20:02:46 | 只看该作者
免费使用STM32、APP自动代码生成工具
学习了,谢谢版主,。。。。。。。。。。。。。。

2

主题

22

帖子

903

积分

高级会员

Rank: 4

积分
903
11#
发表于 2017-7-8 12:45:19 | 只看该作者
有创新,学习了。

0

主题

4

帖子

118

积分

注册会员

Rank: 2

积分
118
12#
发表于 2017-7-8 12:57:46 | 只看该作者
学习了,谢谢

0

主题

9

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
13#
发表于 2017-7-9 14:47:06 | 只看该作者
多谢楼主分享

7

主题

92

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
16#
 楼主| 发表于 2017-7-11 14:20:58 | 只看该作者
为什么才几个人回复会有166的下载量?搞不懂

0

主题

5

帖子

181

积分

注册会员

Rank: 2

积分
181
17#
发表于 2017-7-14 09:16:38 | 只看该作者
感谢楼主的分享!

0

主题

3

帖子

71

积分

注册会员

Rank: 2

积分
71
18#
发表于 2017-7-21 14:41:51 | 只看该作者
支持啊,6到不行

0

主题

1

帖子

63

积分

注册会员

Rank: 2

积分
63
19#
发表于 2017-7-22 09:30:09 | 只看该作者
学习一下控制部分的代码

0

主题

1

帖子

13

积分

新手上路

Rank: 1

积分
13
20#
发表于 2017-7-22 10:47:38 | 只看该作者
免费使用STM32、APP自动代码生成工具
制作的非常精致!!高手
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表