1.1下载python。
1)官方下载地址:https://www.python.org/getit/
注意:自python3.9.0(含)版本起,不支持windows7系统,所以windows7系统需要下载python3.8.7(含)及以下版本,windows10系统建议下载最新版本(也可以用旧版本)。
关于版本与windows系统的说明详见:https://www.python.org/downloads/windows/
2)由于官方下载较慢,这里提供了个人博客的下载地址:版本python-3.8.7-amd64
https://download.csdn.net/download/felix_tao/14753016
1.2安装python,如下图所示。
1.3验证python的环境变量。
1)打开命令窗口,点击左上角的“开始”->输入cmd->按回车,如下图所示。
2)在命令窗口输入查询python版本号命令:python -V,如果显示Python 3.8.7则证明环境安装成功,且已经设置了环境变量。
3)如果输入命令:python –V,没有反应,则证明环境变量没有设置成功,需要重新设置环境变量。右键点击"我的电脑"->属性->高级系统设置->环境变量,
在系统变量栏目中,找到Path,双击编辑后,添加刚才安装python的路径,例如我的安装路径是:C:\Program Files\Python38; 记得末尾加上冒号”;”。添加完环境变量后,再输入命令python –V验证。
第二步:安装VSCode。
2.1下载VSCode。
1)官方下载地址:https://code.visualstudio.com/
2)个人博客下载地址:https://download.csdn.net/download/felix_tao/15117799
打开网址,选择windows版本的VSCode进行下载即可,如下图所示。
2.2安装VSCode,默认按下一步安装即可。
第三步:安装PlatformIO IDE。
3.1 打开VSCode,在应用扩展中输入PlatformIO,如下图所示。
3.2 打开PlatformIO IDE进行安装,进度条显示 “下载可移植的python解析器”,此过程要等待的时间较长,可以慢慢等,如果不想等,则使用另外一种方法,见3.3。
3.3 使用pip国内镜像源,下载并安装PlatformIO Core。
1)下载“platformio-core-installer-develop.zip”。
官方下载地址:https://github.com/platformio/platformio-core-installer/
个人博客下载地址:https://download.csdn.net/download/felix_tao/14153886
2)在目录C:\Users\felix\下创建一个pip文件夹,felix是本人的用户名,不同电脑用户名不同,在pip文件夹中新建一个“文本文档”并重命名为pip.ini,注意后缀名为ini,里面内容为:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
3)解压刚下载的platformio-core-installer-develop.zip到桌面并打开,找到get-platformio.py双击运行,如下图所示。
如遇到下面卡几分钟不动的,有可能是安装到一半被中断了,所以需要删除一些文件,
删除 C:\Users\felix\.platformio 和 C:\Users\felix\.vscode\extensions\platformio.platformio-ide-2.2.1两个文件夹,删除后重新运行get-platformio.py即可。
4)安装过程,如下图所示。
红色字表示有可用的新版本pip,可以选择更新也可以不更新,如果要更新,则在cmd命令窗口输入:python -m pip install --upgrade pip
5)打开VSCode,在应用扩展中输入PlatformIO,如下图所示,几秒钟就可以安装完成。
6)PlatformIO IDE安装完成后,会在下面出现一个主页的图标,点击主页图标,进行加载PIO Home,需要等待1-2分钟,
等出现一个蚂蚁头图标和工程菜单,就证明加载成功,如下图所示。
如果一直处于Loading,没能加载成功,则要重新进行安装python以及检查环境变量是否配置成功。
第四步:使用PlatformIO IDE新建NodeMCU-ESP8266工程。
4.1新建Arduino框架工程,闪烁LED灯和显示HelloWorld。
1)点击New Project,如下图所示。
2)在Board(开发板)一栏中,输入nodemcu进行搜索,选择“NodeMCU 1.0(ESP-12E Module)”如下图所示。
3)Framework(框架)一栏中,选择“Arduino”,在Name(工程名称)一栏中,输入
“NodeMCU_arduino_project”,如下图所示。
4)第一次创建工程时间会比较长,因为要从网络上下载框架framework,耐心等待就好,10分钟-60分钟左右,视自己的网速而定。
5)等待一段时间后,工程自动创建完成,其工程目录如下图所示。
其中官方SDK的内容使用链接库的形式给出,并没有显示在这个目录下面,但是官方的SDK里的内容都是存在的,你都可以直接添加头文件调用,
包含链接库的目录在“ .vscode ”文件夹下 的“c_cpp_properties.json”中,我们暂时不需要修改它。
6)打开路径C:\Users\felix\.platformio\packages,里面存放的就是刚刚载的框架。
7)工程中编写测试代码。
注意:如果有涉及到头文件/宏定义的警告或者无法跳转,则需要安装插件“C/C++”。
void setup()
{
// put your setup code here, to run once:
Serial.begin(115200);//串口波特率配置
pinMode(LED_BUILTIN, OUTPUT);//设置引脚为输出模式
}
void loop()
{
// put your main code here, to run repeatedly:
Serial.print("Hello world!\r\n");//串口打印
//控制LED灯闪烁
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
8)对工程进行编译、下载。
点击”编译按钮”,如果有错误的话会显示红色error,如果没有错的话会显示SUCCESS,接着点击”下载按钮”,下载代码到NodeMCU-ESP8266开发板中,下载成功后可以看到开发板的蓝色闪烁。
9)串口调试。
点击“串口监视器按钮”,会看到显示乱码,这是因为波特率不一致,需要修改监视器的波特率为115200,复制monitor_speed = 115200到platformio.ini文件里面,
保存后重新编译、下载,可以看到串口监视器能正常打印Hello world!了,如下图所示。
10)到此,Arduino框架工程的ESP8266测试例程就完成了。
4.2新建ESP8266 RTOS SDK框架工程(与乐鑫的IDF框架不同,IDF框架是新的,而ESP8266 RTOS SDK框架是旧的),连接家里的路由器和闪烁LED灯。
1)同理,点击New Project进行创建工程,其它步骤与4.1相同,只是框架选择ESP8266 RTOS SDK,如下图所示。
2)第一次创建工程时间会比较长,因为要从网络上下载框架framework,耐心等待就好,10分钟-60分钟左右,视自己的网速而定。
3)创建完工程,如下图所示。
4)点击工程中的src,发现是空的,所以需要手动复制.c文件到src文件夹下,复制.h文件到include文件夹下。
打开路径C:\Users\felix\.platformio\packages\framework-esp8266-rtos-sdk\examples
以wifi_station_machine_demo为例,复制里面的.c和.h文件,具体如下图所示。
5)复制->粘贴后,可以看到VSCODE中的工程已经有.h和.c文件了,先不改动任何代码,进行编译,编译结果是成功的。
该例程是连接家里的路由器,所以需要改为自己家里的路由器帐号和密码。
6)改好帐号和密码后,重新编译和下载代码,然后打开串口监视器,发现显示的是乱码,需要修改监视器的串口波特率为74880,
复制monitor_speed = 74880到platformio.ini文件里面,保存后重新编译、下载,可以看到串口监视器能正常打印了,打印显示是连接成功的,如下图所示。
7)增加代码,创建一个led_task任务,user_main.c中需要包含头文件#include "gpio.h"。
//led_task任务函数
LOCAL void led_task(void xpvParameters)
{
while (1)
{
GPIO_OUTPUT_SET(5,0);
vTaskDelay(100);
GPIO_OUTPUT_SET(5,1);
vTaskDelay(100);
}
}
void user_init(void)
{
printf("SDK version:%s\n", system_get_sdk_version());
//设置wifi,连接路由器
set_on_station_connect(on_wifi_connect);
set_on_station_disconnect(on_wifi_disconnect);
init_esp_wifi();
stop_wifi_ap();
start_wifi_station(SSID, PASSWORD);
//设置GPIO
GPIO_ConfigTypeDef GPIO_my;
GPIO_my.GPIO_Pin = 5;
GPIO_my.GPIO_Mode = GPIO_Mode_Output;
GPIO_my.GPIO_Pullup = GPIO_PullUp_EN;
GPIO_my.GPIO_IntrType = GPIO_PIN_INTR_DISABLE;
gpio_config(&GPIO_my);
//建立LED任务
xTaskCreate(led_task, "led_task", 1024, NULL, 4, NULL);
}
8)重新编译和下载代码,然后打开串口监视器。
9)到此,ESP8266 RTOS SDK框架工程的ESP8266测试例程就完成了。
参考文章:
1. https://blog.csdn.net/gengyuchao/article/details/84928771
参考视频:
1. https://www.bilibili.com/video/BV1kf4y117Pf?p=1