ESP8266+Sta模式简单使用

本文介绍了ESP8266在Sta模式下的使用,包括模式设置、常用函数如WiFi.mode(), WiFi.disconnect(), WiFi.begin()等,以及如何检查连接状态和获取IP地址。在搭建过程中,设备会显示连接成功并打印IP地址。" 128667734,15928690,C语言实现通讯录项目,"['C语言', '数据结构', '程序设计']
摘要由CSDN通过智能技术生成

ESP8266(Sta模式的介绍)

ESP8266可通过WiFi连接无线路由器。这与手机通过WiFi连接无线路由器的模式相同。
在这里插入图片描述

Sta模式下常用函数

  • WiFi.mode(WIFI_STA); //将此WiFi芯片设为站点模式,(WIFI_AP为访问接入点模式,WIFI_AP_STA为访问接入点和站点的混合模式)
  • WiFi.softAPIP(); //得到AP的地址。
  • WiFi.disconnect(); //断开WiFi连接,要想连接必先断开。
  • IPAddress ip=WiFi.softAPIP(); //获取AP的IP地址,并存入变量IP中。
  • WiFi.begin(ssid,password); //接入到无线环境热点。
  • WiFi.softAP(ssid,password); //设定为AP模式
  • WiFi.status()!=WL_CONNECTED //wifi连接失败(一般用在while循环中)
  • WiFi.localIP(); //得到本地电脑的IP地址。

Sta模式的搭建

 
#include <ESP8266WiFi.h>        // 本程序使用ESP8266WiFi库
 
#define ssid "MEIZU"     // 连接WiFi名                                        
#define password  "11111111"  // 连接WiFi密码
                      
以下是一个简单ESP8266 IDF 使用 AP STA 模式的代码示例: ``` #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_wifi.h" #include "esp_event_loop.h" #include "esp_log.h" #define WIFI_SSID "my_wifi_ssid" #define WIFI_PASS "my_wifi_password" static const char *TAG = "wifi station"; static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { if (event_id == WIFI_EVENT_STA_START) { esp_wifi_connect(); } else if (event_id == WIFI_EVENT_STA_DISCONNECTED) { esp_wifi_connect(); ESP_LOGI(TAG, "retry to connect to the AP"); } } void wifi_init_sta(void) { wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); esp_wifi_init(&cfg); esp_event_handler_instance_t instance_any_id; esp_event_handler_instance_t instance_got_ip; esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, &instance_any_id); esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL, &instance_got_ip); wifi_config_t wifi_config = { .sta = { .ssid = WIFI_SSID, .password = WIFI_PASS, }, }; esp_wifi_set_mode(WIFI_MODE_STA); esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config); esp_wifi_start(); ESP_LOGI(TAG, "wifi_init_sta finished."); ESP_LOGI(TAG, "connect to ap SSID:%s password:%s", WIFI_SSID, WIFI_PASS); } void wifi_init_softap(void) { wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); esp_wifi_init(&cfg); wifi_config_t wifi_config = { .ap = { .ssid = "my_ap_ssid", .ssid_len = 0, .password = "my_ap_password", .max_connection = 4, .authmode = WIFI_AUTH_WPA_WPA2_PSK, }, }; esp_wifi_set_mode(WIFI_MODE_AP); esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config); esp_wifi_start(); ESP_LOGI(TAG, "wifi_init_softap finished."); ESP_LOGI(TAG, "ssid:%s password:%s", "my_ap_ssid", "my_ap_password"); } void app_main() { ESP_ERROR_CHECK(esp_netif_init()); ESP_ERROR_CHECK(esp_event_loop_create_default()); wifi_init_softap(); wifi_init_sta(); } ``` 这个示例代码中,我们使用ESP8266 IDF 的 Wi-Fi 库来实现 AP STA 模式。在这个模式下,ESP8266 既可以作为一个 Wi-Fi 接入点(AP),也可以作为一个 Wi-Fi 客户端(STA)连接到其他 Wi-Fi 接入点。在这个示例中,我们首先初始化了一个 Wi-Fi 接入点,然后初始化了一个 Wi-Fi 客户端,连接到了一个指定的 Wi-Fi 接入点。在连接过程中,我们还注册了一些 Wi-Fi 事件处理程序,以便在连接状态发生变化时进行处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值