STM32 智能家居项目 FreeRTOS 密码锁 指纹锁 GSM远程控制 设计报告

本文主要是介绍STM32 智能家居项目 FreeRTOS 密码锁 指纹锁 GSM远程控制 设计报告,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

   资料下载: https://download.csdn.net/download/vvoennvv/88503621

一、概述

        使用STM32F407芯片,FreeRTOS系统,门禁支持密码输入、指纹输入;人体感应灯可实现家居环境中人体自动识别,并用来控制灯光部分的开、关以及延时功能;GSM远程控制通过手机远程向GSM模块发送短信,并识别短信的内容,根据器内容实现对家庭电器、窗帘、照明的本地或远程控制。

二,整体设计

2.1 密码系统

       设计为有两个6位数字密码,并可以进入系统后选择修改密码。首先,系统会不断扫描是否有按键按下。当检测到密码输入时,会将输入的数值保存一个字符串中,并显示“*”来防止偷窥,可以通过“显示”按键来显示或隐藏密码。密码最多输入6位输入完成后按确认键,系统就会将字符串的密码一位位地和系统保存的密码进行比较,当存在不同时,系统会显示“密码错误”并清空输入的密码。输入密码正确则跳转进入系统的主界面。在主界面可以选择修改密码进入,然后选择密码修改。

2.2 指纹识别

       (1)不断检测指纹;
       (2)录入图像。当你的手指放在光学指纹窗口的时候执行这个指令,就可以把指纹的图像拍下来。
       (3)生成特征。当你的指纹图像拍下来之后,调用这个指令就可以把图像中的指纹特征记录下来。AS608里面有2个缓存区可以存这个特征。
       (4)搜索指纹。调用这个指令就会将已经存在Flash里面的指纹模板和缓存区的指纹特征一一比对,如果有搜索到,则开锁进入系统主界面。
      要注意的是,调用的时候需要指明比对的特征是缓存区1还是缓存区2,即你要选择第二步生成的特征所存储的缓存区。

2.3 人体感应      

        人体红外检测模块HC-SR501只有三个管脚(VCC,GND,DATA),电源VCC和地GND,数据输出管脚DATA。当检测到有人体活动时,DATA输出高电平,平常没有检测到有人体活动时输出为低电平。

2.4 GSM远程控制

        系统不断检测是否有短信输入,当接收到信息时,屏幕提示信息输入,并读取判断短信内容,如果短信中有“on”则开灯,有“off”则关灯,如果都没有则不执行退出。该开灯关灯功能都会使人体感应功能关闭,可在设置中恢复。
 

三,设计报告

 

在该项目的系统中我主要以stm32F407系列单片机作为主控芯片,正点原子STM32F4开发板的接口丰富,芯片功能强大,资源都可以灵活配置,可以方便的进行各种外设的实验和开发,适合新手的开发学习。
门禁系统方面主要有密码输入部分和指纹识别部分组成。密码输入部分我选择4*4的键盘输入模块,该模块结构简单,易于连接实现密码键盘功能。通过对键盘的按键不断扫描,可以检测被按下的按键,进而确定用户的密码输入。通过编程实现将输入密码一位位与系统保存的密码相比较。正确密码后,主控芯片就会发送指令控制继电器驱动进行开锁,输入密码错误则会提示错误信息。进入系统内部后,能对用户的密码进行修改功能。这里就要用到stm32内部的flash来存储密码。将修改后的密码写入到flash中,防止密码掉电后丢失。
指纹模块部分则使用as608指纹模块,ATK-AS608指纹识别模块是一款比较成熟的指纹模块,官方提供了指纹录入、指纹识别、指纹删除等一系列功能,方便我们进行设计调用。通过给AS608发送特定的指令,就可以调用里面的算法,进行相应的指纹操作。所以我们编程实现,系统开机就会自动读取模块中存储的指纹方便进行比对,然后不断检测指纹模块是否有指纹输入,检测到指纹后调用指纹匹配指令进行指纹对比,匹配成功则开锁进入系统总界面,匹配失败则显示错误信息。开锁后可以选择进行添加指纹、删除指纹的操作。添加指纹时,系统发送添加指纹指令,然后与指纹模块通讯一步步进行指纹录取,最后通过4*4按键模块输入指纹ID存储进指纹模块当中;删除指纹,调用模块的删除指纹指令,然后使用4*4按键模块进行输入指纹ID进行删除,也可以选择一键清空操作。
人体识别控制灯光部分使用HC-SR501人体检测模块来实现,当该模块检测到有人体靠近的时候,模块引脚就会输出高电平到开发板,开发板检测到电平的输入后,控制连接灯光的引脚输出,来达到人体识别控制灯光的目的。当我们进入系统控制界面时,就可以选择灯光设置来对灯光各项参数进行设置。该灯光设置部分需要有总的开关控制和延时设置。总开关设置,该部分通过定义一个全局变量来判断控制实现。当总开关按钮按下,先判断全局变量是0还是1,是0说明灯功能是开着的,就进行关灯并将全局变量置1;反之是1说明灯是关闭的,就开灯并将全局变量置0。延时设置,用户可以直接通过4*4按键模块输入需要的延时数值,确定后该数值会存储到系统内部flash,每一次亮灯前都会先自动读取flash中的数值,确定延时时间再进行亮灯。这样就能方便精确地去控制灯光的延时时间了。
短信远程控制家电部分采用sim800c实现短信的接收、和开发板通讯。开发板系统可以通过调用模块的指令实现与模块的通讯和模块功能的设置。系统开机时,我们首先需要通过串口与sim800c建立通讯,检测sim卡是否正常。通讯成功后,系统需要不断检测串口的输入,检测到有短信传入后有显示提示,然后直接读取短信内容,检测短信内容字符串中是否含有“开灯”、“关灯”等操作内容,有则执行相关操作否则当作其他短信过滤掉。
关于系统的显示,我们采用正点原子的2.8寸电阻触摸屏进行显示,使系统的操作界面简洁明了便于操作,同时显示返回错误信息,提醒用户。最后将这些模块和功能都集合到一起,就能构建成我们的系统作品了。

3.3可能出现的工作难点与拟解决的方法
其中的难点就是实现开发板与各部分模块的正确通讯,还有各部分功能的组合,协调不发生冲突。在此,查阅了有关资料,决定采用freertos操作系统来实现各部分功能任务协调执行。将需要实时检测执行的功能任务设置成高优先级,随时去执行,而缺少实时性的任务设置成低优先级。在执行后或不执行时通过延时挂起函数来暂时挂起高优先级任务,去执行低优先级的任务。这样就能解决各功能任务相互冲突的问题了。

四,总结

一个学习STM32不可多得的项目,通过该项目可以熟悉STM32各种片内资源的使用。

 资料下载: https://download.csdn.net/download/vvoennvv/88503621

这篇关于STM32 智能家居项目 FreeRTOS 密码锁 指纹锁 GSM远程控制 设计报告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733505

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2