ESP32-WROOM-32E,WIFI基本功能实现,采坑经验
ESP32-WROOM-32E,WIFI基本功能实现,采坑经验
用的示例代码,路径 D:\esp-idf\examples\wifi\getting_started\station 。
看官网教程,路径https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32/get-started/index.html#get-started-connect。
问题
1、没有很好的解决。尝试过换其他工程的build.ninjia,用了会报错。
2、最后重新将代码拷贝的新的工程才解决。
问题
路由如果断开,WIFI不会自动重连
ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler));
ESP_ERROR_CHECK(esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler));
vEventGroupDelete(s_wifi_event_group);
主要是上面一段程序,注销WIFI事件、注销后路由断开后再上线不会重连。屏蔽掉就好了。
问题
连上wifi同时,获取wifi信号强度
主要是参考–>链接:esp32 采集某个路由器信号强度.
加工变成自己的连上wif实时获取信号强度。应用的idf版本不同,其函数也会不同,如最新版本的wifi初始化过程就没有tcpip_adapter_init();对照找example修改一下就行。
程序如下:
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/event_groups.h"
#include "esp_wifi.h"
#include "esp_log.h"
#include "esp_event_loop.h"
#include "nvs_flash.h"#define DEFAULT_SCAN_LIST_SIZE CONFIG_EXAMPLE_SCAN_LIST_SIZE
#define EXAMPLE_ESP_WIFI_SSID "esp32"
#define EXAMPLE_ESP_WIFI_PASS "12345678"const int SCAN_DONE_BIT = BIT0;
static EventGroupHandle_t wifi_event_group;static wifi_scan_config_t wifi_config = { .ssid = (uint8_t*)"esp32", .bssid = NULL, };static esp_err_t event_handler(void *ctx, system_event_t *event)
{switch(event->event_id) {case SYSTEM_EVENT_SCAN_DONE:got_scan_done_event = true;xEventGroupSetBits(wifi_event_group,SCAN_DONE_BIT);break;default:break;}return ESP_OK;}
static void init_wifi(void)
{tcpip_adapter_init();wifi_event_group = xEventGroupCreate();ESP_ERROR_CHECK(esp_event_loop_init(event_handler, NULL));wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();ESP_ERROR_CHECK(esp_wifi_init(&cfg));wifi_config_t s_wifi_config = {.sta = {.ssid = EXAMPLE_ESP_WIFI_SSID,.password = EXAMPLE_ESP_WIFI_PASS, },};ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM));ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &s_wifi_config) );ESP_ERROR_CHECK(esp_wifi_start());esp_wifi_connect();vTaskDelay(5000 /portTICK_PERIOD_MS);//这边加延时是为了让wifi连接,//如果没有延时会程序会一直重启。最好写一个wifi连接上的判断。实例代码example都有.for(int i=0;i<30;i++){ ESP_ERROR_CHECK(esp_wifi_scan_start(&wifi_config,1));xEventGroupClearBits(wifi_event_group,SCAN_DONE_BIT);uint16_t apCount=0;esp_wifi_scan_get_ap_num(&apCount); printf("Nuber of access points found:%d\n",apCount);if(apCount==0){ESP_LOGI(TAG,"NOting ap found");return;}wifi_ap_record_t *list = (wifi_ap_record_t *)malloc(sizeof(wifi_ap_record_t) *apCount);ESP_ERROR_CHECK(esp_wifi_scan_get_ap_records(&apCount,list));printf("signal:%4d\n",list[0].rssi);free(list);printf("\n\n");vTaskDelay(200 /portTICK_PERIOD_MS); //延时200毫秒ESP_ERROR_CHECK(esp_wifi_scan_start(&wifi_config,1));}
}
void app_main()
{// Initialize NVSesp_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 );init_wifi();
}
问题
ESP32的AP和STA共存。
ESP32-WROOM-32E,WIFI基本功能实现,采坑经验相关推荐
- VS2015+MySql+EF6采坑经验总结
原文:VS2015+MySql+EF6采坑经验总结 背景:VS2015+MySql+EF6(DB First) 采坑顺序:按照以前的记忆,操作依次如下: 1,安装 MySQL Connector/NE ...
- ESP32串口转WiFi双天线ESP32-S模组
▌ESP32小模块 1.外置管脚功能图 安信可原厂直销 WiFi+蓝牙模块ESP32串口转WiFi双天线ESP32-S模组 2.自动下载电路 参考下载电路分析 ESP8266专题-ESP8266自动下 ...
- esp32 Flash分区与OTA功能简析
升级功能对于所有的嵌入式产品都是非常重要的.尤其是当产品量产/销售阶段,已经没有条件让厂家对产品升级,因此升级方式的设计必须防呆防错以及稳定. 乐鑫ESP32作为蓝牙WIFI合一的物联网芯片,开发成产 ...
- esp32拍照传输到手机android,ESP32 之 esp32-cam wifi拍照传图系统2
ESP32 之 esp32-cam wifi拍照传图系统2 ESP32 之 esp32-cam wifi拍照传图系统2 ESP32 之 esp32-cam wifi拍照传图系统 补充说明 ESP32- ...
- ESP32 之 esp32-cam wifi拍照传图系统2
ESP32 之 esp32-cam wifi拍照传图系统 补充说明 ESP32-CAM总结 一. ESP32初识 ESP32-CAM模组的核心芯片:ESP32-S 模块是一款超小体积的多功能通用型 8 ...
- 基于ESP32实现一个WIFI透传模块demo
esp32作为一个热门芯片,网上的文章很多,sdk里的例子和官网的教程也是比较详细.不过作为新玩家,还是要先做一些小改动才更容易入门.所以这里就综合几个example代码,写一个简单的透传demo. ...
- 局域网通讯工具_自动称重带无线通讯WIFI传输功能设备
自动称重带无线通讯WIFI传输功能设备详情内容/ Content details 支持: 远程数据库功能,支持OPCUA协议,能实时上传各种称重信息:通过SQLServer等实现称重数据与记录的上传到 ...
- macos修改WIFI共享功能的默认网段
macos用有线网络开启网络共享.电脑终端无法连接到内网IP上的服务. 需要修改WIFI共享功能的默认网段. 转载自:http://www.voidcn.com/article/p-qjalcvsp- ...
- 别傻了!不能只会给别人开热点,要尝试华为手机的WiFi分享功能
别傻了!不能只会给别人开热点,要尝试华为手机的WiFi分享功能 当大家跟小伙伴一起出去玩的时候,在这个到处都有wifi信号的地方,你的小伙伴却因为没有流量而连接不了无线网,我们作为朋友第一时间想到的就 ...
- 关于wifi portal认证--为浏览器添加wifi认证功能
###关于wifi portal认证–为浏览器添加wifi认证功能 1.什么是portal认证 2.android的原生portal认证概要讲述 3.独立出portal认证到浏览器 ####1.什么是 ...
最新文章
- python 删除第三方库_python 安装移动复制第三方库操作
- linux程序设计---序
- 按钮是什么意思_汽车里的Rear按键是什么意思?
- php二分查找例题,PHP实现的二分查找算法实例分析
- 程序员探案之 Python 和 Redis 的“第三者”
- enq: tt - contention_时空中的绘旅人tt游戏下载-时空中的绘旅人tt客户端下载v1.0.16 安卓版...
- python selenium 元素定位总结(转载)
- 廖雪峰Python练习题
- CSS 实现半透明边框效果实战
- (附源码)ssm小米购物网站 毕业设计 261624
- 用什么软件来画软件的架构图?
- 360视频:二十面体投影ISP
- 【Docker】MySQL 主从配置(一主一从)
- 计算机电源可以改装,闲置的台式机电脑电源别扔了,可以拿来改0-30V可调电源...
- 计算机室英语单词怎么读,“计算机”英语单词怎么读?
- 水溶性CdseTe ZnS量子点
- OSChina 周三乱弹 ——送你们个漂亮妹子!
- 新手学Python之学习官网教程(二: Using the Python Interpreter)
- 第二章:简单古典密码(及其五元组)
- 企业信息化投入中咨询服务_咨询服务企业如何实施项目核算信息化建设