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#include#include

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、中间件…等最全厂牌最新视频教程+源码+软件包+面试必考题和答案详解。

??

审核编辑 黄宇

?

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

    关注

    2932

    文章

    46349

    浏览量

    394279
  • ESP32
    +关注

    关注

    21

    文章

    1024

    浏览量

    19428
  • ChatGPT
    +关注

    关注

    29

    文章

    1590

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    ESP32开发板元件资料

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

    ESP32运行网页服务器 (Web-Server)-入门篇

    什么是ESP32WebServer?ESP32WebServer是在ESP32微控制器运行的个嵌入式网页服务器。它能够处理HTTP请求并
    的头像 发表于 03-09 14:24 ?4633次阅读
    <b class='flag-5'>ESP32</b>运行网页服务器 (Web-Server)-入门篇

    STM32和ESP32应该学哪个

    等等,市场占有率也很高。 ESP32相对年轻了不少,满打满算也不到 10 岁,他的前身,还得从 ESP8266 说起,都属于乐鑫科技的产品。 如果你用单片机做过一些物联网产品,那多多少少应该听过
    的头像 发表于 02-18 09:52 ?744次阅读

    乐鑫ESP32调试Wi-Fi常用调试API

    在使用ESP32调试Wi-Fi功能时,由于场景和各种因素的影响,难免会遇到各种连接不,Wi-Fi断连等问题。下面介绍一些API,方便新手调试Wi-Fi时更好的定位并解决问题。常见问题1、ES
    的头像 发表于 02-07 18:10 ?2743次阅读
    乐鑫<b class='flag-5'>ESP32</b>调试Wi-Fi常用调试API

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本质是让 ESP32 设备与豆包的 API 进行通信,以获取相关服务
    的头像 发表于 02-05 13:40 ?2086次阅读
    <b class='flag-5'>esp32</b>如何接入豆包

    原来ESP32竟可《“芯”两用》既做人体检测传感器也Wi-Fi数据传输

    今天将介绍ESP32如何"芯两用",既做人体检测传感器也Wi-Fi数据传输模块;对于使用ESP32Wi-Fi数据通讯,相信玩
    的头像 发表于 12-18 18:12 ?4089次阅读
    原来<b class='flag-5'>ESP32</b>竟可《<b class='flag-5'>一</b>“芯”两用》既做人体检测传感器也<b class='flag-5'>做</b>Wi-Fi数据传输

    ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技术规格书

    电子发烧友网站提供《ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技术规格书.pdf》资料免费下载
    发表于 12-07 15:30 ?11次下载

    【AI技术支持】ESP32模组PSRAM的CS引脚上拉导致功耗上升处理

    启明云端/01你是否曾遇到过?在游戏机产品,使用ESP32-WROOM-32E/ESP32-WROOM-32UE模组,ESP-IDF版本为IDFv5.1.1时,根据外围设计原理图介绍
    的头像 发表于 10-31 08:01 ?2299次阅读
    【AI技术支持】<b class='flag-5'>ESP32</b>模组PSRAM的CS引脚上拉导致功耗上升处理

    【AI技术支持】ESP32无线Wi-Fi常用调试API

    Wi-Fi常用调试API在使用esp32调试Wi-Fi功能时,由于场景和各种因素的影响,难免会遇到各种连接不,Wi-Fi断连等问题。下面介绍一些API,方便新手调试Wi-Fi时更好的定位并解决问题
    的头像 发表于 10-26 08:00 ?1876次阅读
    【AI技术支持】<b class='flag-5'>ESP32</b>无线Wi-Fi常用调试API

    ESP32 微控制器系列指南

    。 对于工程师或制造商来说,熟悉各种 ESP32 硬件平台和软件包可能是项艰巨的任务。本指南将提供与 ESP32 微控制器生态系统相关的技术规格、开
    的头像 发表于 10-02 18:21 ?5128次阅读
    <b class='flag-5'>ESP32</b> 微控制器系列指南

    esp32有哪些编程方式

    ESP32款由乐鑫科技(Espressif Systems)推出的低功耗、高性能的Wi-Fi和蓝牙双模微控制器,广泛应用于物联网、智能家居、智能穿戴等领域。其编程方式多种多样,以下是一些主要
    的头像 发表于 08-20 09:09 ?2035次阅读

    esp32esp8266代码共用吗

    本文将介绍ESP32ESP8266两款流行的微控制器在代码共用性方面的可能性与差异性。 、引言 随着物联网技术的飞速发展,越来越多的智能设备开始进入我们的生活。其中,ESP32
    的头像 发表于 08-19 18:23 ?2406次阅读

    esp8266和esp32区别是什么

    以下是关于ESP8266和ESP32的主要区别: 处理器和架构 : ESP8266 :使用个Tensilica L106 80MHz的处理器,属于Xtensa架构。
    的头像 发表于 08-19 18:16 ?7483次阅读

    esp32用什么软件编程

    ESP32款由乐鑫(Espressif)推出的低功耗、高性能的Wi-Fi和蓝牙双模微控制器,广泛应用于物联网、智能家居、智能穿戴等领域。要对ESP32进行编程,需要选择合适的编程软件和开发环境
    的头像 发表于 08-19 17:24 ?7309次阅读