ESP-WROOM-32配置Arduino IDE开发环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、下载Arduino IDE
  • 二、安装工具集
  • 三、测试样例
    • 1.选则开发板
    • 2.连接开发板
    • 3.示例程序
  • 四、使用官方示例程序
  • 总结


前言

之前用了很多注入STM32、树莓派Pico和Arduino nano等板子,但是都不带Wifi和蓝牙功能。蓝牙我用的不多,倒是开发的程序中网络程序蛮多的,所以就购买了一个。经过一下午的琢磨终于把功能跑通了。

我买的板子有两个版本ESP32-WROOM-32D和ESP32-WROOM-32U,32U比32D多一个天线插槽。

在这里插入图片描述


一、下载Arduino IDE

应该来说Arduino IDE是一个相当易用的IDE了,支持的MCU也多,个人觉得如果你习惯使用C开发那么Arduino IDE无疑更适合你。如果你是Python开发者,那么Thonny也是可以的。

Arduino IDE还有一个非常好的功能,那就是它为很多MCU都提供了示例程序,对新手非常友好,一会教你怎么使用。

官方下载链接

选择适合自己系统的版本:
在这里插入图片描述

安装就不多说了,很简单。

二、安装工具集

打开Arduino IDE并在侧边栏找到开发板管理器,在搜索框输入esp32并选择跟我一样的选项并点击安装,会有点慢,耐心等待完成。
在这里插入图片描述

三、测试样例

这里直接就以WIFI为例了,确保你和我的板子是同一块板子。

1.选则开发板

首先在工具里面找到开发板选项:
在这里插入图片描述
展开并找到ESP32 Dev Module:
在这里插入图片描述

注意:千万型号别选错!

2.连接开发板

找一根USB数据线,一头是USB-A,另一头是Micro-USB的将开发板接到电脑上。这里默认你已经安装了串口驱动了。如果你成功了,你和我的配置应该是一样的。

开发板型号:

在这里插入图片描述

串口连接状态:

在这里插入图片描述

注意:你的串口不一定是COM8,实际的串口和你的系统有关系,总之能连接就对了,打感叹号就是硬件不识别,检查下是不是驱动没装好。

3.示例程序

创建一个新项目将下面的代码复制到新项目中:

注意:一定要2.4G,这个板子不支持5G的无线网!

/*Go to thingspeak.com and create an account if you don't have one already.After logging in, click on the "New Channel" button to create a new channel for your data. This is where your data will be stored and displayed.Fill in the Name, Description, and other fields for your channel as desired, then click the "Save Channel" button.Take note of the "Write API Key" located in the "API keys" tab, this is the key you will use to send data to your channel.Replace the channelID from tab "Channel Settings" and privateKey with "Read API Keys" from "API Keys" tab.Replace the host variable with the thingspeak server hostname "api.thingspeak.com"Upload the sketch to your ESP32 board and make sure that the board is connected to the internet. The ESP32 should now send data to your Thingspeak channel at the intervals specified by the loop function.Go to the channel view page on thingspeak and check the "Field1" for the new incoming data.You can use the data visualization and analysis tools provided by Thingspeak to display and process your data in various ways.Please note, that Thingspeak accepts only integer values.You can later check the values at https://thingspeak.com/channels/2005329Please note that this public channel can be accessed by anyone and it is possible that more people will write their values.*/#include <WiFi.h>const char* ssid     = "这里改成你的无线网名称"; // Change this to your WiFi SSID
const char* password = "这里改成你的无线网密码"; // Change this to your WiFi passwordconst char* host = "api.thingspeak.com"; // This should not be changed
const int httpPort = 80; // This should not be changed
const String channelID   = "2005329"; // Change this to your channel ID
const String writeApiKey = "V6YOTILH9I7D51F9"; // Change this to your Write API key
const String readApiKey = "34W6LGLIFXD56MPM"; // Change this to your Read API key// The default example accepts one data filed named "field1"
// For your own server you can ofcourse create more of them.
int field1 = 0;int numberOfResults = 3; // Number of results to be read
int fieldNumber = 1; // Field number which will be read outvoid setup()
{Serial.begin(115200);while(!Serial){delay(100);}// We start by connecting to a WiFi networkSerial.println();Serial.println("******************************************************");Serial.print("Connecting to ");Serial.println(ssid);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");Serial.println("IP address: ");Serial.println(WiFi.localIP());
}void readResponse(WiFiClient *client){unsigned long timeout = millis();while(client->available() == 0){if(millis() - timeout > 5000){Serial.println(">>> Client Timeout !");client->stop();return;}}// Read all the lines of the reply from server and print them to Serialwhile(client->available()) {String line = client->readStringUntil('\r');Serial.print(line);}Serial.printf("\nClosing connection\n\n");
}void loop(){WiFiClient client;String footer = String(" HTTP/1.1\r\n") + "Host: " + String(host) + "\r\n" + "Connection: close\r\n\r\n";// WRITE --------------------------------------------------------------------------------------------if (!client.connect(host, httpPort)) {return;}client.print("GET /update?api_key=" + writeApiKey + "&field1=" + field1 + footer);readResponse(&client);// READ --------------------------------------------------------------------------------------------String readRequest = "GET /channels/" + channelID + "/fields/" + fieldNumber + ".json?results=" + numberOfResults + " HTTP/1.1\r\n" +"Host: " + host + "\r\n" +"Connection: close\r\n\r\n";if (!client.connect(host, httpPort)) {return;}client.print(readRequest);readResponse(&client);// -------------------------------------------------------------------------------------------------++field1;delay(10000);
}

编译并上传代码,设备会自动重启并执行代码。成功了就是下面的样子:

Status: 200 OK
Cache-Control: max-age=7, private
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 1800
X-Request-Id: 9e90e7b7-8612-499e-a179-3e1bfcde272c
Access-Control-Allow-Headers: origin, content-type, X-Requested-With
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS, DELETE, PATCH
ETag: W/"1fdaff80268c18103424af2182ddf550"
X-Frame-Options: SAMEORIGIN1e9
{"channel":{"id":2005329,"name":"WiFiCLient example","description":"Default setup for Arduino ESP32 WiFiClient example","latitude":"0.0","longitude":"0.0","field1":"data0","created_at":"2023-01-11T15:56:08Z","updated_at":"2023-01-13T08:13:58Z","last_entry_id":891510},"feeds":[{"created_at":"2024-05-09T13:32:01Z","entry_id":891508,"field1":"50"},{"created_at":"2024-05-09T13:32:22Z","entry_id":891509,"field1":"635"},{"created_at":"2024-05-09T13:32:41Z","entry_id":891510,"field1":"53"}]}
0Closing connection

注:这款设备带内置天线,不用额外装天线,但是也不要遮挡信号,尽量选空旷的地方!。

如果你的串口输出的是乱码就把波特率改成115200,我这块板子是115200。

四、使用官方示例程序

实话实说Arduino IDE和Thonny半斤八两,像一个半成品,比起Clion那样的程序就太小儿科了。但是架不住人家有示例程序,这点就很方便,对新手可以说太友好了!

首先选则你要在哪个开发板上开发,上面已经教过了,这一步很重要,因为Arduino IDE几乎为所有支持的开发板都准备了示例程序,而且每个开发板都是不一样的。

打开工具栏上的文件选项卡,找到示例,这里介绍下内置示例和ESP32 Dev Module示例的区别:内置示例是IDE内置的,几乎所有的开发板代码都是差不多的,但是内置示例不是所有的开发板都一定可以运行!而配套示例就是和我们开发板相关的示例了,我试了下很多是可以运行的,应该来说都能运行。

在这里插入图片描述

注意:有些示例可以直接运行,比如我发的WIFI示例,无线网卡是内置的,还有些需要外设配和,比如摄像头等等!


总结

1、蛮简单的,不过比树莓派Pico略微复杂
2、除了Arduino IDE可以开发,Clion(基于Arduino框架)也可以开发还有Thonny等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索Java的未来

目录 一、云计算与大数据 二、人工智能与机器学习 三、物联网与边缘计算 四、安全性与性能优化 五、社区与生态 Java&#xff0c;作为一种广泛使用的编程语言&#xff0c;自其诞生以来就以其跨平台性、面向对象特性和丰富的库资源赢得了开发者的青睐。然而&#xff0c;随着…

【漏洞复现】Apahce HTTPd 2.4.49(CVE-2021-41773)路径穿越漏洞

简介&#xff1a; Apache HTTP Server是一个开源、跨平台的Web服务器&#xff0c;它在全球范围内被广泛使用。2021年10月5日&#xff0c;Apache发布更新公告&#xff0c;修复了Apache HTTP Server2.4.49中的一个路径遍历和文件泄露漏洞&#xff08;CVE-2021-41773&#xff09;。…

报错(已解决):无法加载文件 D:\code\NodeJs\pnpm.ps1,因为在此系统上禁止运行脚本。

问题&#xff1a; 在vscode运行uniapp项目需要拉取全部依赖&#xff0c;需要使用到pnpm&#xff0c;在vscode终端运行命令&#xff1a;pnpm install后报错&#xff1a; 解决办法&#xff1a; 1&#xff1a;我未安装pnpm&#xff0c;首先打开电脑cmd&#xff0c;运行下列命令&a…

锂电池恒流恒压CCCV充电模型MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; CCCV简介 CCCV充电过程是恒流充电&#xff08;CC&#xff09;和恒压充电&#xff08;CV&#xff09;的结合。在CC阶段对电池施加恒定电流&#xff0c;以获得更快的充电速度&#xff0c;此时电池电压持续升高…

现货黄金今日行情分析:昨日高低点法

进行交易之前&#xff0c;投资者要对现货黄金今日行情进行一波分析&#xff0c;我们交易决策应该建立在合理分析的基础之上。那么打开市场交易软件看到现货黄金今日行情之后&#xff0c;该如何着手进行分析呢&#xff1f;下面我们就来讨论一下具体的方法。 要进行现货黄金今日行…

MATLAB 点云随机赋色 (68)

MATLAB 点云随机赋色 (68) 一、算法介绍二、算法介绍1.代码2.结果三、数据链接一、算法介绍 读取的点云本身带有颜色信息,有时我们需要为每个点随机赋予一种颜色,下面是具体效果和实现代码,以及使用的数据: 二、算法介绍 1.代码 代码如下(示例): % 读取点云文件 f…

Nacos Docker 快速部署----解决nacos鉴权漏洞问题

Nacos Docker 快速部署 1. 说明 1.1 官方文档 官方地址 https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html docker启动文件的gitlhub地址 https://github.com/nacos-group/nacos-docker.git 问题&#xff1a; 缺少部分必要配置与说明 1.2 部署最新版本Nacos&…

mysql: docker 异常 - mbind: Operation not permitted

mbind: Operation not permitted 前言&#xff1a;正文:结论 &#xff1a; 前言&#xff1a; 用数据库处理平台问题今天报错&#xff0c;mbind: Operation not permitted。 mbind 不允许操作&#xff0c;一头雾水这是什么意思。 网上找了很多资料大概意思是&#xff1a; 这个错…

《21天学通C++》(第二十章)STL映射类(map和multimap)

为什么需要map和multimap&#xff1a; 1.查找高效&#xff1a; 映射类允许通过键快速查找对应的值&#xff0c;这对于需要频繁查找特定元素的场景非常适合。 2.自动排序&#xff1a; 会自动根据键的顺序对元素进行排序 3.多级映射&#xff1a; 映射类可以嵌套使用&#xff0c;创…

感谢有你 | FISCO BCOS 2024年度第一季度贡献者榜单

挥别春天&#xff0c;FISCO BCOS开源社区迎来了2024年第一季度的共建成果。FISCO BCOS秉承对区块链技术的信仰&#xff0c;汇聚超过5000家企业机构、10万余名个人成员共建共治共享&#xff0c;持续打造更加活跃更加繁荣的开源联盟链生态圈。 开启夏日&#xff0c;我们见证了社…

2024年软件测试最全jmeter做接口压力测试_jmeter接口性能测试_jmeter压测接口(3),【大牛疯狂教学

既有适合小白学习的零基础资料&#xff0c;也有适合3年以上经验的小伙伴深入学习提升的进阶课程&#xff0c;涵盖了95%以上软件测试知识点&#xff0c;真正体系化&#xff01; 由于文件比较多&#xff0c;这里只是将部分目录截图出来&#xff0c;全套包含大厂面经、学习笔记、…

短信群发公司

伴随着移动互联网和智能手机的普及&#xff0c;短信群发成为了企业与个人之间高效沟通的一种重要方式。短信群发公司应运而生&#xff0c;致力于为用户提供专业、安全、高效的群发服务。 服务内容 短信群发公司提供多样化的服务内容&#xff0c;满足不同用户的需求。短信群发公…

百面算法工程师 | 支持向量机面试相关问题——SVM

本文给大家带来的百面算法工程师是深度学习支持向量机的面试总结&#xff0c;文章内总结了常见的提问问题&#xff0c;旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中&#xff0c;我们还将介绍一些常见的深度学习算法工程师面试问题&#xff0c;并提供参考的回答…

Tensorflow2.0笔记 - 循环神经网络RNN做IMDB评价分析

本笔记记录使用SimpleRNNCell做一个IMDB评价系统情感二分类问题的例子。 import os import time import numpy as np import tensorflow as tf from tensorflow import keras from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics, Inputos.envir…

2024.5.9

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->resize(1000,600);this->setFixedSize(1000,600);//设置按钮大小位置完成btn1 new QPushButton(&…

【已解决】直接在远程新增文件本地再提交报Merge branch ‘master‘ of

【已解决】直接在远程新增文件本地再提交报Merge branch ‘master’ of … 1、问题产生背景 直接在远程仓库新建了md文件&#xff0c;本地库修改了文件已添加到暂存区之后再提交报错 2、分析 远程新建文件产生变更&#xff0c;版本号与本地拿到的不一致&#xff0c;本地再次提…

tf2使用savemodel保存之后转化为onnx适合进行om模型部署

tf2使用savemodel保存之后转化为onnx适合进行om模型部署 tf保存为kears框架h5文件将h5转化为savemodel格式&#xff0c;方便部署查看模型架构将savemodel转化为onnx格式使用netrononnx模型细微处理代码转化为om以及推理代码&#xff0c;要么使用midstudio tf保存为kears框架h5文…

中国M2总量是两个美国,意味着什么

中国人民银行公布数据&#xff1a;2月末&#xff0c;我国广义货币(M2)余额299.56万亿元&#xff0c;同比增长8.7%。 2000年末我国M2仅13万亿元&#xff0c;2013年3月达到100万亿元&#xff1b;2020年1月突破200万亿元&#xff1b;2024年2月接近300万亿元&#xff0c; 与美欧日…

CPU的星际穿越——“三维”解析“二维”之谜

文章目录 写在前面为什么三维的CPU能执行二维的指令二维指令是三维机器的抽象而已计算机所有东西都是三维的降维抽象没有软件没有指令二维到三维的总结操作系统的重塑 写在前面 以下是自己关于CPU为何能执行指令的迷惑的抽丝破茧的解答—— 困扰我的一个的问题之CPU的星际穿越…

【Leetcode】八大排序

总述 插入排序&#xff1a;直接插入排序&#xff1b;希尔排序&#xff1b; 选择排序&#xff1a;简单选择排序&#xff1b;堆排序&#xff1b; 交换排序&#xff1a;冒泡排序&#xff1b;快速排序&#xff1b; 归并排序&#xff1b; 桶排序/基数排序&#xff1b; 直接插入排序 …