收藏官网首页
查看: 98020|回复: 24

[经验分享] 从小白一步步走来,ESP8266模块使用,环境搭建,编译和烧录

16

主题

67

帖子

1113

积分

金牌会员

Rank: 6Rank: 6

积分
1113
QQ
发表于 2017-5-12 11:12:22 | 显示全部楼层 |阅读模式
教您5分钟接入机智云,实现傻瓜式开发
本帖最后由 彩色笔 于 2017-9-22 15:35 编辑

      经过一阵子的捣浆糊,无数次的迷茫,困惑,终于慢慢看到点希望的曙光。网上的资料很多,但都不系统,讲地也不详细,一半靠努力学,一半靠悟。阻挡了很多菜鸟的进步,我现在把我的经验分享出来,希望少点痛苦多点成就感。
      学习这个主要分两大块,第一块,是APP端建立,第二块是MCU端建立。以下文章是从MCU端建立来说的。
      MCU端建立又分为SOC程序建立和单片机程序建立。前者是利用esp8266本身来写,优点是少了单片机,体积更小,成本更低。缺点是入门得化了半月一月的,端口资源也少。  如果利用自己熟悉的单片机来开发进度就快多了,这就是后者单片机端的建立。 优点是自身熟悉,操作流畅,端口资源丰富,缺点就是体积和成本都要增加。需要ESP8266+MCU,MCU建议有采用有两个串口的。
   
     开始我们学习之路吧。
   
第一章 ES8266 WIFI模块开发环境搭建  
       本人有开发单片机的基础,但对于WIFI智能模块需要用到的软件是小白一枚,这几天看了安信可和机智云的开发教程,很多细节都没写清楚,走了许多转路,针对学习中遇到的痛苦经历,以及官方资料不详尽,本人把这些写下来一则备忘,二则为了和我同样的小白们少浪费些时间。
      选择安信可的AiThinker_IDE的原因是,它不需要搭建linux和虚拟机,非常方便。解压后在windows环境下直接就能用。现在支持XP,win7了。
第一步,如何安装安信可一体化开发环境
   ESP8266 SKD的开发环境有很多,官方的开发环境配置比较复杂,这里介绍使用安可信出品的集成开发环境ESP8266 IDE,其实就是eclipse集成了相关的开发插件,用起来还是挺方便的。
安信可一体化开发环境有以下特点:
·         支持ESP8266 NONOS和FreeRTOS环境开发
·         支持ESP31B/ESP32 FreeRTOS环境开发
·         下载即用,无需另外配置环境
·         可直接编译所有乐鑫官方推出的SDK开发包
下载地址:http://pan.baidu.com/s/1skRvR1j  (百度云盘)    下载红框内的最新版本。其它的老版本不用下了。
已更新支持 XP 支持ESP32 支持OpenOCD 支持GCC 5.2版本

01.png
        解压后: 02.jpg
       双击AiThinkerIDE_V0.5_setup安装程序,选择一个解压目录,默认是D盘。我在D盘新建个文件夹“WIFI_ESP8266”,这里要注意文件夹名称不要有中文和空格和小数点,要不后面编译程序时不会成功。
03.jpg
解压完成后,打开目录
04.jpg
下面以个名字了解下,其中安信可的AiThinker_IDE.exe将一些烦琐的步骤简化了。

文件名
描述
备注
Cygwin.execygwin和xtensa编译器环境含ESP8266 和 ESP31B/ESP32 开发环境
Eclipse.exeeclipse c/c++ 开发工具,仅在官网版本基础上打包了jre运行环境本机已经安装 eclipse cdt 环境的的无需重复下载
AiThinker_IDE.exe一体化开发环境配置工具


---------------------------------------------------------------------------------------------------------------------------------


开始整合编译环境
第一步:双击这个 01.jpg

第二步:先点击“Dafult”按钮,将用到的程序自动关联起来。然后点击“Save”保存设置。
02.jpg

步骤2:运行
03.jpg

04.jpg


第二章 如何使用安信可 ESP 系列一体化开发环境  
        以导入一个SDK为例,按官方的步骤有问题,反正我没成功。我总结了一下,有两种导入方式有些差别:
第一种,当File->Import弹出对话框后,选“General”里的"Existing Projects into Workspace" 导入。第二种,选"C/C++"里的"Existing Code as Makefile Project"  导入。当第一种导入不成功时,可尝试用第二种导入。机智云生成的SDK都是用第二种方法导入的。网络上eclipse大都用的第一种,为什么这样我没有去深究,我觉得还是先学好怎么用吧。

      两种方法的共同点是,所需的项目文档一定要导入AiThinkerIDE_V0.5\cygwin\home\aithinker\project文件夹,这个文件夹类似eclipse官方资料常提到的workspace文件夹,否则编译不成功,不成功,不成功(重要的事说三遍)。这一步卡了我三天,谁让我是小白呢,下面我按我的流程详细写下来备忘。

      安信可IDE安装好后,已经给我们准备好了打开的快捷方式。我们打开刚才解压缩的"AiThinkerIDE_V0.5"文件夹,可以看到有个“OpenWorkSpace" 批处理文件。双击打开,会自己定位到所要导入的文件夹,该文件夹内,就是已经导入好的项目SDK。
    00.jpg
先说第一种导入方式:以安信可官方下载的SDK为例
   步骤1:双击打开AiThinker_IDE。“File”->"Import"。项目栏里右击选择“Import”也可以。

    000.jpg

步骤2:选择“General”->"Existing Projects into Workspace"   点击“next”。
01.jpg
步骤3:如图,选择桌面上解压好的的esp8266_nonos_sdk_v1.5.4文件夹。下面又要注意了,文件夹名称不能有小数点,不能是中文名,并且将“Options”栏里,"Copy projects into workspace",前打勾。意思是将该文件夹复制进文章开头提到的project文件夹内。一定要打勾,否则编译又是不成功!不成功!不成功!。
   就是该项目文件夹一定要放到AiThinkerIDE_V0.5\cygwin\home\aithinker\project文件夹内。可以自己手动复制,也可以让软件自己复制。
    废话多一点,自己多注意点。



    如果出现这种样子,就是文件夹内有同名文件了。
02.jpg
       由于程序默认已加载了“ESP8266_NONOS_SDK”,跟我们现在要导入的文档是一样的,重复了,所以要把以前的删除。按下“del”键,或者右键单击,选择“Delete”。
03.jpg
      在弹出的对话框内如下图,将“Delete project contents on disk......”前打上勾。然后点击OK。就将项目名称连同workspace文件夹内的文档全部删除了。
       004.jpg
         01.jpg


       重新按以上步骤导入下,成功后,先选择“clean project”,防止出错。然后再右键单击选择“bulid project”或者工具栏上的那个小锤子。
       02.jpg


       03.jpg
OK,开始编译。完成后,如下图
04.jpg

    第二种导入方式,针对第三方云平台项目用第一种方法无法导入问题。例如“机智云”生成的项目文件夹。
步骤1:解压从机智云下载的项目并复制到project文件夹内。双击"OpenWorkSpace"批处理文件,自动打开。简化步骤


01.jpg
步骤2:将项目手动复制进去。下图选中的就是我刚才复制的项目文件夹。
02.jpg
步骤3:双击打开该文件夹,直到定位到有“MakeFile”的文件夹处。并复制文件路径,到安信可IDE内用。注意路径上有文件名,不能出现中文。

03.jpg
步骤4:双击打开AiThinker_IDE。“File”->"Import"。图略了。

步骤5:双击下图的“Existing Code as Makefile Project
04.jpg
步骤6:将刚才复制的路径直接粘贴到“Existing Code Location”处,省地点“Browse”按钮一层层找了。下面选"Cygwin GCC"。 点“Finish”。
05.jpg

导入成功,但还有些地方需要修改,否则编译不成功。我是从机智云论坛上看来的,目前我还没整明白。就是双击打开MakeFile,将下面这段程序参数修改下。

BOOT?=none
APP?=0
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=0
改成

BOOT?=new
APP?=1
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=6

boot赋值为new,意思就是可以升级

APP 赋值为1,就可以生成user1的bin 文件  如果需要OTA云端升级,就要用到user2文件,只要在这里将APP值赋为2就行了。


SPI_SPEED是下载的速度

SPI_MODE是下载模式

SPI_SIZE_MAP是flash的大小这个可以看上面那个文档详细介绍 赋值为0表示使用的flash是512k

有一处没搞清楚,安信可官方的SPI_SIZE_MAP?=2  机智云论坛上的那位大神是SPI_SIZE_MAP?=4,而下面有位版主说要改成SPI_SIZE_MAP?=6  反正都能编译成功。

具体可以查看这人的文章     http://blog.csdn.net/chen244798611/article/details/51375337


试验了下。

编译后生成的bin文件名称不同。看user1.1024.new.2.bin那行。

SPI_SIZE_MAP?=2  Flash容量是1024Kb


01.jpg
SPI_SIZE_MAP?=4 文件名:user1.4096.new.4.bin   SPI_SIZE_MAP?=6  文件名user1.4096.new.6.bin     Flash容量为4096Kb没有改变。 机智云SDK生成的文件名是user1.4096.new.6.bin  故我们先写成SPI_SIZE_MAP?=6

02.jpg




第三章 烧录
       关于烧录方面,这里提一下。烧录文件在项目文件bin/upgrade 文件夹内,文件格式是.bin。烧录地址是后面的0x01000。
软件:ESPFlashDownloadTool_v3.4.4   在安信可官方也可以下载到,搜文件名。


烧录前先讲些基本知识。
软件编译好后,烧录文件为bin格式的文件。例如:boot.bin  和 user1.512.new.4.bin按生成的地址为准。

设置好以后 我们可以看看编译的结果如下

从这里可以看到 boot的开始地址是0x00000 支持的版本必须要1.2版本或以上版本

01.jpg

02.jpg






第一步:软件解压后双击运行,选择"ESP8266 DownloadTool"
01.jpg
第二步:我在桌面建立了个“烧写文件”文件夹,里面放着每次要烧录的文件。
02.jpg



以机智云gokit3串口烧录为例
上面方式一的bin文件,还要加上 esp_init_data_default.bin  blank.bin  boot.bin才行。并且地址要写正确,按下图中地址来写。如下图:



     如果要生成那种单个文件,地址是0x00000的。类似方式二这种。




需要在方式一的基础上,点击烧录软件里的“CombineBin”按钮生成。生成在烧录软件的“combine”文件夹内。
03.jpg

关于烧录,最后讲一点,机智云 Gokit3  SOC开发时,板子上的CP2102 USB转串口模块是不能烧录的。如下图白色USB线连接的,只能用来向电脑端串口传送数据,波特率是115200

IMG_20170511_181618.jpg
IMG_20170511_214520.jpg
IMG_20170512_093157.jpg
IMG_20170512_093256.jpg
IMG_20170512_093317.jpg
01.jpg

15

主题

116

帖子

1244

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1244
发表于 2017-8-21 20:39:33 | 显示全部楼层
步骤3:如图,选择桌面上解压好的的esp8266_nonos_sdk_v1.5.4文件夹。下面又要注意了,文件夹名称不能有小数点,不能是中文名,并且将“Options”栏里,"Copy projects into workspace",前打勾。意思是将该文件夹复制进文章开头提到的project文件夹内。一定要打勾,否则编译又是不成功!不成功!不成功!。      esp8266_nonos_sdk_v1.5.4这个文件在哪里下载?

点评

吃过这个中文名字的亏,但小数点是可以的  发表于 2017-10-14 18:12
版主个人创立的QQ群:84225043,涉及 机智云, oneNET等平台,期待你的加入。

560

主题

1219

帖子

7876

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7876
发表于 2017-5-12 11:23:46 | 显示全部楼层
图片都被屏蔽了 [大哭]
1、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-kit
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

1

主题

6

帖子

72

积分

注册会员

Rank: 2

积分
72
发表于 2017-5-31 15:47:00 | 显示全部楼层
标记一下,给楼主32个赞

0

主题

6

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2017-6-22 14:49:16 | 显示全部楼层
教您5分钟接入机智云,实现傻瓜式开发
楼主,你编译出来的user1.4096.new.4.bin文件是没有下载进去吗。。。我试着这样烧写,串口是打印乱码的,大神指导指导

点评

[attachimg]12374[/attachimg] 换波特率看看 74880  详情 回复 发表于 2017-6-29 14:33

16

主题

67

帖子

1113

积分

金牌会员

Rank: 6Rank: 6

积分
1113
QQ
 楼主| 发表于 2017-6-29 14:33:13 | 显示全部楼层
蛋炒饭 发表于 2017-6-22 14:49
楼主,你编译出来的user1.4096.new.4.bin文件是没有下载进去吗。。。我试着这样烧写,串口是打印乱码的,大 ...

001.jpg
换波特率看看 74880

0

主题

14

帖子

270

积分

中级会员

Rank: 3Rank: 3

积分
270
发表于 2017-7-30 20:20:09 | 显示全部楼层
系列教程,太棒了!

1

主题

27

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
发表于 2017-7-31 22:11:28 | 显示全部楼层
請問樓主~~我使用的是ESP8266 01S
想做出一個SOC方案,如帖子所述操作,利用機智雲自動生成代碼,  
1.png
再使用 AiThinkerIDE_V0.5進行編譯
  
2.png

也都得到下列文件
3.烧录固件
  esp_init_data_default.bin          0x3fc000
  blank.bin                          0x3fe000
  boot_v1.6.bin                      0x00000
  user1.4096.new.6.bin               0x01000

並按照檔案中的 readme位置燒寫
其中 燒寫設定如下:官網確定ESP8266 01S 為8Mbit  
   3.png
但是為何編譯完成後,串口一直出現打印訊息??? ((藍燈恆亮))
無法理解哪個環節有誤 ??
還請大神們 指教如何操作?

点评

不是应该选择使用那个什么来着,32MBit-C1吗?  详情 回复 发表于 2017-8-22 10:25

15

主题

116

帖子

1244

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1244
发表于 2017-8-22 10:25:54 | 显示全部楼层
教您5分钟接入机智云,实现傻瓜式开发
DCLED 发表于 2017-7-31 22:11
請問樓主~~我使用的是ESP8266 01S
想做出一個SOC方案,如帖子所述操作,利用機智雲自動生成代碼,  

不是应该选择使用那个什么来着,32MBit-C1吗?

点评

現在我知道了~01S flash 小太 刷不進去!  详情 回复 发表于 2017-8-22 11:05
版主个人创立的QQ群:84225043,涉及 机智云, oneNET等平台,期待你的加入。

1

主题

27

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
发表于 2017-8-22 11:05:17 | 显示全部楼层
Xuperfect 发表于 2017-8-22 10:25
不是应该选择使用那个什么来着,32MBit-C1吗?

現在我知道了~01S flash 小太 刷不進去!

点评

应该是吧,那个的确太小了  详情 回复 发表于 2017-8-22 15:32

15

主题

116

帖子

1244

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1244
发表于 2017-8-22 15:32:31 | 显示全部楼层
DCLED 发表于 2017-8-22 11:05
現在我知道了~01S flash 小太 刷不進去!

应该是吧,那个的确太小了
版主个人创立的QQ群:84225043,涉及 机智云, oneNET等平台,期待你的加入。

2

主题

25

帖子

653

积分

高级会员

Rank: 4

积分
653
发表于 2017-12-6 11:06:19 | 显示全部楼层
标记一下,给楼主32个赞

0

主题

6

帖子

339

积分

中级会员

Rank: 3Rank: 3

积分
339
发表于 2017-12-11 14:16:30 | 显示全部楼层
为什么按照你的来编译出来是这样的 !!! No boot needed. Generate eagle.flash.bin and eagle.irom0text.bin successully in folder bin. eagle.flash.bin-------->0x00000 eagle.irom0text.bin---->0x40000 !!! make[1]: Leaving directory '/home/aithinker/project/MiniE_Test/app'

10

主题

24

帖子

334

积分

中级会员

Rank: 3Rank: 3

积分
334
发表于 2018-1-11 13:14:45 | 显示全部楼层
注册成为机智云开发者,手机加虚拟设备快速开发
楼主为什么我编译之后找不到BOOT.bin 另几个 可以找到

0

主题

8

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2018-2-25 21:29:58 | 显示全部楼层
夕末丨残阳 发表于 2017-12-11 14:16
为什么按照你的来编译出来是这样的 !!! No boot needed. Generate eagle.flash.bin and eagle.irom0text.bi ...

BOOT?=new
APP?=1

修改这2个值,保存,再编译,就会出来这个文件夹了

0

主题

1

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2018-3-6 23:59:04 | 显示全部楼层
楼主请问一下为什么我在Windows下烧录完总是一直不断重复在打印下图的那些信息,还有一张图是我的烧录选项,几个flash size都试了一样的,我用的是esp8266-07,flash大小是8M,不过我在Linux下烧写完运行就是好的,不知道是什么原因。
2.png
1.png

0

主题

5

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2018-4-27 07:37:38 | 显示全部楼层
楼主请教一下使用安信可 ESP 系列一体化开发环境 中文注释乱码有解决方法么?

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2019-4-10 12:03:29 | 显示全部楼层
校园创客福利
大佬 你好 , 能留下您得QQ吗?有点小问题想询问您~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2022 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表