当前位置: 代码迷 >> 综合 >> ESP8266--(STA-AP)
  详细解决方案

ESP8266--(STA-AP)

热度:116   发布时间:2023-11-24 21:28:46.0

材料:一根数据线,一个ESP8266-NODEMCU开发板
如图:
在这里插入图片描述

ESP8266模块的工作模式一共有三种:1.接入点模式(AP)2.无线终端模式(STA)3.混合模式

1.作为一个连接设备,手机开热点,模块连接手机所开的热点(STA)

 #include <ESP8266WiFi.h>const char*ssid = "huaweip30";                 //手机的WiFi名
const char*password = "1234567890";            //手机的WiFi密码
void setup() {Serial.begin(115200);Serial.println();Serial.println();Serial.println("Connedting to");             //打开串口打印正在等待连接手机WiFiSerial.println(ssid);WiFi.mode(WIFI_STA);                         //WiFi模式WiFi.begin(ssid,password);                   //连接WiFiwhile(WiFi.status()!=WL_CONNECTED){          //获取WiFi的连接状态不等于非链接delay(500);Serial.print('.');}Serial.println("");Serial.println("WiFi connected");Serial.println("IP address");Serial.println(WiFi.localIP());              //读取IP地址打印
}void loop() {}

2.建立一个WIFI网络,其他设备可以连接ESP8266(AP)

 #include<ESP8266WiFi.h>
void setup() {Serial.begin(115200);                             Serial.println("");IPAddress softLocal(192,168,128,0);             //配置ESP8266的地址IPAddress softGateway(192,168,128,1);           //配置网关IPAddress softSubnet(255,255,255,0);            //配置子网掩码(内网)WiFi.softAPConfig(softLocal, softGateway, softSubnet);    //IP的配置String apName = ("ESP8266_"+(String)ESP.getChipId());    // 设置WIFI名称 获取内存芯片id给字符串apNameconst char *softAPName = apName.c_str();                 //定义一个指向字符常量的指针  c_str返回的是一个分配给const char*的地址WiFi.softAP(softAPName, "1234567890");         //设置接入点WiFi信息,名称及密码IPAddress myIP = WiFi.softAPIP();              // 获取接入点的IP地址Serial.print("AP IP address: ");      Serial.println(myIP);Serial.print("softAPName: ");                  // 输出WIFI 名称Serial.println(apName);
}void loop() {}

API说明

2.1 模块基本信息

1 ESP.getResetReason() —— 获取上次复位原因
2 ESP.getFreeHeap() —— 获取可用堆大小
3 ESP.getChipId() —— 获取芯片id
4 ESP.getCoreVersion() —— 获取核心库版本
5 ESP.getSdkVersion() —— 以字符形式返回SDK版本
6 ESP.getCpuFreqMHz() —— 获取cpu运行频率
7 ESP.getSketchSize() —— 获取当前固件大小
8 ESP.getFreeSketchSpace() —— 获取当前剩余可用固件空间
9 ESP.getSketchMD5() —— 返回当前固件的MD5的小写字符串
10 ESP.getFlashChipId() —— 获取闪存芯片id
11 ESP.getFlashChipSize() —— 获取sdk得到的闪存芯片大小
12 ESP.getFlashChipRealSize() —— 获取闪存芯片真正大小
13 ESP.getFlashChipSpeed() —— 获取闪存芯片运行频率

c_str()返回的是一个分配给const char的地址,其内容已设定为不可变
更,如果再把此地址赋给一个可以变更内容的char
变量,就会产生冲突,
在2010中是不被允许的。但是如果放入函数调用,或者直接输出,因为这
些函数和输出都是把字符串指针作为 const char*引用的,所以不会有问题。
AP库函数解义
softAP – 设置接入点WiFi信息
softAPConfig – 配置接入点网络信息(如IP地址等)
softAPDisconnect – 关闭接入点模式
softAPIP – 获取接入点IP地址
softAPmacAddress – 获取接入点mac
softAPSSID – 获取接入点WiFi名称
softAPPSK – 获取接入点连接密码
softAPGetStationNum – 获取连接上的终端数量
STA库函数解义
begin – 连接WiFi
config – 配置网络(如,IP地址,网关IP等)
reconnect – 重新连接WiFi
disconnect – 断开WiFi连接
setAutoConnect – 设置是否自动连接WiFi
setAutoReconnect – 设置是否自动重新连接WiFi
waitForConnectResult – 等待WiFi连接
status – 获取WiFi连接状态
SSID – 获取SSID
psk – 获取psk
BSSIDstr – 获取WiFi接入点的mac地址
localIP – 获取IP地址
subnetMask – 获取子网掩码
gatewayIP – 获取网关地址
dnsIP – 获取DNS地址
macAddress – 获取mac地址
hostname – 获取/设置主机名
isConnected – 获取WiFi连接状态
getAutoConnect – 获取自动连接WiFi设置
RSSI – 获取WiFi信号强度

  相关解决方案