国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

這篇具有很好參考價值的文章主要介紹了圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文內容

1)使用smart_config例程,使用樂鑫ESPTouch APP或者微信公眾號配網(wǎng)。

2)修改smart_config例程,使ESP32復位后,如果已配過網(wǎng),則不再進行配網(wǎng),而是直接連接路由器上網(wǎng),使貼近實際項目開發(fā)。

一、首先完成集成開發(fā)環(huán)境搭建:

圖文手把手教程(史上最強):windows下ESP32集成開發(fā)環(huán)境搭建和HelloWorld顯示(樂鑫官方推薦方法-使用VSCode安裝ESP-IDF插件)

二、下載樂鑫官方APP和關注樂鑫官方公眾號

1)樂鑫官方APP下載鏈接:https://www.espressif.com.cn/zh-hans/support/download/apps

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

2)微信關注“樂鑫信息科技”公眾號。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

三、主流WIFI 配網(wǎng)方式簡單介紹。

目前主流的 WIFI 配網(wǎng)方式主要有以下 三 種:

1)?SoftAP配網(wǎng)
ESP32?會建立一個 WiFi 熱點(AP模式),用戶將手機連接到這個熱點后,將要連接的 WiFi 信息發(fā)送給 ESP32,ESP32得到ssid和password。

優(yōu)點:這種方式很可靠,成功率基本達到100%,設備端的代碼也簡單。

缺點:需要手動切換手機wifi連接的網(wǎng)絡,先連接到ESP32的AP網(wǎng)絡,配置完成后再恢復連接正常wifi網(wǎng)絡,操作上有一定的復雜性,會給用戶帶來一定的困擾。

官方支持:沒有提供Demo。

2)Smartconfig配網(wǎng)

ESP32處于混雜模式下,監(jiān)聽網(wǎng)絡中的所有報文,手機APP將當前連接的ssid和password編碼到UDP報文中,通過廣播或者組播的方式發(fā)送報文,ESP32接收到UDP報文后解碼,得到ssid和password,然后使用該組ssid和password去連接網(wǎng)絡。
優(yōu)缺點:這種方式簡潔,用戶也很容易操作,但是配網(wǎng)成功率受環(huán)境影響較大。

官方支持:有提供Demo,smart_config例程。

3)Airkiss配網(wǎng)

AirKiss是微信硬件平臺提供的一種WIFI設備快速入網(wǎng)配置技術,要使用微信客戶端的方式配置設備入網(wǎng),需要設備支持AirKiss技術。Aiskiss的原理和smartconfig很類似,設備工作在混雜模式下,微信客戶端發(fā)送包含ssid和password的廣播包,設備收到廣播包解碼得到ssid和password,詳細的可以參考微信官方的介紹。

優(yōu)缺點:這種方式簡潔,用戶也很容易操作,但是配網(wǎng)成功率受環(huán)境影響較大。

官方支持:有提供Demo,smart_config例程。

四、運行smart_config例程,使用APP和微信配網(wǎng)。

1)打開示例項目smart_config:VSCODE中->"查看"->”命令面板“->輸入:Show Examples projects->選擇Use current ESP-IDF(E:\ESP32-IDF\esp\esp-idf)->彈出示例ESP-IDF Examples,選擇wifi->smart_config->Create project using example smart_config->選擇示例保存的路徑。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)
?

?例如:E:\ESP32-IDF\project-example,因ESP-IDF框架與示例是分離的,所以示例保存的路徑可以隨意,但需要注意:路徑不能有中文和空格,否則報錯。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

創(chuàng)建完后,如下圖所示。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

2)編譯、下載到ESP32開發(fā)板,打開串口監(jiān)控,如下圖所示。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

?3)打開手機APP EspTouch進行配網(wǎng)。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

?圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

APP點擊確認后,觀察VSCODE中的串口監(jiān)控打印的信息,并沒有提示配網(wǎng)成功,而是看到錯誤的信息:smartconfig:setsockopt failed。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

原因:是樂鑫官方的ESP-IDF存在BUG,官方修復問題的鏈接:

https://github.com/espressif/esp-idf/commit/2e31779931599bfb38c0c9420ef30177f130e1f9

?根據(jù)目錄E:\ESP32-IDF\esp\esp-idf\components\esp_wifi\src,找到smartconfig_ack.c

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

打開smartconfig_ack.c,修改的地方如下:

			//刪除
            /* if (setsockopt(send_sock, SOL_SOCKET, SO_BROADCAST | SO_REUSEADDR, &optval, sizeof(int)) < 0) {
                ESP_LOGE(TAG,  "setsockopt failed");
                goto _end;
            } */
			
			//增加
			if (setsockopt(send_sock, SOL_SOCKET, SO_BROADCAST, &optval, sizeof(int)) < 0) {
                ESP_LOGE(TAG,  "setsockopt SO_BROADCAST failed");
                goto _end;
            }
			
			//增加
            if (setsockopt(send_sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(int)) < 0) {
                ESP_LOGE(TAG,  "setsockopt SO_REUSEADDR failed");
                goto _end;
            }

修改完后進行保存,如下圖所示:

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

4)這時重新編譯(如有問題,先清除,再編譯)、下載到ESP32開發(fā)板,打開串口監(jiān)控,這時顯示配網(wǎng)成功,如下圖所示。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

?

配網(wǎng)成功后,APP會彈出配網(wǎng)完成的信息,如下圖所示,如果失敗,是不會彈出的。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

5)使用微信公眾號配網(wǎng)。

微信公眾號配網(wǎng)與APP配網(wǎng)的例程是一樣的,只需要修改配網(wǎng)的類型即可,配網(wǎng)的類型如下:

typedef enum {
    SC_TYPE_ESPTOUCH = 0,       /**< protocol: ESPTouch */
    SC_TYPE_AIRKISS,            /**< protocol: AirKiss */
    SC_TYPE_ESPTOUCH_AIRKISS,   /**< protocol: ESPTouch and AirKiss */
    SC_TYPE_ESPTOUCH_V2,        /**< protocol: ESPTouch v2*/
} smartconfig_type_t;

這里由例程的SC_TYPE_ESPTOUCH,修改為SC_TYPE_ESPTOUCH_AIRKISS,即同時支持APP和微信配網(wǎng),修改完后重新編譯、下載到ESP32開發(fā)板中。

static void smartconfig_example_task(void * parm)
{
    EventBits_t uxBits;
    ESP_ERROR_CHECK( esp_smartconfig_set_type(SC_TYPE_ESPTOUCH_AIRKISS) );
    smartconfig_start_config_t cfg = SMARTCONFIG_START_CONFIG_DEFAULT();
    ESP_ERROR_CHECK( esp_smartconfig_start(&cfg) );
    while (1) {
        uxBits = xEventGroupWaitBits(s_wifi_event_group, CONNECTED_BIT | ESPTOUCH_DONE_BIT, true, false, portMAX_DELAY);
        if(uxBits & CONNECTED_BIT) {
            ESP_LOGI(TAG, "WiFi Connected to ap");
        }
        if(uxBits & ESPTOUCH_DONE_BIT) {
            ESP_LOGI(TAG, "smartconfig over");
            esp_smartconfig_stop();
            vTaskDelete(NULL);
        }
    }
}

打開微信公眾號“樂鑫信息科技”,商鋪->Airkiss設備。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

?打開串口監(jiān)控,顯示的信息與APP配網(wǎng)基本是一樣的。圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

?至此,使用APP和微信公眾號配網(wǎng)全部完成,但是有缺點,即ESP32每次復位后都需要進行配網(wǎng),并沒有保存原來配網(wǎng)的信息,故這里需要優(yōu)化代碼。

五、優(yōu)化配網(wǎng)代碼,使貼合實際應用。

1)例程中的Smart_config?配網(wǎng),每次復位ESP32后,又得重新配網(wǎng),不符合實際的應用,這里對代碼進行修改,使配網(wǎng)的信息(帳號和密碼)被保存在 NVS 中,每次配網(wǎng)之前讀取NVS中的信息,如果未配網(wǎng)過,則進行配網(wǎng)操作,如果已經(jīng)配網(wǎng)過,則直接連接路由器。

2)smartconfig_main.c->修改smartconfig_example_task()任務函數(shù),修改如下:

//配網(wǎng)任務函數(shù)
static void smartconfig_example_task(void * parm)
{
    EventBits_t uxBits;
    wifi_config_t myconfig = {0};

    ESP_LOGI(TAG, "creat smartconfig_example_task");

    // 獲取wifi配置信息,如果配置過,就直接連接wifi
    esp_wifi_get_config(ESP_IF_WIFI_STA, &myconfig);
    if (strlen((char*)myconfig.sta.ssid) > 0)
    {
        ESP_LOGI(TAG, "alrealy set, SSID is :%s,start connect", myconfig.sta.ssid);
        esp_wifi_connect();
    }
    // 如果沒有配置過,就進行配網(wǎng)操作
    else
    {
        ESP_LOGI(TAG, "have no set, start to config");
        ESP_ERROR_CHECK( esp_smartconfig_set_type(SC_TYPE_ESPTOUCH_AIRKISS) );//支持APP ESPTOUCH和微信AIRKISS
        smartconfig_start_config_t cfg = SMARTCONFIG_START_CONFIG_DEFAULT();
        ESP_ERROR_CHECK( esp_smartconfig_start(&cfg) );
    }

    // ESP_ERROR_CHECK( esp_smartconfig_set_type(SC_TYPE_ESPTOUCH_AIRKISS) );
    // smartconfig_start_config_t cfg = SMARTCONFIG_START_CONFIG_DEFAULT();
    // ESP_ERROR_CHECK( esp_smartconfig_start(&cfg) );
    while (1) 
    {
        uxBits = xEventGroupWaitBits(s_wifi_event_group, CONNECTED_BIT | ESPTOUCH_DONE_BIT, true, false, portMAX_DELAY);
        if(uxBits & CONNECTED_BIT) 
        {
           // 復位后,如果已經(jīng)配網(wǎng)過,則不會再進行配網(wǎng),
           // 只打印WiFi Connected to ap,而不會打印smartconfig over
            ESP_LOGI(TAG, "WiFi Connected to ap");// 成功連接路由器
             vTaskDelete(NULL);// 關閉線程
        }
        if(uxBits & ESPTOUCH_DONE_BIT) 
        {
            ESP_LOGI(TAG, "smartconfig over"); // 配網(wǎng)結束
            esp_smartconfig_stop();
            vTaskDelete(NULL);// 關閉線程
        }
    }
}

?3)編譯、下載到ESP32開發(fā)板中,并打開串口監(jiān)控。

可以看到之前配網(wǎng)的信息,已經(jīng)被保存在NVS中了,增加判斷后,就不會重新配網(wǎng),而是直接連接到路由器上網(wǎng)了。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

?4)想要重新配網(wǎng),怎么辦?

想要重新配網(wǎng),需要刪除原來配網(wǎng)保存的信息,這里提供兩種方法。

方法一:擦除整片F(xiàn)lash,僅僅適合調試用。

在VSCODE中打開終端工具ESP-IDF Terminal,然后輸入以下命令,然后按Enter。

python E:\ESP32-IDF\esp\esp-idf\components\esptool_py\esptool\esptool.py?erase_flash

?注意:每個人的ESP-IDF存放路徑都不一樣,需要根據(jù)自己的路徑來找到esptool.py,然后使用擦除flash命令erase_flash

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

重新下載程序,并打開串口監(jiān)控,顯示沒有配網(wǎng)信息,需要重新配網(wǎng),按上面的流程,使用APP和微信公眾號配網(wǎng)即可。

圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)

方法二:增加一個按鍵來重置配網(wǎng)信息,適用實際項目開發(fā)。

通過觸發(fā)按鍵,例如長按10秒來調用esp_wifi_restore()函數(shù),重置配網(wǎng)信息,具體做法這里就不說了,網(wǎng)上找一個現(xiàn)成的按鍵驅動來關聯(lián)實現(xiàn)即可。

至此,關于smart_config配網(wǎng)的內容全部完畢,愉快的玩耍吧!

完整的例程代碼下載:https://download.csdn.net/download/felix_tao/86268485

使用例程,報錯怎么辦,解決辦法如下:

1)打開VSCODE報錯,c_cpp_properties.json無法找到E:\\ESP32-IDF...

解決辦法:點擊.vscode->c_cpp_properties.json,修改盤符即可,例如將E盤改為D盤。

2)編譯工程報錯:

[0/1] Re-running CMake...
FAILED: build.ninja?
CreateProcess failed: The system cannot find the file specified.
ninja: error: rebuilding 'build.ninja': subcommand failed

解決方法:清除編譯產生的所有文件,左下角->點擊垃圾桶圖標(ESP-IDF Full Clean)->清除后,接著重新編譯即OK。
?

本文參考了以下博客,鳴謝!

ESP32-C3入門教程 網(wǎng)絡 篇(二、 Wi-Fi 配網(wǎng) — Smart_config方式 和 BlueIF方式)_矜辰所致的博客-CSDN博客_esp32 wifi配網(wǎng)

ESP32存儲配網(wǎng)信息,上電重啟均可自動重連之前配置的無線網(wǎng)絡_荻夜的博客-CSDN博客_esp32 wifi 重啟文章來源地址http://www.zghlxwxcb.cn/news/detail-417973.html

到了這里,關于圖文手把手教程--ESP32 一鍵配網(wǎng)(Smartconfig、Airkiss)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • CentOS7(Linux)詳細安裝教程(手把手圖文詳解版)_centos7安裝教程

    CentOS7(Linux)詳細安裝教程(手把手圖文詳解版)_centos7安裝教程

    3、選擇合適版本的鏡像進行下載 選擇合適的存放地址(這里的地址包含中文名稱我用起來好像也沒出啥問題,如果怕出錯的同學可以使用全英文) 1、打開我們的虛擬機(VMware Workstation),點擊文件進行新建 2、選擇典型之后,下一步 3、選擇稍會安裝操作系統(tǒng) 4、因為安裝的

    2024年04月29日
    瀏覽(27)
  • 手把手帶你使用ESP8266 與 STM32F103C8實現(xiàn)網(wǎng)絡服務器

    手把手帶你使用ESP8266 與 STM32F103C8實現(xiàn)網(wǎng)絡服務器

    隨著現(xiàn)在物聯(lián)網(wǎng)設備的而越來越多,現(xiàn)在市場上出現(xiàn)越來越多的物聯(lián)網(wǎng)設備,其中 ESP8266 是最受歡迎、價格便宜且易于使用的模塊,它可以將您的硬件連接到互聯(lián)網(wǎng)。 今天我們就以ESP8266和STM32來實現(xiàn)一臺網(wǎng)絡服務器,我們使用 ESP8266 將 STM32F103C8 連接到互聯(lián)網(wǎng)。 ESP8266 Wi-Fi 模

    2024年01月23日
    瀏覽(673)
  • 【物聯(lián)網(wǎng)】手把手完整實現(xiàn)STM32+ESP8266+MQTT+阿里云+APP應用——第3節(jié)-云產品流轉配置

    【物聯(lián)網(wǎng)】手把手完整實現(xiàn)STM32+ESP8266+MQTT+阿里云+APP應用——第3節(jié)-云產品流轉配置

    本節(jié)目標: 本節(jié)目標是進行云產品流轉配置為后面實際的手機APP的接入做鋪墊。云產品流轉配置的目的是為了后面能夠讓后面實際做出來的手機APP可以控制STM32/MCU,STM32/MCU可以將數(shù)據(jù)發(fā)給實際的手機APP。 配置步驟主要分為三步: 1.創(chuàng)建數(shù)據(jù)源;2.創(chuàng)建數(shù)據(jù)目的;3.創(chuàng)建解析器

    2024年02月03日
    瀏覽(100)
  • 【物聯(lián)網(wǎng)】手把手完整實現(xiàn)STM32+ESP8266+MQTT+阿里云+APP應用——第2節(jié)-編寫STM32程序初步實現(xiàn)ESP8266上云與發(fā)布訂閱消息

    【物聯(lián)網(wǎng)】手把手完整實現(xiàn)STM32+ESP8266+MQTT+阿里云+APP應用——第2節(jié)-編寫STM32程序初步實現(xiàn)ESP8266上云與發(fā)布訂閱消息

    本節(jié)目標: 本節(jié)實現(xiàn),硬件連接STM32與ESP8266,編寫STM32程序通過at命令方式實現(xiàn)STM32+ESP8266與阿里云物聯(lián)網(wǎng)平臺發(fā)布訂閱消息,本節(jié)最終實現(xiàn)初步的發(fā)布訂閱消息(能夠發(fā)布消息給阿里云物聯(lián)網(wǎng)平臺但無外設數(shù)據(jù),能夠訂閱阿里云物聯(lián)網(wǎng)平臺發(fā)送的消息來開關LED燈)。 硬件連接

    2024年02月03日
    瀏覽(107)
  • 手把手使用Micropython+合宙Esp32c3(驅動安裝,為合宙Esp32c3安裝Micropython固件庫,代碼上傳到ESP32C3中)含Thonny和vscode兩種方法

    手把手使用Micropython+合宙Esp32c3(驅動安裝,為合宙Esp32c3安裝Micropython固件庫,代碼上傳到ESP32C3中)含Thonny和vscode兩種方法

    CH343驅動下載 下載最新版本就好 驅動下載好后,以管理員身份運行,并點擊“安裝” 安裝完成之后連接設備就可以在設備管理器中看到自己設備及端口 MicroPython 是一種精簡版的 Python 語言實現(xiàn),專門用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設備。它提供了一個適用于微控制器的交互式解釋

    2024年02月10日
    瀏覽(97)
  • 手把手教你STM32入門教程(標準庫)

    手把手教你STM32入門教程(標準庫)

    目錄 前言 步驟一:準備工作 步驟二:安裝Keil?MDK-ARM開發(fā)工具 步驟三:創(chuàng)建工程 步驟四:配置工程 步驟六:編寫代碼 步驟七:下載程序? ?總結 在物聯(lián)網(wǎng)時代,嵌入式系統(tǒng)的應用越來越廣泛,而STM32作為業(yè)內領先的嵌入式芯片之一,受到了越來越多開發(fā)者的關注和喜愛。然

    2024年02月12日
    瀏覽(23)
  • 零基礎快速上手STM32開發(fā)(手把手保姆級教程)

    零基礎快速上手STM32開發(fā)(手把手保姆級教程)

    作為一名嵌入式工程師,STM32 是必須要學習的一款單片機,同時這款單片機資料足夠多,而且比較簡單,非常適合初學者入門。 STM32 是一款由 STMicroelectronics 公司開發(fā)的 32 位微控制器,由于其強大的處理能力和廣泛的應用領域,如嵌入式系統(tǒng)、物聯(lián)網(wǎng)設備、機器人等,而受到

    2024年02月05日
    瀏覽(28)
  • MySQL8.0.32詳細安裝教程(奶媽級手把手教你安裝)

    MySQL8.0.32詳細安裝教程(奶媽級手把手教你安裝)

    前言 下載地址: MySQL安裝版(還有個MySQL免安裝板) 1. 如圖所示下載頁面 2. 在這里我們選擇第二個下載項 3. 在下載頁面,不用使用Oracle賬號去登錄或者注冊,直接點擊 No thanks, just start my download. 進行下載。 1. 下載完成后,我們下載的是這么個玩意兒 2. 雙擊運行.msi文件 3.

    2024年02月06日
    瀏覽(29)
  • 【物聯(lián)網(wǎng)】手把手完整實現(xiàn)STM32+ESP8266+MQTT+阿里云+APP應用——第1節(jié)-阿里云配置+MQTT.fx模擬與使用AT命令發(fā)布訂閱消息

    【物聯(lián)網(wǎng)】手把手完整實現(xiàn)STM32+ESP8266+MQTT+阿里云+APP應用——第1節(jié)-阿里云配置+MQTT.fx模擬與使用AT命令發(fā)布訂閱消息

    ??博主領域:嵌入式領域人工智能軟件開發(fā) 本節(jié)目標: 通過MQTT.fx模擬連接或通過串口連接ESP8266發(fā)送AT命令,實現(xiàn)阿里云物聯(lián)網(wǎng)平臺發(fā)送數(shù)據(jù)同時接收數(shù)據(jù),IOT studio界面顯示數(shù)據(jù)。具體來說:使用ESP8266 ESP-01來連接網(wǎng)絡,獲取設備數(shù)據(jù)發(fā)送到阿里云物聯(lián)網(wǎng)平臺并顯示且oled顯

    2024年02月03日
    瀏覽(103)
  • 手把手教你安裝ubantu22(詳細圖文)

    手把手教你安裝ubantu22(詳細圖文)

    安裝平臺:VMware? Workstation 16 Pro iso鏡像:ubuntu-22.04.1-desktop-amd64.iso ????????下載連接: Ubuntu 22.04.1 LTS (Jammy Jellyfish) https://www.releases.ubuntu.com/22.04/ 第一步:點擊“創(chuàng)建新的虛擬機” 第二步:?選“自定義(高級)”,點“下一步” ?第三步:默認就可以,點“下一步” ?第

    2024年02月04日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包