图文手把手教程--ESP8266开发环境搭建(开发平台VSCODE+PlatformIO,框架Arduino、RTOS_SDK)

第一步:安装python

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,官方下载地址:https://code.visualstudio.com/

打开网址,选择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

猜你喜欢

转载自blog.csdn.net/felix_tao/article/details/113092886