ESP32应用篇 一、 用VSCode platformIO 代替Arduino

发布时间:2024年01月22日

ESP32篇

一、QT上位机串口编程



前言

最近工作需要用到WIFI来建立TCP的通讯,故选择了ESP32 这个wifi模块,但是之前用过Arduino 感觉不太好用
所以想找一个可以代替的IDE 最终找到了 platform  IO 有代码提示 巨好用

一、 ESP32

型号: ESP32-WROOM-32D
在这里插入图片描述

大家可以上tb购买 几十块比较便宜

或者上官网也可以 https://www.espressif.com.cn/zh-hans/products/socs

在这里插入图片描述

二、 开发环境VSCode+PlatformIO

打开VScode在扩展中输入:platformIO

点击安装

在这里插入图片描述
安装好了之后电机最左侧的扩展栏找到一个外星人头像点开

在这里插入图片描述
点击 open 打开 等一段时间后
在这里插入图片描述
初始化完成后,会出现以下界面
在这里插入图片描述
创建新工程
在这里插入图片描述

发现点 platformio 小图标一直在转圈 loading

在这里插入图片描述
解决方法
管理员打开VsCode

终端里面直接输入命令 pio home

如果没反应或者显示其他错误, 终端输入以下代码卸载

pip uninstall platformio

重新安装

pip install -U https://github.com/platformio/platformio-core/archive/develop.zip

提示更新,输入

pip install –upgrade pip

耐心等待一段时间会看到进度条

下载完成后重新打开VSCODE

找到外星人图标打开
在这里插入图片描述
点击后进入终端

终端输入

pio home

在这里插入图片描述
会看到一个网页版的platformIO
在这里插入图片描述
在这里新建工程然后在vscode找到对应打开
在这里插入图片描述

此时就能看到网页创建的工程文件了

三、工程代码设置

1.打开platformio.ini
修改成你的板子对应的串口号
在这里插入图片描述
2.main.cpp文件

#include <Arduino.h>
#include "WiFi.h"
 
void connectWiFi(const char* ssid,const char* password);

const char* ssid = "ESP32";
const char* password = "19980717";
//自己手动打开电脑创建2.4G的热点 

void setup() 
{
    Serial.begin(115200);//设置串口打印波特率
 
    connectWiFi(ssid, password);  //连接wifi
}

void loop() {

    
}

// put function definitions here:
void connectWiFi(const char* ssid,const char* password)
{
    struct tm timeinfo;
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED)
    {
      delay(500);
      Serial.println("Connecting to WiFi..");
    }   
    Serial.println("Connected to the WiFi network");
}

修改完成后编译会出现如下内容说明编译通过

在这里插入图片描述
如何下载
我的做法是
点击下载后 按住boot按键不放
在这里插入图片描述

直到终端打印出现 connecting…

如图在这里插入图片描述
出现大概一两秒就可以松开,这时候就会进入下载模式

下载完成后板子会自动运行

当然不一定每个人都行 以官网操作为主

官方说明:https://www.cnblogs.com/zhihaospace/p/15854138.html
在这里插入图片描述

表明烧录成功

在这里插入图片描述

复位板子后打开串口软件,找到对应端口,连接串口
此时再去打开热点就可以看到打印的信息了
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_41930631/article/details/135522669
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。