• 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板。仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。

1、 Esp8266之 搭建开发环境,开始一个“hellow world”串口打印。
2、 Esp8266之 利用GPIO开始使用按钮点亮你的“第一盏灯”。
3、 Esp8266之 利用 "软件定时器 " 定时0.5秒闪烁点亮一盏LED。
4 、Esp8266之 了解PWM,更为深入地用PWM控制一盏LED的亮度变化。
5 、Esp8266之 原生乐鑫SDK高级使用之封装Post与Get请求云端,拿到“天气预报信息”。
6 、Esp8266之 了解 SmartConfig与Airkiss一键配网,给8266配网上云端。无需把wifi名字密码写在固件里。
7 、Esp8266之 了解 softAP热点配网模式原理,仿“机智云”定义自己的热点配网模式协议。
8、 Esp8266之 你要找的8266作为UDP、TCP客户端或服务端的角色通讯,都在这了。
9、 Esp8266进阶之路: [小实战上篇]Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。
10、 Esp8266进阶之路: [小实战下篇]Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。
11、 Esp8266进阶之路: 8266接入阿里智能,点亮一盏LED灯,期待天猫精灵语音控制的不约而至!
12、 Esp8266进阶之路: 图文并茂学习阿里云主机搭建8266MQTT服务器,实现移动网络远程控制一盏LED。
13、 Esp8266进阶之路: 动手做个8266毕设小案例,smartConfig + MQTT协议轻松实现远程控制一盏LED。
14、 Esp8266进阶之路: esp8266的 FreeRtos系统学习的正确姿势 ------ 环境搭建、烧录。
15、 Esp8266进阶之路: esp8266的 物联网又一股清流,8266接入阿里云平台非阿里智能的SDS服务,点亮一盏LED灯。
16、 Esp8266进阶之路: esp8266的 基于Nonos移植红外线H1838,实现红外遥控器配网,远程控制一盏灯。
17、 Esp8266进阶之路: esp8266自研的快速上电开关五次 (开-关为一次) ,无需按键触发则8266进去一键配网模式。
18、 Esp8266进阶之路: esp8266 基于NONOS 实现 OTA 远程升级,实现无线“ 热修复 ”升级固件程序。
19、 Esp8266进阶之路: esp8266驱动 ds18b20、dht11 温湿度传感器,采集温湿度传感器到服务器。
20、 Esp8266进阶之路: 深入学习esp8266的esp now模式,仿机智云做一个小网关,实现无需网络下轻松彼此连接通讯交互数据。
21、 Esp8266进阶之路: 浅谈 esp8266 如何在本地局域网网络情况下实现最大效率地和前端实现数据交互。
22、 Esp8266进阶之路: esp8266的工程如何添加第三方静态库文件以及如何自定义文件夹,聊聊那些makeFile的事。。
23、 Esp8266进阶之路: 再来一波 esp8266 基于 freeRtos系统连接自己私有的服务器实现OTA远程升级,接触下 lwip的基本知识。。
24、 Esp8266进阶之路: 渗透学习回顾下esp8266的外置spi芯片25q系列,熟悉8266代码块在其的分布,得心应手放置图片或其他资料。
25、 Esp8266进阶之路: 深聊下esp8266的串口 Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串口驱动文件。
26、 Esp8266进阶之路: RTOS分析 MQTT 实现过程,实现移植 MQTT协议在 esp8266 rtos实时系统,可断线重连。
27、 Esp8266进阶之路: 跟紧脚步,用VisualStudio Code开发 esp8266 rtos SDK v3.0版本,全新的 idf 框架,节省内存模块化开发。
28、 Esp8266进阶之路: 教你轻松自如使用cJson在乐鑫 esp8266 如何解析一段json数据以及如何生成一段json数据。
29、 Esp8266进阶之路: 百万条消息免费之乐鑫esp8266使用TCP直连模式MQTT协议接入阿里云物联网平台,支持私家服务器对接支持阿里云规则引擎。
30、 Esp8266进阶之路: 乐鑫esp8266 SDK编程使用 IIC总线驱动 0.96寸的OLED显示屏,显示天气预报信息。
31、 Esp8266进阶之路: 当esp8266遇到 Html,该怎么内置网页控制设备,理清内置网页的实现过程,实现无需路由器手机也可以控制esp8266。
32、 Esp8266进阶之路: 细聊HmacMD5的加密方法带来的安全性,并实践在esp8266上,最大保障传输的过程的信息的安全性。
33、 Esp8266进阶之路: 如何优雅地像乐鑫原厂封装esp8266底层寄存器的逻辑思维,做成自己的静态库库文件,让第三方人使用?
34、 Esp8266进阶之路: 乐鑫esp8266 NONOS SDK 3.0编程使用 SPI 驱动基于Max7219芯片的八位数码管,显示日期信息。
35、 Esp8266进阶之路: 乐鑫esp8266芯片借助机智云平台做一个商业化的七彩RGB灯泡可调整体方案项目,炫彩夺目高大尚。
36、 Esp8266之rtos3.0笔记: 认识esp8266 Rtos 3.0 sdk 工程结构,esp8266如何向esp-idf工程靠近的,如何自定义头文件编译?
37、 Esp8266之rtos3.0笔记: 你要找的基本外设功能都在这里了,包括Gpio、Pwm 和 Uart 接口使用。
38、 Esp8266之rtos3.0笔记: 一篇文章带你搞掂存储技术 NVS 的认识和使用,如何利用NVS保存整型、字符串、数组以及结构体。
39、 Esp8266之rtos3.0笔记: 捋一捋微信公众号配网智能设备 esp8266 并绑定设备的过程,移植并成功实现在 esp8266 rtos3.1 。
40、 Esp8266之rtos3.0笔记: 基于乐鑫idf框架,研究出超稳定、掉线重连、解决内存泄露问题的Mqtt框架!支持esp8266和esp32!
41、 Esp8266之rtos3.0笔记: esp8266-12模块基于rtos3.1版本ota功能远程空中升级固件,官网基础之上增加dns域名解析!
42、 Esp8266之rtos3.0笔记: 我又来了,基于rtos3.0版本 SDK编程 SPI 驱动 ws2812b 七彩灯,代码全部开源奉献给你们!
43、 Esp8266之rtos3.0笔记: esp8266-12模块基于rtos3.0版本扫描周围获取附近可用的 Wi-Fi 热点路由器信息,同样适合esp32。
44、 Esp8266之rtos3.0笔记: 整理分享那些我在项目中常用的esp8266 rtos3.0版本的常见驱动,Button按键长短按、PWM平滑调光等。
45、 Esp8266之rtos3.0笔记: 内置仅1M的Esp8285,如何攻破最棘手的OTA问题,大大节省资源成本开发产品。
46、 Esp8266之rtos3.0笔记: 详细分析Esp8266上电信息打印的数据,如何做到串口通讯上电不乱码打印。
47、 Esp8266之rtos3.0笔记: 无需外网,如何实现在本地局域网与控制端做数据交换的一些开发经验。
48、 Esp8266之rtos3.0笔记: 迟来的1024程序员祝福,开源分享一个驱动 ds18b20 获取温度的工程。
49、 Esp8266之rtos3.0笔记: aliyun sdk 直连接入阿里云物联网平台,实现天猫精灵找队友零配网功能和语音控制。
50、 Esp8266之rtos3.0笔记: esp产品量产方案初入门之 如何从外部读取 csv 文件的数据,比如从代码读取外部文件阿里云三元组。
51、 Esp8266之rtos3.0笔记: 体验下 Linux搭建 ESP8266_RTOS_SDK 3.0 最新环境的搭建和编译吧。
52、 Esp8266之rtos3.0笔记: 仅1M flash 的安信可 ESP-01S 模块,如何二次开发?如何对其 OTA 远程升级固件 。

-------- 学习笔记持续更新,欢迎关注我…

很多人怎么联系我一起学习进步,下面打个小小公告:
玩转esp8266带你飞、加群QQ群,提高门槛,不喜的朋友勿喷勿加:434878850
esp8266源代码免费学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
esp32源代码免费学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32


文章目录

  • 前言
  • 一、认识 ESP-01 和 ESP-01S 区别
  • 二、调试接线
  • 三、搭建环境和编译
    • 3.1 环境搭建
    • 3.2 编译
    • 3.3 开启本地web服务器
    • 3.4 现象
  • 四、FAQ 笔记
    • 1、这个OTA的升级原理是什么?
    • 2、连接web服务器失败?
  • 另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!

前言

最近在弄公司新项目,对ESP8266的各种需求已司空见惯,如今乐鑫官方对 二次开发ESP8266也有很多SDK版本了,从 2.2 到 2.1 、3.0 、3.3,以及最新分支开发版本,各种版本是否让你纠结我到底用哪个分支版本开发?

个人建议:开发学习用 master 分支 ,开发产品用稳定版 3.3 或 3.1分支,如果稳定版 3.3 或 3.1分支无法满足您的开发使用,用 master 分支即可!

最近接到一个客户的新需求,如何在 安信可 ESP-01S 的模块上面进行远程OTA 升级固件?一开始,我是直接参考我去年的一篇文章:

  • 链接:内置仅1M的Esp8285,如何攻破最棘手的OTA问题,大大节省资源成本开发产品。

再者说,群里也很多人问我 安信可模块ESP-01S如何二次开发,支持二次开发吗?仅仅1M的flash支持OTA升级吗?答案:可以的;


一、认识 ESP-01 和 ESP-01S 区别

这里并不是为了带货写文章,太多人在群里问这个问题了,单纯想把这个文章分享出来给大家参考;

ESP-01 和 ESP-01S 都是安信可官方出品的,这里贴下对其主要的区别:

  1. ESP-01S 在电路设计上已经把 GPIO0、RST和En 引脚上拉,而 ESP-01 没有;
  2. ESP-01S 天线区域右下角只有一个指示灯,ESP8266-01天线区域右下角有两个指示灯。
  3. ESP-01S背面有引脚说明,ESP-01背面有没有引脚说明。

  • 正面对比(左边是 ESP-01S,右边是 ESP-01 ):
  • 背面对比(左边是 ESP-01S,右边是 ESP-01 ):

二、调试接线

因为其的用途主要是给自有MCU单片机通讯连接单片机,所以很少有人用它二次开发,可能烧录固件会考虑到其的接线,这里不再贴接线方式了,而我目前用的是 ESP-plog 连接器,这里再贴下其介绍链接:ESP-Prog 下载与调试板介绍,不仅仅可以有自动下载功能,还可以对 ESP32 断点调试哦!

这里的分享,也是为了提高大家的开发效率,因为开发追求效率,也是提高老板对你的赏识;

我的实物图:

ESP-Prog 的 Program 接口 和 ESP-01S 的接线详情:

ESP-Prog ESP-01S 备注
ESP_TXD RX
ESP_RXD TX
IO0 IO0 必须接
VCC VCC 务必检查是否 3.3伏
GND GND
EN EN 可不接,01S 已经内部上拉

三、搭建环境和编译

3.1 环境搭建

以上都是我目前的接线情况,如果您觉得麻烦,可以按照你方式来连线!确保接线完毕之后,极力推荐使用 Linux 开发环境,参考我之前的文章:

链接: 体验下 Linux搭建 ESP8266_RTOS_SDK 3.0 最新环境的搭建和编译吧。

之后,我们下载一个稳定版分支的,自己去乐鑫仓库下载吧!

而我本文采用的是:ESP8266_RTOS_SDK Pre-release v3.3-rc1

下载链接:https://github.com/espressif/ESP8266_RTOS_SDK/releases

找到OTA升级的工程, examples/system/ota/native_ota/1MB_flash/new_to_new_no_old,之后我们面板设置他的下载方式:

1、配置为 1M flash:

Serial flasher config  --->Flash size (2 MB)  --->(X) 1 MB

2、SPI模式 配置为 DOUT:

Serial flasher config  --->Flash SPI Mode   --->  DOUT

3、波特率改为 230400 ,可以提高下烧录速度!

Serial flasher config  --->Default baud rate   --->  230400 baud

烧录配置如图所示:

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 或者 用烧录工具这样烧录:

固件 地址
ota_data_initial.bin 0xd000
bootloader.bin 0x0000
ota.bin 0x10000
partitions_two_ota.1MB.bin 0x8000

3.3 开启本地web服务器

为了方便调试,我们可以用Python开启一个本地服务器,端口号为 8070 :

python -m SimpleHTTPServer 8070

如下截图所示,可看到开启成功,并且得到局域网的地址 :192.168.31.48 ,这个是局域网内访问的本机设备,您在开发时候,你的电脑主机也会有所不同,请务必注意!

我们需要把每次编译生成的 ota.ota.bin 固件放在web服务器即可,这里我编译了2个版本的固件(ota_v1.binota_v2.bin),并在打印上每个固件的版本,以区别是否远程升级成功。

我们测试下web服务器是否开启成功?我们用手机加入本地局域网,之后用手机浏览器打开上述的IP地址和端口号:192.168.31.48:8070, 发现可以访问不报错即可!

这时候,我们开始在源码修改下 web 服务器的配置,然后再 make ota 生成2个固件,放在web服务器里面,就如下图所示了:

//路由器ssid
#define EXAMPLE_WIFI_SSID "aiot_default"
//路由器的密码
#define EXAMPLE_WIFI_PASS "aiot_default123456789"
//web服务器的ip地址
#define EXAMPLE_SERVER_IP "192.168.31.48"
//web服务器的端口号
#define EXAMPLE_SERVER_PORT "8070"
//要请求的固件的路径和文件名
#define EXAMPLE_FILENAME "ota_v2.bin"//自定义:当前工程的版本号
#define  VERSION_FW "version - 1.0"//每次上电打印下固件版本号ESP_LOGW(TAG,  VERSION_FW );
  • 放置2个固件之后,再用手机浏览器访问,如图所示:

3.4 现象

首次上电,打印版本号为 version - 1.0 ,之后连接路由器,请求文件升级!来回升级哈哈!

load 0x40100000, len 7160, room 16
tail 8
chksum 0x77
load 0x3ffe8408, len 24, room 0
tail 8
chksum 0xce
load 0x3ffe8420, len 3540, room 0
tail 4
chksum 0x85
I (43) boot: ESP-IDF v3.3-rc1-dirty 2nd stage bootloader
I (44) boot: compile time 17:36:54
I (44) boot: SPI Speed      : 40MHz
I (49) boot: SPI Mode       : DOUT
I (56) boot: SPI Flash Size : 1MB
I (62) boot: Partition Table:
I (67) boot: ## Label            Usage          Type ST Offset   Length
I (79) boot:  0 nvs              WiFi data        01 02 00009000 00004000
I (90) boot:  1 otadata          OTA data         01 00 0000d000 00002000
I (102) boot:  2 phy_init         RF data          01 01 0000f000 00001000
I (113) boot:  3 ota_0            OTA app          00 10 00010000 00070000
I (125) boot:  4 ota_1            OTA app          00 11 00080000 00070000
I (136) boot: End of partition table
I (143) esp_image: segment 0: paddr=0x00010010 vaddr=0x40210010 size=0x3e758 (255832) map
I (268) esp_image: segment 1: paddr=0x0004e770 vaddr=0x4024e768 size=0x08098 ( 32920) map
I (283) esp_image: segment 2: paddr=0x00056810 vaddr=0x3ffe8000 size=0x00590 (  1424) load
I (284) esp_image: segment 3: paddr=0x00056da8 vaddr=0x40100000 size=0x00a30 (  2608) load
I (295) esp_image: segment 4: paddr=0x000577e0 vaddr=0x40100a30 size=0x05854 ( 22612) load
I (317) boot: Loaded app from partition at offset 0x10000
I (344) system_api: Base MAC address is not set, read default base MAC address from EFUSE
I (351) system_api: Base MAC address is not set, read default base MAC address from EFUSE
phy_version: 1155.0, 6cb3053, Nov 11 2019, 17:31:08, RTOS new
I (407) phy_init: phy ver: 1155_0
I (410) reset_reason: RTC reset 1 wakeup 0 store 0, reason is 1
W (415) ota: version - 1.0
W (419) ota: EXAMPLE_WIFI_SSID  aiot_default
W (427) ota: EXAMPLE_WIFI_PASS  aiot_default123456789
W (436) ota: EXAMPLE_SERVER_IP  192.168.31.48
W (443) ota: EXAMPLE_SERVER_PORT  8070
W (450) ota: EXAMPLE_FILENAME  ota_v2.bin
I (478) ota: Setting WiFi configuration SSID aiot_default...
I (478) ota: Starting OTA example... @ 0x4022cf48 flash 1MB
I (494) ota: Running partition type 0 subtype 16 (offset 0x00010000)
I (3576) wifi: state: 0 -> 2 (b0)
I (3616) wifi: state: 2 -> 3 (0)
I (3657) wifi: state: 3 -> 5 (10)
I (3661) wifi: pm start, type: 2
I (5311) event: sta ip: 192.168.31.12, mask: 255.255.255.0, gw: 192.168.31.1
I (5316) ota: Connect to Wifi ! Start to Connect to Server....
I (5321) ota: Server IP: 192.168.31.48 Server Port:8070
I (5468) ota: Connected to server
I (5471) ota: Connected to http server
W (5474) ota: Connect to http server send :
GET /ota_v2.bin HTTP/1.0
Host: 192.168.31.48:8070
User-Agent: esp-idf/1.0 esp32I (5489) ota: Send GET request to server succeeded
I (5496) ota: Writing to partition subtype 17 at offset 0x80000
I (10486) ota: esp_ota_begin succeeded
I (10489) ota: Totoal OTA number 2 update to 1 part
I (10498) ota: parse Content-Length:630976, ota_size 315488
I (13078) ota: Have written image length 692
I (13104) ota: Have written image length 1716
I (13114) ota: Have written image length 2740
I (13123) ota: Have written image length 3764
I (13135) ota: Have written image length 4788
... ...  ....I (16765) ota: Have written image length 311236
I (16775) ota: Have written image length 312260
I (16783) ota: Have written image length 313284
I (16794) ota: Have written image length 314308
I (16801) ota: Have written image length 315028
I (16807) ota: Have written image length 315488
I (16813) ota: Connection closed, all packets received
I (16822) ota: Total Write binary data length : 315488
I (16827) esp_image: segment 0: paddr=0x00080010 vaddr=0x40280010 size=0x3e758 (255832) map
0x40280010: _flash_cache_start at ??:?I (16919) esp_image: segment 1: paddr=0x000be770 vaddr=0x402be768 size=0x08098 ( 32920) map
I (16935) esp_image: segment 2: paddr=0x000c6810 vaddr=0x3ffe8000 size=0x00590 (  1424)
I (16941) esp_image: segment 3: paddr=0x000c6da8 vaddr=0x40100000 size=0x00a30 (  2608)
I (16951) esp_image: segment 4: paddr=0x000c77e0 vaddr=0x40100a30 size=0x05854 ( 22612)
I (16971) esp_image: segment 0: paddr=0x00080010 vaddr=0x40280010 size=0x3e758 (255832) map
0x40280010: _flash_cache_start at ??:?I (17059) esp_image: segment 1: paddr=0x000be770 vaddr=0x402be768 size=0x08098 ( 32920) map
I (17075) esp_image: segment 2: paddr=0x000c6810 vaddr=0x3ffe8000 size=0x00590 (  1424)
I (17081) esp_image: segment 3: paddr=0x000c6da8 vaddr=0x40100000 size=0x00a30 (  2608)
I (17091) esp_image: segment 4: paddr=0x000c77e0 vaddr=0x40100a30 size=0x05854 ( 22612)
I (17163) ota: Prepare to restart system!
I (17166) wifi: state: 5 -> 0 (0)
I (17169) wifi: pm stop
E (17173) ota: Disconnect reason : 8

四、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上是否有阻止进入连接的防火墙软件。

参考文章:https://www.cnblogs.com/easyidea/p/11525197.html

有任何疑问联系本人下方邮箱或加qq群或文章留言,不要私信我,我已经屏蔽私信!多多支持!


另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!

  • 玩转esp8266带你飞、加群QQ群,不喜的朋友勿喷勿加:434878850
  • 个人邮箱:xuhongv@yeah.net 24小时在线,有回必回复!
  • esp8266源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
  • esp32源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
  • 关注下面微信公众号二维码,干货多多,第一时间推送!

乐鑫esp8266学习rtos3.0笔记:仅1M flash 的安信可 ESP-01S 模块,如何二次开发?如何对其 OTA 远程升级固件!相关推荐

  1. 乐鑫esp8266学习rtos3.0笔记:分享在 esp8266 C SDK实现冷暖光色温平滑调节的封装,轻松集成到您的项目去。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于C SDK的ESP8266开发技术全系列笔记 一.N ...

  2. 乐鑫esp8266学习rtos3.0笔记第5篇:基于乐鑫idf框架,研究出超稳定、掉线重连、解决内存泄露问题的Mqtt框架,支持esp8266和esp32!(附带链接)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  3. 乐鑫esp8266学习rtos3.0笔记:AT指令固件如何二次开发,实现AT指令连接亚马逊AWS IoT平台;

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于C SDK的ESP8266开发技术全系列笔记 一.N ...

  4. 乐鑫esp8266学习rtos3.0笔记:如何在 windows 用 CMake 编译 ESP8266 项目。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于C SDK的ESP8266开发技术全系列笔记 一.N ...

  5. 乐鑫esp8266学习rtos3.0笔记第9篇:整理分享那些我在项目中常用的esp8266 rtos3.0版本的常见驱动,Button按键长短按、PWM平滑调光等。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  6. 乐鑫esp8266学习rtos3.0笔记第4篇:带你捋一捋微信公众号 airkiss 配网 esp8266 并绑定设备的过程,移植并成功实现在 esp8266 rtos3.1 sdk。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  7. 乐鑫esp8266学习rtos3.0笔记第6篇:esp8266-12模块基于rtos3.1版本ota功能远程空中升级固件,官网之上增加dns域名解析!(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  8. 乐鑫esp8266学习rtos3.0笔记第3篇: 一篇文章带你搞掂存储技术 NVS 的认识和使用,如何利用NVS保存整型、字符串、数组以及结构体。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  9. 乐鑫esp8266学习rtos3.0笔记第12篇:无需外网,如何实现在本地局域网与控制端做数据交换,分享开发心得。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

最新文章

  1. 机器学习 - 竞赛网站,算法刷题网站
  2. python 处理url 参数_Python 优雅的处理网页URL参数
  3. 数据中心行业哪个证书含金量最高?对职业最有帮助?
  4. 用c语言读取和写入文件数据
  5. android 弹出弹框2秒消失_基于HTML5 Canvas 实现弹出框
  6. 安卓的短信记录导入苹果_安卓换苹果手机如何进行便签数据转移?
  7. 谷歌离线地图开源地图服务器
  8. root 存档位置 linux,Linux 档案与目录管理(转)
  9. CH模拟赛 皇后游戏
  10. HAUTOJ1062
  11. VSCode升级后启动不了~
  12. 搭建在线网校要注意的一些事项
  13. Energy 收购 VDD Tech
  14. 算法 预测赢家(动态规划)
  15. Holacracy(合弄制)------一种新的管理方法
  16. 医美分期一定会倒下一大片?
  17. 还在直接用 JWT 做鉴权?JJWT 真香
  18. 程序员炒股:算法交易策略与建模思想
  19. VirtualBox虚拟机为CentOS安装增强功能Guest Additions
  20. 苹果自带相册打马赛克_做电子相册不用第三方工具!直接用手机自带的功能

热门文章

  1. 84个SEO面试问题
  2. 监狱筹建牌竖近2年 未告知民众关押病犯遭质疑
  3. JS将秒数换算成时分秒 以及转化为年月日 时分秒以及多长时间以前
  4. oracle 注入 nc,oracle注入,utl_http方法
  5. FTP、FTPS和SFTP
  6. Vue中的this.$store.state.xx.xx
  7. Is the influences futural AI bring to software engineers are that scary?
  8. k8s集群管理(一)
  9. 工程中脉冲函数 c语言,怎样用C语言画出二阶系统单位脉冲响应函数的动态曲线...
  10. 将oracle数据库中的数据导入redis数据库演示