STM32
直播中

往事只能回首

12年用户 553经验值
私信 关注
[问答]

如何利用STM32去实现一种智能语音家居设计呢

基于STM32的智能语音家居具有哪些功能呢?
如何利用STM32去实现一种智能语音家居设计呢?



回帖(1)

宋玉红

2021-12-22 16:38:45
耗时两个月,今天终于完成了《基于STM32的智能语音家居》这个综合实例,现在对该实例实现的功能和知识点进行一下梳理。
   实现功能
一个主控板,三个节点,采用分布式网络,各个子板可以与设备就近连接,比如:控制窗帘的4号板(地址为0x0004),可以布置在窗户旁,靠近窗帘的位置;

  • 主控板上连接有LD3320语音模块,通过语音指令可以控制三个子板上的设备动作;
  • 主控板上可以显示地址为0x0004的ZigBee模块对应子板上光照传感器的值;
  • 子板上按键可以控制自己板子上的模块,相当于手动操作开关设备,比如:按键1可以控制电灯的开关、按键2可以控制门的开关、按键3可以控制窗帘的开关;
  • OLED在主控板上,用于显示接收到的光度值和灯、门和窗帘的开关状态。
   
     ZigBee模块定义

   具体配置参数预定义如下:
   [tr]模块ID地址信道网络ID备注[/tr]
10x00010x0F0x1234主节点,与LD3320语音模块相连
20x00020x0F0x1234电灯
30x00030x0F0x1234舵机,模拟门开关
40x00040x0F0x1234步进电机,模拟窗帘开关
   模块串口通信的波特率为:115200。地址0x0000为自己本身,地址0xFFFF为广播地址。
   ZigBee模块地址设定参考阅读如下网文:

   DL-LN3X ZigBee模块上位机网络拓扑软件演示及信号强度测试
   通讯协议定义

   [tr]功能包头源端口目的端口远程地址数据包尾备注[/tr]
电灯开关FE 0591A10x000200/01FF00为关灯,01为开灯
电灯开关命令应答FE 0592A20x000100/01FF数据位为灯的状态,00为关灯,01为开灯
门开关FE 0593A30x000300/01FF00为关门,01为开门
门开关命令应答FE 0594A40x000100/01FF数据位为门的状态,00为关,01为开
窗帘开关FE 0595A50x000400/01FF00为关窗帘,01为开窗帘
窗帘关命令应答FE 0596A60x000100/01FF数据位为窗帘的状态,00为关,01为开
获取光照强度命令FE 0497A70x0004
FF读取光照强度
获取光照强度应答FE 0698A80x0001XX XXFF数据的两个字节组成一个16位数据,低位在前
   本实例的代码只使用了源端口号为A1、A3、A5、A8四个指令,其他指令各位可以在我提供的源码基础上自由扩展。
   ZigBee模块数据包结构定义参考阅读如下网文:

   DL-LN33 ZigBee模块系列网文第二篇:指令分析/地址和组网信息的修改
   主节点

   包括如下模块:
   LD3320模块

   LD3320语音模块原理图

      
  

  
     推荐阅读

   STC单片机开发环境建立及更新LD3320模块程序语音识别LD3320模块控制LED和舵机STM32与LD3320语音识别模块串***互,实现语音控制继电器
   解析LD3320的数据包需要了解cJSON相关知识:
   Keil环境下STM32工程加入cJSON用cJSON解析心知天气返回的数据包
   OLED显示

   OLED模块原理图

      
  

  
     推荐阅读

   STM32驱动0.96寸OLED液晶屏OLED液晶屏如何显示中文呢?
   ZigBee模块

   原理图

      
  

  
     推荐阅读

   2.4G ZigBee无线自组网mesh网络模块简介DL-LN33 ZigBee模块系列网文第二篇:指令分析/地址和组网信息的修改DL-LN3X ZigBee模块上位机网络拓扑软件演示及信号强度测试串口编程解析DL-LN33 ZigBee模块数据包
   节点1:电灯

   本节点为ZigBee模块地址为0x0002的底板,这个板子上主要使用继电器模块。
   继电器模块原理图

      
  

  
     当RELAY引脚为低电平的时候,三极管导通,继电器吸合,灯点亮;当RELAY引脚为高电平的时候,三极管截止,继电器无动作。
   继电器模块可以实现弱电控制强电的功能,比如控制电灯、洗衣机、微波炉、电加热器等家用电器的开关。
   推荐阅读

   继电器(Relay)的原理STM32与LD3320语音识别模块串***互,实现语音控制继电器
   节点2:门

   本节点为ZigBee模块地址为0x0003的底板,这个板子主要实现对舵机模块的驱动,用于模拟门的开关。
   推荐阅读

   SG90舵机驱动原理和实现语音识别LD3320模块控制LED和舵机
   节点3:窗帘

   本节点为ZigBee模块地址为0x0004的底板,这个板子主要实现对步进电机的驱动,用于模拟窗帘的开关。
   原理图

      
  

  
     本文实例,JP8中的VS引脚与VCC5V两个引脚短接。
   推荐阅读

   让步进电机动起来
   板子上还有一个GY-302数字光照传感器,其原理图如下:
      
  

  
     ADDR引脚通过R36的10K电阻接地,R35电阻不焊接。
   光照传感器和步进电机的联动可以参考如下网文:GY-302 数字光照传感器光照模块驱动
  

   
举报

更多回帖

发帖
×
20
完善资料,
赚取积分