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

​​

审核编辑 黄宇

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

    关注

    2909

    文章

    44565

    浏览量

    372805
  • ESP32
    +关注

    关注

    18

    文章

    971

    浏览量

    17204
  • ChatGPT
    +关注

    关注

    29

    文章

    1560

    浏览量

    7597
收藏 人收藏

    评论

    相关推荐

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

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

    esp32esp8266代码共用吗

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

    esp8266和esp32区别是什么

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

    esp32用什么软件编程

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

    ESP32-WROOM-32E、ESP32-WROOM-32D、ESP32-WROOM-32U 有什么区别?ESP32-WROOM-32 后缀字母代表的意思是?

    Wi-Fi+BT+BLE MCU模组,它们各自具有一些特点和区别,以下是对这三款模组的详细比较和区分方法: 核心功能与用途 共同点 : 三款模组都是基于ESP32系列芯片设计的,具有强大的
    的头像 发表于 07-17 10:09 9412次阅读
    <b class='flag-5'>ESP32</b>-WROOM-32E、<b class='flag-5'>ESP32</b>-WROOM-32D、<b class='flag-5'>ESP32</b>-WROOM-32U  有什么区别?<b class='flag-5'>ESP32</b>-WROOM-32 后缀字母代表的意思是?

    ESP32能取代STM32吗?哪个更好?

    不能!首先二者不存在哪个更好的问题,因为这两个芯片使用场景各不相同,在嵌入式系统领域,ESP32和STM32都是常见的单片机系列,它们各自具有定的优势和适用场景。本文主要探讨ESP32是否能够取代
    的头像 发表于 07-06 08:04 1.1w次阅读
    <b class='flag-5'>ESP32</b>能取代STM32吗?哪个更好?

    请问ESP32模块的IO口可以与外围的一些5V器件兼容吗?

    请问ESP32模块的IO口可以与外围的一些5V器件兼容吗,例如传感器等进行数据口直接相连控制,还是说需要加电平转换芯片?
    发表于 07-01 06:03

    为什么在一些路由器中使用ESP32的Active mode无法接收服务器的TCP数据呢?

    我们设置 AT+CIPRECVMODE=1(Passive mode),我们能够从服务器接收 TCP 数据。 请解释为什么在一些路由器(如“Arris”)中使用 ESP32 中的 Active mode无法接收服务器的 TCP 数据呢?
    发表于 06-27 07:34

    ESP32-S3模组烧录又失败?分享怎么排查原因

    ESP32-S3模组在物联网中非常好用,可以带屏小音箱、温控器、智能86盒、泳池清洁机器人等等,在烧录的时候经常会遇到一些问题,这里分享一些烧录失败的原因或者烧录遇到的问题,教大家怎
    的头像 发表于 05-11 08:04 3104次阅读
    <b class='flag-5'>ESP32</b>-S3模组烧录又失败?分享怎么排查原因

    乐鑫科技发布全新ESP32-H4 SoC

    乐鑫信息科技最新发布了ESP32-H4,这创新产品是对其ESP32-H2系列的完美补充,进步巩固了公司在802.15.4和Bluetooth LE领域的产品布局。
    的头像 发表于 05-06 15:18 993次阅读

    ESP32-P4开发板问题揭秘!

    的外设;LP系统由RISC-V单核处理器驱动,其外设针对低功耗应用进行了优化。最近很多粉丝对ESP32-P4开发板有很多问题,今天就一些咨询比较多的问题做个回复,里
    的头像 发表于 02-24 08:03 1782次阅读
    <b class='flag-5'>ESP32</b>-P4开发板问题揭秘!

    ESP32-C3在智能充电桩的应用,性价比爆棚!

    ESP32-C3在智能充电桩的应用,性价比爆棚!
    的头像 发表于 01-20 08:03 837次阅读
    <b class='flag-5'>ESP32</b>-C3在智能充电桩<b class='flag-5'>上</b>的应用,性价比爆棚!

    esp32外置flash的大小

    ESP32款功能强大的微控制器,广泛应用于物联网和嵌入式设备领域。虽然ESP32内置了定的闪存空间,但有时候我们可能需要更大的储存空间来存储更多的数据或者程序。因此,
    的头像 发表于 01-09 11:24 4073次阅读

    ESP32与SD NAND的协同应用

    SDNAND在乐鑫ESP32的作用SDNAND是贴片式TF卡,可以用于存储数据,比如视频图片或者代码乐鑫ESP32颗具有双核处理器的嵌入式系统芯片,有丰富的外设接口,包括Wi-Fi
    的头像 发表于 01-08 13:56 591次阅读
    <b class='flag-5'>ESP32</b>与SD NAND的协同应用

    esp32外接多个传感器 如何供电

    供电、通过板载电池进行供电、通过外部电源供电等。以下是一些常见的供电方式: USB供电:这是最简单和常见的供电方式。只需将ESP32通过USB线连接到计算机或电源适配器即可。此方式适用于连接到电脑、米粉盒等设备。如果您的项目需
    的头像 发表于 01-02 16:13 6356次阅读