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); } }第一次连接时:
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 技术的发展,未来的智能家居将能够更精确地感知和响应我们的行为,实现更高效、更人性化的控制。
ESP32-FreeRTOS项目提供了丰富的示例,帮助开发者快速掌握ESP32的硬件功能和FreeRTOS实时操作系统。
本节我们在迭代二的基础上使用四位数码管和OLED显示屏显示相关交互信息。
本节我们在迭代一的基础上增加采集土壤湿度数据,并根据湿度数据来决定是否自动进行浇水动作。