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

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

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

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

淺談Zephyr ESP32 wifi如何使用

ZephyrProject ? 來源:ZephyrProject ? 作者:ZephyrProject ? 2021-06-01 10:17 ? 次閱讀

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

從前文可知由于esp32 wifi的驅(qū)動和ethernt L2對接,因此在zephyr下只要通過簡單的配置就可以在應(yīng)用層使用socket通過wifi進行網(wǎng)絡(luò)通信,而不需要去關(guān)心esp32 wifi驅(qū)動的細節(jié)。

配置方法

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

1

2

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

CONFIG_WIFI=y

CONFIG_WIFI_ESP32=y

# 配置使用網(wǎng)絡(luò)和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

運行l(wèi)og, 最后幾句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/結(jié)果

Net Shell測試ping電腦結(jié)果:

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進行集成封裝,如果應(yīng)用中要做wifi管理,需要應(yīng)用程序直接調(diào)用esp hal API來實現(xiàn)。例如,如果沒有配置CONFIG_ESP32_WIFI_STA_AUTO=y, 就需要在應(yīng)用代碼中加入下面流程,才能完成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”);

}

}

如果應(yīng)用要用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

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

    關(guān)注

    9

    文章

    2067

    瀏覽量

    154042
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1664

    瀏覽量

    149341
  • 電腦
    +關(guān)注

    關(guān)注

    15

    文章

    1681

    瀏覽量

    68692
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4753

    瀏覽量

    68368

原文標(biāo)題:Zephyr ESP32 wifi使用簡述

文章出處:【微信號:ZephyrProject,微信公眾號:ZephyrProject】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    esp32esp8266代碼共用嗎

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

    esp8266和esp32區(qū)別是什么

    以下是關(guān)于ESP8266和ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構(gòu)。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?4504次閱讀

    esp32用什么軟件編程

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模微控制器,廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居、智能穿戴等領(lǐng)域。要對ESP32進行編程,需要選擇合適的編程軟件和開發(fā)環(huán)境
    的頭像 發(fā)表于 08-19 17:24 ?2961次閱讀

    ESP32-WROOM-32E、ESP32-WROOM-32D、ESP32-WROOM-32U 有什么區(qū)別?ESP32-WROOM-32 后綴字母代表的意思是?

    相信很多人心里都有這樣的疑問,今天就教大家怎么區(qū)分它們。 32D和32U是同一個芯片ESP32-D0WD的模組,主要區(qū)別的天線模式,分別是板載和IPEX外接天線。 32E是用的升級版的芯片
    的頭像 發(fā)表于 07-17 10:09 ?7941次閱讀
    <b class='flag-5'>ESP32</b>-WROOM-32E、<b class='flag-5'>ESP32</b>-WROOM-32D、<b class='flag-5'>ESP32</b>-WROOM-32U  有什么區(qū)別?<b class='flag-5'>ESP32</b>-WROOM-32 后綴字母代表的意思是?

    ESP32能取代STM32嗎?哪個更好?

    不能!首先二者不存在哪個更好的問題,因為這兩個芯片使用場景各不相同,在嵌入式系統(tǒng)領(lǐng)域,ESP32和STM32都是常見的單片機系列,它們各自具有一定的優(yōu)勢和適用場景。本文主要探討ESP32是否能夠取代
    的頭像 發(fā)表于 07-06 08:04 ?8547次閱讀
    <b class='flag-5'>ESP32</b>能取代STM32嗎?哪個更好?

    請問ESP32的網(wǎng)口與WIFI能否共存?

    請問ESP32 的網(wǎng)口與WIFI能否共存, 1臺電腦用網(wǎng)口TCP-client與ESP32的TCP-server連接; 另一臺電腦用WIFI的TCP-client與
    發(fā)表于 06-25 06:49

    如何使用espidf將esp32做成WiFi中繼?

    如何使用espidf將esp32做成WiFi中繼,讓esp32通過WiFi連接互聯(lián)網(wǎng),同時作為AP,能讓連接到esp32AP的設(shè)備能夠直接訪
    發(fā)表于 06-25 06:43

    ESP32-WROVER-B 16M固件里的WiFi參數(shù)怎么設(shè)置才算最優(yōu)?

    有哪位大佬知道WiFi參數(shù)怎么設(shè)置才算最優(yōu)? 比如以下這些 CONFIG_ESP32_WIFI
    發(fā)表于 06-24 06:02

    樂鑫esp32系列在睡眠模式下保持藍牙連接的功耗測試

    本教程適用于ESP32-S3、ESP32-C3、ESP32-C6睡眠模式介紹ESP32系列常見的休眠方式有三種,分別為Modem-sleep、Light-sleep和Deep-slee
    的頭像 發(fā)表于 06-21 08:04 ?2241次閱讀
    樂鑫<b class='flag-5'>esp32</b>系列在睡眠模式下保持藍牙連接的功耗測試

    esp32 WIFi升級時受BLE_Mesh影響嚴重怎么解決?

    我這邊項目使用ESP32 工作在WIFI和BLE mesh 狀態(tài),當(dāng)使用 wifi升級ESP32時,發(fā)現(xiàn)受MESH影響很大,如果邊上的MESH信號很多,
    發(fā)表于 06-14 06:11

    如何在zephyr上使能esp32-c3內(nèi)置的USB串口?

    如題,請問如何在zephyr上使能esp32-c3內(nèi)置的 USB 串口。
    發(fā)表于 06-12 08:11

    基于ESP32開發(fā)的工業(yè)級2.4GHz WiFi藍牙模塊方案

    ? ? ? ?ESP32集成了2.4 GHz WiFi和藍牙雙模的單芯片方案,它采用臺積電(TSMC)超低功耗的40納米工藝,具有超高的射頻性能、穩(wěn)定性、通用性和可靠性,以及超低的功耗,滿足
    的頭像 發(fā)表于 05-31 17:06 ?810次閱讀

    ESP32系列ESP32-D0WD雙模 超低功耗集成BLE4.2+2.4G WIFI SoC芯片

    ESP32系列ESP32-D0WD雙模 超低功耗集成BLE4.2+2.4G WIFI SoC芯片
    的頭像 發(fā)表于 05-29 11:52 ?1395次閱讀
    <b class='flag-5'>ESP32</b>系列<b class='flag-5'>ESP32</b>-D0WD雙模 超低功耗集成BLE4.2+2.4G <b class='flag-5'>WIFI</b> SoC芯片

    esp32外置flash的大小

    ESP32是一款功能強大的微控制器,廣泛應(yīng)用于物聯(lián)網(wǎng)和嵌入式設(shè)備領(lǐng)域。雖然ESP32內(nèi)置了一定的閃存空間,但有時候我們可能需要更大的儲存空間來存儲更多的數(shù)據(jù)或者程序。因此,一些廠商推出了外置
    的頭像 發(fā)表于 01-09 11:24 ?3900次閱讀

    ESP32-PICO系列技術(shù)規(guī)格書

    ESP32-PICO 系列是基于 ESP32 芯片 的系統(tǒng)級封裝 (SiP) 產(chǎn)品。ESP32-PICO 系列產(chǎn)品包括 ESP32-PICO-D4、
    發(fā)表于 12-12 16:56 ?0次下載
    <b class='flag-5'>ESP32</b>-PICO系列技術(shù)規(guī)格書