一、认识 ESP-01 和 ESP-01S 区别
这里并不是为了带货写文章,太多人在群里问这个问题了,单纯想把这个文章分享出来给大家参考;
ESP-01 和 ESP-01S 都是安信可官方出品的,这里贴下对其主要的区别:
ESP-01S 在电路设计上已经把 GPIO0、RST和En 引脚上拉,而 ESP-01 没有;
ESP-01S 天线区域右下角只有一个指示灯,ESP8266-01天线区域右下角有两个指示灯。
ESP-01S背面有引脚说明,ESP-01背面有没有引脚说明。
二、调试接线
因为其的用途主要是给自有MCU单片机通讯连接单片机,所以很少有人用它二次开发,可能烧录固件会考虑到其的接线,这里不再贴接线方式了,而我目前用的是 ESP-plog 连接器,这里再贴下其介绍链接:ESP-Prog 下载与调试板介绍,不仅仅可以有自动下载功能,还可以对 ESP32 断点调试哦!
三、搭建环境和编译
3.1 环境搭建
找到OTA升级的工程, examples/system/ota/native_ota/1MB_flash/new_to_new_no_old,之后我们面板设置他的下载方式:
1、配置为 1M flash:
2、SPI模式 配置为 DOUT:
3、波特率改为 230400 ,可以提高下烧录速度!
烧录配置如图所示:
4、配置远程
3.2 编译
1、 第一次跑3.3分支,请先擦一下模块, make flash,再编译:make ota生成固件!这时候,会生成四个固件:ota.ota.bin、ota.app1.bin、ota.app2.bin 和 ota.bin ;
其关系为:
ota.app1.bin != ota.app2.bin != ota.ota.bin
ota.ota.bin = ota.app1.bin + ota.app2.bin
2、烧录 make flash 或者 用烧录工具这样烧录
3.3 开启本地web服务器
为了方便调试,我们可以用Python开启一个本地服务器,端口号为 8070 :
python -m SimpleHTTPServer 8070 如下截图所示,可看到开启成功,并且得到局域网的地址 :192.168.31.48 ,这个是局域网内访问的本机设备,您在开发时候,你的电脑主机也会有所不同,请务必注意!
我们需要把每次编译生成的 ota.ota.bin 固件放在web服务器即可,这里我编译了2个版本的固件(ota_v1.bin和ota_v2.bin),并在打印上每个固件的版本,以区别是否远程升级成功。
我们测试下web服务器是否开启成功?我们用手机加入本地局域网,之后用手机浏览器打开上述的IP地址和端口号:192.168.31.48:8070, 发现可以访问不报错即可!
这时候,我们开始在源码修改下 web 服务器的配置,然后再 make ota 生成2个固件,放在web服务器里面,就如下图所示了:
放置2个固件之后,再用手机浏览器访问。
3.4 现象
首次上电,打印版本号为 version - 1.0 ,之后连接路由器,请求文件升级!来回升级哈哈!
四、FAQ 笔记
1、这个OTA的升级原理是什么?
命令“ make ota”将生成3个固件:“ xxx(项目名称).app1.bin”,“ xxx(项目名称).app2.bin”和“ xxx(项目名称).ota.bin”。您仅应将“ xxx(项目名称).ota.bin”上传到您的OTA服务器,并让应用下载它并且运行。
xxx.app1.bin用于下载到OTA_0分区,xxx.app2.bin用于下载到OTA_1分区。如果ESP8266的闪存大于“ 1 MB”,或者您选择了“复制OTA”功能,则xxx.app1.bin = xxx.app2.bin = xxx.ota.bin 。
否则,如果主板的闪存大小为1 MB,而您未选择“复制OTA”功能,则 xxx.app1.bin != xxx.app2.bin!= xxx.ota.bin,xxx.ota.bin = xxx.app1.bin + xxx.app2.bin。
因此,ESP8266的falsh大小配置对于OTA升级非常重要。
基于以上理论,我们可以看到对于ESP8266 + 2MB flash(或更大),app1和app2相同,可以直接下载而不用区别。但是对于ESP8285(ESP8266 + 1MB闪存),ota0(app1)和ota1(app2)是不同的,您需要在FOTA期间区分应该下载哪一个,并将其下载到哪个位置。
现在,示例代码中的方法是将app1和app2合成为“ xxxx(项目名称).ota.bin”。FOTA时,根据下载位置,仅将目标应用程序(app1或app2)写入闪存;而另一部分将被丢弃。
2、连接web服务器失败?
检查您的PC是否可以通过IP ping ESP8266,并确保menuconfig中的IP,AP和其他配置设置正确。如果您的web服务器是在外网,请检查是否允许ip地址访问?检查PC上是否有阻止进入连接的防火墙软件。
一、认识 ESP-01 和 ESP-01S 区别
这里并不是为了带货写文章,太多人在群里问这个问题了,单纯想把这个文章分享出来给大家参考;
ESP-01 和 ESP-01S 都是安信可官方出品的,这里贴下对其主要的区别:
ESP-01S 在电路设计上已经把 GPIO0、RST和En 引脚上拉,而 ESP-01 没有;
ESP-01S 天线区域右下角只有一个指示灯,ESP8266-01天线区域右下角有两个指示灯。
ESP-01S背面有引脚说明,ESP-01背面有没有引脚说明。
二、调试接线
因为其的用途主要是给自有MCU单片机通讯连接单片机,所以很少有人用它二次开发,可能烧录固件会考虑到其的接线,这里不再贴接线方式了,而我目前用的是 ESP-plog 连接器,这里再贴下其介绍链接:ESP-Prog 下载与调试板介绍,不仅仅可以有自动下载功能,还可以对 ESP32 断点调试哦!
三、搭建环境和编译
3.1 环境搭建
找到OTA升级的工程, examples/system/ota/native_ota/1MB_flash/new_to_new_no_old,之后我们面板设置他的下载方式:
1、配置为 1M flash:
2、SPI模式 配置为 DOUT:
3、波特率改为 230400 ,可以提高下烧录速度!
烧录配置如图所示:
4、配置远程
3.2 编译
1、 第一次跑3.3分支,请先擦一下模块, make flash,再编译:make ota生成固件!这时候,会生成四个固件:ota.ota.bin、ota.app1.bin、ota.app2.bin 和 ota.bin ;
其关系为:
ota.app1.bin != ota.app2.bin != ota.ota.bin
ota.ota.bin = ota.app1.bin + ota.app2.bin
2、烧录 make flash 或者 用烧录工具这样烧录
3.3 开启本地web服务器
为了方便调试,我们可以用Python开启一个本地服务器,端口号为 8070 :
python -m SimpleHTTPServer 8070 如下截图所示,可看到开启成功,并且得到局域网的地址 :192.168.31.48 ,这个是局域网内访问的本机设备,您在开发时候,你的电脑主机也会有所不同,请务必注意!
我们需要把每次编译生成的 ota.ota.bin 固件放在web服务器即可,这里我编译了2个版本的固件(ota_v1.bin和ota_v2.bin),并在打印上每个固件的版本,以区别是否远程升级成功。
我们测试下web服务器是否开启成功?我们用手机加入本地局域网,之后用手机浏览器打开上述的IP地址和端口号:192.168.31.48:8070, 发现可以访问不报错即可!
这时候,我们开始在源码修改下 web 服务器的配置,然后再 make ota 生成2个固件,放在web服务器里面,就如下图所示了:
放置2个固件之后,再用手机浏览器访问。
3.4 现象
首次上电,打印版本号为 version - 1.0 ,之后连接路由器,请求文件升级!来回升级哈哈!
四、FAQ 笔记
1、这个OTA的升级原理是什么?
命令“ make ota”将生成3个固件:“ xxx(项目名称).app1.bin”,“ xxx(项目名称).app2.bin”和“ xxx(项目名称).ota.bin”。您仅应将“ xxx(项目名称).ota.bin”上传到您的OTA服务器,并让应用下载它并且运行。
xxx.app1.bin用于下载到OTA_0分区,xxx.app2.bin用于下载到OTA_1分区。如果ESP8266的闪存大于“ 1 MB”,或者您选择了“复制OTA”功能,则xxx.app1.bin = xxx.app2.bin = xxx.ota.bin 。
否则,如果主板的闪存大小为1 MB,而您未选择“复制OTA”功能,则 xxx.app1.bin != xxx.app2.bin!= xxx.ota.bin,xxx.ota.bin = xxx.app1.bin + xxx.app2.bin。
因此,ESP8266的falsh大小配置对于OTA升级非常重要。
基于以上理论,我们可以看到对于ESP8266 + 2MB flash(或更大),app1和app2相同,可以直接下载而不用区别。但是对于ESP8285(ESP8266 + 1MB闪存),ota0(app1)和ota1(app2)是不同的,您需要在FOTA期间区分应该下载哪一个,并将其下载到哪个位置。
现在,示例代码中的方法是将app1和app2合成为“ xxxx(项目名称).ota.bin”。FOTA时,根据下载位置,仅将目标应用程序(app1或app2)写入闪存;而另一部分将被丢弃。
2、连接web服务器失败?
检查您的PC是否可以通过IP ping ESP8266,并确保menuconfig中的IP,AP和其他配置设置正确。如果您的web服务器是在外网,请检查是否允许ip地址访问?检查PC上是否有阻止进入连接的防火墙软件。
举报