测试ESP32Wifi功能的MicroPython 代码
import network
import time
import socket
# 配置你的WiFi信息
WIFI_SSID = "Wifi名称"
WIFI_PASSWORD = "Wifi密码"
# 初始化网络接口
sta_if = network.WLAN(network.STA_IF)
def connect_wifi(max_retries=3, timeout=5):
"""
连接WiFi网络
参数:
max_retries: 最大重试次数
timeout: 每次连接超时时间(秒)
返回:
bool: 是否连接成功
"""
if not sta_if.isconnected():
print('正在连接WiFi...')
sta_if.active(True)
sta_if.connect(WIFI_SSID, WIFI_PASSWORD)
retries = 0
while not sta_if.isconnected() and retries < max_retries:
print(f'尝试连接中... ({retries+1}/{max_retries})')
time.sleep(timeout)
retries += 1
if sta_if.isconnected():
print('连接成功!')
print('网络配置:', sta_if.ifconfig())
return True
else:
print('连接失败')
return False
else:
print('已连接现有网络')
return True
def test_network():
"""
测试网络连通性
通过尝试连接百度服务器来验证网络连接
"""
s = None # 确保socket对象在finally块中可用
try:
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(5) # 设置超时时间
# 尝试连接百度服务器(使用www.baidu.com的80端口)
addr = socket.getaddrinfo('www.baidu.com', 80)[0][-1]
s.connect(addr)
print('网络测试成功!可以访问互联网')
return True
except Exception as e:
print('网络测试失败:', str(e))
return False
finally:
if s: # 确保socket对象存在再关闭
s.close()
# 主程序
if __name__ == '__main__':
if connect_wifi():
print('正在测试网络连接...')
if test_network():
print('✅ 系统状态:网络连接正常')
else:
print('⚠️ 系统状态:WiFi已连接但无法访问互联网')
else:
print('❌ 系统状态:WiFi连接失败')
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果