前言:本人最近在学习ESP8266物联网开发,想写博客记录一下学习过程,同时也是进一步加深对于知识的理解和掌握,希望大家共勉!
个人觉得,不管是Arduino还是ESP8266,还是ESP32在库函数方面是比STM32简单很多的。难就难在涉及很多的互联网知识,之前没有接触过的话,是有些吃力的,所以建议大家遇到不懂的名词多使用度娘,或者gpt搜一下,并做好笔记。
下面赋上我常用的gpt3.5国内镜像网站,我认为已足够应付大多数问题。
AIchatOShttps://chat12.aichatos.xyz/
我是看b站太极创客的视频学习的,老师声音很好听,讲的也超级好!
链接如下:
【ESP8266教程】零基础入门学用物联网-基础知识篇(太极创客团队)_哔哩哔哩_bilibili
由于Arduino ide 没办法打开库函数定义,对于开发和了解库函数有点障碍,于是我更新了这个专栏,用于记录ESP8266所涉及的库函数,便于下次应用开发,希望对大家有所益处。
这期介绍的是接入点模式相关库函数。其中4-8函数用法大同小异。举一反三即可
下图为接入点模式相关库函数脉络图(截自太极创客官网):
网站如下:
零基础入门学用物联网 – 基础知识篇 – 目录 – 太极创客
下面我会根据脉络图对各函数挨个进行介绍。
一、设置接入点WiFi信息函数
WiFi.softAP(ssid, passphrase, channel, ssid_hidden, max_connection);
1.参数:
– ssid: char型,WiFi网络名称
– passphrase: int型,WiFi密码(对于WPA2加密类型最少8个字符,对于开放网络设置为NULL)
– channel: int型,wifi信道。可选通道有1-13,不设置的情况下默认是1。
– hidden: bool型,控制 WiFI是否隐藏的标志变量。设置为0不隐藏,设置为1隐藏。
– max_connection: int型,最大的允许连接的无线终端数量。可选数值范围是1 – 4(ESP8266模块最多允许同时连接的无线终端设备数量是4个)。
2.返回值:
返回设置结果。设置成功返回true,否则返回false。数据类型为bool型。
3.说明:
(1)一般常用前两个,ssid和passphrase,即网络名称和密码。
(2)常见用法
const char *ssid = "taichi-maker"; // 这里定义将要建立的WiFi名称。此处以"taichi-maker"为示例
// 您可以将自己想要建立的WiFi名称填写入此处的双引号中
const char *password = "12345678"; // 这里定义将要建立的WiFi密码。此处以12345678为示例
// 您可以将自己想要使用的WiFi密码放入引号内
// 如果建立的WiFi不要密码,则在双引号内不要填入任何信息
WiFi.softAP(ssid, password); // 此语句是重点。WiFi.softAP用于启动NodeMCU的AP模式。
// 括号中有两个参数,ssid是WiFi名。password是WiFi密码。
// 这两个参数具体内容在setup函数之前的位置进行定义。
二、配置接入点网络信息函数
WiFi.softAPConfig (local_ip, gateway, subnet);
1.参数
local_ip: 接入点的ip地址。(IPAddress型)
gateway: 网关IP地址。 (IPAddress型)
subnet: 子网掩码。(IPAddress型)
2.返回值注:这里的ip地址只做参考,根据实际情况选择
返回设置结果。设置成功返回true,否则返回false。数据类型为bool型。
3.常见用法
IPAddress local_IP(192,168,4,22);//手动设置的开启的网络的ip地址
IPAddress gateway(192,168,4,9); //手动设置的网关IP地址
IPAddress subnet(255,255,255,0); //手动设置的子网掩码
//配置接入点的IP,网关IP,子网掩码
WiFi.softAPConfig(local_IP, gateway, subnet);
三、关闭接入点模式库函数
WiFi.softAPdisconnect()
WiFi.softAPdisconnect(val)
1.参数
参数val类型为bool。如果将该参数设置为true,设备将直接关闭接入点模式。
在不输入参数的情况下调用该函数,设备会将当前配置的网络名和密码设置为空值。
2.返回值
返回设置是否成功的结果。设置成功返回true。数据类型为bool型。
3.常见用法
bool wifioff = true; // 接入点模式设置变量
WiFi.softAPdisconnect(wifioff);//关闭接入点
四、获取接入点IP地址函数
wiFiAP.softAPIP()
1.参数
无
2.返回值
此函数的返回值是ESP8266开发板的IP地址。(类型:IPAddress)
3.常见用法
Serial.println(WiFi.softAPIP()); //串口打印当前AP点的IP地址
五、获取接入点mac函数
WiFi.softAPmacAddress()
WiFi.softAPmacAddress(macAddr)
1,参数/返回值
(1)如果不输入参数,函数的返回值为ESP8266开发板的mac地址(String类型)。
Serial.printf("MAC地址为 %s\n", WiFi.softAPmacAddress().c_str());
//打印MAC地址
注(非常重要):因为函数返回值为String类型,故需要使用.c_str()转换为C风格字符串
关于String类型和C风格字符串的区别
(2)如果输入参数macAddr。那么ESP8266开发板的mac地址将会存储在macAddr中。macAddr必须是一个uint8_t类型的数组,且该数组含有6个元素。
uint8_t macAddr[6];
WiFi.softAPmacAddress(macAddr);
Serial.printf("MAC地址为 %02x:%02x:%02x:%02x:%02x:%02x\n", macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]);
六、获取接入点WiFi名称函数
WiFi.softAPSSID()
1.参数
无
2.返回值
返回接入点WiFi名称,数据类型为字符串型。
3.常见用法
Serial.println(WiFi.softAPSSID()); //输出接入点的wifi名称
七、获取接入点连接密码函数
wiFi.softAPPSK()
1.参数
无
2.返回值
返回接入点WiFi密码,数据类型为字符串型
3.常见用法
Serial.println(WiFi.softAPPSK()); //输出接入点密码
八、获取连接上的终端数量函数
wiFi.softAPgetStationNum()
1.参数
无
2.返回值
连接到ESP8266开发板接入点的无线终端数量,数据类型为int型。
3.常见用法
Serial.printf("连接此接入点上的无线终端数目 = %d\n", WiFi.softAPgetStationNum());