91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

3天內不再提示

淺談Zephyr ESP32 wifi如何使用

ZephyrProject ? 來源:ZephyrProject ? 作者:ZephyrProject ? 2021-06-01 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在Zephyr ESP32 wifi驅動簡析一文中簡要分析了esp32 wifi如何集成進Zephyr,本文接著說明要如何使用esp32 wifi。

從前文可知由于esp32 wifi的驅動和ethernt L2對接,因此在zephyr下只要通過簡單的配置就可以在應用層使用socket通過wifi進行網絡通信,而不需要去關心esp32 wifi驅動的細節。

配置方法

進行下面配置后開機,esp32就會自動取連接配置好的WIFI,并拿到IP地址,之后應用通過socket編程即可

1

2

# 配置啟動WIFI,使用ESP32 WIFI,必須

CONFIG_WIFI=y

CONFIG_WIFI_ESP32=y

# 配置使用網絡和L2 Ethernet, 必須

CONFIG_NETWORKING=y

CONFIG_NET_L2_ETHERNET=y

# IPV4/IPV6任選, 必須

CONFIG_NET_IPV6=n

CONFIG_NET_IPV4=y

# DHCP開啟,可選

CONFIG_NET_DHCPV4=y

# 開啟DHCP后要使用NET_MGMT通知DHCP完成

CONFIG_NET_MGMT=y

CONFIG_NET_MGMT_EVENT=y

# hal esp的wpa_supplicant依賴mbedtls,必須

CONFIG_MBEDTLS=y

CONFIG_MBEDTLS_ENTROPY_ENABLED=y

CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y

CONFIG_MBEDTLS_ECP_ALL_ENABLED=y

# 配置連接WIFI的SSID和密碼,必須

CONFIG_ESP32_WIFI_SSID=“myssid”

CONFIG_ESP32_WIFI_PASSWORD=“mypassword”

# 配置自動啟動WIFI連接,非必須,如果不配置需要另外添加代碼使用esp hal API進行連接

CONFIG_ESP32_WIFI_STA_AUTO=y

示例測試

使用samples etsocketsdumb_http_server 示例來演示esp32 作為server,電腦可以通過wifi訪問該server.

電腦IP 192.168.101.108

Zephyr server IP 192.168.101.105

修改配置

1

2

3

4

5

6

# Network driver config

CONFIG_TEST_RANDOM_GENERATOR=y

# Network address config

CONFIG_NET_CONFIG_SETTINGS=y

CONFIG_WIFI=y

CONFIG_WIFI_ESP32=y

CONFIG_HEAP_MEM_POOL_SIZE=98304

CONFIG_NETWORKING=y

CONFIG_NET_L2_ETHERNET=y

CONFIG_NET_IPV6=n

CONFIG_NET_IPV4=y

CONFIG_NET_DHCPV4=y

CONFIG_NET_TCP=y

CONFIG_NET_SOCKETS=y

CONFIG_NET_SOCKETS_POSIX_NAMES=y

CONFIG_NET_MGMT=y

CONFIG_NET_MGMT_EVENT=y

CONFIG_NET_LOG=y

CONFIG_NET_SHELL=y

CONFIG_MBEDTLS=y

CONFIG_MBEDTLS_ENTROPY_ENABLED=y

CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y

CONFIG_MBEDTLS_ECP_ALL_ENABLED=y

CONFIG_ESP32_WIFI_SSID=“AP8”

CONFIG_ESP32_WIFI_PASSWORD=“2885887452”

CONFIG_ESP32_WIFI_STA_AUTO=y

# Networking tweaks

# Required to handle large number of consecutive connections,

# e.g. when testing with ApacheBench.

CONFIG_NET_TCP_TIME_WAIT_DELAY=0

# Network debug config

CONFIG_NET_LOG=y

#CONFIG_NET_SHELL=y

編譯代碼并下載

1

2

west build -p -b esp32 zephyrproject/zephyr/samples/net/sockets/dumb_http_server

west flash --esp-device /dev/ttyS11

運行log, 最后幾句Connection,就是PC瀏覽器在訪問server

1

2

3

4

5

uart:~$ I (828) wifi:wifi driver task: 3ffb2280, prio:2, stack:3584, core=0

I (829) wifi:wifi firmware version: 1865b55

I (829) wifi:wifi certification version: v7.0

I (831) wifi:config NVS flash: disabled

I (835) wifi:config nano formating: disabled

I (839) wifi:Init data frame dynamic rx buffer num: 32

I (843) wifi:Init management frame dynamic rx buffer num: 32

I (849) wifi:Init management short buffer num: 32

I (853) wifi:Init dynamic tx buffer num: 32

I (857) wifi:Init static rx buffer size: 1600

I (861) wifi:Init static rx buffer num: 10

I (865) wifi:Init dynamic rx buffer num: 32

phy_version: 4500, 0cd6843, Sep 17 2020, 1507, 0, 2

I (1001) wifi:mode : softAP (c457f8:dd)

I (1002) wifi:Total power save buffer number: 16

I (1002) wifi:Init max length of beacon: 752/752

I (1007) wifi:Init max length of beacon: 752/752

I (1012) wifi:mode : sta (c457f8:dc

*** Booting Zephyr OS build v2.6.0-rc1-300-g6ce0f2ee6606 ***

Single-threaded dumb HTTP server waits for a connection on port 8080.。。

I (1137) wifi《1,0》, old:《1,1》, ap:《255,255》, sta:《1,0》, prof:1

I (1785) wifi init -》 auth (b0)

I (1831) wifi auth -》 assoc (0)

I (1835) wifi assoc -》 run (10)

[0001.020,000] 《inf》 net_config: Initializing network

[0001.020,000] 《inf》 net_config: Waiting interface 1 (0x3ffb01f8) to be up.。。

I (2044) wifi:connected with AP8, aid = 1, channel 1, BW20, bssid = c0dd89:7f

I (2044) wifi WPA2-PSK, phy: bgn, rssi: -53

I (2047) wifi:pm start, type: 1

[0001.023,000] 《inf》 esp_event: WIFI_EVENT_STA_START

[0001.023,000] 《inf》 net_config: Interface 1 (0x3ffb01f8) coming up

[0001.023,000] 《inf》 net_config: Running dhcpv4 client.。。

uart:~$ I (2120) wifi:AP‘s beacon interval = 102400 us, DTIM period = 1

[0002.051,000] 《inf》 esp_event: WIFI_EVENT_STA_CONNECTED

[0006.220,000] 《inf》 net_dhcpv4: Received: 192.168.101.105

[0006.220,000] 《inf》 net_config: IPv4 address: 192.168.101.105

[0006.220,000] 《inf》 net_config: Lease time: 7200 seconds

[0006.220,000] 《inf》 net_config: Subnet: 255.255.255.0

[0006.220,000] 《inf》 net_config: Router: 192.168.101.1

uart:~$ Connection #0 from 192.168.101.108

Connection from 192.168.101.108 closed

Connection #1 from 192.168.101.108

Connection from 192.168.101.108 closed

電腦瀏覽器訪問http://192.168.101.105:8080/結果

Net Shell測試ping電腦結果:

1

2

3

4

5

uart:~$ net ping 192.168.101.108

PING 192.168.101.108

28 bytes from 192.168.101.108 to 192.168.101.105: icmp_seq=0 ttl=128 time=153 ms

28 bytes from 192.168.101.108 to 192.168.101.105: icmp_seq=1 ttl=128 time=30 ms

28 bytes from 192.168.101.108 to 192.168.101.105: icmp_seq=2 ttl=128 time=7 ms

其它

再次說明由于Zephyr沒有對esp32的scan/connect/disconnect進行集成封裝,如果應用中要做wifi管理,需要應用程序直接調用esp hal API來實現。例如,如果沒有配置CONFIG_ESP32_WIFI_STA_AUTO=y, 就需要在應用代碼中加入下面流程,才能完成wifi連接

1

if (!IS_ENABLED(CONFIG_ESP32_WIFI_STA_AUTO)) {

wifi_config_t wifi_config = {

.sta = {

.ssid = CONFIG_ESP32_WIFI_SSID,

.password = CONFIG_ESP32_WIFI_PASSWORD,

},

};

esp_err_t ret = esp_wifi_set_mode(WIFI_MODE_STA);

ret |= esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config);

ret |= esp_wifi_connect();

if (ret != ESP_OK) {

LOG_ERR(“connection failed”);

}

}

如果應用要用socket編程,需要添加下面配置項

1

2

CONFIG_NET_SOCKETS=y

CONFIG_NET_SOCKETS_POSIX_NAMES=y

參考

https://docs.zephyrproject.org/latest/samples/boards/esp32/wifi_station/README.html

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PC
    PC
    +關注

    關注

    9

    文章

    2152

    瀏覽量

    156578
  • IP
    IP
    +關注

    關注

    5

    文章

    1805

    瀏覽量

    152623
  • 電腦
    +關注

    關注

    16

    文章

    1779

    瀏覽量

    70299
  • 代碼
    +關注

    關注

    30

    文章

    4900

    瀏覽量

    70774

原文標題:Zephyr ESP32 wifi使用簡述

文章出處:【微信號:ZephyrProject,微信公眾號:ZephyrProject】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    樂鑫ESP32-C5全面進入量產

    樂鑫信息科技 (688018.SH) 宣布,ESP32-C5 現已全面進入量產。
    的頭像 發表于 05-06 16:50 ?606次閱讀

    樂鑫ESP32-C5全面進入量產!啟明云端樂鑫科技代理商

    樂鑫信息科技(688018.SH)宣布,ESP32-C5現已全面進入量產。作為行業首款2.4&5GHz雙頻Wi-Fi6的RISC-VSoC,ESP32-C5同時集成Bluetooth5(LE
    的頭像 發表于 04-30 18:10 ?426次閱讀
    樂鑫<b class='flag-5'>ESP32</b>-C5全面進入量產!啟明云端樂鑫科技代理商

    ESP32運行網頁服務器 (Web-Server)-入門篇

    什么是ESP32WebServer?ESP32WebServer是在ESP32微控制器上運行的一個嵌入式網頁服務器。它能夠處理HTTP請求并作出響應,使用戶可以通過網絡瀏覽器與設備進行通訊和交互
    的頭像 發表于 03-09 14:24 ?4351次閱讀
    <b class='flag-5'>ESP32</b>運行網頁服務器 (Web-Server)-入門篇

    STM32和ESP32應該學哪個

    等等,市場占有率也很高。 ESP32相對年輕了不少,滿打滿算也不到 10 歲,他的前身,還得從 ESP8266 說起,都屬于樂鑫科技的產品。 如果你用單片機做過一些物聯網產品,那多多少少應該聽過 ESP8266,這是一個非常常見
    的頭像 發表于 02-18 09:52 ?704次閱讀

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本質上是讓 ESP32 設備與豆包的 API 進行通信,以獲取相關服務
    的頭像 發表于 02-05 13:40 ?1984次閱讀
    <b class='flag-5'>esp32</b>如何接入豆包

    ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技術規格書

    電子發燒友網站提供《ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技術規格書.pdf》資料免費下載
    發表于 12-07 15:30 ?11次下載

    基于ESP32-C3FN4為核心自主研發的Wi-Fi+BT模塊-RF-WM-ESP32B1

    WI-FI模組 - RF-WM-ESP32B1是基于ESP32-C3FN4為核心自主研發的Wi-Fi+BT模塊,支持IEEE 802.11b/g/n (2.4 GHz Wi-Fi)和低功耗藍牙5.0,可廣泛用于各種消費類電子、手機外設產品等。
    的頭像 發表于 11-07 09:45 ?670次閱讀
    基于<b class='flag-5'>ESP32</b>-C3FN4為核心自主研發的Wi-Fi+BT模塊-RF-WM-<b class='flag-5'>ESP32</b>B1

    【AI技術支持】ESP32-WROOM-32E模組WiFi自適應發送數據失敗處理

    你是否曾遇到過?在使用ESP32-WROOM-32E模組,ESP-IDF版本為idf4.x時,客戶把模組貼在主板上做整機測試,由串口工具供電,WiFi自適應測試時可以連接路由器的AP名稱和密碼
    的頭像 發表于 11-02 08:00 ?1372次閱讀
    【AI技術支持】<b class='flag-5'>ESP32</b>-WROOM-32E模組<b class='flag-5'>WiFi</b>自適應發送數據失敗處理

    【AI技術支持】ESP32模組PSRAM的CS引腳上拉導致功耗上升處理

    啟明云端/01你是否曾遇到過?在游戲機產品上,使用ESP32-WROOM-32E/ESP32-WROOM-32UE模組,ESP-IDF版本為IDFv5.1.1時,根據外圍設計原理圖介紹,在模組內置
    的頭像 發表于 10-31 08:01 ?2219次閱讀
    【AI技術支持】<b class='flag-5'>ESP32</b>模組PSRAM的CS引腳上拉導致功耗上升處理

    esp32上使用chatGPT做一些有意思的事情

    將ChatGPT與ESP32進行結合,可以在物聯網應用方面做出更有意思的事情,如聊天機器人、語音助手和自然語言界面。下面,我將在ESP32中使用ChatGPT API。為了讓ESP32
    的頭像 發表于 10-18 10:04 ?1071次閱讀

    ESP32 微控制器系列指南

    2024-05-29 Don Wilcher [微控制器] ESP32 微控制器已成為物聯網 (IoT) 和嵌入式控制器領域的核心部分。 ESP32 生態系統的制造商 Espressif
    的頭像 發表于 10-02 18:21 ?5052次閱讀
    <b class='flag-5'>ESP32</b> 微控制器系列指南

    請問ESP32-WROOM-32D/32U是否支持WiFi Direct模式?

    1. ESP32-WROOM-32D/32U是否支持WiFi Direct模式? 2. 如果不支持,哪款芯片支持WiFi Direct模式,請提供芯片型號。 3. 如果ESP32
    發表于 09-09 08:07

    esp32esp8266代碼共用嗎

    本文將介紹ESP32ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯網技術的飛速發展,越來越多的智能設備開始進入我們的生活。其中,ESP32ESP
    的頭像 發表于 08-19 18:23 ?2350次閱讀

    esp8266和esp32區別是什么

    以下是關于ESP8266和ESP32的主要區別: 處理器和架構 : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構。 ESP32 :使
    的頭像 發表于 08-19 18:16 ?7357次閱讀

    esp32用什么軟件編程

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模微控制器,廣泛應用于物聯網、智能家居、智能穿戴等領域。要對ESP32進行編程,需要選擇合適的編程軟件和開發環境
    的頭像 發表于 08-19 17:24 ?7022次閱讀
    主站蜘蛛池模板: 久久99精品久久久久久久不卡 | 美女喷白浆 | 你懂的在线视频观看 | 天天操操操操 | 美女色黄一男一女 | 日本在线观看成人小视频 | 84pao强力永久免费高清 | 欧美区一区 | 夜夜骑日日射 | 四虎精品影院2022 | 亚洲专区一路线二 | 在线天堂资源www中文在线 | 五月天婷婷网亚洲综合在线 | 你懂的网站在线播放 | xxxxxx日本老师hd68 | 明星三级国产免费播放 | 手机精品在线 | 久久久国产乱子伦精品 | 一二三区在线观看 | 国产h视频在线观看网站免费 | 日本亚洲精品色婷婷在线影院 | 免费看一级大片 | 天天在线精品视频在线观看 | 午夜国产精品免费观看 | 午夜爱爱免费视频 | 色婷婷丁香 | 中年艳妇乱小玩 | 久久98精品久久久久久婷婷 | 久久国产精品免费专区 | 91p0rn永久备用地址二 | 播放个毛片看看 | 国产永久免费爽视频在线 | 久久精品美女 | 播色屋| 男人扒开美女尿口无遮挡图片 | 日韩三级 | 性过程很黄的小说男男 | 深夜释放自己vlog糖心旧版本 | 久久久久琪琪免费影院 | 成人精品第一区二区三区 | 欧美精品首页 |