esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(1)

▌01 ESP8266模块下载MicroPython

手边有这类小型的ESP8266WiFi串口模块: ESP-01S 无线透传工业级 ESP8266串口转WiFi模块[1] 。现在有一个问题:它是否可以使用MicroPython进行开发呢? 就像在 ESP8266的一些MicroPython基础实验[2] 中的模块那样下载 ESP8266 MicroPython[3] 的固件。

下面图中的快速制版的PCB使用MAX3232作为接口,连接ESP8266与PCB的RS232 UART接口。

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(2)

▲ ESP8266通讯模块

修改ESP8266的固件可以直接使用下面的 ESP8266固件烧写器[4] 来进行修改。

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(3)

▲ ESP8266烧录器

1.模块的接口

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(4)

▲ 8PIN的外部引脚定义

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(5)

▲ 引脚功能定义

2.Thonny开发环境

Thonny开发环境[5] 介绍了Thonny MicroPython的开发环境的安装,并对ESP8266进行软件更新的过程。

MicroPython网站Download[4] 选择 ESP8266-20210202-V1.14bin[6] 文件下载到本地计算机目录下。

使用这个软件的 ESP8266 Firmware Installer 对ESP8266-01S进行软件更新。下面是更换过程,但是出现固件下载错误。

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(6)

▲ 工作模式下出现下载错误

下面是在Thonny下载界面信息框中给出的出错信息。显示了Thonny无法发送芯片擦除命令。

根据 图1-1-1 中关于ESP8266-01S的8PIN管脚功能定义,需要对于PIN3(GPIO0)拉低,使得模块进入 UART编程状态。

下面使用金属镊子对ESP8266的PIN3(GPIO0)与PIN1(GND)断路,然后上电,此时ESP8266进入了UART下载模式。

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(7)

▲ 使用金属镊子对PIN3于PIN1断路,再上电使得模块进入程序下载状态

3.对ESP8266设置下载状态

整个过程需要经过两个步骤:

(1)擦除ESP8266

通过前面使用金属镊子帮助使得ESP8266-01s模块进入下载状态,使用Thonny的Update Firmware对ESP8266进行擦除。

(2)下载ESP8266固件

通过前面使用金属镊子帮助使得ESP8266-01s模块进入下载状态,使用Thonny的Update Firmware对ESP8266进行固件下载。

下载完之后,重新对于ESP8266上电,便可以在Thonny的Shell通过REPL来对于ESP8266-01S进行控制了。下面显示了使用help()命令获得输出。

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(8)

▲ 固件下载之后通过Thonny 的REPL对于ESP8266进行操作

▌02 测试ESP8266-01S

根据 ESP8266的一些MicroPython基础实验[5] 对于ESP8266-01S进行初步测试。

1.GPIO测试

在ESP8266-01S具有两个GPIO:GPIO0,GPIO2。

(1)测试GPIO2

GPIO2在测试板上有LED连接到地。可以通过它来显示GPIO2的状态。

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(9)

▲ 对于板载上的GPIO2的LED进行控制

(2)测试GPIO0

由于GPIO0没有连接任何外设,通过示波器测试该端口的波形。

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(10)

▲ 测量GPIO0的波形

2.测试ADC

由于ADC引脚并没有引出,所以下面的程序可以执行,但是信号与外部没有关系。

3.测试PWM

测试代码:

下图显示GPIO0上的波形:

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(11)

设置PWM的duty 0 ~ 1023。

4.Socket通讯(1)测试代码

从程序print(wlan.lfconfig())获得模块的IP地址。

(2)STM32Bootloader终端

使用STM32BOOTLOADER中断来进行UDP发送、接收。在设置IP,Port之后,点动“SET UDP”完成设置。

esp8266编程开发手册(ESP8266-01S配置MicroPython方法)(12)

然后在STM32BOOTLOADER对话窗口发送 ,便可以收到了对应的信息了。

▌实验总结

通过实验验证了将ESP8266-01S下载MicroPython的固件过程。并通过Thonny开发环境完成对于ESP8266-01S的固件下载,并进行的内部的编程测试。

参考资料

[1]

ESP-01S 无线透传工业级 ESP8266串口转WiFi模块: https://item.taobao.com/item.htm?spm=a230r.1.14.42.566567d1KEbE5v&id=568054600435&ns=1&abbucket=5#detail

[2]

ESP8266的一些MicroPython基础实验: https://zhuoqing.blog.csdn.net/article/details/114238748

[3]

ESP8266 MicroPython: http://www.micropython.org/download/esp8266/

[4]

ESP8266固件烧写器: https://detail.tmall.com/item.htm?id=617225331165&ali_refid=a3_420434_1006:1109448581:N:qwnbk4ga1jWzvtXuIEnkGA:059458ad4395e879407ccc307fe53ea7&ali_trackid=1_059458ad4395e879407ccc307fe53ea7&spm=a230r.1.1957635.69&skuId=4351773637185*

[5]

Thonny开发环境: https://zhuoqing.blog.csdn.net/article/details/114064833

[6]

ESP8266-20210202-V1.14bin: http://www.micropython.org/resources/firmware/esp8266-20210202-v1.14.bin

,