0
点赞
收藏
分享

微信扫一扫

从零开始玩转ESP32产品开发(二):快速实现WIFI联网

Hyggelook 2022-04-01 阅读 65

文章目录

1. ESP32 WIFI功能概述

  • 支持仅 station 模式、仅 AP 模式、station/AP 共存模式
  • 支持使用 IEEE 802.11b、IEEE 802.11g、IEEE 802.11n 和 API 配置协议模式
  • 支持 WPA/WPA2/WPA3/WPA2-企业版和 WPS
  • 支持 AMPDU、HT40、QoS 以及其它主要功能
  • 支持 Modem-sleep
  • 支持乐鑫专属协议,可实现 1 km 数据通信量
  • 空中数据传输最高可达 20 MBit/s TCP 吞吐量和 30 MBit/s UDP 吞吐量
  • 支持 Sniffer
  • 支持快速扫描和全信道扫描
  • 支持多个天线
  • 支持获取信道状态信息

2. 使用ESP32模块快速接入WIFI热点

2.1 硬件准备

  • 路由器或开启热点的手机
  • ESP32模块或ESP32开发板,本文使用的ESP32-DevKitM-1

2.2 软件环境准备

  • ESPress-IDF开发工具链已经安装完毕,若未安装,参考文章:从零开始玩转ESP32产品开发(一):开发环境搭建

2.3 测试例程

  • 打开例程所在目录\workspace\esp-idf\examples\wifi\getting_started\station,使用vscode打开例程工程后,如图所示:
    在这里插入图片描述如果不显示【终端栏】,则按下【CTRL+~】开启。

  • 点击最下角工具栏中的齿轮图标,配置工程。
    在这里插入图片描述- 输入WIFI名称和密码,然后点击保存
    在这里插入图片描述

  • 编译工程:点击左下角工具栏中的圆柱图标,编译工程,如图:
    在这里插入图片描述在终端栏中可以看到编译日志:
    在这里插入图片描述

  • 烧写程序

    • 配置烧写方式及串口号
      在这里插入图片描述
    • 选择烧写串口,串口号根据实际情况选择。
      在这里插入图片描述
    • 烧写程序到ESP32
      在这里插入图片描述
  • 监听串口,查看WIFI连接结果

    • 启动监听
      在这里插入图片描述
    • 串口输出如下:
--- WARNING: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM70 instead...
--- idf_monitor on \\.\COM70 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:6624
load:0x40078000,len:14780
load:0x40080400,len:3792
0x40080400: _init at ??:?

entry 0x40080694
I (28) boot: ESP-IDF v4.4-dirty 2nd stage bootloader
I (28) boot: compile time 17:05:51
I (28) boot: chip revision: 3
I (31) boot_comm: chip revision: 3, min. bootloader chip revision: 0
I (38) boot.esp32: SPI Speed      : 40MHz
I (43) boot.esp32: SPI Mode       : DIO
I (47) boot.esp32: SPI Flash Size : 4MB
I (52) boot: Enabling RNG early entropy source...
I (57) boot: Partition Table:
I (61) boot: ## Label            Usage          Type ST Offset   Length
I (68) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (76) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (83) boot:  2 factory          factory app      00 00 00010000 00100000
I (91) boot: End of partition table
I (95) boot_comm: chip revision: 3, min. application chip revision: 0
I (102) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=13510h ( 79120) map
I (139) esp_image: segment 1: paddr=00023538 vaddr=3ffb0000 size=03810h ( 14352) load
I (145) esp_image: segment 2: paddr=00026d50 vaddr=40080000 size=092c8h ( 37576) load
I (161) esp_image: segment 3: paddr=00030020 vaddr=400d0020 size=6d6a8h (448168) map
I (323) esp_image: segment 4: paddr=0009d6d0 vaddr=400892c8 size=0b01ch ( 45084) load
I (342) esp_image: segment 5: paddr=000a86f4 vaddr=50000000 size=00010h (    16) load
I (352) boot: Loaded app from partition at offset 0x10000
I (352) boot: Disabling RNG early entropy source...
I (364) cpu_start: Pro cpu up.
I (365) cpu_start: Starting app cpu, entry point is 0x40081174
0x40081174: call_start_cpu1 at D:/110_Work_ProductsResearch/111-Router/ESP32Work/esp-idf/components/esp_system/port/cpu_start.c:156

I (0) cpu_start: App cpu up.
I (379) cpu_start: Pro cpu start user code
I (379) cpu_start: cpu freq: 160000000
I (379) cpu_start: Application information:
I (383) cpu_start: Project name:     wifi_station
I (389) cpu_start: App version:      v4.4-dirty
I (394) cpu_start: Compile time:     Apr  1 2022 17:05:28
I (400) cpu_start: ELF file SHA256:  0755f744dd970668...
I (406) cpu_start: ESP-IDF:          v4.4-dirty
I (411) heap_init: Initializing. RAM available for dynamic allocation:
I (418) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (424) heap_init: At 3FFB74B0 len 00028B50 (162 KiB): DRAM
I (431) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (437) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (443) heap_init: At 400942E4 len 0000BD1C (47 KiB): IRAM
I (451) spi_flash: detected chip: generic
I (454) spi_flash: flash io: dio
I (459) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (528) wifi station: ESP_WIFI_MODE_STA
I (538) wifi:wifi driver task: 3ffc0548, prio:23, stack:6656, core=0
I (538) system_api: Base MAC address is not set
I (538) system_api: read default base MAC address from EFUSE
I (558) wifi:wifi firmware version: 7679c42
I (558) wifi:wifi certification version: v7.0
I (558) wifi:config NVS flash: enabled
I (558) wifi:config nano formating: disabled
I (558) wifi:Init data frame dynamic rx buffer num: 32
I (568) wifi:Init management frame dynamic rx buffer num: 32
I (568) wifi:Init management short buffer num: 32
I (578) wifi:Init dynamic tx buffer num: 32
I (578) wifi:Init static rx buffer size: 1600
I (588) wifi:Init static rx buffer num: 10
I (588) wifi:Init dynamic rx buffer num: 32
I (588) wifi_init: rx ba win: 6
I (598) wifi_init: tcpip mbox: 32
I (598) wifi_init: udp mbox: 6
I (598) wifi_init: tcp mbox: 6
I (608) wifi_init: tcp tx win: 5744
I (608) wifi_init: tcp rx win: 5744
I (618) wifi_init: tcp mss: 1440
I (618) wifi_init: WiFi IRAM OP enabled
I (618) wifi_init: WiFi RX IRAM OP enabled
I (628) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07
I (738) wifi:mode : sta (44:17:93:b4:c4:3c)
I (738) wifi:enable tsf
I (748) wifi station: wifi_init_sta finished.
I (758) wifi:new:<11,0>, old:<1,0>, ap:<255,255>, sta:<11,0>, prof:1
I (758) wifi:state: init -> auth (b0)
I (788) wifi:state: auth -> assoc (0)
I (808) wifi:state: assoc -> run (10)
I (848) wifi:connected with Redmi Note 10 Pro, aid = 2, channel 11, BW20, bssid = da:ff:5c:70:d8:2f
I (848) wifi:security: WPA2-PSK, phy: bgn, rssi: -32
I (858) wifi:pm start, type: 1

I (938) wifi:AP's beacon interval = 102400 us, DTIM period = 2
I (1528) esp_netif_handlers: sta ip: 192.168.141.162, mask: 255.255.255.0, gw: 192.168.141.105
I (1528) wifi station: got ip:192.168.141.162
I (1528) wifi station: connected to ap SSID:Redmi Note 10 Pro password:xxxxx

可以看到最后一行的输出,ESP32模块已经连入了WIFI热点。

3. 总结

以上就是采用ESP32模块作为STA模式使用时快速接入WIFI热点的使用方法,同时也详细的描述了ESP32开发的基本开发工作流。

相关博文:

  • 从零开始玩转ESP32产品开发(一):开发环境搭建
举报

相关推荐

0 条评论