ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK以及软件环境搭建
文章目录
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。
共同学习成长QQ群 622368884,不喜勿加,里面有一大群志同道合的探路人
如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。
1.前言
ESP8266EX芯片由espressif乐鑫公司开发,提供了一套高度集成的Wi-Fi SOC解决方案,其低功耗、紧凑设计和高稳定性可以满足用户的需求。
而ai-thinker 安信可公司基于 ESP8266EX芯片去设计了一系列ESP8266 模组(基本上我们现在说的ESP8266多是指 ESP8266模组)。这些模组包括:
具体可以参考 安信可ESP8266系列模组
而很多其他厂家又会基于 ESP8266系列模组 去设计 ESP8266开发板,其中使用广泛的就是基于 ESP-12F 模组的NodeMcu开发板:
这下子,初学者应该可以了解芯片-模组-开发板的关系了。
- 乐鑫开发芯片
- 安信可开发模组
- 其他厂家开发开发板
为了学习ESP8266编程,我们首选的开发板就是 NodeMcu Esp8266开发板。
而软件开发方式则分为几种:
-
AT指令
需要烧录AT固件,借助另外一款MCU进行控制,有点浪费ESP8266的天赋,后面博主专门写一个帖子专门介绍一下 -
Lua开发
据我了解不是很多人会去考虑的开发方式,有点杀马特的感觉,除非你之前已经懂Lua语言,不然不建议。 -
Arduino 开发
非常简单愉快的一种开发方式,非常适合具有Arduino基础的同学,博主也推出了一个专栏专门讲解 ESP8266 Arduino教程,极度推荐。 -
SDK开发
这也是官方极度推荐的开发方式,也是博主本系列重点关注的内容。 -
MicroPython开发
适合有Python开发基础的同学,不过更建议在ESP32上使用此种开发方式。
总体来说,我更推荐用Arduino开发或者SDK开发。接下来,就开始初步认识一下SDK开发流程。
2. SDK概述
2.1 SDK使用流程
包括:
- ESP8266 HDK —— 硬件开发工具
- ESP8266 SDK —— 软件开发工具包
- ESP8266 FW —— 固件
- ESP8266 工具集 —— 软件开发工具、固件下载工具和串口调试工具等
2.2 ESP8266 HDK —— 硬件开发工具
ESP8266 Hardware Development Kit(HDK)包括芯片 ESP8266EX、ESP8266模组以及 ESP8266开发板(比如NodeMcu)等硬件设备。用户使用烧录工具下载编译好的固件到硬件设备上。
2.3 ESP8266 SDK —— 软件开发工具包
ESP8266 Software Development Kit(SDK)是乐鑫为开发者提供的物联网(IOT)应用开发平台,包括基础平台以及上层应用开发示例等。
SDK的基础平台按照是否基于操作系统可分为:Non-OS 和 RTOS 两个版本。
2.3.1 Non-OS SDK
- Non-OS SDK 是不基于操作系统的SDK,提供IOT_demo和AT的编译。
- Non-OS SDK 主要使用定时器和回调函数的方式来实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的目的。
- Non-OS SDK 使用espconn接口实现网络操作,用户需要按照espconn接口的使用规则进行软件开发。
2.3.2 RTOS SDK
- RTOS SDK基于FreeRTOS,引入OS多任务处理机制。
- 请读者自行去学习,不是我们目前的重点。
2.4 ESP8266 FW
ESP8266 Firmware(FW)是一些可以直接下载到ESP8266 HDK中的BIN文件,用户可以选择下载 Fireware Over-The-Air(FOTA,支持云端升级) 和 non-FOTA (不支持云端升级) 的BIN文件:
文件名字 | 说明 | Non-FOTA是否需要 | FOTA是否需要 | 备注 |
---|---|---|---|---|
esp_init_data_default.bin | 初始化射频参数,在 SDK 根⽬录中提供。 | 是 | 是 | |
blank.bin | 初始化系统参数,在 SDK 根⽬录中提供。 | 是 | 是 | |
eagle.flash.bin | 主程序,存放运行系统必要的固件。 | 是 | 否 | |
eagle.irom0.text.bin | 主程序,存放用户编写程序的固件。 | 是 | 否 | |
boot.bin | Bootloader,在 SDK 根目录中提供。 | 否 | 是 | |
user1.bin | 主程序,编译代码生成。 | 否 | 是 | 初次使用 |
user2.bin | 主程序,编译代码生成。 | 否 | 是 | 升级使用 |
==读者需要注意区分 Non-FOTA 和 FOTA 分别需要烧录哪些文件。==我们这里重点关注 Non-FOTA。
2.5 ESP8266 工具集
绝大部分的工具都在 开发工具清单 下载。
我们主要用到的工具包括:
-
开发环境
一种方式是通过Linux操作系统,这种我们不讲;
一种方式是通过安装 安信可一体化开发环境,可以在Window操作系统上使用,也是我们极度推荐; -
固件下载工具
ESP8266 DOWNLOAD TOOL 工具是由乐鑫官方开发的固件下载工具,用户可根据实际的编译方式和 Flash 的容量,将多个 BIN 文件一键下载到 ESP8266 母板(开发板或者模
组)的 SPI Flash 中。 -
串口调试工具
串口调试工具可以通过标准 RS-232 端口直接与 ESP8266 建立通信。对于不带有物理理串口的 PC,可以使用 USB 转串口模块来虚拟出一个串口设备。用户可以直接在串口终端输入命令和实时查看相关打印信息。
以上开发工具我都上传了一份到我个人QQ群的群文件里。
请读者自行下载以上所有工具。