[原创] 【Gravity:中英文语音合成模块V2.0】--语音播报温湿度

dirty   2026-3-12 23:26 楼主

        前面分别实现了串口和I2C驱动Gravity模块语音播报,本篇接入DHT11传感器,采集温湿度数据,使用Gravity模块播报出来。

一.硬件准备

        将DHT11传感器接入FireBeetle 2 ESP32-C5开发板上,DAT引脚接GPIO12引脚,Gravity模块仍选择I2C接口驱动。准备好后硬件如下

0_硬件准备.jpg

二.代码实现

1.DHT11驱动

(1)首先安装“DHT sensor library”库,如下:

1_DHT11库安装.png

(2)DHT11宏定义初始化

        宏定义如下

// 定义DHT11引脚和类型
#define DHTPIN  12     // 数据引脚连接至GPIO12
#define DHTTYPE DHT11

// 初始化DHT传感器
DHT dht(DHTPIN, DHTTYPE);

        在setup()函数内加入如下DHT11初始化函数

void setup() {
  Serial.begin(115200);

  dht.begin();
  Serial.println("DHT11温湿度传感器");

 /*略*/
}

(3)温湿度读取

// 读取湿度(百分比)
  float humidity = dht.readHumidity();
  // 读取温度(摄氏度)
  float temperature = dht.readTemperature();

  // 检查读取是否失败
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("读取传感器失败");
    return;
  }

2.温湿度串口打印

  // 输出温湿度数据
  Serial.print("温度: ");
  Serial.print(temperature);
  Serial.print("°C\t\t");  // 两个制表符增加间距

  Serial.print("湿度: ");
  Serial.print(humidity);
  Serial.println("%");

3.温度与湿度播报处理

  char speakBuffer[50];
  // 播报温度
  snprintf(speakBuffer, sizeof(speakBuffer), "当前温度[n2]%.1f摄氏度", temperature);
  ss.speak(speakBuffer);

  // 播报湿度
  snprintf(speakBuffer, sizeof(speakBuffer), "当前湿度百分之[n2]%.1f", humidity);
  ss.speak(speakBuffer);

        这里查阅资料在数字前加[n2],语音播报时以数值播报。

        至此,代码准备完毕。

 

三.测验

        编译烧录后,打开串口如下

2_日志.png

        同时音频语音播报如下视频

Gravity语音播报温湿度

        至此实现使用Gravity模块实现语音动态播报温湿度的应用。

 

i2c.ino (2.41 KB)
(下载次数: 0, 2026-3-12 23:25 上传)

 

好好生活,保持热爱。

回复评论 (2)

用Gravity模块实现语音动态播报温湿度用法还是挺好

点赞  2026-3-15 11:53
引用: Jacktang 发表于 2026-3-15 11:53 用Gravity模块实现语音动态播报温湿度用法还是挺好

是的,可以结合起来应用

好好生活,保持热爱。
点赞  2026-3-15 18:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复