ESP32 入门学习——WIFI连接

ESP32简介:

特点:时钟频率高,自带WIFI和蓝牙,最牛的是兼容Arduino IDE开发(图形编程会毁掉一个人但Arduino IDE不会),可以省去很多编写函数的步骤,从而专注于功能的实现。

1:实现WIFI(STA)连接

WIFI有两种模式,1.STA模式,让ESP32连接附近WIFI,可以上网访问数据。

#include <WiFi.h>
#include <Arduino.h>
//基础的WIFI函数学习 2024.3.10
//常量 WIFI名以及密码
const char* ssd="lyq";
const char* pasd="1234567890";
byte LED=2;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED,OUTPUT);
  digitalWrite(LED,LOW);
  Serial.begin(115200);
  Serial.print("开始连接WIFI:");
  Serial.print("SSD:");
  Serial.print(ssd);
  
  Serial.println();
  WiFi.begin(ssd,pasd);

  while(WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.print("connected success!\n");

  Serial.print("IP:\n");
  Serial.print(WiFi.localIP());
  
  digitalWrite(LED,HIGH);
}

可以看到导入WIFI库之后,配置WIFI的代码十分简单,一个WIFI.begin就连接上了WIFI,其他都是反馈功能的代码,在连入WIFI后会获得一个分配的地址,通过LocalIP打印出来,其他设备需要访问ESP32的时候就可以连接这个IP。
在这里插入图片描述

2:实现WIFI(AP)连接

2.AP模式,ESP32会自建一个WIFI热点,其他设备可以加入这个热点进行数据交换,类似局域网,不可联网。

//由于为AP模式 SSD就是自己的名称和密码 用于其他设备连接 
const char* SSD="ESP32AP"; 
const char* PSD="123456..";

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);

  WiFi.softAP(SSD,PSD);

  Serial.println("热点创建成功!");
  Serial.print("SSD:");
  Serial.println(SSD);

  Serial.println("PASSWD:");
  Serial.println(PSD);

  Serial.println("Access point:");
  Serial.print(WiFi.softAPIP());
  //打印热点IP
}

这里的主要函数就是softAP用于创建热点,烧入后显示可用热点

在这里插入图片描述

3:扫描周围可用WIFI

  Serial.begin(115200);
  num=WiFi.scanNetworks();
  Serial.print("周围可用WIFI个数为:");
  Serial.print(num);
  Serial.println();

  Serial.print("WIFI信息如下:");
  for(int a=0;a<=num;a++)
  {
  Serial.print(WiFi.SSID(a));
  Serial.println();
  }

scan函数可以扫描出周围WIFI,并通过未知方式生产一个列表,SSID函数储存了列表信息,可以循环打出,由于周围信号差就扫描出两个WIFI。
在这里插入图片描述

4:利用串口函数连接指定WIFI

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  num=WiFi.scanNetworks();
  Serial.print("周围可用WIFI个数为:");
  Serial.print(num);
  Serial.println();

  Serial.print("WIFI信息如下:");
  for(int a=0;a<=num;a++)
  {
  Serial.print(WiFi.SSID(a));
  Serial.println();
  }
  Serial.println("请输入WIFI和密码:");
}

void loop() 
{
  // put your main code here, to run repeatedly:
  while(Serial.available()>0){
    String SD=Serial.readStringUntil(','); 
    ssd=SD.c_str();
    //这个函数是真的nb 
    //读取后缓存区的数据直接消失,可以避免去拆分字符串
    delay(100);

    String PSD=Serial.readStringUntil('\0');
    pasd=PSD.c_str();
    delay(1000);
    Serial.println("WIFI:");
    Serial.println(SD);
    Serial.println("PSD:");
    Serial.println(PSD);
    WiFi.begin(ssd,pasd);

  while(WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.print("connected success!\n");

  Serial.print("IP:\n");
  Serial.print(WiFi.localIP());
  }
}

通过串口输入需要连接的WIFI信息,读取后自动分割,但是不能直接作为参数使用begin连接,begin的参数类型为char *,但是接受的为String 这时就利用c_str()函数 将读取的String格式数据转为 const char *类型,再进行begin连接
在这里插入图片描述
至此连接WIFI的工作已完成

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 首先要确保你的ESP32模块已经正确地安装在Arduino IDE中。如果你还没有安装ESP32模块,请按照以下步骤安装: a. 打开Arduino IDE,进入“文件”->“首选项”。 b. 在“附加板管理器网址”中添加以下链接:https://dl.espressif.com/dl/package_esp32_index.json c. 进入“工具”->“开发板”->“开发板管理器”。 d. 在搜索栏中输入“ESP32”。 e. 选择“ESP32 by Espressif Systems”并点击“安装”。 f. 安装完成后,选择“开发板”->“ESP32 Dev Module”。 2. 连接ESP32模块到电脑上,选择正确的串口和开发板。 3. 打开“Examples”->“WiFi”->“WiFiScan”示例程序。 4. 将以下代码复制到示例程序中: #include <WiFi.h> const char* ssid = "your_SSID_name"; const char* password = "your_SSID_password"; void setup() { Serial.begin(115200); delay(1000); Serial.println("Connecting to WiFi..."); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); Serial.print("IP Address: "); Serial.println(WiFi.localIP()); } void loop() { // 这里写你要执行的循环代码 } 5. 将代码中的“your_SSID_name”和“your_SSID_password”替换为你的WiFi名称和密码。 6. 上传程序到ESP32模块中。 7. 打开串口监视器,你将看到ESP32模块正在连接WiFi连接成功后将输出设备的IP地址。 8. 如果你想在ESP32模块中使用WiFi功能,你可以在代码中使用WiFi库提供的函数,例如WiFi.begin()、WiFi.localIP()等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值