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基本功能实现,采坑经验相关推荐

  1. VS2015+MySql+EF6采坑经验总结

    原文:VS2015+MySql+EF6采坑经验总结 背景:VS2015+MySql+EF6(DB First) 采坑顺序:按照以前的记忆,操作依次如下: 1,安装 MySQL Connector/NE ...

  2. ESP32串口转WiFi双天线ESP32-S模组

    ▌ESP32小模块 1.外置管脚功能图 安信可原厂直销 WiFi+蓝牙模块ESP32串口转WiFi双天线ESP32-S模组 2.自动下载电路 参考下载电路分析 ESP8266专题-ESP8266自动下 ...

  3. esp32 Flash分区与OTA功能简析

    升级功能对于所有的嵌入式产品都是非常重要的.尤其是当产品量产/销售阶段,已经没有条件让厂家对产品升级,因此升级方式的设计必须防呆防错以及稳定. 乐鑫ESP32作为蓝牙WIFI合一的物联网芯片,开发成产 ...

  4. esp32拍照传输到手机android,ESP32 之 esp32-cam wifi拍照传图系统2

    ESP32 之 esp32-cam wifi拍照传图系统2 ESP32 之 esp32-cam wifi拍照传图系统2 ESP32 之 esp32-cam wifi拍照传图系统 补充说明 ESP32- ...

  5. ESP32 之 esp32-cam wifi拍照传图系统2

    ESP32 之 esp32-cam wifi拍照传图系统 补充说明 ESP32-CAM总结 一. ESP32初识 ESP32-CAM模组的核心芯片:ESP32-S 模块是一款超小体积的多功能通用型 8 ...

  6. 基于ESP32实现一个WIFI透传模块demo

    esp32作为一个热门芯片,网上的文章很多,sdk里的例子和官网的教程也是比较详细.不过作为新玩家,还是要先做一些小改动才更容易入门.所以这里就综合几个example代码,写一个简单的透传demo. ...

  7. 局域网通讯工具_自动称重带无线通讯WIFI传输功能设备

    自动称重带无线通讯WIFI传输功能设备详情内容/ Content details 支持: 远程数据库功能,支持OPCUA协议,能实时上传各种称重信息:通过SQLServer等实现称重数据与记录的上传到 ...

  8. macos修改WIFI共享功能的默认网段

    macos用有线网络开启网络共享.电脑终端无法连接到内网IP上的服务. 需要修改WIFI共享功能的默认网段. 转载自:http://www.voidcn.com/article/p-qjalcvsp- ...

  9. 别傻了!不能只会给别人开热点,要尝试华为手机的WiFi分享功能

    别傻了!不能只会给别人开热点,要尝试华为手机的WiFi分享功能 当大家跟小伙伴一起出去玩的时候,在这个到处都有wifi信号的地方,你的小伙伴却因为没有流量而连接不了无线网,我们作为朋友第一时间想到的就 ...

  10. 关于wifi portal认证--为浏览器添加wifi认证功能

    ###关于wifi portal认证–为浏览器添加wifi认证功能 1.什么是portal认证 2.android的原生portal认证概要讲述 3.独立出portal认证到浏览器 ####1.什么是 ...

最新文章

  1. python 删除第三方库_python 安装移动复制第三方库操作
  2. linux程序设计---序
  3. 按钮是什么意思_汽车里的Rear按键是什么意思?
  4. php二分查找例题,PHP实现的二分查找算法实例分析
  5. 程序员探案之 Python 和 Redis 的“第三者”
  6. enq: tt - contention_时空中的绘旅人tt游戏下载-时空中的绘旅人tt客户端下载v1.0.16 安卓版...
  7. python selenium 元素定位总结(转载)
  8. 廖雪峰Python练习题
  9. CSS 实现半透明边框效果实战
  10. (附源码)ssm小米购物网站 毕业设计 261624
  11. 用什么软件来画软件的架构图?
  12. 360视频:二十面体投影ISP
  13. 【Docker】MySQL 主从配置(一主一从)
  14. 计算机电源可以改装,闲置的台式机电脑电源别扔了,可以拿来改0-30V可调电源...
  15. 计算机室英语单词怎么读,“计算机”英语单词怎么读?
  16. 水溶性CdseTe ZnS量子点
  17. OSChina 周三乱弹 ——送你们个漂亮妹子!
  18. 新手学Python之学习官网教程(二: Using the Python Interpreter)
  19. 第二章:简单古典密码(及其五元组)
  20. 企业信息化投入中咨询服务_咨询服务企业如何实施项目核算信息化建设

热门文章

  1. 教你如何玩转豆瓣(douban) 豆瓣使用入门!
  2. ttk python_python GUI ttk库 -- Apple的学习笔记
  3. 系统安装部署软件方法
  4. Java学习路线全过程(包含视频及图书资源)
  5. demo解析 小程序node.js_小程序基于疼讯qcloud的nodejs开发服务器部署
  6. 手把手教你搭建小程序
  7. ORACLE数据库空间满了如何进行空间扩展
  8. 西游记中天庭与西天的关系
  9. 针对谷粒商城P46 验证码图片加载出来错误503
  10. php756中医,百人诈骗团伙冒充老中医微信钓鱼九千余人被骗