 
 
2. 获取WIFI工作模式
WiFi.getMode();3. 使能/使能STA模式
WiFi.enableSTA(true);4. 使能/使能AP模式
WiFi.enableAP(true);5. 使能/使能Wifi休眠
WiFi.setSleep(true);2. 配置AP 热点 WiFi.softAPConfig();
bool WiFiAPClass::softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet)3. 断开wifi WiFi.disconnect();
bool WiFiSTAClass::disconnect(bool wifioff = false, bool eraseap = false)4. 一些获取AP热点信息的API
#include <Arduino.h>
#include "WiFi.h"
void setup()
{
  Serial.begin(115200);
  WiFi.softAP("ESP_AP", "12345678");
}
void loop()
{
  Serial.print("主机名:");
  Serial.println(WiFi.softAPgetHostname());
  Serial.print("主机IP:");
  Serial.println(WiFi.softAPIP());
  Serial.print("主机IPV6:");
  Serial.println(WiFi.softAPIPv6());
  Serial.print("主机SSID:");
  Serial.println(WiFi.SSID());
  Serial.print("主机广播IP:");
  Serial.println(WiFi.softAPBroadcastIP());
  Serial.print("主机mac地址:");
  Serial.println(WiFi.softAPmacAddress());
  Serial.print("主机连接个数:");
  Serial.println(WiFi.softAPgetStationNum());
  Serial.print("主机网络ID:");
  Serial.println(WiFi.softAPNetworkID());
  Serial.print("主机状态:");
  Serial.println(WiFi.status());
  delay(1000);
} 
2. wifi配置
bool WiFiSTAClass::config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0, IPAddress dns2 = (uint32_t)0)3. 关闭wifi连接
用法和AP的disconnect一样4. 其他一些获取WIFI信息的API
#include <Arduino.h>
#include "WiFi.h"
void setup()
{
  Serial.begin(115200);
  // WiFi.softAP("ESP_AP", "12345678");
  // WiFi.softAPsetHostname("ESP_xiongba");
  WiFi.begin("anny", "20141208");
  WiFi.setAutoReconnect(true);
}
void loop()
{
  Serial.print("是否连接:");
  Serial.println(WiFi.isConnected());
  Serial.print("本地IP:");
  Serial.println(WiFi.localIP());
  Serial.print("本地IPv6:");
  Serial.println(WiFi.localIPv6());
  Serial.print("mac地址:");
  Serial.println(WiFi.macAddress());
  Serial.print("网络ID:");
  Serial.println(WiFi.networkID());
  Serial.print("休息:");
  Serial.println(WiFi.getSleep());
  Serial.print("获取状态吗:");
  Serial.println(WiFi.getStatusBits());
  Serial.print("getTxPower:");
  Serial.println(WiFi.getTxPower());
  Serial.print("是否自动连接:");
  Serial.println(WiFi.getAutoConnect());
  Serial.print("是否自动重连:");
  Serial.println(WiFi.getAutoReconnect());
  Serial.print("获取模式:");
  Serial.println(WiFi.getMode());
  Serial.print("获取主机名:");
  Serial.println(WiFi.getHostname());
  Serial.print("获取网关IP:");
  Serial.println(WiFi.gatewayIP());
  Serial.print("dnsIP:");
  Serial.println(WiFi.dnsIP());
  Serial.print("状态:");
  Serial.println(WiFi.status());
  delay(1000);
} 
 
6. 设置自动重连
设置WIFI断开后是否自动尝试重连#include <Arduino.h>
#include "WiFi.h"
 
String ssid;
String password;
void setup()
{
  Serial.begin(115200);
  WiFi.mode(WIFI_MODE_STA);
  WiFi.disconnect(); //断开可能的连接
  delay(100);
  Serial.println("开始扫描WIFI:");
  int n = WiFi.scanNetworks();
  if (n)
  {
    Serial.print("扫描到");
    Serial.print(n);
    Serial.println("个WIFI");
    for (size_t i = 0; i < n; i++)
    {
      Serial.print("WiFi的名称(SSID):");
      Serial.println(WiFi.SSID(i));
      Serial.print("WiFi的信号强度(RSSI):");
      Serial.println(WiFi.RSSI(i));
      Serial.print("WiFi加密与否:");
      Serial.println(WiFi.encryptionType(i) == WIFI_AUTH_OPEN ? "未加密" : "加密");
 
      if (WiFi.SSID(i) == "anny")
      {
        ssid = WiFi.SSID(i);
        password = "20141208";
      }
    }
  }
  else
  {
    Serial.println("没扫描到WIFI");
  }
  WiFi.begin(ssid.c_str(), password.c_str());
  while (!WiFi.isConnected())
  {
    Serial.print(".");
  }
  Serial.println("连接成功");
}
void loop()
{
} 
5. 扫描连接WIFI(异步)
采用异步扫描方式, 每隔0.5秒询问一下WiFi.scanComplete();判断是否扫描完毕. 
 
 
 
#include <Arduino.h>
#include "WiFi.h"
 
void mySmartWifiConfig()
{
  WiFi.mode(WIFI_MODE_STA);
  Serial.println("开启智能配网:");
  WiFi.beginSmartConfig();
  while (1)
  {
    Serial.print(".");
    delay(500);
    if (WiFi.smartConfigDone())
    {
      Serial.println("配网成功");
      Serial.printf("SSID:%s", WiFi.SSID().c_str());
      Serial.printf("PSW:%s", WiFi.psk().c_str());
      break;
    }
  }
}
 
bool autoConfig()
{
  WiFi.disconnect(true,true);
  WiFi.begin();
  for (size_t i = 0; i < 20; i++)
  {
    int wifiStatus = WiFi.status();
    if (wifiStatus == WL_CONNECTED)
    {
      Serial.println("自动连接成功!");
      return 1;
    }
    else
    {
      delay(1000);
      Serial.println("等待自动配网中...");
    }
  }
  Serial.println("无法自动配网!");
  return 0;
}
 
void setup()
{
  Serial.begin(115200);
  delay(5000);
  if (!autoConfig())
  {
    mySmartWifiConfig();
  }
}
void loop()
{
  if (WiFi.isConnected())
  {
    Serial.println("网络已连接");
    delay(1000);
  }
} 
 
 
 
 
 
 
            MQTT协议是一个应用层协议,他要求使用的传输层协议能提供有序的,可靠的双向字节流传输服务。
Arduino-ESP32与ESP-IDF的版本对应表。
Arduino-ESP32提供了多种文件系统解决方案,本文将深入解析SPIFFS、LittleFS和SD卡三种主流存储方案,帮助你做出最佳选择。
ESP32-P4-WIFI6-DEV-KIT是一款微雪(Waveshare)设计的基于 ESP32-P4 的多媒体开发板,并集成 ESP32-C6,支持 Wi-Fi 6 和 BLE 5 无线连接。它提供丰富的人机交互接口,包括 MIPI-CSI (集成图像信号处理器 ISP)、MIPI-DSI、SPI、I2S、I2C、LED PWM、MCPWM、RMT、ADC、UART 和 TWAI 等。
 
            ESP-Hosted 解决方案提供了将 ESP 板用作 Wi-Fi 和 Bluetooth/BLE 连接的通信处理器的方法。
ESP-Hosted 提供了一种将ESP芯片和模组用作通信协处理器的解决方案,该解决方案为主机微处理器或微控制器提供无线连接,使主机能够与其他设备通信。简单来说为网卡方案。
Arduino+ESP32上使用TFT_eSPI库快速点亮这个屏幕,驱动芯片ST7789
本文给出了一个ESP32与SPI 接口TFT显示屏接线的详细说明,供大家参考。
本文讲解如何在Micropython环境下使用ESP32的ESPNow功能进行数据传输。
ESP-Dongle 是一款基于 ESP32-S3 芯片开发的多功能 USB Device 解决方案。它不仅外形小巧,功能齐全,更集成了无线 U 盘、SD 卡读取以及 USB 无线网卡等多项功能。
 
            ESP32 系列芯片可以利用 CSI 数据实现动作检测和存在检测。无论是自动调节灯光、风扇,还是节能控制,CSI 技术为智能家居带来了新的可能性。随着 CSI 技术的发展,未来的智能家居将能够更精确地感知和响应我们的行为,实现更高效、更人性化的控制。
