0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

esp32上使用chatGPT做一些有意思的事情

崇殿 来源:jf_83722484 作者:jf_83722484 2024-10-18 10:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

将ChatGPT与ESP32进行结合,可以在物联网应用方面做出更有意思的事情,如聊天机器人、语音助手和自然语言界面。下面,我将在ESP32中使用ChatGPT API

为了让ESP32从ChatGPT获得响应,我们需要进行以下步骤:

1、在OpenAI网站上注册,并在ESP32上安装必要的库。
2、在OpenAI API上创建一个新项目并生成一个API密钥。
3、使用API密钥来验证对OpenAI API的请求。
4、使用HTTP请求向OpenAI API发送文本输入,接收JSON格式的响应。
5、解析响应并使用它来控制ESP32微控制器

下面我将在ESP32上对以上步骤进行实现:

1、 首先,我们需要包括必要的库,以便ESP32通过Wi-Fi通信,提出HTTP请求,并解析JSON数据。

#include< WiFi.h >#include< HTTPClient.h >#include< ArduinoJson.h >

2、定义ESP32将要连接的Wi-Fi网络的网络凭证,以及OpenAI API的API密钥。

constchar*ssid="your_SSID";constchar*password="your_PASSWORD";constchar*apiKey="your_API_KEY";

3、定义setup()函数是ESP32连接到Wi-Fi网络并向OpenAI API发送HTTP POST请求的地方。

voidsetup(){//}

4、在setup()函数中,我们将首先初始化串行端口

Serial.begin(9600);

5、接下来,我们将连接到WiFi网络。

//ConnecttoWi-FinetworkWiFi.begin(ssid,password);while(WiFi.status()!=WL_CONNECTED){delay(1000);Serial.println("ConnectingtoWiFi...");}Serial.println("ConnectedtoWiFi");

6、继续填写setup()函数,使用HTTPClient库,向OpenAI API端点发送HTTP Post请求,用于实现两者通信。

//SendrequesttoOpenAIAPIStringinputText="Hello,ChatGPT!";StringapiUrl="https://api.openai.com/v1/completions";Stringpayload="{"prompt":""+inputText+"","max_tokens":100,"model":"text-davinci-003"}";HTTPClienthttp;http.begin(apiUrl);http.addHeader("Content-Type","application/json");http.addHeader("Authorization","Bearer"+String(apiKey));

inputText字符串定义了API的提示,在这个例子中是 "Hello, ChatGPT!"。
apiUrl字符串指定api的地址。
payload字符串是一个JSON对象,包含提示和其他参数,如生成的最大数量的令牌和使用的模型。在我们的案例中,我们使用 "Text-Davinci-003 "模型,允许100个最大令牌。

然后,HTTPClient对象被初始化,begin()函数被用来指定API端点URL。

接下来,我们添加HTTP头,如Content-Type,其中我们指定我们将使用JSON数据和Authentication头进行通信,用API_KEY对ChatGPT API进行认证

7、最后我们使用http.POST()函数向OpenAI API服务发送HTTP POST请求。

inthttpResponseCode=http.POST(payload);if(httpResponseCode==200){Stringresponse=http.getString();//ParseJSONresponseDynamicJsonDocumentjsonDoc(1024);deserializeJson(jsonDoc,response);StringoutputText=jsonDoc["choices"][0]["text"];Serial.println(outputText);}else{Serial.printf("Error%in",httpResponseCode);}

http.POST()将返回响应的HTTP代码。如果是HTTP 200,我们将解析JSON并将其打印到串行端口。

如果返回的是200以外的HTTP代码,我们将打印 "Error:HTTP代码",例如,如果你的API令牌是无效的,它将打印 "错误:401".

8、至此,已经成功连接chatGPT,之后可以在loop()函数中做一些有趣的事情

voidloop(){//}

完整代码在公众号后台回复:esp32_chatgpt 获取

​ 福利领取:


包含:
Java、云原生、GO语音、嵌入式Linux、物联网、AI人工智能python、C/C++/C#、软件测试、网络安全、Web前端、网页、大数据、Android大模型多线程、JVM、Spring、MySQL、Redis、Dubbo、中间件…等最全厂牌最新视频教程+源码+软件包+面试必考题和答案详解。

​​

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2951

    文章

    48265

    浏览量

    419651
  • ESP32
    +关注

    关注

    27

    文章

    1237

    浏览量

    22691
  • ChatGPT
    +关注

    关注

    31

    文章

    1609

    浏览量

    10433
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    乐鑫科技新品ESP32-H4亮点速递!

    近期,乐鑫科技新品发布节奏持续加快。作为乐鑫科技级代理商,启明云端为您带来最新芯片产品ESP32-H4的详细解读。ESP32-H4隶属于乐鑫科技ESP32-H系列,在低功耗物联网应用
    的头像 发表于 04-16 18:05 659次阅读
    乐鑫科技新品<b class='flag-5'>ESP32</b>-H4亮点速递!

    ESP32Cx-TINY系列立创开源啦!

    28×69mm,个U盘的面积,覆盖ESP32-C2/C3/C5/C61四款芯片,全系列MIT协议开源。启明TINY工作室带来了C系列乐鑫口袋开发板家族。我们为什么TINY系列我们的初衷其实很简单
    的头像 发表于 03-30 18:15 644次阅读
    <b class='flag-5'>ESP32</b>Cx-TINY系列立创开源啦!

    ESP32/ESP8266开发板单向多对ESP-NOW无线通信

    本实验通过ESP-NOW无线通信协议实现多个ESP32/ESP 8266开发板向ESP32开发板发送数据。例如可以应用于从多个远程传感器
    的头像 发表于 03-30 10:14 297次阅读
    <b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266开发板单向多对<b class='flag-5'>一</b><b class='flag-5'>ESP</b>-NOW无线通信

    ESP32开发板单向点对点ESP-NOW无线通信

    本例程通过两个ESP32开发板实现单向点对点ESP-NOW无线通信,ESP32开发板作为Sender发送方,另个开发板作为Receiv
    的头像 发表于 03-19 09:21 395次阅读
    <b class='flag-5'>ESP32</b>开发板单向点对点<b class='flag-5'>ESP</b>-NOW无线通信

    ESP32/ESP8266开发板单向对多ESP-NOW无线通信

    通过ESP-NOW无线通信协议实现ESP32开发板向多个ESP32/ESP 8266开发板发送数据。
    的头像 发表于 03-13 09:23 373次阅读
    <b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266开发板单向<b class='flag-5'>一</b>对多<b class='flag-5'>ESP</b>-NOW无线通信

    ESP32里的AI Agent:EmbedClaw上手教程!启明云端乐鑫代理及方案商

    EmbedClawEmbedClaw是启明云端开源的个可以跑在ESP32的AIAgent项目。这个项目最有意思的地方,不是“能聊天”,而是它把几个最容易缠在
    的头像 发表于 03-11 18:13 1920次阅读
    <b class='flag-5'>ESP32</b>里的AI Agent:EmbedClaw上手教程!启明云端乐鑫代理及方案商

    乐鑫科技发布全新ESP32-H21超低功耗无线SoC

    的升级版本,ESP32-H21 集成片 DC-DC 转换器,可进步降低芯片在工作状态下的电流消耗,从而显著延长对功耗敏感物联网产品的电池使用时间。
    的头像 发表于 03-05 14:24 3.6w次阅读

    ESP32和STM32哪个更容易学?

    ,尤其是当你脑子里冒出一些需要联网或蓝牙交互的点子时。它自带Wi-Fi和BLE,固件和开发框架相对集成,很多时候你不需要从零构建切,而是可以站在现有生态系统快速实
    的头像 发表于 01-15 15:53 522次阅读
    <b class='flag-5'>ESP32</b>和STM32哪个更容易学?

    ESP32 Wi-Fi 控制 LED 灯的原理

    在智能家居、物联网设备中,用手机通过Wi-Fi控制灯光、风扇或插座,已经非常普遍。而在嵌入式开发中,ESP32是最常用的Wi-Fi模块之。本文将带你系统理解:ESP32是如何通过Wi-Fi实现远程
    的头像 发表于 01-09 19:04 707次阅读
    <b class='flag-5'>ESP32</b> Wi-Fi 控制 LED 灯的原理

    ESP32蓝牙驱动MAX98357对音频音乐播放

    本文介绍了MAX98357音频模块的基本特性,并利用ESP32的蓝牙功能程序驱动此模块,最后用手机蓝牙连接ESP32播放手机音乐
    的头像 发表于 12-19 19:55 3479次阅读
    <b class='flag-5'>ESP32</b>蓝牙驱动MAX98357对音频音乐播放

    ESP32­WROOM­32 技术规格书

    电子发烧友网站提供《ESP32­WROOM­32 技术规格书.pdf》资料免费下载
    发表于 11-11 17:27 0次下载

    乐鑫ESP32-C6和ESP32-C61究竟该如何选择?文读懂本质区别

    设备互联;ESP32-C61则专注Wi-Fi6和蓝牙5 LE的高效终端性能,支持PSRAM扩展和增强安全功能,适合高性能单设备。
    的头像 发表于 10-28 14:17 2983次阅读
    乐鑫<b class='flag-5'>ESP32</b>-C6和<b class='flag-5'>ESP32</b>-C61究竟该如何选择?<b class='flag-5'>一</b>文读懂本质区别

    ESP32ESP-NOW通讯踩坑记

    1、背景前段时间看到乐鑫推出了种很有意思的Wi-Fi通讯协议,它允许设备在无连接的时候进行直接通讯。乐鑫对它的概述如下:“ESP-NOW是种由乐鑫公司定义的无连接Wi-Fi通信协议
    的头像 发表于 09-13 10:03 3021次阅读
    <b class='flag-5'>ESP32</b>的<b class='flag-5'>ESP</b>-NOW通讯踩坑记

    ESP32-运行网页服务器(Web Server)-实用篇

    在前篇文章《ESP32-运行网页服务器(WebServer)-入门篇》,我们介绍了ESP32运行网页服务器(WebServer)的原理,然后我们基于ESP32实现了
    的头像 发表于 07-28 18:05 4225次阅读
    <b class='flag-5'>ESP32</b>-运行网页服务器(Web Server)-实用篇

    ESP32开发板元件资料

    ESP32开发板元件
    发表于 07-21 14:47 17次下载