使用MicroPython开发ESP32(01):快速入门


在这里插入图片描述

为什么使用MicroPython开发ESP32

ESP32是非常热门的一款物联网芯片,它的开发方式非常多样,其中使用MicroPython的方式非常快速便捷,适合试验测试等使用,当然如果设计合理的话也可以用于正式产品开发。

MicroPython官方首页:
MicroPython - Python for microcontrollers
ESP32相关说明见下面文章(包含最小系统电路示例):
《ESP32概述与入门准备》

快速入门

开发板准备

入门学习使用MicroPython开发ESP32可以使用乐鑫官方的 ESP32-DevKitC开发板 ,某宝上一搜一大把。也可以使用上面链接文章中的最小系统,反正就是准备个能上电运行、能烧写固件的电路模块就成。
在这里插入图片描述

开发工具选择

MicroPython的开发工具选择面非常大,通常情况下只要找个能够启用串口的工具就行,在Windows上常见的有putty、VScode+插件等很多选择。在这里我推荐使用 Thonny ,这个工具是目前我认为最适合用在MicroPython开发上的,其官方网站与项目地址如下:
https://thonny.org
https://github.com/thonny/thonny/
该工具集固件烧录、Python Shell调试、文件管理于一体,是目前用MicroPython开发最理想的工具。
在这里插入图片描述

固件下载与烧录

固件可以从MicroPython官网进行下载,ESP32的固件目前分为两类,分别基于ESP-IDF v3.x和ESP-IDF v4.x开发,目前支持的功能上稍有差异。每一类又细分为 GENERIC 普通的GENERIC-SPIRAM 支持外部SPI RAM的
在这里插入图片描述
常见的 ESP32-WROOM-32 等模块是不带SPI RAM的,而 ESP32-WROVER-B 等模块是带SPI RAM的。
在这里插入图片描述
固件可以用上面的 Thonny 进行烧录:
在这里插入图片描述

程序入门

在固件烧录完成后复位芯片程序就开始执行,默认情况下会进入Python Shell交互环境。
MicroPython For ESP32默认使用UART0进行交互,默认波特率为115200

MicroPython可以使用help函数获得帮助:
在这里插入图片描述
可以进行运算或输出信息:
在这里插入图片描述
可以控制GPIO口:
在这里插入图片描述
上图中先是通过 help() 查看相关说明,然后导入machine模块中的Pin类。接着声明一个GPIO口对象(p13),该对象绑定到芯片的GPIO13,并且设置为输出。接下来使用 help 函数查看了p13对象的说明,最后使用 on() 让GPIO13输出高电平。

在IO口上接上LED,并加入延时就可以实现控制小灯闪烁了:
在这里插入图片描述
上图中 time.sleep(0.5) 相当于延时0.5秒,整段while语句相当于使GPIO13持续翻转,当我敲出两个空行时while语句开始运行。最后我按下键盘上 CTRL + C 结束了程序。

使用MicroPython控制ESP32连接无线网络也非常方便:
在这里插入图片描述
上图中我连接了名为(SSID) AAA 、密码是12345678的无线网络,连上网络后打印了IP、子网掩码、网关等信息。

更多程序相关内容可以参考官方文档,我也会在之后的文章中进行详细说明:
http://docs.micropython.org/en/latest/esp32/quickref.html

通过文件运行程序

上面的程序都是在Python Shell交互环境中进行的,当然也可以将代码保存到文件上,通过文件运行程序。MicroPython的固件会在开发板ESP32模块的flash上创建一个文件系统,可以用来存放文件。
我们可以使用 Thonny 打开、删除开发板上存储的文件:
在这里插入图片描述
Thonny 也可以将文件保存到开发板上,还可以启动运行文件:
在这里插入图片描述
默认情况下MicroPython会生成一个 boot.py 文件,当系统启动完成之后会先运行该文件中的内容,该文件一般用于运行一些系统层面开机时需要启动的功能,一般不推推荐用户修改。在 boot.py 文件中的程序运行结束之后系统紧接着会运行 main.py 文件(如果没有该文件则跳过)。在 main.py 文件运行结束后会则进入Python Shell调试模式:
在这里插入图片描述
上图中我建立了 main.py 文件,将它上传到开发板,然后按下开发板上复位按钮。可以看到系统复位后 main.py 文件中的内容被执行。

如果在 main.py 文件中写个死循环,然后所有程序都写在该循环中,那用起来就和传统的单片机差不多了,只不过从固件变成了文件。不过如果这样做的话就进不了Python Shell调试模式了,并且无法再次进行文件修改上传等操作,只有重写烧写MicroPython固件才能恢复(或者死循环的程序中有文件系统读写的功能)。
在这里插入图片描述
Thonny 可以支持文件树状视图,是目前唯一一个支持以文件夹形式上传文件的工具:
在这里插入图片描述

总结

MicroPython和CPython一样非常快速便捷,适合拿来直接试验测试等使用。具体各个库的使用将在之后的文章中进行介绍。

MicroPython的语法和标准的CPython相似,可以学习CPython语法来了解基本语法,可以参考下面教程:
https://www.liaoxuefeng.com/wiki/1016959663602400

  • 41
    点赞
  • 201
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  
MicroPython是一种针对嵌入式设备的Python 3实现,它可用于开发和控制物联网(IoT)设备。ESP32是一款功能强大的开发板,支持MicroPython环境。你可以从MicroPython官网的ESP32固件下载页面(https://micropython.org/download/esp32/)下载最新的ESP32固件。 在上一讲的ESP32 MicroPython开发之旅基础篇①中,我们搭建了MicroPython环境,并且成功运行了一个main.py文件。MicroPython固件版本为v1.19,编译日期是2022年8月20日,该固件包含了一些常用的模块,如smartconfig、ssd1306、aht10和microWebSrv等。 所以,MicroPython ESP32是指在ESP32开发板上运行的MicroPython固件,你可以通过下载相应的固件并安装到ESP32上,然后使用MicroPython语言进行开发和控制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ESP32 microPython开发入门](https://blog.csdn.net/zsq_study/article/details/124519719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ESP32 MicroPython开发之旅 基础篇② —— MicroPython 执行过程](https://blog.csdn.net/weixin_44614230/article/details/121641538)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [esp32 micropython 固件 包含smartconfig模块](https://download.csdn.net/download/oSiShen/86405140)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naisu Xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值