完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ESP8266的最重要的作用就是连接网络,那么就来研究下怎样使用。
首先,ESP8266连接网络有三种模式:STA模式、AP模式、STA+AP模式。 typedef enum WiFiMode { WIFI_OFF = 0, WIFI_STA = 1, WIFI_AP = 2, WIFI_AP_STA = 3 } WiFiMode_t; 位置:Arduino15packagesesp8266hardwareesp82662.3.0librariesESP8266WiFisrcESP8266WiFiType.h 这三种模式大家应该都很熟悉,STA模式用于连接到路由器的模式,AP模式是指ESP8266相当于路由器,其他的设备可以连接到ESP8266发出的WiFi中,STA+AP模式当然就是两者兼顾。 那么我们要连接网络,可以设置成STA模式。 在ESP8266的例程里面,一般都包含ESP8266WiFi.h这个头文件,因为在这个头文件中又包含了很多用于其他功能的头文件。 include "IPAddress.h" include "ESP8266WiFiType.h" include "ESP8266WiFiSTA.h" include "ESP8266WiFiAP.h" include "ESP8266WiFiScan.h" include "ESP8266WiFiGeneric.h" include "WiFiClient.h" include "WiFiServer.h" include "WiFiClietSecure.h" 连接时只需要使用WiFi.begin()函数,这个WiFi又是从哪里冒出来的,我们在文件中并没有定义啊,其实在ESP8266WiFi.h中早已帮我们定义了一个对象: extern ESP8266WiFiClass WiFi; 因此这里我们可以直接使用。 那为什么直接使用WiFi.begin()就可以实现了呢,不是应该设置成STA模式吗,没错在这个函数内部,这些工作都已经帮我们做好了。 wl_status_t ESP8266WiFiSTAClass::begin(const char* ssid, const char *passphrase, int32_t channel, const uint8_t* bssid, bool connect) { // 设置成STA模式 if(!WiFi.enableSTA(true)) { // enable STA failed return WL_CONNECT_FAILED; } // 判断WiFi的SSID和PASS是否符合规范 if(!ssid || *ssid == 0x00 || strlen(ssid) > 31) { // fail SSID too long or missing! return WL_CONNECT_FAILED; } if(passphrase && strlen(passphrase) > 64) { // fail passphrase too long! return WL_CONNECT_FAILED; } ............................. // 忽略 ETS_UART_INTR_DISABLE(); if(connect) { wifi_station_connect(); // 连接 } ............................. // 忽略 return status(); } 下面是完整的代码 #include #define KEY 4 #define LED 2 const char *ssid = "your ssid"; const char *pass = "your password"; void setup() { // put your setup code here, to run once: pinMode(KEY, INPUT); pinMode(LED, OUTPUT); Serial.begin(115200); Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.print(ssid); WiFi.begin(ssid, pass); while(WiFi.status() != WL_CONNECTED){ delay(500); Serial.print("."); } Serial.println(); Serial.println("WiFi Connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); } void loop() { // put your main code here, to run repeatedly: delay(500); } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
533 浏览 0 评论
803 浏览 1 评论
700 浏览 1 评论
1926 浏览 1 评论
3171 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:13 , Processed in 0.653102 second(s), Total 91, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号