点击上方“嵌入式从0到1”,选择“置顶/星标公众号”
干货福利,第一时间送达!
耗时两个月,今天终于完成了《基于STM32的智能语音家居》这个综合实例,现在对该实例实现的功能和知识点进行一下梳理。
具体配置参数预定义如下:
模块ID | 地址 | 信道 | 网络ID | 备注 |
---|---|---|---|---|
1 | 0x0001 | 0x0F | 0x1234 | 主节点,与LD3320语音模块相连 |
2 | 0x0002 | 0x0F | 0x1234 | 电灯 |
3 | 0x0003 | 0x0F | 0x1234 | 舵机,模拟门开关 |
4 | 0x0004 | 0x0F | 0x1234 | 步进电机,模拟窗帘开关 |
模块串口通信的波特率为:115200。地址0x0000为自己本身,地址0xFFFF为广播地址。
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四个指令,其他指令各位可以在我提供的源码基础上自由扩展。
DL-LN33 ZigBee模块系列网文第二篇:指令分析/地址和组网信息的修改
包括如下模块:
STC单片机开发环境建立及更新LD3320模块程序
语音识别LD3320模块控制LED和舵机
STM32与LD3320语音识别模块串口交互,实现语音控制继电器
解析LD3320的数据包需要了解cJSON相关知识:
Keil环境下STM32工程加入cJSON
用cJSON解析心知天气返回的数据包
STM32驱动0.96寸OLED液晶屏
OLED液晶屏如何显示中文呢?
2.4G ZigBee无线自组网mesh网络模块简介
DL-LN33 ZigBee模块系列网文第二篇:指令分析/地址和组网信息的修改
DL-LN3X ZigBee模块上位机网络拓扑软件演示及信号强度测试
串口编程解析DL-LN33 ZigBee模块数据包
本节点为ZigBee模块地址为0x0002的底板,这个板子上主要使用继电器模块。
当RELAY引脚为低电平的时候,三极管导通,继电器吸合,灯点亮;当RELAY引脚为高电平的时候,三极管截止,继电器无动作。
继电器模块可以实现弱电控制强电的功能,比如控制电灯、洗衣机、微波炉、电加热器等家用电器的开关。
继电器(Relay)的原理
STM32与LD3320语音识别模块串口交互,实现语音控制继电器
本节点为ZigBee模块地址为0x0003的底板,这个板子主要实现对舵机模块的驱动,用于模拟门的开关。
SG90舵机驱动原理和实现
语音识别LD3320模块控制LED和舵机
本节点为ZigBee模块地址为0x0004的底板,这个板子主要实现对步进电机的驱动,用于模拟窗帘的开关。
本文实例,JP8中的VS引脚与VCC5V两个引脚短接。
让步进电机动起来
板子上还有一个GY-302数字光照传感器,其原理图如下:
ADDR引脚通过R36的10K电阻接地,R35电阻不焊接。
光照传感器和步进电机的联动可以参考如下网文:
GY-302 数字光照传感器光照模块驱动
留言区置顶留言获取本文相关代码。