精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

啟明云端分享|ESP32-S3 Smartconfig一鍵配網(wǎng)教程

啟明云端 ? 2021-09-16 10:57 ? 次閱讀

物聯(lián)網(wǎng)時代技術(shù)開始規(guī)?;?wù)于民眾,方便快捷顯得尤為重要,smartconfig一鍵配網(wǎng)便是一個典型案例。智能家居/家電現(xiàn)階段還處于普及階段,由于家庭wifi網(wǎng)絡(luò)的普及,目前普遍采用wifi與路由器完成連接,與手機/云端進行數(shù)據(jù)交互智能硬件,如智能插座,智能空調(diào),智能空氣凈化器,智能燈泡,智能門鎖由于不具備人機交互界面,不能像電腦一樣的搜索/選擇指定路由器,輸入連接SSID和密碼的界面,所以必須先解決正確連接路由問題。


1.開發(fā)環(huán)境:
esp-idf版本 :master
esp-idf環(huán)境:ESP-IDF開發(fā)環(huán)境搭建
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/get-started/index.html

注:官方暫時沒有s3的安裝教程,可以參照32系列其他方式選擇master分支即可。
配網(wǎng)例程:esp-idf\examples\wifi\smart_config


2.硬件需求
Esp32-s3 開發(fā)板一塊
Usb數(shù)據(jù)線一條


3.一鍵配網(wǎng)(SmartConfig)連接過程:
1)ESP32 設(shè)備進入初始化狀態(tài),開啟混監(jiān)聽所有網(wǎng)絡(luò)數(shù)據(jù)包。
2)手機連上 WiFi,開啟 APP 軟件,輸入手機所在 WiFi 密碼,請求配網(wǎng),發(fā)送UDP廣播包。
3)ESP32 通過 UDP 包(長度)獲取配置信息捕捉到路由 SSID 和 PASSWD,連接路由器。


4. 配網(wǎng)APP
樂鑫官方:配網(wǎng)APP
https://www.espressif.com/zh-hans/support/download/apps
根據(jù)自己的手機系統(tǒng)選擇相應(yīng)的APP

poYBAGFCsU2AVTaLAACT7nMRE24579.png

例程分析:

//在event_handler中,通過獲取不同的時間執(zhí)行相對應(yīng)的操作。
staticvoidevent_handler(void*arg,esp_event_base_tevent_base,
int32_tevent_id,void*event_data)
{
if(event_base==WIFI_EVENT&&event_id==WIFI_EVENT_STA_START){
xTaskCreate(smartconfig_example_task,"smartconfig_example_task",4096,NULL,3,NULL);
}elseif(event_base==WIFI_EVENT&&event_id==WIFI_EVENT_STA_DISCONNECTED){
esp_wifi_connect();//開始連接WiFi
xEventGroupClearBits(s_wifi_event_group,CONNECTED_BIT);
}elseif(event_base==IP_EVENT&&event_id==IP_EVENT_STA_GOT_IP){
xEventGroupSetBits(s_wifi_event_group,CONNECTED_BIT);
}elseif(event_base==SC_EVENT&&event_id==SC_EVENT_SCAN_DONE){
ESP_LOGI(TAG,"Scandone");
}elseif(event_base==SC_EVENT&&event_id==SC_EVENT_FOUND_CHANNEL){
ESP_LOGI(TAG,"Foundchannel");
}elseif(event_base==SC_EVENT&&event_id==SC_EVENT_GOT_SSID_PSWD){
ESP_LOGI(TAG,"GotSSIDandpassword");

smartconfig_event_got_ssid_pswd_t*evt=(smartconfig_event_got_ssid_pswd_t*)event_data;
wifi_config_twifi_config;
uint8_tssid[33]={0};
uint8_tpassword[65]={0};
uint8_trvd_data[33]={0};
bzero(&wifi_config,sizeof(wifi_config_t));
memcpy(wifi_config.sta.ssid,evt->ssid,sizeof(wifi_config.sta.ssid));
memcpy(wifi_config.sta.password,evt->password,sizeof(wifi_config.sta.password));
wifi_config.sta.bssid_set=evt->bssid_set;

if(wifi_config.sta.bssid_set==true){
memcpy(wifi_config.sta.bssid,evt->bssid,sizeof(wifi_config.sta.bssid));
}
memcpy(ssid,evt->ssid,sizeof(evt->ssid));
memcpy(password,evt->password,sizeof(evt->password));
ESP_LOGI(TAG,"SSID:%s",ssid);
ESP_LOGI(TAG,"PASSWORD:%s",password);
if(evt->type==SC_TYPE_ESPTOUCH_V2){
ESP_ERROR_CHECK(esp_smartconfig_get_rvd_data(rvd_data,sizeof(rvd_data)));
ESP_LOGI(TAG,"RVD_DATA:");
for(inti=0;i<33;?i++)?{
printf("%02x",rvd_data[i]);
}
printf("\n");
}
ESP_ERROR_CHECK(esp_wifi_disconnect());
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA,&wifi_config));
esp_wifi_connect();
}elseif(event_base==SC_EVENT&&event_id==SC_EVENT_SEND_ACK_DONE){
xEventGroupSetBits(s_wifi_event_group,ESPTOUCH_DONE_BIT);
}
}
staticvoidinitialise_wifi(void)
{
ESP_ERROR_CHECK(esp_netif_init());//初始化底層TCP/IP堆棧
s_wifi_event_group=xEventGroupCreate(); //創(chuàng)建事件組
ESP_ERROR_CHECK(esp_event_loop_create_default());//創(chuàng)建默認事件循環(huán)
esp_netif_t*sta_netif=esp_netif_create_default_wifi_sta();//創(chuàng)建默認WIFISTA在初始化錯誤的情況下,這個APl中止
assert(sta_netif);
wifi_init_config_tcfg=WIFI_INIT_CONFIG_DEFAULT();
ESP_ERROR_CHECK(esp_wifi_init(&cfg));//初始化WiFi
//首先調(diào)用esp_event_loop_create_default()創(chuàng)建默認事件循環(huán)。
//之后使用esp_event_handler_register()將事件處理程序注冊到系統(tǒng)事件循環(huán)。
ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT,ESP_EVENT_ANY_ID,&event_handler,NULL));
ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT,IP_EVENT_STA_GOT_IP,&event_handler,NULL));
ESP_ERROR_CHECK(esp_event_handler_register(SC_EVENT,ESP_EVENT_ANY_ID,&event_handler,NULL));
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); //將ESP32wifi設(shè)置為sta模式
ESP_ERROR_CHECK(esp_wifi_start()); //根據(jù)配置啟動WiFi為sta
}

//創(chuàng)建事件組s_wifi_event_group=xEventGroupCreate();,觸發(fā)相關(guān)事件則置標志位,在任務(wù)中循環(huán)檢測標志位處理相應(yīng)事件。
//smartconfig_example_task任務(wù)中,獲取CONNECTED_BIT和ESPTOUCH_DONE_BIT表示連接上AP和SmartConfig配置完成。
staticvoidsmartconfig_example_task(void*parm)
{
EventBits_tuxBits;
ESP_ERROR_CHECK(esp_smartconfig_set_type(SC_TYPE_ESPTOUCH)); //設(shè)置SmartConfig的協(xié)議類型
smartconfig_start_config_tcfg=SMARTCONFIG_START_CONFIG_DEFAULT();
ESP_ERROR_CHECK(esp_smartconfig_start(&cfg));//開始smartconfig一鍵配網(wǎng)
while(1){
uxBits=xEventGroupWaitBits(s_wifi_event_group,CONNECTED_BIT|ESPTOUCH_DONE_BIT,true,false,portMAX_DELAY);
if(uxBits&CONNECTED_BIT){
ESP_LOGI(TAG,"WiFiConnectedtoap");
}
if(uxBits&ESPTOUCH_DONE_BIT){
ESP_LOGI(TAG,"smartconfigover");
esp_smartconfig_stop(); //配網(wǎng)結(jié)束,釋放esp_smartconfig_start占用的緩沖區(qū)。
vTaskDelete(NULL);
}
}
}
voidapp_main(void)
{
ESP_ERROR_CHECK(nvs_flash_init());//初始化NVS分區(qū)
initialise_wifi(); //初始化WiFi為sta模式,等待APP進行配網(wǎng)
}


配網(wǎng)操作流程:
1.搭建esp-idf環(huán)境
2.編譯smart_config例程
1) 設(shè)置target為S3 idf.py set-target esp32s3
2) 編譯工程 idf.py build

pYYBAGFCsZqAe7aYAACCG6S5tTk156.png

3.燒錄到開發(fā)板
idf.py flash
多個設(shè)備需添加串口號(idf.py -p PORT [-b BAUD] flash)

poYBAGFCsb2Aa2blAAB2jAcmheU291.png

4.開啟監(jiān)視窗口
idf.py monitor (idf.py-pPORTmonitor)
出現(xiàn)下面的打印就可以用APP進行配網(wǎng)

poYBAGFCsdKAJvN1AACYgnDPgwM145.png

5.打開EspTouch APP (配網(wǎng)APP)
1)手機連接到WiFi (目前ESP32系列只支持2.4G頻段)
2)輸入WiFi密碼
3)點擊確認,配網(wǎng)成功會顯示開發(fā)板的IP

pYYBAGFCseqAJT1uAACcbPJG7uw062.png

6.一鍵配網(wǎng)成功
日志輸出如下,成功獲取到WiFi的賬號密碼
并連接到此WiFi,smartconfig停止

pYYBAGFCsgqAW51HAAFW-K7pkMQ023.png
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關(guān)推薦

    【AI技術(shù)支持】ESP32-S3 JTAG調(diào)試問題處理

    啟明云端/01你是否曾遇到過?在使用ESP32-S3模塊,ESP-IDF版本為idf5.0時,調(diào)試JTAG,嘗試很久也無法調(diào)通,這是為什么呢?啟明
    的頭像 發(fā)表于 10-30 08:01 ?243次閱讀
    【AI技術(shù)支持】<b class='flag-5'>ESP32-S3</b> JTAG調(diào)試問題處理

    請問ESP32-S3藍牙是否支持SPP?

    由于需要支持RGB565的LCD,選型ESP32-S3。 看介紹,ESP32-S3的藍牙似乎取消了對經(jīng)典藍牙的支持。 以前是使用STM32+HC-05模塊連接,需要設(shè)置ROLE=1主角色。 想請教,ESP32-S3是否支持連接這
    發(fā)表于 07-01 08:07

    ESP32-S3芯片賦能設(shè)備,打造智能交互新體驗

    在物聯(lián)網(wǎng)和人工智能(AI)技術(shù)融合的浪潮中,樂鑫ESP32-S3芯片以其卓越的性能和多功能性,成為智能家居和工業(yè)自動化領(lǐng)域的明星產(chǎn)品。ESP32-S3款基于XtensaLX7處理器的嵌入式系統(tǒng)級
    的頭像 發(fā)表于 06-28 08:04 ?765次閱讀
    <b class='flag-5'>ESP32-S3</b>芯片賦能設(shè)備,打造智能交互新體驗

    esp32-S3支持arduino編程嗎?

    arduino選開發(fā)板的時候沒有es32-s3, 只有s2可選。 請問: 1. esp32-S3支持arduino編程嗎 2. arduino下sample下的BLE庫能用嗎? 3.
    發(fā)表于 06-27 08:23

    ESP32-S3 AT是否支持SPI接口?

    ESP32-S3 AT 感興趣,但是不確定是否支持 SPI 接口。
    發(fā)表于 06-27 06:06

    ESP32-S3支持DAC嗎?

    ESP32-S3有DAC嗎,有些地方寫有DAC,有些地方?jīng)]寫DAC
    發(fā)表于 06-20 07:55

    ESP32C3smartconfig網(wǎng)不成功是怎么回事?

    大家好,最近在用ESP32 C3做項目,用的是IDF 4.3在做smartconfig時發(fā)現(xiàn)網(wǎng)成功率很低,于是用
    發(fā)表于 06-20 06:44

    VScode目標設(shè)備選擇esp32-s3時報錯的原因?

    使用VS code編輯和編譯esp32-s3,目標設(shè)備選擇esp32-s3時報錯,報錯信息如附件圖 目標設(shè)備選擇esp32-s3時報錯信息 : 使用
    發(fā)表于 06-19 06:45

    esp32-s3驅(qū)動rgb屏刷屏卡頓,花屏是什么原因?

    esp32-s3驅(qū)動rgb屏,根據(jù)test_rgb_panel.c,但是刷屏太卡頓了,運行l(wèi)vgl的demo,fps為0,想請教下rgb屏參(proch)和esp32-s3的設(shè)置,提高刷屏流暢度
    發(fā)表于 06-19 06:21

    分享6個實用的ESP32-S3物聯(lián)網(wǎng)項目:從智能設(shè)備到安全創(chuàng)新

    ESP32-S3是物聯(lián)網(wǎng)領(lǐng)域的創(chuàng)新之,具備2.4GHz Wi-Fi和藍牙連接、先進的安全功能和各種接口協(xié)議的外設(shè)。該雙核微控制器基于TSMC超低功耗40nm技術(shù)構(gòu)建,適合輕量級AI應(yīng)用。兼具
    的頭像 發(fā)表于 05-17 10:15 ?708次閱讀

    啟明云端WT32C3系列模組/開發(fā)板連接AWS亞馬遜云方法

    ESP32-C3因為其性價比高,價格便宜性能又好直是量產(chǎn)的首選芯片,隨著量產(chǎn)項目擴大,對接云服務(wù)器的情況也增加了,接下來小啟給大家分享下啟明云端E
    的頭像 發(fā)表于 05-12 08:04 ?374次閱讀
    <b class='flag-5'>啟明</b><b class='flag-5'>云端</b>WT32C<b class='flag-5'>3</b>系列模組/開發(fā)板連接AWS亞馬遜云方法

    ESP32-S3模組燒錄又失?。糠窒碓趺磁挪樵?/a>

    ESP32-S3模組在物聯(lián)網(wǎng)中非常好用,可以做帶屏小音箱、溫控器、智能86盒、泳池清潔機器人等等,在燒錄的時候經(jīng)常會遇到些問題,這里分享些燒錄失敗的原因或者燒錄遇到的問題,教大家怎么排查原因
    的頭像 發(fā)表于 05-11 08:04 ?2691次閱讀
    <b class='flag-5'>ESP32-S3</b>模組燒錄又失???分享怎么排查原因

    充電樁選型對比:ESP32-S3模組和ESP32-C3模組誰更合適

    和整體解決方案供應(yīng)商,有非常豐富的充電樁物聯(lián)網(wǎng)項目經(jīng)驗,充電樁物聯(lián)網(wǎng)選型中經(jīng)常會用到ESP32-C3ESP32-S3模組,那么今天小啟就對這幾種方案做個對比,看
    的頭像 發(fā)表于 04-30 08:04 ?5388次閱讀
    充電樁選型對比:<b class='flag-5'>ESP32-S3</b>模組和<b class='flag-5'>ESP32-C3</b>模組誰更合適

    借助ESP32-S3主控MCU、ChirpLAN?小網(wǎng)關(guān)搭建大網(wǎng)絡(luò)

    借助先進的ESP32-S3主控MCU,ChirpLAN?小網(wǎng)關(guān)為您帶來前所未有的網(wǎng)絡(luò)體驗。
    的頭像 發(fā)表于 03-14 10:02 ?919次閱讀

    ESP32-S3 Wifi模組在智慧酒店的應(yīng)用

    ESP32-S3憑借其強大的計算能力和豐富的內(nèi)存,有著豐富的創(chuàng)新應(yīng)用,如語音交互、智能音頻和基于機器學習的預(yù)見性維護設(shè)備等,經(jīng)常會被應(yīng)用到智慧酒店中。小啟跟大家講下ESP
    的頭像 發(fā)表于 01-06 08:03 ?611次閱讀
    <b class='flag-5'>ESP32-S3</b> Wifi模組在智慧酒店的應(yīng)用