3.3.5 语音播报温度与湿度#

3.3.5.1 简介#

我们学会了发送消息号给语音模块从而控制它播报对应的声音,那么接下来我们要学习发送消息号以及传感器数据给语音模块,让语音模块播报出语音+传感器数据,如:当前温度是 二十五摄氏度 或 当前湿度是百分之 五十 等等…

3.3.5.2 控制指令表#

命令参数表:

命令码

命令词

命令回复

25

“当前温度” 或 “现在温度是多少”

正在读取环境温度

26

“当前湿度” 或 “现在湿度是多少”

正在读取环境湿度

消息号表:

消息号

播报语音

2

当前温度是 “温度值” 摄氏度

3

当前湿度是百分之 “湿度值”

3.3.5.3 接线图#

a24

3.3.5.4 代码#

a25

3.3.5.5 代码说明#

① 基本代码语播报倾斜课程一致,不在重复

② 当我们唤醒语音模块并询问他"当前温度",语音模块就会发送一个命令码25过来,然后通过判断这个命令码执行发送温度消息号以及数据给语音模块,我们使用switch代码块来实现,这个代码块语判断代码块功能类似,就是判断导入的变量是否与case后方的变量一致,如果是就执行下方的代码。

a26

注意:switch中case后面的25是读取温度的命令码可以对照表格寻找 ;函数Uart_SendCmd中参数Message_Number是消息号可以对照表格寻找 ;参数data1是温度数据 ;参数data2是空值所以是0

③ 我们使用同样的方法搭建出播报湿度的代码

a27

3.3.5.6 代码结果#

上传代码成功后,使用唤醒词“小智小智”唤醒小智语音模块,他会回答你“我在”然后你就可以使用命令词进行控制它了,如当前教程,我们就可以这样

播报温度示例: 你:“小智小智” ,小智:“我在”,你:“当前温度” 或 “现在温度是多少” ,小智:“当前温度是"温度值"摄氏度”

播报湿度示例: 你:“小智小智” ,小智:“我在”,你:“当前湿度” 或 “现在湿度是多少” ,小智:“当前湿度是百分之"湿度值"”