ESP8266从入门到入门系列(二) 环境介绍及使用VScode Arduino开发

0.前言

转载自我的古月居频道
今天给大家普及一下ESP8266的开发环境和VScode Arduino的开发环境配置。 我们这一系列的ESP8266开发都是基于VScode来的,而不是使用Arduino IDE开发的,原因下面会介绍。 博主使用的ESP8266模组是ESP-12F,开发板是我模仿NodeMcu画的,区别不大,只是体积上比较小,更适合放进一些设备中吧。

1.开发环境

  • 安信可一体化开发环境(推荐)

    • 支持ESP8266 NONOS和FreeRTOS环境开发(新版 ESP8266 RTOS SDK V3.0以上版本)
    • 支持ESP32 FreeRTOS环境开发
    • 下载即用,无需另外配置环境
    • 可直接编译乐鑫官方推出的SDK开发包
    • 图形化界面开发
    • ESP8266环境搭建:http://wiki.ai-thinker.com/ai_ide_install
    • ESP8266文档中心:http://wiki.ai-thinker.com/esp8266/docs
  • Arduino IDE开发方式(推荐)

    • 优点:集编程和烧录一体,使用很方便。语言执行效率高,节省资源,库函数比较多,开发语言简单,能够很快上手。
    • 缺点:Arduino IDE需要写较长的代码时,不是很方便,如果需要查看底层函数或者方法,非常费劲。所以我们要使用VScode进行开发,因为有最爱的代码提示
  • AT指令开发(不推荐)

    • 优点:开发简单,资料较多。只需知道AT指令集,以及它的通信方式即可。
    • 缺点:浪费资源,需要MCU与其通信,不能独立完成某项功能。
    • 资源:https://blog.csdn.net/lalala098/article/details/81240806
  • NodeMCU的Lua开发(不推荐)

    • 优点:节省资源,开发简单,代码量少。
    • 缺点:lua解释器执行效率较低,最终换成ArduinoIDE开发,就是因为读取传感器数据时,总是漏掉一个数据。前期准备比较麻烦。需要准备相应功能的固件,烧录进去,然后使用lua语言和工具与之调试。

2.搭建Arduino开发环境

2.1 添加ESP8266库

首先从Arduino中文论坛Arduino官方 下载最新版本的 Arduino IDE 软件并安装。 安装完成以后,进入首选项(Preferences),找到附加开发板管理器地址(Additional Board Manager URLs),并在其后添加如下信息:

http://arduino.esp8266.com/stable/package_esp8266com_index.json
在这里插入图片描述
国外同学的配置 上面的方法适合在国外的同学使用,在国内的同学就直接下载我下面提供的包直接安装就行了。 https://www.jianguoyun.com/p/Dc1zwEcQq5TaCBjYmrMD 当下载完后,直接双击安装即可 安装完后,会发现在项目-加载库中多了很多的库,如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y9L2WBiJ-1617332476763)(2.png)]

ESP8266库 也可以发现工具-开发板(xxx)中添加了很多ESP8266硬件,如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mm1iX2GL-1617332476765)(3.png)]

ESP8266硬件 当做完这一步时,我们就可以开始烧程序了。

2.2烧程序测试

本例让我们成为点灯工程师,点亮第一个灯吧。 我们准备好开发板,通过查看原理图,找到可以被我们点亮的LED灯接的管脚。 博主准备的是一块自己设计的开发板,类似于NodeMCU。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bGABBWoD-1617332476767)(4.png)]

AD模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GAAMOCCC-1617332476768)(5.png)]

LED灯原理图
我们可以从图中看到,当GPIO4为低电平时,LED1就会被点亮,知道了点灯的逻辑,我们就开始让灯闪烁吧。(其他板子都类似)

源代码

void setup() {
    
    
   // 将“gpio4”引脚设置为输出状态
  pinMode(4,OUTPUT);
}
void loop() {
    
    
    digitalWrite(4, HIGH);   // 熄灭LED
    delay(1000);             // 等待一秒钟
    digitalWrite(4, LOW);    // 通过将引脚电平拉低,点亮LED
    delay(1000);             // 等待一秒钟
}

效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MWqocaja-1617332476770)(6.png)]

LED实则是在闪烁

3.配置VScode Arduino开发环境

3.1下载Arduino插件

首先从VScode官网上下载软件。 安装完后,就可以安装Arduino插件了,如下图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RARc5yQ6-1617332476771)(7.png)]

第三步因为我已经安装过了,所以这里并没有显示install 没有安装的同学直接install就可以了。

3.2配置Arduino插件

  • 第一步:VScode进行系统参数设置,快捷键Ctrl+, 打开后在搜索框里写入arduino
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oL9hLtWC-1617332476772)(8.png)]

  • 第二步:在配置项中找到Path,随后在输入框中输入自己安装arduino的路径即可。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WLMjqolX-1617332476773)(9.png)]

这样设置后,vscode就可以正常运行Arduino了。

3.3创建Arduino程序

接下来我们拿blink程序来示范一下。

首先用vscode打开自己的arduino目录,然后新建文件夹Blink再新建一个Blink.ino文件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BagQTLeo-1617332476774)(10.png)]

首先,我们先点击下面状态栏中的<Select Board Type>选择开发板类型,在这里,因为我们主要学习的是ESP8266,所以我们选择Generic ESP8266 Module.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3BNiOTDP-1617332476774)(11.png)]

选择好后,我们连接上我们的开发板,并且点击下面状态栏的<Select Serial Port>,找到自己ESP8266的设备端口。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmbrtsw9-1617332476775)(12.png)]

接下来就是写代码的时刻了。
源代码

void setup() {
    
    
   // 将“gpio4”引脚设置为输出状态
  pinMode(4,OUTPUT);
}

void loop() {
    
    
    digitalWrite(4, HIGH);   // 熄灭LED
    delay(1000);             // 等待一秒钟
    digitalWrite(4, LOW);    // 通过将引脚电平拉低,点亮LED
    delay(1000);             // 等待一秒钟
}

问题1:出现很多红色波浪线

当我们同学在写程序的时候会发现编辑框内不但没有代码提示,而且有很多的红色波浪线,会觉得“啊呀,博主是个骗子,明明不能代码提示还搞这么久”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o0ScTiMi-1617332476776)(13.png)]

当然不是啦,我带大家下坑,肯定会带大家一起填坑的。

解决方案:

自己在配置VS Code Arduino开发环境中遇到的问题,类似这种,错误显示未定义标识符。关于VS Code配置Arduino开发环境 网上有很多,我就不在叙述了,我只是记录我自己遇到的问题。主要问题是头文件索引丢失,intellisense不能自动找到需要的头文件路径。需要在用户设置中强制intellisense使用Tag Parser,递归方式检索头文件。
添加方式方式如下:

  1. 首先
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iLP8Hium-1617332476776)(14.png)]
  1. 其次在输入框输入Arduino,检索。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-slcvXa1K-1617332476777)(15.png)]
  1. 打开settings.json 配置相关文件:
  2. 添加如下所示的2行代码。
"C_Cpp.intelliSenseEngineFallback": "Disabled",

"C_Cpp.intelliSenseEngine": "Tag Parser",

自己的配置代码如下:
其中 “arduino.path”: “D:\work\Arduino”,是自己安装Arduino的路径。

{
    
    
    "window.zoomLevel": 0,
    "terminal.integrated.inheritEnv": false,
    "task.autoDetect": "off",
    "arduino.path": "D:\\work\\Arduino",
    "C_Cpp.updateChannel": "Insiders",
    "C_Cpp.intelliSenseEngineFallback": "Disabled",
    "C_Cpp.intelliSenseEngine": "Tag Parser",
    "arduino.additionalUrls": "",
    "workbench.colorTheme": "Monokai"
    
}

保存之后,发现未定义标识错误消失了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XUnD89h0-1617332476778)(16.png)]

Reference from:https://blog.csdn.net/weixin_45488643/article/details/105966613

问题2:输出内容出现乱码(没有问题的同学往下移)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kHL2qSMo-1617332476778)(17.png)]

解决方案:

  1. 找到vscode的arduino拓展的安装目录,找到util.js这个文件,以我电脑上的为例,(注意不同电脑下,路径不同,一般是在用户文件夹下,找不到的话就直接用文件管理器搜索):
    C:\Users\Administrator.vscode\extensions\vsciot-vscode.vscode-arduino-0.3.1\out\src\common\util.js
  2. 找到文件中的215行左右如下代码
if (os.platform() === "win32") {
    
    
            try {
    
    
                const chcp = childProcess.execSync("chcp.com");
                codepage = chcp.toString().split(":").pop().trim();
            }
            catch (error) {
    
    
                outputChannel_1.arduinoChannel.warning(`Defaulting to code page 850 because chcp.com failed.\
                \rEnsure your path includes %SystemRoot%\\system32\r${
    
    error.message}`);
                codepage = "850";
            }
        }
  1. 将上述的代码注释掉
/*
        if (os.platform() === "win32") {
            try {
                const chcp = childProcess.execSync("chcp.com");
                codepage = chcp.toString().split(":").pop().trim();
            }
            catch (error) {
                outputChannel_1.arduinoChannel.warning(`Defaulting to code page 850 because chcp.com failed.\
                \rEnsure your path includes %SystemRoot%\\system32\r${error.message}`);
                codepage = "850";
            }
        }
        */
  1. 重启Vscode
    最终效果
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJ0skLtT-1617332476779)(18.png)]

Reference from:https://blog.csdn.net/weixin_42225355/article/details/104906950

4.总结

今天这章是这个系列的第二章,有同学会问:“为什么我给出的AD模型和我焊接好的板子长得不一样”,其实我当时设计错了。我原本是想用CH340G的,但是没注意到晶振走线问题,所以导致连接电脑没有反应,于是我就换成了CH340C,自带晶振,这样一来又可以空出地方给大家添加模块。

PCB原理图和程序我会分享到我的码云,也请大家可以为我的项目点个✨,谢谢大家。

大家也不要以我的这系列博客为准,总有疏忽之处,如果有,请指出来,也欢迎留言哈!

猜你喜欢

转载自blog.csdn.net/xiaokai1999/article/details/115393920