30集 如何编写ESP32程序接入AIGC实现更多有趣的功能-《MCU嵌入式AI开发笔记》

30集 如何编写ESP32程序接入AIGC实现更多有趣的功能(温度)-《MCU嵌入式AI开发笔记》

前言

之前我们建立了ESP-IDF和ESP-ADF开发环境,验证了硬件,验证了AI-CHAT的AI聊天工程,并且深入学习了cmake编译过程,那么从这集开始,我们开始深入编写程序,在AI聊天的基础上不断加入有趣的功能。
包括但不限于:
0、AI聊天对话功能
1、测温功能
2、天气预报功能
3、位置感知功能
4、地磁指南针功能

测温功能

温度传感器原理图,用的是iic。
在这里插入图片描述
我们在main目录下的CMakeList.txt加入"myi2c.c" "gxhtc3.c"的索引。
在这里插入图片描述
之后我们把这两组文件copy到AI-CHAT工程下的main目录中
在这里插入图片描述
我们打开ai-chat工程下的main文件,加入温度初始化部分:
// 检查温湿度芯片
ret = gxhtc3_read_id();
while(ret != ESP_OK)
{
ret = gxhtc3_read_id();
ESP_LOGI(TAG,“GXHTC3 READ ID”);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
在这里插入图片描述
之后我们创建任务:

// Robot3g
	xTaskCreate(get_th_task, "get_th_task", 4096, NULL, 5, NULL); 

之后我们修改get_th_task里面的程序,

extern float temp, humi;
int temp_value, humi_value; // 室内实时温湿度值
int th_update_flag;

// 获取温湿度的任务函数
static void get_th_task(void *args)
{
    esp_err_t ret;
    int time_cnt = 0, date_cnt = 0;
    float temp_sum = 0.0, humi_sum = 0.0;

    while(1)
    {
        ret = gxhtc3_get_tah(); // 获取一次温湿度
        if (ret!=ESP_OK) {
            ESP_LOGE(TAG,"GXHTC3 READ TAH ERROR."); 
        }
        else{ // 如果成功获取数据
            temp_sum = temp_sum + temp; // 温度累计和
            humi_sum = humi_sum + humi; // 湿度累计和
            date_cnt++; // 记录累计次数
        }
        vTaskDelay(1000 / portTICK_PERIOD_MS); // 延时1秒
        time_cnt++; // 每秒+1
        if(time_cnt>10) // 10秒钟到
        {
            // 取平均数 且把结果四舍五入为整数
            temp_value = round(temp_sum/date_cnt); 
            humi_value = round(humi_sum/date_cnt); 
            // 各标志位清零
            time_cnt = 0; date_cnt = 0; temp_sum = 0; humi_sum = 0;
            // 标记温湿度有新数值
            th_update_flag = 1; 
            ESP_LOGI(TAG, "TEMP:%d HUMI:%d", temp_value, humi_value);
        }
    }

    vTaskDelete(NULL);
}

编译工程:
在这里插入图片描述
我们烧录一下:
在这里插入图片描述
在这里插入图片描述
我们运行一下,看一下log信息:
在这里插入图片描述
温湿度已经读出来了。
之后可以让他获得温度后调用大模型来进行好玩的人机对话就可以了。
咱们后续继续
别忘了点赞收藏关注三哥!!!送人玫瑰手有余香!感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柔贝特三哥

你的鼓励是我坚持创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值