• 大小: 10.2MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-10-14
  • 语言: 其他
  • 标签: esp32  airkis  esp32  smartc  

资源简介

乐鑫Esp32的smartConfig和微信airKiss,一键配网轻松快捷连接路由器。CSDN博客 https://blog.csdn.net/xh870189248/article/details/80430077

资源截图

代码片段和文件信息


#include 
#include 
#include “freertos/FreeRTOS.h“
#include “freertos/task.h“
#include “freertos/event_groups.h“
#include “esp_wifi.h“
#include “esp_wpa2.h“
#include “esp_event_loop.h“
#include “esp_log.h“
#include “esp_system.h“
#include “nvs_flash.h“
#include “tcpip_adapter.h“
#include “esp_smartconfig.h“


/* FreeRTOS event group to signal when we are connected & ready to make a request */
static EventGroupHandle_t wifi_event_group;

/* The event group allows multiple bits for each event
 but we only care about one event - are we connected
 to the AP with an IP? */
static const int CONNECTED_BIT = BIT0;
static const int ESPTOUCH_DONE_BIT = BIT1;
static const char *TAG = “sc“;

void smartconfig_example_task(void * parm);

static esp_err_t event_handler(void *ctx system_event_t *event) {
switch (event->event_id) {
case SYSTEM_EVENT_STA_START:
xTaskCreate(smartconfig_example_task “smartconfig_example_task“ 4096
NULL 3 NULL);
break;
case SYSTEM_EVENT_STA_GOT_IP:
xEventGroupSetBits(wifi_event_group CONNECTED_BIT);
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
esp_wifi_connect();
xEventGroupClearBits(wifi_event_group CONNECTED_BIT);
break;
default:
break;
}
return ESP_OK;
}

static void initialise_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));
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
ESP_ERROR_CHECK(esp_wifi_start());
}

static void sc_callback(smartconfig_status_t status void *pdata) {
switch (status) {
//连接未开始,请勿在此阶段开始连接。
case SC_STATUS_WAIT:
ESP_LOGI(TAG “SC_STATUS_WAIT“)
;
break;
//发现WIfi信道
case SC_STATUS_FIND_CHANNEL:
ESP_LOGI(TAG “SC_STATUS_FINDING_CHANNEL“)
;
break;
//得到wifi名字和密码
case SC_STATUS_GETTING_SSID_PSWD:
ESP_LOGI(TAG “SC_STATUS_GETTING_SSID_PSWD“)
;
break;
//已经获取wifi名字与密码在连接路由器
case SC_STATUS_link:
ESP_LOGI(TAG “SC_STATUS_link“)
;
wifi_config_t *wifi_config = pdata;
ESP_LOGI(TAG “SSID:%s“ wifi_config->sta.ssid)
;
ESP_LOGI(TAG “PASSWORD:%s“ wifi_config->sta.password)
;
ESP_ERROR_CHECK(esp_wifi_disconnect())
;
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA wifi_config))
;
ESP_ERROR_CHECK(esp_wifi_connect())
;
break;
//成功获取到IP,连接路由完成。
case SC_STATUS_link_OVER:
ESP_LOGI(TAG “SC_STATUS_link_OVER“)
;
if (pdata != NULL) {
uint8_t phone_ip[4] = { 0 };
memcpy(phone_ip (uint8_t*) pdata 4);
ESP_LOGI(TAG “Phone ip: %d.%d.%d.%d\n“ phone_ip[0] phone_ip[1]
phone_ip[2] phone_ip[3]);
}
//发送消息到另外一个任务,告诉它已经连接成功
xEventGroupSetBits(wifi_event_group ESPTOUCH_DONE_BIT);
break;
default:
break;
}
}

void smartconfig_example_task(void * parm) {

EventBits_t uxBits;
ESP_ERROR_CHECK(esp_smartconfig_set_type(SC_TYPE_ESPTOUCH_AIRKISS));
ESP_ERROR_CHECK(esp_smartconfig_start(sc_callback));
while (1)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6745  2018-05-30 14:21  4_smartConfig_AirKiss\.cproject

     文件        799  2018-05-30 11:38  4_smartConfig_AirKiss\.project

     文件       1189  2018-05-30 14:19  4_smartConfig_AirKiss\.settings\language.settings.xml

     文件       1866  2018-05-30 14:19  4_smartConfig_AirKiss\.settings\org.eclipse.cdt.core.prefs

     文件      18590  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\app_trace.d

     文件       2040  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\app_trace.o

     文件      16829  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\app_trace_util.d

     文件      16260  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\app_trace_util.o

     文件        289  2018-05-30 10:35  4_smartConfig_AirKiss\build\app_trace\component_project_vars.mk

     文件      17703  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\gcov\gcov_rtio.d

     文件       2044  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\gcov\gcov_rtio.o

     文件      16623  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\host_file_io.d

     文件       2040  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\host_file_io.o

     文件      22980  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_trace\libapp_trace.a

     文件        294  2018-05-30 10:35  4_smartConfig_AirKiss\build\app_update\component_project_vars.mk

     文件      20450  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_update\esp_ota_ops.d

     文件      52240  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_update\esp_ota_ops.o

     文件      52584  2018-05-30 10:37  4_smartConfig_AirKiss\build\app_update\libapp_update.a

     文件        232  2018-05-30 10:35  4_smartConfig_AirKiss\build\aws_iot\component_project_vars.mk

     文件          8  2018-05-30 10:37  4_smartConfig_AirKiss\build\aws_iot\libaws_iot.a

     文件      19504  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader.bin

     文件     125980  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader.elf

     文件     266969  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader.map

     文件        389  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader_support\component_project_vars.mk

     文件     184934  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader_support\libbootloader_support.a

     文件       3503  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader_support\src\bootloader_clock.d

     文件       6112  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader_support\src\bootloader_clock.o

     文件       4401  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader_support\src\bootloader_flash.d

     文件      27920  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader_support\src\bootloader_flash.o

     文件       4194  2018-05-30 10:37  4_smartConfig_AirKiss\build\bootloader\bootloader_support\src\bootloader_random.d

............此处省略1752个文件信息

评论

共有 条评论