13101|31

1158

帖子

2

TA的资源

版主

楼主
 

如何编译micropython在esp8266的固件 [复制链接]

 
  本帖最后由 michael_llh 于 2016-6-11 23:02 编辑

   相信大家对于物联网现在都不在陌生了,但是物联网的开发并不显得那么容易,尽管现在涌现了越来越多的物联网开发平台,我们比较耳熟能详的就是Arduino,在物联网这块也有很多自己的产品,包括它最近推出的Arduino UNO with WiFi,也都是在物联网这块有一个新的开发产品。当然Arduino的优势大家应该会比较清楚,通过更加简单的方式,实现更有趣的开发。当然包括我们现在联发科也联合苹果推出了相应的HomeKit开发套件,联发科的LINKit ONE套件也是联发科在物联网这块推出的一个套件。当然英特尔这个大头之前也是推出了相应的套件,比如说Edison开发套件也是英特尔在这一块的内容。所以对于现在我们说的物联网真的是非常火爆,但是几年的发展下来,各种层出不穷的物联网产品,还不能说是达到了一个智能互联的一个时代,还是各个产品独立分块的一个现象,目前还是很难做到互联互通这样一个现象。
   对于物联网开发,门槛算是比较高的,因为设计到的内容是比较多的,比如最开始你需要面对联网问题,其次你需要一个服务器,而后你需要一个客户端来进行操作,所以这里我们会发现,总的三个开发的方向,每一个如果做得好的话就很厉害了,更何况是三个东西同时都是一个人做,所以门槛高是有一定道理的。但是现在由于更多物联网开发平台的出现,也帮助降低了这个门槛,能够帮助我们更快的进入一个物联网的开发过程。那么具体是怎么方便我们开发的呢,我们后面一一道来。

   ESP8266算是现在比较实惠并且应用比较广泛的一款WiFi芯片,它本身也是一个芯片,所以是作为直接开发的。或者说进行一个封装之后我们就可以直接使用串口进行操作,也就是使用AT指令,这个就是我们常常说的ESP8266的WiFi模块,直接转换成其他的单片机来进行操作这一块的内容。官方也提供了ESP8266的SDK可以进行开发。
   上面是官网,更多关于这款芯片的资料,大家可以参考上面的内容。下图是一些基本的参数截图。

   该芯片主频可以选择为80MHz和160MHz,所以对于一些基本的开发来说还是足够用的一个速度。内置了10位高精度ADC,TCP/IP协议栈,等等。所以芯片是非常优秀的。

   好了接下来我们要进入正题了,micropython,相信大家对pyboard不陌生了哈,使用的是STM32F405的芯片,将python融入32里面,从而可以在32上面进行python的代码编写,真的是一件很酷的事情,同时作者还是这些东西都开源了,非常的棒,非常的有趣。但是就是有一个问题,单单我们最一些简单的开发,在不做物联网的情况下pyboard还是非常棒的,简单,快开发,但是遇到互联网开发,就比较困难,所以我们想到一个问题,如果esp8266自己能够运行python,那该有多好!
   micropython的作者非常的棒!他在github上面也给出了esp8266的python代码,非常的棒。

   但是没有给出固件,应该是属于还在测试过程中,还没有正式推出,我们可以在Google上面找到固件。

   进入第一个个连接进入之后我们就可以选择红色方框Buid Firmware。


   之后我们就可以下载相应的固件了,但是这个固件是比较早的就是了,是2015年的固件,所以我们接下来要做的就是来自己编译一个固件。
   首先我们需要将我们的micropython的github开源项目的内容下载下来。选择下图的图标就是可以下载下来。或者在window或者linux底下直接使用Git工具clone这个项目下来也是可以的。

   我们使用git clone下载的话如下图。

   这个编译需要在Linux底下,所以如果是windows的话就需要有一台虚拟机,来帮助完成这个编译的过程。
   首先我们在Github目录下进入esp8266的目录。向下滚动页面,我们可以看到一个README.md文件,解释一下,md结尾的是markdown语言编写的一个文本,能够用一些简单的语法完成一些格式,Github项目都会有一个这样的文件对项目进行一个介绍,进入项目之后都会在下方进行一个显示。

   再往下我们可以看到一个编译指南,在这里详细说明了该如何自行编译一个我们的esp8266的micropython固件。红色标记的地方说明在我们编译固件之前我们需要ESP SDK的工具来帮助我们完成编译。

   点击链接进入该Github项目。

   同样需要下载下来,页面向下滚动找到编译说明。这里我们选择的是在Ubuntu底下进行编译,下面图片截图说到我们编译这个东西的时候需要的工具和依赖的一些库等等。我们按照图片说明,在Ubuntu底下安装这些工具即可。

   完成了工具和依赖库的安装之后我们再往下看。有一个编译说明。我们按照这个说明就可以,第一步是下载,完成之后进入该目录直接make就可以。

    我自己使用的Ubuntu版本是14.01的版本。
同样我们使用git clone下载之后编译,这里和大家说明一下,我进入下载的目录之后,使用make命令编译了两次都出错,之后我换成了make STANDALONE=y就可以了,如果大家也遇到编译失败的情况,也可以尝试使用make STANDALONE=y试一下。

   然后我们需要将工具的bin文件添加到我们的系统目录当中,根据提示我们键入下面的语句就可以。

   之后我们回到我们的micropython目录当中,按照microPython的esp8266下面的README.md文件中的说明就可以。
   首先先更新一下我们的需要用到的子模块内容。
   在micropython的目录下面键入git submodule update --init即可完成这个工作。
   完成之后我们进入esp8266的目录下执行make就可以编译我们的固件了,第一步的话要先执行make axtls,完成之后在使用make命令,几分钟就可以完成这个工作了,之后我们就得到我们的固件啦。
我们可以找到一个名为firmware-combined.bin的文件,这个就是我们的固件啦。



   那么接下来我们就需要知道如何下载这个固件到我们的esp8266当中去,我们可以在我们的adafait的页面中我们可以看到下载的方法,在Linux底下我们可以使用我们的esptool.py这个工具,在windows底下我们就可以直接使用一个图形化工具啦!
   网址如上,可以直接下载到。

   他们已经给出了很详细的下载方法我们这里大概说明一下。打开之后我们选择Config,然后点击红色方框中的图标。

   之后选择我们的固件。打开。

   完成之后如下图。起始地址0x0000,不做改变。

   回到我们的Operation。应该是会自动检测到你的芯片串口号,没有的话就自己选择一下。

   点击Flash就可以开始下载了。

   完成之后就有一个绿色的勾。

   接下来我们就可以使用我们的板子啦!!!
   打开我们的secureCRT,或者你用putty也是可以的哈,串口助手的话就算了,没有那么好的交互性,用起来不是那么方便。推荐前面两个工具。

   点击之后我们得到,修改成如下图,选择串口,端口就看自己电脑可能不同,波特率为115200,数据位8位,停止位1位,没有校验位。点击Connect就可以了。

   之后我们就进入了,但是敲了几个会出没有反应,会有一点bug。

   我们按板子的复位键。(可能多按几次复位)之后我们得到下图就可以啦。(因为我之前连过我的wifi,他会有一个记录,所以这里一开机它就自动连接WiFi了)。同时也可以看到我们的固件时间,是2016-06-07.也就是我们刚刚编译成功的固件。

   今天就写到这里啦,然后就可以用python来操作我们的esp8266啦啦啦啦。
   下次我们来谈谈怎么用这个东西咯。

相关文件下载:
2016.06.07ESP8266固件.rar (308.14 KB, 下载次数: 121)
building-and-running-micropython-on-the-esp8266.pdf (951.8 KB, 下载次数: 138)
nodemcu-flasher-master.zip (6.25 MB, 下载次数: 91)

最新回复

写的太好了  谢谢  详情 回复 发表于 2017-11-15 21:33
点赞 关注(6)
 
 

回复
举报

5219

帖子

239

TA的资源

管理员

推荐
 
太好了,记得网友@fly928sky 想了解这方面的内容
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

恩呢!  详情 回复 发表于 2016-6-12 10:45
 
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 
非常详细的教程。

点评

谢谢!还是要感谢你给大家带来的micropython呢!  详情 回复 发表于 2016-6-12 10:45
 
 
 

回复

1158

帖子

2

TA的资源

版主

4
 
nmg 发表于 2016-6-12 08:59
太好了,记得网友@fly928sky 想了解这方面的内容

恩呢!
 
 
 

回复

1158

帖子

2

TA的资源

版主

5
 
dcexpert 发表于 2016-6-12 09:18
非常详细的教程。

谢谢!还是要感谢你给大家带来的micropython呢!

点评

本来预备这几天写ESP8266的教程,没有想到你已经发了,我可以偷懒了。  详情 回复 发表于 2016-6-12 12:30
 
 
 

回复

1万

帖子

25

TA的资源

版主

6
 
michael_llh 发表于 2016-6-12 10:45
谢谢!还是要感谢你给大家带来的micropython呢!

本来预备这几天写ESP8266的教程,没有想到你已经发了,我可以偷懒了。

点评

人多力量大  详情 回复 发表于 2016-6-12 15:31
哈哈,共同分享!esp8266还有一些问题没有解决  详情 回复 发表于 2016-6-12 13:02
 
 
 

回复

1158

帖子

2

TA的资源

版主

7
 
dcexpert 发表于 2016-6-12 12:30
本来预备这几天写ESP8266的教程,没有想到你已经发了,我可以偷懒了。

哈哈,共同分享!esp8266还有一些问题没有解决
 
 
 

回复

2万

帖子

71

TA的资源

管理员

8
 
dcexpert 发表于 2016-6-12 12:30
本来预备这几天写ESP8266的教程,没有想到你已经发了,我可以偷懒了。

人多力量大
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(初级)

9
 
很详细 不错呀

点评

谢谢支持!!  详情 回复 发表于 2016-6-13 15:13
 
 
 

回复

940

帖子

0

TA的资源

纯净的硅(高级)

10
 

谢谢,手里刚好有这个小板子,试试看。

点评

恩呢!等你测试看看哈  详情 回复 发表于 2016-6-13 12:46
 
 
 

回复

1158

帖子

2

TA的资源

版主

11
 
wgsxsm 发表于 2016-6-13 08:19
谢谢,手里刚好有这个小板子,试试看。

恩呢!等你测试看看哈

点评

上午测试了一上午,没发现固件有什么BUG 我是跟着官方提供的例子一步步做的  详情 回复 发表于 2016-6-13 14:51
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

12
 
不错不错 。如果可以 把现在的蓝牙模块串口模块换掉了 。基本是天天断的还连不上。

点评

恩?蓝牙串口模块?  详情 回复 发表于 2016-6-13 15:13
 
 
 

回复

940

帖子

0

TA的资源

纯净的硅(高级)

13
 
michael_llh 发表于 2016-6-13 12:46
恩呢!等你测试看看哈

上午测试了一上午,没发现固件有什么BUG
我是跟着官方提供的例子一步步做的

点评

有一个问题就是没有像pyboard的一个文件系统,能够拷贝main.py进去从而实现开机就运行这个代码,只能通过终端代码输入,看了下官方没有具体说明这个的解决办法。目前好像只能重新编译固件才行  详情 回复 发表于 2016-6-13 15:11
 
 
 

回复

1158

帖子

2

TA的资源

版主

14
 
wgsxsm 发表于 2016-6-13 14:51
上午测试了一上午,没发现固件有什么BUG
我是跟着官方提供的例子一步步做的

有一个问题就是没有像pyboard的一个文件系统,能够拷贝main.py进去从而实现开机就运行这个代码,只能通过终端代码输入,看了下官方没有具体说明这个的解决办法。目前好像只能重新编译固件才行

点评

目前官方提供的解决方案是通过webrepl,连接上后,可以通过里面的wenrepl_cli上传下载文件,有点麻烦。 我们正在做一个方便传文件的小工具。  详情 回复 发表于 2016-6-14 12:57
是的,我正想问呢,没有虚拟U盘。 有几个例子无法进行测试  详情 回复 发表于 2016-6-13 15:32
 
 
 

回复

1158

帖子

2

TA的资源

版主

15
 
p0we7 发表于 2016-6-13 14:22
不错不错 。如果可以 把现在的蓝牙模块串口模块换掉了 。基本是天天断的还连不上。

恩?蓝牙串口模块?
 
 
 

回复

1158

帖子

2

TA的资源

版主

16
 

谢谢支持!!
 
 
 

回复

940

帖子

0

TA的资源

纯净的硅(高级)

17
 
michael_llh 发表于 2016-6-13 15:11
有一个问题就是没有像pyboard的一个文件系统,能够拷贝main.py进去从而实现开机就运行这个代码,只能通过 ...

是的,我正想问呢,没有虚拟U盘。
有几个例子无法进行测试

点评

现在的解决办法只有这样了,能力不够,后面看看有没有什么解决办法  详情 回复 发表于 2016-6-13 16:36
 
 
 

回复

1158

帖子

2

TA的资源

版主

18
 
wgsxsm 发表于 2016-6-13 15:32
是的,我正想问呢,没有虚拟U盘。
有几个例子无法进行测试

现在的解决办法只有这样了,能力不够,后面看看有没有什么解决办法
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

19
 
michael_llh 发表于 2016-6-13 15:13
恩?蓝牙串口模块?

我哪个不是跑python 的只是一个普通的,用串口控制的蓝牙模块 。用起来问题太多。
 
 
 

回复

1万

帖子

25

TA的资源

版主

20
 
michael_llh 发表于 2016-6-13 15:11
有一个问题就是没有像pyboard的一个文件系统,能够拷贝main.py进去从而实现开机就运行这个代码,只能通过 ...

目前官方提供的解决方案是通过webrepl,连接上后,可以通过里面的wenrepl_cli上传下载文件,有点麻烦。

我们正在做一个方便传文件的小工具。

点评

恩,期待  详情 回复 发表于 2016-6-14 13:47
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表