esp32-s3自带wifi,通过wifi编程就可以进行网络控制,其主要分为ap和station,即自身为热点和可以连接其他设备为热点。wifi模块直接导入,然后参考其官网文档,可以直接编程,很方便。
#一.核心函数
wifi模块这个库分为多个对象以及函数,用ap或者是station均需要用到radio函数,ap和station均需要用ssid和password进行参数传递。前者是wifi热点名称,后者是wifi密码。
参考文档连接在这里,大家自行参考。https://docs.circuitpython.org/en/latest/shared-bindings/wifi/index.html#wifi.Network
#二.代码实现
根据功能,我们需要将板子分别作为ap和station来使用。对于ap,使用start_ap函数便可以实现其功能,主要传入ssid和password。对于station,也是传入ssid和password。还可以使用其他属性,例如dns,ip地址等等。代码通过一个输入选择,分成两个函数快进行。
通过输入数字1还是2来进行不同功能切换,数字1是ap功能,数字2是station功能。连接wifi之后还进行了ping网络的测试。
ap函数代码:
def set_ap(number):
if number == 1:
wifi.radio.start_ap(ssid= "ESP32-S3 TFT",password="SW123456789")
print(wifi.radio.hostname)
print(wifi.radio.mac_address_ap)
else:
pass
station函数代码:
def set_wifi(number):
if number == 2:
ssid = "swz"
password = "swz273220swz"
wifi.radio.connect(ssid=ssid,password=password)
print(wifi.radio.mac_address)
print(wifi.radio.tx_power)
print(wifi.radio.ipv4_gateway)
print(wifi.radio.ipv4_address)
print(wifi.radio.ipv4_dns)
result = wifi.radio.ping(wifi.radio.ipv4_address)
print(result)
else:
pass
总代码:
import wifi
import json
def set_ap(number):
if number == 1:
wifi.radio.start_ap(ssid= "ESP32-S3 TFT",password="SW123456789")
print(wifi.radio.hostname)
print(wifi.radio.mac_address_ap)
else:
pass
def set_wifi(number):
if number == 2:
ssid = "swz"
password = "swz273220swz"
wifi.radio.connect(ssid=ssid,password=password)
print(wifi.radio.mac_address)
print(wifi.radio.tx_power)
print(wifi.radio.ipv4_gateway)
print(wifi.radio.ipv4_address)
print(wifi.radio.ipv4_dns)
result = wifi.radio.ping(wifi.radio.ipv4_address)
print(result)
else:
pass
if __name__ == "__main__":
number = int(input("请输入数字1或者2:"))
set_ap(number)
set_wifi(number)
#三.现象
设置ap,通过电脑连接,但是不能上网。
通过运行输入数字或者2,进行不同功能切换。
播放器加载失败: 未检测到Flash Player,请到
安装
功能实现
python编程确实简单,后续继续学习!