首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【综合实例开源】利用ZigBee模块实现智能家居的远程语音控制

【综合实例开源】利用ZigBee模块实现智能家居的远程语音控制

作者头像
DeROy
发布2020-11-04 10:01:49
1.3K0
发布2020-11-04 10:01:49
举报
文章被收录于专栏:编程学习基地编程学习基地

耗时两个月,今天终于完成了《基于STM32的智能语音家居》这个综合实例,现在对该实例实现的功能和知识点进行一下梳理。

实现功能

  1. 一个主控板,三个节点,采用分布式网络,各个子板可以与设备就近连接,比如:控制窗帘的4号板(地址为0x0004),可以布置在窗户旁,靠近窗帘的位置;
  2. 主控板上连接有LD3320语音模块,通过语音指令可以控制三个子板上的设备动作;
  3. 主控板上可以显示地址为0x0004的ZigBee模块对应子板上光照传感器的值;
  4. 子板上按键可以控制自己板子上的模块,相当于手动操作开关设备,比如:按键1可以控制电灯的开关、按键2可以控制门的开关、按键3可以控制窗帘的开关;
  5. OLED在主控板上,用于显示接收到的光度值和灯、门和窗帘的开关状态。

ZigBee模块定义

具体配置参数预定义如下:

模块ID

地址

信道

网络ID

备注

1

0x0001

0x0F

0x1234

主节点,与LD3320语音模块相连

2

0x0002

0x0F

0x1234

电灯

3

0x0003

0x0F

0x1234

舵机,模拟门开关

4

0x0004

0x0F

0x1234

步进电机,模拟窗帘开关

模块串口通信的波特率为:115200。地址0x0000为自己本身,地址0xFFFF为广播地址。

ZigBee模块地址设定参考阅读如下网文:

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

通讯协议定义

功能

包头

源端口

目的端口

远程地址

数据

包尾

备注

电灯开关

FE 05

91

A1

0x0002

00/01

FF

00为关灯,01为开灯

电灯开关命令应答

FE 05

92

A2

0x0001

00/01

FF

数据位为灯的状态,00为关灯,01为开灯

门开关

FE 05

93

A3

0x0003

00/01

FF

00为关门,01为开门

门开关命令应答

FE 05

94

A4

0x0001

00/01

FF

数据位为门的状态,00为关,01为开

窗帘开关

FE 05

95

A5

0x0004

00/01

FF

00为关窗帘,01为开窗帘

窗帘关命令应答

FE 05

96

A6

0x0001

00/01

FF

数据位为窗帘的状态,00为关,01为开

获取光照强度命令

FE 04

97

A7

0x0004

FF

读取光照强度

获取光照强度应答

FE 06

98

A8

0x0001

XX XX

FF

数据的两个字节组成一个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电阻不焊接。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程学习基地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现功能
  • ZigBee模块定义
    • ZigBee模块地址设定参考阅读如下网文:
    • 通讯协议定义
      • ZigBee模块数据包结构定义参考阅读如下网文:
      • 主节点
        • LD3320模块
          • OLED显示
            • ZigBee模块
            • 节点1:电灯
            • 节点2:门
            • 节点3:窗帘
            相关产品与服务
            语音识别
            腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档