ESP32 开发之旅① 走进ESP32的世界 安装开发环境

1.前言

????欢迎大家来到ESP32的世界,从现在开始,笔者将带领大家慢慢揭开ESP32神秘的面纱。

????在学习ESP32之前,博主希望读者能有ESP8266的学习基础(ESP32 Wifi模块,理解为增强版本的ESP8266,很多基本原理是共通的,所以博主也不会去重复)。

????ESP32 是一款 WiFi 和蓝牙系统级芯片(SoC),具有行业领先的射频性能、低功耗和高度集成的优势。

2.概览

????ESP32 带有2个 32位(双核)、LX6 CPU,主频高达 240MHz,采用 7级流水线架构,flash空间都是4MB。

2.1 性能稳定

  • ESP32 性能稳定,工作温度范围达到 –40°C 到 +125°C。集成的自校准电路实现了动态电压调整,可以消除外部电路的缺陷并适应外部条件的变化。

2.2 高度集成

  • ESP32 将天线开关、RF balun、功率放大器、接收低噪声放大器、滤波器、电源管理模块等功能集于一体。ESP32 只需极少的外围器件,即可实现强大的处理性能、可靠的安全性能,和 Wi-Fi & 蓝牙功能。

2.3 超低功耗

  • ESP32 专为移动设备、可穿戴电子产品和物联网应用而设计,具有业内高水平的低功耗性能,包括精细分辨时钟门控、省电模式和动态电压调整等。

2.4 Wi-Fi & 蓝牙解决方案

  • ESP32 可作为独立系统运行应用程序或是主机 MCU 的从设备,通过 SPI / SDIO 或 I2C / UART 接口提供 Wi-Fi 和蓝牙功能。

3.模组

????目前乐鑫支持多款模组,具体请参考乐鑫官网 模组情况

????博主这里使用安信可推出的基于ESP32的NodeMcu开发板。

3.安装ESP32 Arduino开发环境

3.1 安装Arduino IDE软件

  • 博主选择了免安装版本的1.8.9版本,下载完毕解压到个人目录下,比如我的是解压到 E:\arduinoIDE\arduino1.8.9

3.2 安装git工具

  • 博主建议百度安装git工具,这里不会手把手教安装

3.3 git Clone arduino-esp32源码

  • 在E:\arduinoIDE\arduino1.8.9目录下创建 espressif 文件夹
  • 在 espressif 文件夹下右键选择 Git Bash Here
  • 在弹出的CMD工具上写上

    git clone https://github.com/espressif/arduino-esp32.git

  • 确认Clone,等待git下载完毕。下载完毕后,打开 E:\arduinoIDE\arduino1.8.9\espressif\arduino-esp32\tools目录,点击get.exe(请确保你按照了python工具)

  • 重新打开Arduino IDE软件,就会发现工具菜单下开发板多了很多ESP32相关选项

4.第一个ESP32测试代码

测试代码

#include <WiFi.h>

/**
 * Demo:
 *    测试ESP32 demo
 *    打印ESP32模块信息
 *    1.打印Arduino Core For ESP32 版本
 *    2.打印Flash的唯一性芯片id(读者可以思考一下是否可以用来做点什么唯一性参考)
 *    4.打印IDE配置的使用Flash大小
 *    5.打印IDE配置的Flash连接通信的频率
 *    6.打印Flash连接模式:QIO QOUT DIO DOUT,可以理解为Flash传输速率
 * @author 单片机菜鸟
 * @date 2019/07/01
 */

#define LED_BUILTIN  22

int state = HIGH;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  FlashMode_t ideMode = ESP.getFlashChipMode();
  String coreVersion = ESP.getSdkVersion();
  Serial.print(F("Arduino Core For ESP32 Version: "));
  Serial.println(coreVersion);
  Serial.printf("Flash real id(唯一标识符):   %08X\n", ESP.getChipRevision());
  Serial.printf("IDE配置Flash大小: %u KBytes\n", ESP.getFlashChipSize()/1024);
  Serial.printf("IDE配置Flash频率 : %u MHz\n", ESP.getFlashChipSpeed()/1000000);
  Serial.printf("Flash ide mode:  %s\n\n", (ideMode == FM_QIO ? "QIO" : ideMode == FM_QOUT ? "QOUT" : ideMode == FM_DIO ? "DIO" : ideMode == FM_DOUT ? "DOUT" : "UNKNOWN"));
  state = !state;
  digitalWrite(LED_BUILTIN, state);
  delay(1000);
}

注意点

  • 以上代码可能会出现以下编译错误,请删掉ArduinoIDE自带的WIFI库

????编译通过后,把以下代码烧进ESP32开发板,烧录方式跟ESP8266 NodeMcu一样,这里不重复讲解。

????正常情况下,会显示如下测试结果:

5.引脚映射关系

6.总结

  • 建议初学者类比ESP8266学习(参考博主详细的ESP8266教程,后续教程会省略很多重复内容,聚焦于重点内容),基本上原理非常相似;
  • 博主在个人学习群上传了一系列学习视频,以供初学者更少地入门;
  • 学习会让看起来很难的东西变得容易,请持续关注博主后续更新的ESP32学习教程,力求干货,不说太多废话。

原文地址:https://www.cnblogs.com/danpianjicainiao/p/11117689.html

时间: 2024-10-11 16:38:08

ESP32 开发之旅① 走进ESP32的世界 安装开发环境的相关文章

ESP8266开发之旅 基础篇① 走进ESP8266的世界

本博客由 单片机菜鸟 个人撰写,仅仅做个人技术交流分享,不做任何商业用途,不经允许,切勿转载.如有不对之处,请留言,本人及时更改. 一.基础篇 ESP8266开发之旅 基础篇① 走进ESP8266的世界 ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境 ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明 ESP8266开发之旅 基础篇④ ESP8266与EEPROM ESP8266开发之旅 基础篇⑤ ESP8266 SPI通信和I2C通信

【密码学】一万字带您走进密码学的世界(下)

引文 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 在<一万字带您走进密码学的世界(上)>的文章中我们探讨了对称密码体系,哈希函数等技术,本文继续探讨密码学剩余的部分,本文的主要内容包括,非对称密码体系,签名算法等,因为本部分是区块链技术的基石,所以我会讲的更加详细一点,虽然我已经尽最大努力使思想简化,但是其中的数学理论对于很多人还是很晦涩,建议读者开始之前先读下数论的有关

【SpringMVC学习02】走进SpringMVC的世界

上一篇博文主要介绍了springmvc的整个架构执行流程,对springmvc有了宏观上的把握,这一篇博文主要以案例作为驱动,带你走进springmvc的世界.案例中的需求很简单:对商品列表的查询.表的话还是使用我在学习mybatis时候用的表,具体可以参见这篇博文中的建表语句. 1. 环境的搭建 需要导入spring的jar包,单纯的入门springmvc的话不需要导入所有的spring jar包,但是核心包和spring-web/spring-webmvc是一定要导入的,考虑到后面还会和my

[转]走进 LINQ 的世界

序 在此之前曾发表过三篇关于 LINQ 的随笔: 进阶:<LINQ 标准查询操作概述>(强烈推荐) 技巧:<Linq To Objects - 如何操作字符串> 和 <Linq To Objects - 如何操作文件目录> 现在,自己打算再整理一篇关于 LINQ 入门的随笔,也是图文并茂的哦. 目录 LINQ 简介 介绍 LINQ 查询 LINQ 基本查询操作 使用 LINQ 进行数据转换 LINQ 查询操作的类型关系 LINQ 中的查询语法和方法语法 LINQ 简介

走进JavaWeb技术世界4:Servlet 工作原理详解

本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文是微信公众号[Java技术江湖]的<走进JavaWeb技术世界>其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了一些比较好的博客文章,如有侵权,请联系作

走进C++程序世界------异常处理

一. 概述 C++自身有着非常强的纠错能力,发展到如今,已经建立了比较完善的异常处理机制.C++的异常情况无非两种,一种是语法错误,即程序中出现了错误的语句,函数,结构和类,致使编译程序无法进行.另一种是运行时发生的错误,一般与算法有关. 关于语法错误,不必多说,写代码时心细一点就可以解决.C++编译器的报错机制可以让我们轻松地解决这些错误. 第二种是运行时的错误,常见的有文件打开失败.数组下标溢出.系统内存不足等等.而一旦出现这些问题,引发算法失效.程序运行时无故停止等故障也是常有的.这就要求

走进C++程序世界------IO标准库介绍

流概述 流是C++标准的组成部分,流的主要目标是,将从磁盘读取文件或将输入写入控制台屏幕的问题封装起来,创建流后程序员就可以使用它,流将负责处理所有的细节. IO类库 在C++输入?输出操作是通过C++系统提供的完成I/O操作的一组类实现的.主要包括: 标准流类:处理与标准输入设备(键盘)和输出设备(显示器)关联的数据流 文件流类:处理与磁盘文件关联的数据流 字符串流类:利用内存中的字符数组处理数据的输入输出 异常类等:处理异常错误. 标准IO对象: 包含iostream类的C++程序启动时,将

Docker学习笔记(四)走进docker的世界

Docker学习笔记(四)走进docker的世界 一个容器实际上是运行在宿主机上的一个进程. 只不过在启动这个进程之前进行了一些特殊处理,让这个容器进入了一个全新的虚拟环境,与宿主机的环境分开, 所以这个进程及其子进程认为自己运行在一个独立的世界里面. #查看进程 sudo docker run -d cyf:sshd /usr/sbin sshd -D ps axf 可以看到在宿主机里面的5948这个sshd进程 下面进入docker容器查看 sudo docker-enter.sh 6867

h5直播开发之旅总结

前言 关于直播,有很多相关技术文章,这里不多说. 作为前端,我们比较关心我们所需要的. 直播的大致流程: APP端调用摄像头 -> 拍摄视频 -> 实时上传视频 -> 服务器端获取视频并解码 -> 存储成一小段一小段视频 -> 服务器端进行推流 -> H5或者app端通过一个url拉取视频流进行播放 实际的直播和用户播放的直播会有10秒左右或者更高的延迟,这一点对于后面开发比较重要,一定要注意这个点. H5实现直播主要是和video标签打交道,虽然只需要拿到m3u8格式