ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Ubuntu 开发ESP8266 详细过程

2021-06-06 21:33:02  阅读:226  来源: 互联网

标签:详细 ESP8266 1833170 png 模块 Ubuntu 固件 下载


1、流程基本介绍

一句话总结:通过下载NodeMCU固件到ESP8266,基于固件库可以有很多强大的功能解决具体的问题。

实际上不止这一种方式可以实现,但个人认为上述方式具有较强的灵活性,同时也比较简单方便。

这里面需要注意的是,ESP8266需要通过USB模拟串口实现程序下载和通信功能,因此针对特定的下载器电脑上需要安装专门的linux驱动。

ESP8266的工作模式主要包括:

AP模式:ESP8266 模块作为热点,手机或电脑直接与模块连接,实现局域网无线控制。

![1833170-20191031221714722-1064865844.png][1]

Station模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。
Station+AP模式:上述两种模式并存。

![1833170-20191031221728823-1538677652.png][2]

2、硬件需求

主要是USB适配器和ESP8266模块,在网上买现成的即可,下面是可以直接链接的模块。

CH340 USB适配器

![1833170-20191211213734693-1676877633.png][3]

ESP8266 模块(ESP01)

![1833170-20191211213551271-403084958.png][4]

下面是ESP8266模块的电路图,目前采用的这种小模块只引出了部分针脚,还有一种是所有都引出来了的。

![1833170-20191211211822924-94440310.png][5]

![1833170-20191212220915784-553498370.png][6]

3、开发工具

1.linux下USB下载器的的驱动,CH341SER_LINUX
驱动下载地址 http://www.wch.cn/downloads/CH341SER_LINUX_ZIP.html

2.ESP8266固件下载工具, esptool
下载地址 https://github.com/espressif/esptool

3.ESP8266固件库调试工具,ESPlorer,大部分开发工作将在这个工具下开展,采用的开发语言是LUA
开发ESP8266过程中所需要用到的LUA编程比较简单,稍微熟悉一下即可应用
下载地址 https://github.com/4refr0nt/ESPlorer
这个工具基于java开发,所以需要安装linux下的java模拟器

  1. ESP8266固件库,NodeMCU,这个固件库提供了很多基础模块,可以使得开发过程更为简单便捷
    下载地址 https://nodemcu-build.com/

下面是目前模块的截图

![1833170-20191211215653933-1911567999.png][7]

4、主要流程

完成上述准备工作后,即可利用ESP8266模块进行调试

实际上上述开发工具安装过程中可能会出现一些问题,需要针对具体的问题进行仔细分析,然后找出解决方法

我当时在安装USB下载器驱动过程中就遇到了一些问题,来回折腾了好久才调试好,可能是我的那个下载器本身有些问题,有时候就连接不上了,需要拔下来重新上电才能正常工作

- 第一步,生成并下载NodeMCU固件库

NodeMCU是一个面向ESP8266开发的开源固件库,其中包含了很多可选择的组件,可以实现一些网络功能和传感器接口

其中ADC模块用于操作ESP8266内置的ADC,GPIO模块用于IO借口操作,WIFI模块是这里面的核心功能,还有其他的一些模块在这里就不一一介绍了,可以查阅NodeMCU的文档,里面都有详细的介绍

需要注意的是,选的模块功能越多则需要的存储空间越大,因此应尽量只选择与后续需求相对应的模块,上面那个图是我所选择的一些基本模块

填入自己的邮箱并选择好之后就可以点击最下面的生成按钮,这样选择好的固件库就会发送到相应的邮箱中,稍等片刻就可以在邮箱中下载生成的固件库

![1833170-20191211221307219-1446760557.png][8]

选择是否启用LSF,可以使lua程序存储在flash中,从而能够释放更多的RAM,此外还有一些其他的选项,用于调节固件库的特性,具体可以参考相关的说明

邮箱中将会收到两个版本的固件,分别是浮点型和整型,尽管整型占据的RAM更少,但一般为了使用方便推荐使用浮点型

- 第二步,将固件库下载到ESP8266中

连接好下载器和ESP8266模块后,即可使用下面的命令下载固件

esptool.py --port <serial-port-of-ESP8266> --baud <baud-rate> write_flash -fm <flash-mode> 0x00000 <nodemcu-firmware>.bin

是虚拟串口的名称,可以采用下面的命令查询,我的是/dev/ttyUSB0

ls -l /dev/ttyUSB*

是波特率,默认值是115200,也可以不填
.bin 是固件文件的名称
因此,具体的命令如下

esptool.py --port /dev/ttyUSB0 write_flash 0x0000 桌面/nodemcu_integer.bin

下载过程中需要使得GPIO0为低电平,一直保持即可(与RST无关),若一直显示连接也可以硬重启一次(拉低RST,GPIO对面那个针脚)

![1833170-20191212212434008-306009131.jpg][9]

如果没有拉低GPIO0,则会出现如下一直链接的状态

![1833170-20191212220725167-341634218.png][10]

如果下载成功的状态如下

![1833170-20191212220641245-458613800.png][11]

- 第三步,使用ESPlorer调试ESP8266

通过下面的命令打开ESPlorer ,后面的路径是我下载后保存ESPlorer的路径

sudo java -jar 下载/ESPlorer/ESPlorer.jar

打开后的界面如下

![1833170-20191212221129547-1231733048.png][12]

点击Open即可完成连接,选择波特率为115200(这里波特率选择可能需要和此前固件下载时的波特率保持一致,这样才能正常通信)

然后,可以点击右下的Chip info 或Chip ID 查看芯片的信息,连接成功后的界面如下,相关信息可以正常显示

![1833170-20191212221455879-1293397406.png][13]

在上述工具中,不同按钮中的save有所不同,上面的save是指文件的保存,下面的save是指ESP程序的保存

send只是执行代码,断电或硬重启后代码就会失效,save则可以将代码保存在ESP中

可以通过右侧的Format按钮清除ESP中的代码,FS info 查看ESP存储空间的使用情况

Reload 则可以查看已经保存在ESP中的代码情况

- 第四步,下载程序到ESP8266中

通过上面的准备工作,就可以将写好的代码下载到ESP8266中

wifi.setmode(wifi.STATIONAP)
cfg={}
cfg.ssid="TEST"
cfg.pwd="12345678"
wifi.ap.config(cfg)  

运行后可以发现名称为TEST的WIFI热点

总结

esptool.py --port --baud write_flash -fm 0x00000 .bin

标签:详细,ESP8266,1833170,png,模块,Ubuntu,固件,下载
来源: https://blog.csdn.net/gitdive/article/details/117636803

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有