ESP8266_01搭建开发环境
ESP8266_02程序的编译与下载
ESP8266_03SDK与Makefile的基本用法
ESP8266_04管脚控制与软件定时器
ESP8266_05 ESP8266有几个串口?
ESP8266_06硬件定时器与IO中断
ESP8266_07基于PWM的呼吸灯
ESP8266_08基于flash的数据掉电保护
ESP8266_09基于IIC控制的OLED屏幕
ESP8266_10 ESP8266的STATION模式
ESP8266_11 ESP8266的UDP广播
ESP8266_12 ESP8266客户端模式下的TCP通信
ESP8266_13服务器端模式下的TCP通信
ESP8266_14 SOFTAP模式下的服务器端和客户端
ESP8266_15天气预报之TCP的GET操作
ESP8266_16天气预报之JSON数据的生成与解析
ESP8266_17简单网络时间协议-SNTP
ESP8266_18 MQTT协议接入ONENET平台
ESP8266_19MQTT协议接入ONENET平台_订阅主题
ESP8266_20 基于ONENET平台的数据上传之TCP的POST操作
ESP8266_21基于ESP8266的一键配网
ESP8266_22基于自身ADC的电压采样
ESP8266_23基于硬件定时器的红外遥控器解码
正文开始之前的闲扯:
项目原因,没办法保证一天一更。昨天甲方爸爸临时让我改程序,还想让我通宵赶出来,我是那么容易屈服的人吗?
有人问用什么板子合适,还有的直接问我买。这个,建议大家买个二三十的模块就行,可以是NodeMcu,也可以是安信可的模块加一个底板,没必要买太贵的。
还有的人手里拿着某某物联网平台的板子,问能不能用,只要是基于ESP8266的,都可以,但是你要找到板子配套的原理图。
好了,下面是正文。
先说一下什么是SDK?
定义(转自网络):一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
再看一下乐鑫内部对SDK的描述:ESP8266 Software Development Kit (SDK) 是乐鑫为开发者提供的物联网 (IoT) 应用开发平台,包括基础平台以及上层应⽤开发示例,如智能灯、智能开关等。 SDK 的基础平台按照是否基于操作系统可分为:non-OS 和 RTOS 两种版本。
简单来说,这是一个已经搭建好的工程框架,包含完整的源文件和头文件。同时,提供了一些例程供用户参考。
那么,SDK在哪里下载?
找厂家!芯片厂家是乐鑫,所以去乐鑫官网找。这里为了节省时间,我直接放上链接:
https://www.espressif.com/en/support/download/sdks-demos
注:本文写于2019年7月12日星期五,当前的ESP8266 NONOS SDK已经更新到了3.0.0 后续的教程也主要基于NONOS的版本。
下载解压后,可以看到下面几个文件:
接下来,需要进行一些操作,然后才能导入到AiThinker_IDE里。其实下面的操作主要参考安信可的网址:https://wiki.ai-thinker.com/ai_ide_use
但由于安信可的教程比较旧,所以这里做了一些调整。
1. 将 sdk 目录下的 driver_lib 重命名为 app
2. 拷贝 \examples\IoT_Demo 下的所有文件到刚才的 app 目录(提示覆盖则确认),完成后目录结构如下:
3. 将ESP8266_NONOS_SDK/third_party 这个文件夹删掉。
接下来,我们启动AiThinker_IDE,将项目导入
导入项目
1. 选择 File→Impor
2. 点开C/C++分支,并选中Existing Code as Makefile Project
3. 去除C++支持,选中 Cygwin GCC
点击Browser,选中ESP8266_NONOS_SDK-3.0.0所在的目录
4. 点击 Finish 完成ESP8266_NONOS_SDK-release-v3.0.0_01的导入
如下图:
编译项目
鼠标选中项目名称,点击右键出现菜单:
Build Project :编译项目
Clean Project:清理项目
选中编译项目,控制台输出如下图即编译成功
真的能编译成功? 那是不可能的。
安信可官网说的是能编译成功,但针对的可能是比较老的SDK版本,如果你使用3.0版本的SDK,肯定是会报错的。报错如下:
打开根目录下的makefile文件,找到第29行,把等号后面的值改掉。
SDK3.0里面写的是0,改成多少?根据你模块的FLASH大小来修改:如果是8MBIT,改为2;如果是16MBIT,改为3;如果是32MBIT,改为4.
这个关系不用背下来,makefile文件向下翻到第82行,你会看到它有一个说明:
它这里写的值的单位是BYTE。改完之后,再次编译,你会发现编译成功了:
接下来,思考另一个问题:为什么有人生成的bin文件是这样的?
其实,安信可官网曾经说过。可生成两种形式的bin文件,一种是不支持在线升级的,一种是支持在线升级的。刚才这个图,就是支持在线升级的。那么,如何生成这种bin文件?
打开根目录下的makefile文件,找到第25、26行。当第25行为new的时候,如果第26行是1,那么生成的是支持在线升级的,如果是0,那就不支持在线升级。
除此之处,当我们使用一些特殊功能的源文件的时候,也需要在Makefile里添加相应的库文件。所以,这里建议大家,多看几遍Makefile文件,不需要完全看懂,但要知道基本用法。
至此,关于ESP8266的环境搭建、程序下载、固件配置,基本用法都说了一下。后面,逐步开始敲代码的过程。