范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

灵动微MM32W系列低功耗MCU智能锁解决方案

  智能锁方案中使用到灵动微MM32W系列低功耗MCU,配合手机通过APP读取智能锁蓝牙信息,尝试配对,配对成功即可正常通讯,手机APP通过蓝牙把指令发送给智能锁进行解锁,整个流程简单可靠,该方案将彻底告别传统钥匙开锁。蓝牙智能锁安全便捷,符合用户的需求,可应用的日常场景广泛,例如:门锁(家门、仓库门、货车门等);车锁(电动车锁、自行车锁、摩托车锁等);私人箱柜锁(抽屉锁、更衣柜、旅行箱、工具箱等)。接下来灵动微总代理英尚微给大家介绍一个使用场景非常丰富的蓝牙应用方案——基于MM32W系列开发的蓝牙智能锁方案。
  图1方案场景
  硬件资源如下:
  本方案基于MM32BLE_TestBoard进行测试验证,搭配上一颗微型的双向直流马达作为开锁方式的载体,这里只用马达驱动开锁,关锁默认为手动操作,用户可以通过手机APP来操作开锁。在硬件原理上,本方案使用到的DC马达是通过一颗专用的IC芯片来驱动,其控制引脚连接到MCU的PD2和PD3,通过控制两个IO的电平可以对马达进行不同运动状态的操作;使用PB1连接到绿色LED指示灯,可作为蓝牙连接状态的指示;模拟锁体状态功能引脚PA1配置为上拉输入,低功耗唤醒引脚选择PA0配置为上拉输入;蓝牙相关的功能引脚与前面介绍的方案一致,此处不做过多展开。以下为DC马达驱动原理图:
  图2 方案应用图
  软件资源如下:
  结合上述使用到的硬件资源,下面我们着重介绍软件实现流程以及相关配置代码。由于本应用方案ble蓝牙芯片与APP建立连接过程中需要应用到配对的功能,利用蓝牙库的接口函数可以实现,这里将配对秘钥设置为"123456",在连接时候需要设置正确才能配对成功并且连接上;控制DC马达的功能引脚全都配成推挽输出模式,直接连到驱动IC上去,通过改变高低电平组合来控制电机的正反转和启停;另外再对测试和模拟功能的引脚进行配置,从而更为直观地对应用效果的观测和验证,且使能看门狗复位功能来保证蓝牙服务的稳定性能;由于方案应用电池供电对低功耗的需要,本方案低功耗采用STOP模式。
  以下为主函数初始化配置内容,主要将所有的外设资源和蓝牙协议栈初始化,并且以中断服务程序的方式运行蓝牙,主函数的循环中主要实现的功能为判断是否进入低功耗模式,并且唤醒后根据接收到的蓝牙数据对DC马达进行不同的操作,代码如下:
  下面简单介绍一下蓝牙低功耗和DC马达操作相关的几个函数:
  //初始化DC马达控制引脚PD2、PD3,并且全部置为低电平
  void MOTOR_Init(void);//停止DC马达的转动
  static void MOTOR_Stop(void);//根据不同方向参数去控制DC马达运转
  static void MOTOR_Run(unsigned char direction);
  在MOTOR_Proc()处理函数中针对蓝牙接收到的密码数据进行解析,如果与默认设置的4位0-9数字密码完全匹配上则操作解锁,将DC马达按照设定方向控制运转,为了简易验证,模拟一个信号表示解锁成功,这里是通过采集指定IO引脚PA1的输入来实现,采集到输入为高电平那么停止DC马达转动,且清零锁定标志位。以下为代码实现内容:
  我们在gatt_user_send_notify_data_callback函数中给手机发送数据,该函数属于回调函数,协议栈会在系统允许的时候(异步)回调本函数,该函数被用于蓝牙模块端主动发送是否解锁状态信息给手机APP,函数内部不得增加阻塞代码。详细实现代码如下:
  //蓝牙连接成功后协议在空闲的时候会调用本回调函数
  void gatt_user_send_notify_data_callback(void)
  {
  static u8 LockFlagBak = 1;
  if (LockFlagBak != LockFlag)
  {
  LockFlagBak = LockFlag;//LockFlag标志位会在MOTOR_Proc()中清零和置位
  sconn_notifydata(&LockFlagBak,1);
  }
  }
  蓝牙协议会周期性回调本UsrProcCallback()函数,无论是在广播状态还是连接状态,在该函数中可以做运行和低功耗模式切换的超时计数,给IrqMcuGotoSleepAndWakeup()来处理是否进入低功耗模式,并且针对获取到的是否连接信息用LED指示灯做不同的状态显示。详细实现代码如下:
  //蓝牙协议会周期性回调本函数
  void UsrProcCallback(void)
  {
  static unsigned char led_flash = 0;
  IWDG_ReloadCounter();
  StandbyTimeout ++;
  if(gConnectedFlag){ //连接成功
  StandbyTimeout = 0;
  LED_ONOFF(1);
  }else{
  led_flash ++;
  LED_ONOFF(!(led_flash%10)); //蓝牙未连接,指示灯快闪
  }
  }
  除了上述关键的蓝牙数据发送函数外,下面再简单介绍一些与蓝牙相关的特征值定义,在const BLE_CHAR AttCharList[] 中定义了本案中的两个特征值:
  {TYPE_CHAR,0x0011,{ATT_CHAR_PROP_W_NORSP,0x12,0,0xf1,0xff}, UUID16_FORMAT},//解锁命令
  {TYPE_CHAR,0x0013,{ATT_CHAR_PROP_RD|ATT_CHAR_PROP_NTF,0x14,0,0xf2,0xff}, UUID16_FORMAT},//锁体状态
  在void att_server_rdByGrType( u8 pdu_type, u8 attOpcode, u16 st_hd, u16 end_hd, u16 att_type )中实现了自定义特征值服务声明;
  在void ser_write_rsp()中实现对手机APP发送的蓝牙数据接收和存储:
  if (StartEncryption)
  {
  if (valueLen_w < 9)//对蓝牙数据进行解析和存储
  {
  Password_wr[0] = valueLen_w;
  memcpy(&Password_wr[1], attValue, valueLen_w);
  }
  }else{ //无效数据,不保存
  Password_wr[0] = 0;
  }
  在void server_rd_rsp(u8 attOpcode, u16 attHandle, u8 pdu_type)中实现把锁体状态回复给手机APP:
  att_server_rd( pdu_type, attOpcode, attHandle, &LockFlag, 1); //将LockFlag 标志位返回给手机APP
  手机操作流程如下:
  使用手机原生蓝牙界面查找设备,找到MM32_Lock后点击进行配对。默认配对密码为123456,配对成功后MM32_LOCK设备自动保存到配对设备列表,以后不需要该步骤;
  手机打开App,开始搜索BLE设备,选择对应名称(MM32_LOCK)的蓝牙设备并进行配对,等待连接成功。连接成功后会有相应提示,按钮Connect名字会变成Disconnect;
  连接成功后,对UUID为fff1的特征值写0x31323334(模拟用户输入密码"1234"),测试板上连接的马达开始转动,执行开锁动作;
  给PA1输入低电平模拟锁开启完成,UUID为fff2的特征值结果为0表示锁体开启,给PA1输入高电平模拟锁体锁上,UUID为fff2的特征值结果为1表示锁体锁上。这里只用马达驱动开锁,关锁默认为手动操作。
  图3 手机APP图

哦,我们曾经年轻过未来的对话,就是夫妻吵架,目的简单让生活过的更好,吵架就是谈判,是洽商,是妥协,是想念,是牵绊,是为了牵到温暖的手,是为了明天的工作好心情,是为了较少不必要的损失,总之,好处多多。说美国没有假货?真的吗?不要让问题问懵了,美国有没有假货?假货谁制造?正品的产品都是中国制造的,假货的成本,能有中国的货品低吗?制造的假货比中国的产品要高,谁做假货。中国的进口产品就被极少的几个贸易商垄断今天我愿叫国庆,今天我愿与你同在我和祖国在一起祖国母亲您好!今天你已72周年了,想必你也收到了很多来自全国各地同胞们的祝福。我和他们一样,在你的怀抱里长大。请原谅我第一次在这一天向您表白!因为我知道一句祖国母亲,抬头的家族(真实故事)在家乡,王姓有一家犯仰头病的家族,村里人讲这一家人有个抬头的父亲,必有一个抬头的儿子。到底是怎样回事了。在村子边,有一户人家,以专门磨制手工的豆腐,这户主叫老王老王的头脸朝天,以他科创中国湖南中心揭榜挂帅行动再添硕果科创中国湖南中心持续推进揭榜挂帅行动落地,4月2日在中国石化巴陵石化举行了重点科研项目揭榜挂帅发布会。湖南省科协副主席傅爱军蒋晓云,中国科协科创中国平台运营副总监蒙昌乐,湖南省企业利物浦前锋世界杯冠军罗杰亨特去世,享年83岁英格兰俱乐部在其网站上发表声明说,亨特在利物浦的492场比赛中打进了285个球,周一在家中因长期患病而平安去世。利物浦的罗杰亨特(11号)和约翰普拉特跟踪着球奔跑。利物浦以20赢得初出茅庐的华为汽车,怎么就把特斯拉干趴下了?在手机圈,华为是最大的背锅侠。2016年Note7爆炸事件,三星在国内的声明中,称国行版起火是外部加热所致,然后一堆帖子说是华为搞得鬼。2019年,雷军在发布会上,说一句这些年我们华为Mate家族新成员即将亮相乐视TV海报疑似现贾跃亭剪影Mate家族新成员即将亮相IT之家华为终端官方微博刚刚宣布,Mate家族新成员将于5月19日1430亮相,还有大惊喜。此前有多个数码博主爆料,华为将在5月19日发布华为儿童手表4X据说这几家是魔都不好惹的四大家族在上海,有很多祖辈上就生活在这里,并且通过祖辈打拼一代代财富积累,如今已经在上海非常有名望的家族,今天,我们就一起来看看魔都不好惹的四大家族都是谁家。魔都不好惹的四大家族1。曹可凡欧洲三大家族排行榜这三个家族都是历史上赫赫有名的在古代,一个庞大的家族可能掌控着一个乃至几个国家的命脉,它们枝系旁多,权势极重,财力雄厚,堪比一个帝国。今天排行榜123网小编就带着大家去了解欧洲三大家族。欧洲三大家族排行榜1。哈3个系列10种型号,中国宇宙飞船家族解读,人丁太兴旺了我国虽然没有发展航天飞机,但目前已有三型飞船,它们是神舟天舟和新一代载人飞船,其中天舟专用于运货。这一点,很多人都有所了解,可是你知道吗?我国三种飞船细分下去,其实有9个系列。我国
AMD锐龙5000又出新成员Zen3和CezanneIT前线消息。AMD推出新的CPU并且希望其新型锐龙5000移动处理器能在去年的势头基础上继续发展。新的处理器系列有13款新型号,瞄准了传统的U系列和H系列市场。锐龙5000,H系苹果2021年新品计划IT前线消息苹果正在推进2021年的更大计划以下是目前对未来的猜测。就像去年一样,苹果正在推进2021年的更大计划。以下是我们认为今年你可以期待这家公司做出的贡献。MAC和苹果硅苹ScienceNature综述汇总001期自然2020年8月13日,第584卷7820期宇宙早期寒冷动态盘状星系作者F。Rizzo,S。Vegetti,D。Powell,F。Fraternali,J。P。McKean,H。比埃菲尔铁塔还高的漂浮风电场挪威一家海上风力发电公司(WindCatchingSystems)正在开发一个名为Windcatcher的漂浮式海上风电场,该风电场高度接近300米,与埃菲尔铁塔大致相同。该系统将红外光谱仪新技术,让智能设备更智能红外(IR)光谱仪是一种常用的实验室设备,用于通过分析气体样品的红外特征来识别不同的材料。但是用来制造红外光电探测器的材料很难制造,需要多层完美连接的晶体。最近,墨尔本大学的研究人硒化物异质结界面工程构建内建电场用于电催化氧化水和尿素喜欢就关注我们吧,订阅更多最新消息第一作者倪善通讯作者杨良嵘研究员通讯单位中国科学院过程工程研究所DOI10。1016j。apcatb。2021。120638。全文速览多相电催化通Equinix将在法国启动32,000平方英尺的数据中心Equinix将于2021年第三季度在法国波尔多开设其第一个数据中心。通过与Equinix在巴黎的国际商业交流网站的直接光纤连接,这个名为BX1的新设施将为位于新阿基丹的全球企业和这些错误让微软变得更明智当时我认为这是一个非常棒的主意,但之后微软就因为垄断的问题而被政府起诉。前Windows95首席架构师中岛悟志(SatoshiNakajima)出席硅谷动漫展时曾这样说到,当时在他人工智能可能会揭示气候变化的临界点滑铁卢大学应用数学教授ChrisBauch是最近一篇研究论文的合著者,该论文报告了有关新深度学习算法的结果。Bauch说,这项研究着眼于系统中发生快速或不可逆变化的阈值。我们发现新为什么微软CEO纳德拉说Excel更应被人铭记?提到微软,用户会习惯性地想到WindowsOffice或是Xbox。不过在纳德拉看来,Excel才是微软的最佳象征。他曾在AspenIdeasFestival上表示,微软经常与Xb龙虾的年龄为什么难获取龙虾可以活得惊人的长,但实际上很难判断它们在任何特定时刻的年龄。随着它们的成长,它们每隔几年就会蜕皮并发育出新的硬化外骨骼。这意味着衰老的身体迹象不会以任何有意义的方式积累。英国东