百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

ESP32 开发入门 使用 Arduino IDE

bigegpt 2025-02-14 22:22 9 浏览


ESP32 简介

ESP32是一系列低成本,低功耗的单片机微控制器,集成了Wi-Fi和双模蓝牙。 ESP32系列采用 Tensilica Xtensa LX6 微处理器,包括双核心和单核版本,内置天线开关,RF变换器,功率放大器,低噪声接收放大器,滤波器和电源管理模块。

ESP32 由总部位于上海的本土芯片设计公司乐鑫信息科技创建和开发,由台积电采用 40 纳米技术制造。它是 ESP8266 微控制器的后继产品。

ESP8266 在2014年横空出世后,迅速引起国外众多电子创客的注意。最初的 ESP8266 是在一个名为 ESP-01 的模块上引入的,它的英文文档很少,所以它是当时的能力在很大程度上是未知的。文档被翻译成英文后,许多实验者很快就意识到了 ESP8266 的强大功能,并很快变得非常流行。

ESP32 的其他特性包括:

  • 多达 18 个 12 位模数转换器。
  • 两个 8 位数模转换器。
  • 10 个电容式触摸开关传感器。
  • 四个 SPI 通道。
  • 两个 I2C 接口。
  • 两个 I2S 接口(用于数字音频)。
  • 三个用于通信的 UART。
  • 多达 8 个通道的 IR 遥控器。
  • 多达 16 个 LED PWM(脉冲宽度调制)通道。
  • 集成霍尔效应传感器。
  • 超低功耗模拟前置放大器。
  • 一个内部低压差稳压器。

ESP32 模块

ESP32 模块有很多种,他们几乎都适用本文的教程。

其中许多开发板上带有 USB 连接器,插上 USB 线就能编程。有些板没有此功能,需要外部 FTDI 适配器进行编程。

这些模块大都基于 ESP32-WROOM 芯片。

ESP32 DEV KIT 和 ESP32 NODEMCU 开发板是比较受欢迎的两款开发板。

ESP32 WROOM DevKitC v4 开发板上带有乐鑫的双核 SoC 模块 WROOM-32D 或者 WROOM-32U。该板具有工作频率为 2.4 GHz 的 高达 150 Mb/s 的速度的 Wi-Fi 连接和 BLE 蓝牙技术。ESP32 WROOM DevKitC v4 板载 MCU 的工作频率高达 240MHz。电路板的 I/O 引脚与两侧的 2.54 插针相连。用户可以通过跳线连接外围设备或将开发板固定在面包板上以构建应用程序。

下面是ESP32 WROOM DevKitC v4 开发板的布局:

ESP32 开发环境

ESP32 可以通过很多种开发环境开发。Visual Studio Code、Arduino 以及乐鑫自己出的 IDF 等等。

对于初学者来说,一个简单的入门方法是使用熟悉的 Arduino IDE。虽然这不一定是使用 ESP32 的最佳环境,但它的优势在于网上有大把的教程。

本文使用 Arduino IDE 进行实验。

配置 Arduino IDE 的 ESP32 开发环境

为了能够使用 Arduino IDE 开发 ESP32,您需要向 Arduino IDE 板管理器添加一个额外的源,然后安装 ESP32 板。

为了在开发板管理器中加入 ESP32 开发板,我们需要先添加 ESP32 开发板附加网址。

依次打开菜单-》文件-》首选项。把下面网址粘贴到 *附加开发板管理网址 中:

“https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json”

再安装 ESP32 开发板。依次打开菜单-》工具-》开发板-》开发板管理器:

在开发板管理器中输入 esp32 搜索出 esp32 开发板来,然后安装之:

因为下载的时候需要连接 github, 如果你等了半天也没下载下来,你可能需要翻墙。

下载完成后,别忘了在Arduino IDE 中选择 DOIT ESP32 DEVKIT V1 作为开发板:

实验电路

如下图所示,搭建电路。请注意,ESP32 引脚由其 GPIO 名称而不是引脚号指定,因为不同的 ESP32 板将具有不同的引脚号。

如果使用5mm或3mm直径的直插 LED,对于降压电阻,150 到 470 欧姆之间的任何值都可以正常工作。

现在我们都连接好了,是时候尝试我们的第一个程序了。

ESP32 闪灯程序

学习一门新的编程语言时,一般都是用输出 “Hello World" 作为第一个一个程序。

闪灯程序就是硬件领域里的 ”Hello World"。一般你学习单片机或 MCU 的第一个程序都是闪灯程序。

下面是一个 Arduino 编程环境下的闪灯程序:

/*
  ESP32 Blink
  esp32_blink.ino
  Rewrite of classic Blink sketch for ESP32
  Use LED on GPIO2
   
  薇信公号:【飞多学堂】
*/

// LED on GPIO2
int ledPin = 2;

void setup()
{
    // Set LED as output
    pinMode(ledPin, OUTPUT);
    
    // Serial monitor setup
    Serial.begin(115200);
}

void loop()
{
    Serial.print("Hello");
    digitalWrite(ledPin, HIGH);
    
    delay(500);
    
    Serial.println(" world!");
    digitalWrite(ledPin, LOW);
    
    delay(500);
}

烧写程序

首先要做与 Arduino 完全相同的事情——点击上传按钮(带有向右箭头的按钮)。 这将启动编译器。 你可能会注意到编译 ESP32 程序比编译 Arduino 草图需要更长的时间。

观看 Arduino IDE 底部的状态屏幕。编译过程完成后,它将打印“Connecting”,然后是一串点:

运气好的话,你会看到 LED 开始闪烁了起来。全程不需要按下开发板上的 BOOT 或者 EN 按钮。

有的开发板,需要你在看到 “Connecting...”提示后,按下 BOOT 按钮(有时标记为 IO0)并按住它,直到您看到上传进度。

上传成功后,程序会自动启动。有的开发板需要按 ENABLE 或 RESET 按钮来启动程序,我的开发板不需要此步骤。

总结

今天我们学习了如何用 Arduino IDE 开发 ESP32 程序,主要难点在于在 Arduino IDE 中下载 ESP32 开发板上,程序倒是很简单。

相关推荐

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

超专业解析!10分钟带你搞懂Linux中直接I/O原理

我们先看一张图:这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。这篇文章就以这张图为基础,介绍Linux在I/O上做了哪些事情。文件系统什么是...

linux入门系列12--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经...

Linux环境下如何设置多个交叉编译工具链?

常见的Linux操作系统都可以通过包管理器安装交叉编译工具链,比如Ubuntu环境下使用如下命令安装gcc交叉编译器:sudoapt-getinstallgcc-arm-linux-gnueab...

可算是有文章,把Linux零拷贝技术讲透彻了

阅读本文大概需要6.0分钟。作者:卡巴拉的树链接:https://dwz.cn/BaQWWtmh本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念...

linux软链接的创建、删除和更新

大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作。同样的,在系统级别也有。在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...

linux之间传文件命令之Rsync傻瓜式教程

1.前言linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说...

Linux下删除目录符号链接的方法

技术背景在Linux系统中,符号链接(symlink)是一种特殊的文件,它指向另一个文件或目录。有时候,我们可能需要删除符号链接,但保留其指向的目标目录。然而,在删除符号链接时可能会遇到一些问题,例如...

阿里云国际站注册教程:aa云服务器怎么远程链接?

在全球化的今天,互联网带给我们无以计数的便利,而云服务器则是其中的重要基础设施之一。这篇文章将围绕阿里云国际站注册、aa云服务器如何远程链接,以及服务器安全防护如Ddos防火墙、网站应用防护waf防火...

Linux 5.16 网络子系统大范围升级 多个新适配器驱动加入

Linux在数据中心中占主导地位,因此每个内核升级周期的网络子系统变化仍然相当活跃。Linux5.16也不例外,周一最新与网络相关的更新加入了大量的驱动和新规范的支持。一个较新硬件的驱动是Realt...

搭建局域网文件共享服务(Samba),手机电脑都能看喜欢的影视剧

作为一名影视爱好者,为了方便地观看自己喜欢的影视作品,在家里搞一个专门用来存放电影的服务器是有必要的。蚁哥选则用一台Ubuntu系统的电脑做为服务器,共享影音文件,其他同一个局域网内的电脑或手机可以...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Linux 中创建符号链接的方法

技术背景在Linux系统里,符号链接(SymbolicLink),也被叫做软链接(SoftLink),是一种特殊的文件,它指向另一个文件或者目录。符号链接为文件和目录的管理带来了极大的便利,比...

一文掌握 Linux 符号链接

符号链接(SymbolicLink),通常被称为“软链接”,是Linux文件系统中一种强大而灵活的工具。它允许用户创建指向文件或目录的“快捷方式”,不仅简化了文件管理,还在系统配置、软件开发和日...