探究ESP32S【第二天】——连接wifi(2)

博客介绍了在ESP32上使用MicroPython的相关操作,包括通过help命令查看信息、使用machine模块访问硬件、进行基本WiFi配置等,还提及MicroPython对字符串处理不如Python自如,后续打算用正则表达式完善连接WiFi代码。

先敲个help(),ESP32里面到底有哪些,help一下:

 

Welcome to MicroPython on the ESP32!

 

For generic online docs please visit http://docs.micropython.org/

 

For access to the hardware use the 'machine' module:

 

import machine

pin12 = machine.Pin(12, machine.Pin.OUT)

pin12.value(1)

pin13 = machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_UP)

print(pin13.value())

i2c = machine.I2C(scl=machine.Pin(21), sda=machine.Pin(22))

i2c.scan()

i2c.writeto(addr, b'1234')

i2c.readfrom(addr, 4)

 

Basic WiFi configuration:

 

import network

sta_if = network.WLAN(network.STA_IF); sta_if.active(True)

sta_if.scan() # Scan for available access points

sta_if.connect("<AP_name>", "<password>") # Connect to an AP

sta_if.isconnected() # Check for successful connection

 

Control commands:

CTRL-A -- on a blank line, enter raw REPL mode

CTRL-B -- on a blank line, enter normal REPL mode

CTRL-C -- interrupt a running program

CTRL-D -- on a blank line, do a soft reset of the board

CTRL-E -- on a blank line, enter paste mode

 

For further help on a specific object, type help(obj)

For a list of available modules, type help('modules')

 

看看还有哪些模块,help('modules')

今天生病了,时间不够,那么就完善一下当前的连接wifi的代码

 

拉闸,好像mircopython对字符串不太友好,并不想python那么自如。

明天用正则表达式试一下

所给参考引用中未提及乐鑫esp32s3box3连接WiFi的方法。一般而言,乐鑫ESP32系列设备连接WiFi通常可按以下步骤进行: ### 1. 包含必要的头文件 在代码中包含WiFi相关的头文件,例如: ```c #include "esp_wifi.h" #include "esp_event.h" #include "nvs_flash.h" ``` ### 2. 初始化WiFi 在初始化之前,需要初始化非易失性存储(NVS),用于存储WiFi配置等信息。 ```c // 初始化NVS esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); ret = nvs_flash_init(); } ESP_ERROR_CHECK(ret); // 初始化WiFi栈 esp_netif_init(); esp_event_loop_create_default(); esp_netif_create_default_wifi_sta(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&cfg)); ``` ### 3. 配置WiFi参数 设置要连接WiFi的SSID和密码。 ```c wifi_config_t wifi_config = { .sta = { .ssid = "YOUR_SSID", .password = "YOUR_PASSWORD" }, }; ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) ); ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) ); ``` 将`YOUR_SSID`替换为实际的WiFi名称,`YOUR_PASSWORD`替换为实际的WiFi密码。 ### 4. 启动WiFi ```c ESP_ERROR_CHECK(esp_wifi_start() ); ``` ### 5. 处理连接事件 可以通过事件循环来处理WiFi连接的各种事件,例如连接成功、连接失败等。 ```c // 注册事件处理函数 esp_event_handler_instance_t instance_any_id; esp_event_handler_instance_t instance_got_ip; ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL, &instance_any_id)); ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL, &instance_got_ip)); // 事件处理函数示例 static void event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) { esp_wifi_connect(); } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) { esp_wifi_connect(); s_retry_num++; ESP_LOGI(TAG, "retry to connect to the AP"); } else { xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); } ESP_LOGI(TAG,"connect to the AP fail"); } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); s_retry_num = 0; xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); } } ``` ### 6. 等待连接结果 可以使用事件组来等待连接成功或失败的结果。 ```c EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT | WIFI_FAIL_BIT, pdFALSE, pdFALSE, portMAX_DELAY); if (bits & WIFI_CONNECTED_BIT) { ESP_LOGI(TAG, "connected to ap SSID:%s password:%s", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); } else if (bits & WIFI_FAIL_BIT) { ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); } else { ESP_LOGE(TAG, "UNEXPECTED EVENT"); } ``` 以上代码只是一个基本示例,实际应用中可能需要根据具体情况进行调整和优化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值