ESP32简介

ESP32 是上海乐鑫公司开发的一款比较新的32位微控制器,它集成了WiFi及蓝牙等功能,有着性能稳定、功耗低、价格低廉等特点,非常适用于物联网开发,但也可以作为普通的MCU使用。

ESP8266 也是乐鑫公司开发的一种非常流行的WiFi芯片。相比 ESP8266 ,ESP32 更加强大。这篇文章 比较了 ESP8266 和 ESP32 之间的差别。

ESP32的主要芯片种类有ESP32-C系列、ESP32-S系列和ESP32系列。这些芯片的参数和功能略有差异,例如ESP32-S2就不支持蓝牙功能。在选型时注意检查芯片型号。

完整的芯片型号对比可以参考官方网站的介绍:https://www.espressif.com/zh-hans/products/socs

模块是基于ESP32芯片,按照一定功能封装了基本的外设等形成的集成芯片。乐鑫提供的ESP32模块主要可分为WROOM系列、WROVER系列以及MINI系列,完整的介绍及对比可以参见官方网站:https://www.espressif.com/zh-hans/products/modules 。模块参数的详细PDF文档可以从 https://www.espressif.com/zh-hans/products/modules/esp32 处下载。

开发板则是由ESP32模块和USB口、复位开关等组成的完整开发套件。开发板的厂商较多,使用时需要查看对应的开发板电路连接原理图,并注意开发板提供的功能。乐鑫提供的官方开发板介绍可以参见 https://www.espressif.com/zh-hans/products/devkits

这里选择 DOIT ESP32 DEVKIT V1 作为开发板。该开发板的特点为:

  1. 尺寸很小(约 52mm x 28mm )
  2. 价格低廉(仅需 ¥20 左右,相比乐鑫官方动辄 60+ 非常亲民)
  3. 板载一个蓝色 LED 灯,方便在无额外元器件时便可以调试
  4. 远销海外( platformIO 甚至还有该开发板专门的介绍文档)

其外观如下。事实上很多商家的 ESP32 的开发板结构都非常类似。在选择开发板时只需注意主要结构及功能即可。

MicroPython简介

什么是MicroPython

MicroPython是基于Python实现的简易版本,用于在嵌入式系统中运行,例如树莓派、ARM单片机和ESP32。它兼容大部分Python3语法,因此只要熟悉Python3就能无障碍上手MicroPython。

相比Python3,MicroPython精简了许多实现细节,并且删去了许多标准库以及标准库里的内容。不过,MicroPython却额外包含了能够操作底层GPIO等外设的标准库,这些是对底层寄存器的高度封装。

建立MicroPython开发环境

目前来说,有 3 个比较常用的 MicroPython 开发环境,它们都是免费、开源且跨平台的。它们分别为:

  • uPyCraft IDE

uPyCraft IDE 是一个简单并且对入门 MicroPython 友好的集成开发环境,它自身可以直接烧入 MicroPython 到 ESP32 中,并且支持从编写程序到串口调试的所有基本功能。除此之外,它还内置了许多示例代码,可以直接运行这些示例代码查看效果。

uPyCraft 的 GitHub 地址为:https://github.com/DFRobot/uPyCraft 。可以从中下载软件与查看官方文档。

  • Thonny IDE

Thonny IDE 是一个 Python 的集成开发环境,不过它同时也支持直接开发 MicroPython 。Thonny IDE 功能丰富,支持各种调试方式,,并且可以加上插件进一步扩展功能。

Thonny IDE 的官方网站为:https://thonny.org ,GitHub 仓库地址为:https://github.com/thonny/thonny

  • Visual Studio Code

大名鼎鼎的 VSCode 想必许多人都有所耳闻。VSCode 想要开发 MicroPython ,主要依靠插件的支持。

这里推荐将 Thonny IDE 作为开发环境,主要是出于以下考虑:

  1. VSCode 相对 MicroPython 入门来说,还是有些过于重量级。并且 VSCode 主要依赖于插件来开发 MicroPython ,并不能很好地用到 VSCode 的所有优势,而且开发环境的配置也对入门级别不是很友好,因此除非日后需要利用到一些进阶功能,否则并不推荐将 VSCode 作为入门开发环境。
  2. uPyCraft 尽管是专门支持 MicroPython 的开发环境,但是它目前版本还比较低,不仅功能很少,而且使用者也很少,许多功能没有得到广泛的测试,可能存在许多 bug 未能得到解决。
  3. 相比之下,Thonny IDE 非常轻量级,却也支持许多高级的功能。由于有足够多的使用者,现版本的 Thonny 已经非常稳定,完全可以满足 MicroPython 的全流程开发。

由于 Thonny 不支持烧入功能,因此需要额外下载烧入工具。在烧入之前,需要安装 CP210x 串口转 USB 驱动,让设备识别到 ESP32 。

该驱动可以在 https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers 处下载,打开网站后点击 DOWNLOAD 页面,选择对应系统的驱动下载即可:

下载完成驱动后,安装对应的驱动文件即可,安装方式就和一般的软件一致:

接下来需要下载 Flash 烧入工具,用来将 MicroPython 烧入到 ESP32 内。烧入软件可以选用乐鑫官方提供的 Flash 下载工具,下载地址在 https://www.espressif.com/zh-hans/support/download/other-tools ,或在乐鑫官网找到支持相关下载工具

解压下载得到的文件夹即可。

最后一步是下载 MicroPython 固件。下载的地址为:https://micropython.org/download/esp32/) ,或在 MicroPython 官网首页找到 DownloadESP32

一般来说,推荐下载第二新的固件版本。注意下载的是 .bin 格式的固件。

接下来就可以准备将 MicroPython 烧入到 ESP32 设备中。

将 ESP32 使用 microusb 线连接到计算机上,如果 ESP32 开发板上的红色灯亮起,同时计算机的设备检测到串口信息,则证明连接正常:

打开 ESP32 的 Flash 烧入工具,在第一个下拉菜单芯片类型中选择 ESP32:

接下来进入到烧入配置界面,其中几个关键的选项已经在图中标示出来了:

  1. 烧入的固件文件,可在右侧省略号按钮选取文件
  2. 烧入地址为 0x1000
  3. 记得勾上要烧入的文件
  4. 这些选项保持图示的默认选项即可
  5. 波特率以 921600 为佳,上方的端口号注意和 ESP32 的端口号匹配

接下来就可以下载固件了。下载前需要先擦除原有内容,按住开发板上的“BOOT”按键,然后点击下载工具左下角的“ERASE”按钮。刚点击时上方绿色矩形里的文字会从“等待/IDLE”变成“等待上电同步/SYNC”,如果文字再次变成“下载中/DOWNLOAD”,那么便可以松开开发板上的“BOOT”按键了。等到文字再次变为“完成/FINISH”,则说明擦除成功。

接下来点击下载工具左下角的“START”按钮,类似上一步,在开始下载前也需要按住开发板上的“BOOT”按键。在下载时,下载工具最下方的进度条将会显示当前下载进度。

这样,MicroPython 就烧入完毕了。接下来可以建立第一个MicroPython 工程,同时测试烧入是否正确。

建立第一个工程

这里使用 Thonny IDE 作为开发环境。首先可以在官网下载该软件:

也可以在 GitHub 仓库里找到 Release 版本。这些地址在上文都提到过。

安装成功 Thonny 后,打开软件,接下来还需要进行一些初始化配置。

首先,在菜单栏里找到运行选择解释器。之前说过 Thonny 主要用于进行常规 Python 开发,因此如果要将其用于 MicroPython 开发需要修改解释器选项:

修改解释器为 MicroPython (ESP32) 。该页面中同时可以修改端口配置,如果有时发现识别出现问题,不妨检查一下端口号是否正确。

接下来,将 ESP32 接入计算机,然后点击功能按钮栏里的“停止/重启后端进程(Ctrl+F2)”:

如果此时在下方的终端(Shell)内看到如下所示的 Python 解释器提示,则说明与 MicroPython 的连接成功:

如果在打开 Thonny 前就维持着 ESP32 与计算机的连接,那么进入 Thonny 时应该就能看到该提示信息。“停止/重启后端进程(Ctrl+F2)”用于重新使计算机与 ESP32 里的 MicroPython 连接,在每次插拔 ESP32 后都需要这样手动使两者重新连接。

终端(Shell)允许在串口通信中使用 MicroPython 命令行交互窗口。例如:

MicroPython v1.17 on 2021-09-02; ESP32 module with ESP32
Type "help()" for more information.
>>> print('Hello, world!')
Hello, world!

print() 函数可以让 ESP32 向计算机通过串口发送调试信息。

MicroPython 还支持以文件的形式运行。新建一个文件后,点击保存(如果 Thonny 成功连接上了 ESP32 的 MicroPython ),那么此时就会出现两个选项,可以将 .py 文件保存在计算机上,还可以将其保存在 ESP32 里:

选择将文件保存在 ESP32 内,此时会发现 ESP32 内已经有一个 boot.py 文件了。这里,将文件命名为 main.py 保存。boot.pymain.py 是 MicroPython 里的两个比较特殊的文件,将在之后详细介绍。

main.py 内编写以下代码后保存:

from machine import Pin
import time
led = Pin(2, Pin.OUT)
while True:
led.value(0)
time.sleep(0.5)
led.value(1)
time.sleep(0.5)

点击功能按钮栏里的“运行当前脚本(F5)”,即可运行以上代码。运行成功后,可以看到开发板上蓝色的 LED 灯以 0.5 秒为间隔闪烁,说明运行成功。

while 循环可以通过在交互式控制台内按下 CTRL+C 触发键盘中断退出。如果再次将 ESP32 接入计算机后重启后台进程,一直显示 ESP32 处于繁忙状态或无显示,则可能是由于 ESP32 一直在执行代码导致的,可以通过键盘中断强制停止 MicroPython 的执行。

ESP32与MicroPython入门-01 搭建开发环境的更多相关文章

  1. maven实战(01)_搭建开发环境

    一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...

  2. JBPM4入门——3.JBPM4开发环境的搭建

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

  3. ESP32 LyraT音频开发板试玩(一):搭建开发环境

    我是卓波,很高兴你来看我的博客. 系列文章: ESP32 LyraT音频开发板试玩(一):搭建开发环境 ESP32 LyraT音频开发板试玩(二):播放音乐 关于ESP32的开发环境搭建,官方有教程, ...

  4. GJM : Unity3D HIAR -【 快速入门 】 二、搭建开发环境

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  5. [01] cocos2d-x开发环境搭建

    cocos2d-x 是跨平台的游戏开发引擎,支持的平台有 ios , android , windows phone , web , tizen,windows等. 先来搭建开发环境,一般我们开发游戏 ...

  6. python入门到精通[一]:搭建开发环境

    摘要:Python认识,及在windows和linux上安装环境,测试是否安装成功. 1.写在前面 参加工作也有5年多了,一直在做.net开发,近一年有做NodeJS开发.从一开始的不习惯,到逐步适应 ...

  7. Kinect for Windows SDK开发入门(一):开发环境配置

    [译]Kinect for Windows SDK开发入门(一):开发环境配置 前几天无意中看到微软发布了Kinect for windows sensor,进去看了一下Kinect应用的例子,发现K ...

  8. ios搭建开发环境

    ios搭建开发环境 好久就想试水IOS开发了,由于开发环境限制,一直局限于理论和虚拟机,近来入手了MacBook Pro,也来尝尝鲜,笔者也是现学现总结,如果有不足,请指正. IOS开发必备MAC O ...

  9. Windows 8 Metro 应用开发入门(一):开发环境介绍

    摘 要 Windows8已经发布,随之而来的基于WinRT的Metro应用也正向我们走来,正像它所宣传的:光滑.快.现代.看习惯了玻璃.立体风格的应用,或许Metro的简洁能给你留下不一样的体验.Vi ...

随机推荐

  1. 从零搭建Pytorch模型教程(四)编写训练过程--参数解析

    ​  前言 训练过程主要是指编写train.py文件,其中包括参数的解析.训练日志的配置.设置随机数种子.classdataset的初始化.网络的初始化.学习率的设置.损失函数的设置.优化方式的设置. ...

  2. 关于『HTML』:第二弹

    关于『HTML』:第二弹 建议缩放90%食用 第二弹! 它来了! 它来了! 我竟然没有拖更,对了,你们昨天用草稿纸了么 开始正文之前提一个问题:大家知道"%%%"是什么意思吗?就这 ...

  3. 一个支持数据绑定与数据联动的Dashboard

    什么是仪表盘 仪表盘是不同部件的组合,可以在一个页面集中显示各类信息,方便用户集中查看信息.并快速处理业务 关于制作部件,请参见:制作部件 CabloyJS仪表盘的特点 更灵活的自适应能力,可以针对m ...

  4. swap函数模板

    在许多应用程序中,都有交换相同类型的两个变量内容的需要.例如,在对整数数组进行排序时,将需要一个函数来交换两个变量的值,如下所示: void swap(int &a, int &b) ...

  5. Linux常用命令-创建用户修改密码-useradd

    命令简介 useradd/userdel 创建新用户/删除用户,需要管理员权限操作. 在创建用户时,如果不配置密码,用户的默认密码是不可用的,所以,useradd命令一般与passwd命令配合使用,下 ...

  6. javaweb_Http学习

    1. 什么是HTTP? HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上. 文本:html,字符串,~... 超文本:图片,音乐,视频,定位,地图..... 默认端口:80 ...

  7. npm发布包以及更新包还有需要注意的几点问题(这里以发布vue插件为例)

    前言 在此之前,你需要去npm官网注册一个属于自己的账号,记住自己的账户名以及密码.邮箱,后面会用的到.第一步,安装webpack简易框架 vue init webpack-simple marque ...

  8. Museui 图标速览,再也不用担心网页打不开了

    更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/119328173

  9. django生成迁移文件和执行迁移的命令

    生成迁移文件: python manage.py makemigrations    #创建数据库迁移文件 执行迁移: python manage.py migrate    # 根据数据库迁移文件生 ...

  10. 复制docker容器中的nginx某个文件到linux中

    前提:docker容器中的nginx要开启