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学习教程,力求干货,不说太多废话。

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

  1. 【android开发】如何在Linux平台下安装JDK环境

    原文:http://android.eoe.cn/topic/android_sdk Linux平台JDK安装 本文主要描述如何在Linux平台下安装JDK环境.进入网页:http://www.ora ...

  2. .NET Core 开发之旅 (1. .NET Core R2安装教程及Hello示例)

    前言 前几天.NET Core发布了.NET Core 1.0.1 R2 预览版,之前想着有时间尝试下.NET Core.由于各种原因,就没有初试.刚好,前几天看到.NET Core发布新版本了,决定 ...

  3. ESP32 开发之旅② Arduino For ESP32说明

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

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

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  5. ESP8266开发之旅 网络篇⑯ 无线更新——OTA固件更新

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  6. ESP8266开发之旅 进阶篇② 闲聊Arduino IDE For ESP8266烧录配置

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  7. ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  8. ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  9. ESP8266开发之旅 基础篇④ ESP8266与EEPROM

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

随机推荐

  1. Spring boot缓存初体验

    spring boot缓存初体验 1.项目搭建 使用MySQL作为数据库,spring boot集成mybatis来操作数据库,所以在使用springboot的cache组件时,需要先搭建一个简单的s ...

  2. 《深度解析Tomcat》 第一章 一个简单的Web服务器

    本章介绍Java Web服务器是如何运行的.从中可以知道Tomcat是如何工作的. 基于Java的Web服务器会使用java.net.Socket类和java.net.ServerSocket类这两个 ...

  3. Linux 文件复制命令cp

    文件复制命令cp 命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination) cp [option] source1 source2 source3 ... ...

  4. Actor 模型中的通信模式

    在 Actor 模型中所有的 Actor 之间有且只有一种通信模式,那就是 tell 的方式,也就是 fire and forget 的方式.但是在实际的开发过程中工程师们逐渐总结出了一些常用的通信模 ...

  5. Spring GetBean流程

     第一节讲解Spring启动的时候说到,Spring内部先解析了所有的配置,加载所有的Bean定义后,再根据需要对Bean进行实例化和初始化.除开Spring自己主动新建的对象,第一次根据Bean定义 ...

  6. Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源

    最近开源了周志华老师的西瓜书<机器学习>纯手推笔记: 博士笔记 | 周志华<机器学习>手推笔记第一章思维导图 [博士笔记 | 周志华<机器学习>手推笔记第二章&qu ...

  7. Windows搭建SVN服务器

    安装 1.下载地址:https://www.visualsvn.com/files/VisualSVN-Server-4.0.3-x64.msi 2.开始安装: 3.安装配置: 4.Next直到完成 ...

  8. 02-11 RANSAC算法线性回归(波斯顿房价预测)

    目录 RANSAC算法线性回归(波斯顿房价预测) 一.RANSAC算法流程 二.导入模块 三.获取数据 四.训练模型 五.可视化 更新.更全的<机器学习>的更新网站,更有python.go ...

  9. 检测 IP的正则表达式

    ... /*ip正则表达式*/ /^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})| ...

  10. e课表项目第二次冲刺周期第十天

    昨天完成了什么? 昨天还有一天第一次冲刺周期就结束了,我们的工作也接近尾声了,所以今天我利用之前的方法,完成了对监听的设置,以及对修改界面的编写,可以实现相应的删除和修改的功能,然后我和我们组的成员商 ...