用mircopython开发ESP32/ESP8266(环境搭建教程)

前言:老早之前就说过要写这篇博客了,但奈何学业繁忙,今天正好有空,补下这个坑。

关于Micropython

MicroPython是Python的一个精简版本,它是为了运行在单片机这样的性能有限的微控制器上,最小体积仅256K,运行时仅需16K内存。

MicroPython是基于Python 3.4的语法标准。因为要适应嵌入式微控制器,所以裁剪了大部分标准库,仅保留部分模块如math、sys的部分函数和类。此外,很多标准模块如json、re等在MicroPython中变成了以u开头的ujson、ure,表示针对MicroPython开发的标准库。

目前,MicroPython除了可以运行在最初开发的pyboard微控制器上外,还可以运行在大量基于ARM的嵌入式系统,如Arduino,这样我们就可以通过Python来非常方便地开发自动控制、机器人这样的应用。

---- 摘抄自廖雪峰博客

简单来说,mircopython就是在单片机上运行python程序的框架

micropython官方文档: 传送门
micropython中文版文档: 传送门
micropython源码:Github



MicroPython所支持的板子

  • Pyboard v1 & D-series(没玩过)
  • STM32 boards(STM32麽,懂得都懂)
  • Raspberry Pi RP2040 microcontroller boards(树莓派新出的微控制器,听说性价比不是很高)
  • TI CC3200 boards(TI公司第一颗用于物联网的内置WiFi的MCU)
  • Espressif ESP-based boards(乐鑫esp系列,今天的主角)

环境搭建

1.下载固件

esp8266] esp32
固件下载 固件下载

说明:版本尽量选最新的即可,要是觉得最新的不稳定,也可下载前几个版本。关于ESP32的固件有两个:一个是基于ESP-IDF v4.x开发的固件,此固件支持BLE和PPP模式,但不支持LAN(局域网),目前还在维护,而另一个是基于ESP-IDF v3.x开发的固件,此固件支持BLE,PPP和LAN,目前已经停止维护,因此如果需要用到局域网控制ESP32的,尽量选择下面那个版本

2.固件安装

固件安装使用乐鑫官方提供的 flash下载工具 即可

在这里插入图片描述
下载完成之后,双击运行文件夹里面的执行程序即可

在这里插入图片描述
打开后依次选择Developer Mode->ESP8266 DownloadTool 或 ESP32 DownloadTool
配置如下:
在这里插入图片描述

这样micropython的固件就算烧录成功了。

3.py文件运行

要想在esp板子上运行python程序,则需要先将python程序烧录到板子上,这里提供三种常用的烧录软件,其功能都大同小异,主要是掌握其方法

这里以uPyCraft为例,其他的软件自己折腾哈~

软件自带固件和固件烧录功能,若不想用官方的flash下载工具,也可使用该软件进行固件烧录,具体方法如下:

1.打开工具栏Tools->BurnFirmware
2.按自己需求选择以下内容
在这里插入图片描述

软件工作区目录说明:

  • device:烧录到设备中的python文件
  • sd:存放在SD卡中的文件
  • uPy_lib:软件自带的第三方库文件
  • workSpace:本地工作区文件

烧录固件成功后即可在device文件夹中看到boot.py文件,boot.py文件会在每次引导(包括从深度睡眠中唤醒引导)时执行,但一般不需要修改

注:若没有在device中看到boot.py文件,在工具栏Tools->Serial中先选择设备的端口号

这里给出一个点灯的示例文件

from machine import Pin
from time import sleep_ms

# 设置2引脚为输出模式(2引脚连接板子上的LED灯)
LED = Pin(2, Pin.OUT)


while True:
  # 2引脚输出高电平
  LED.on()
  # 延时500ms
  sleep_ms(500)
  # 2引脚输出低电平
  LED.off()
  sleep_ms(500)

下载示例代码到板子上并运行可以看到LED一闪一闪亮晶晶,关于各函数的使用方法可以移步到micropython的官网文档观看

注:像类似demo.py文件只能在板子上执行一次,若断电重启板子则不会继续执行,若想文件持续运行,可以将文件名改为main.py,main.py是板子执行的主程序,如果在main.py中执行死循环,可能会导致板子持续工作,而与电脑断开连接

4.进阶之路

像machine,time等库函数都是MicroPython固件中自带的,如果想使用ESP开发更多的东西,光这些肯定是不够的,这就需要用到第三方库文件,这里提供一个第三方库总和入口:Github

其实在uPyCraft的uPy_lib文件夹中就有一些常用的第三方库,像OLED常用的SSD1306驱动库文件,mqtt所用到的simple文件,通过TCP访问网页所用到的urequests(类似requests库,懂爬虫的小伙伴一定不陌生哈<-.<-)等等

结尾:在写这篇博客的时候其实我已经不用micropython开发ESP8266很久了,所以有些知识可能会说错,望各位看客谅解哈~但示例基本都是亲自实验过才上传的,所以基本不会有错

猜你喜欢

转载自blog.csdn.net/qq_45516773/article/details/116589749