【得捷电子Follow me第2期】+任务2:网络功能使用
[复制链接]
本帖最后由 EPTmachine 于 2023-8-14 19:38 编辑
ESP32系列芯片的一大优点就是内置了Wifi功能,不需要外接Wifi芯片从而实现Wifi连接,这一优点使其特别适用于物联网应用。
1.程序使用到的硬件
由于芯片本身具有Wifi功能,所以实现网络功能只需要ESP32-S3芯片就可以了,不需要额外的器件,在Wifi应用中,ESP32-S3可以通过Wifi连接网络中,也可以创建为Wifi热点,让其他设备连接到ESP32-S3上。
2.连接到Wifi
参考Adafruit官网和CircutPython官网上对于Wifi功能的介绍,连接到附近的Wifi网络,需要的导入的库有os和wifi。
首先在对CIRCUTPY中的settings.toml修改,定义系统变量WIFI_SSID和WIFI_PASSWORD的值。settings.toml的内容示例如下:
WIFI_SSID = "WIFI名称"
WIFI_PASSWORD = "WIFI密码"
在code.py中添加以下代码,
# SPDX-FileCopyrightText: 2020 Brent Rubell for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import os
import wifi
print("ESP32-S3 Station Test")
print(f"My MAC address: {[hex(i) for i in wifi.radio.mac_address]}")
print("Available WiFi networks:")
for network in wifi.radio.start_scanning_networks():
print("\t%s\t\tRSSI: %d\tChannel: %d" % (str(network.ssid, "utf-8"),
network.rssi, network.channel))
wifi.radio.stop_scanning_networks()
print(f"Connecting to {os.getenv('WIFI_SSID')}")
wifi.radio.connect(os.getenv("WIFI_SSID"), os.getenv("WIFI_PASSWORD"))
print(f"Connected to {os.getenv('WIFI_SSID')}")
print(f"My IP address: {wifi.radio.ipv4_address}")
在串口中打印的信息如下:
ESP32-S3 Station Test
My MAC address: ['0xf4', '0x12', '0xfa', '0x59', '0xd4', '0xe0']
Available WiFi networks:
HOST_BWG RSSI: -65 Channel: 6
CMCC-2301 RSSI: -72 Channel: 6
2101 RSSI: -63 Channel: 1
ChinaNet-bb4Z RSSI: -86 Channel: 1
TP-LINK_1404 RSSI: -90 Channel: 1
CMCC-2807 RSSI: -91 Channel: 11
花花之家 RSSI: -93 Channel: 11
2306 RSSI: -91 Channel: 4
Xiaomi_85AB RSSI: -88 Channel: 8
Linzai_2401 RSSI: -91 Channel: 5
Connecting to HOST_BWG
Connected to HOST_BWG
My IP address: 192.168.0.101
3.创建Wifi热点
创建Wifi热点时,同时采用类似的方法,首先在CIRCUTPY中的settings.toml定义要创建的热点的AP_SSID和AP_PASSWORD。settings.toml的内容示例如下:
AP_SSID = "WIFI名称"
AP_PASSWORD = "WIFI密码"
在code.py中添加以下代码,
import os
import wifi
import adafruit_requests
print("ESP32-S3 Access Point Test")
print(f"My MAC address: {[hex(i) for i in wifi.radio.mac_address]}")
wifi.radio.start_ap(os.getenv("AP_SSID"), os.getenv("AP_PASSWORD"))
在电脑上就可以搜索到创建的热点名。
4.总结
在官网和网上能找到的关于CircutPythton的Wifi使用教程,Wifi模块的设计高度模块化,各个函数的意义很明确,使用起来很方便,对于熟悉Wifi开发的人来说,可以很快地搭建应用,验证方案地可行性。
|