得捷电子 Follow me 第2期任务提交——网络功能使用(必做任务)
[复制链接]
大家都说这个任务非常简单 但是对于我从来没有接触过python开发还是鼓捣了好一阵 本次提交将会比较基础 用来帮助0基础同学 希望各位评委海涵!
通过逛论坛得知联网功能我们可以通过两种方式实现
1 直接导入wifi包通过radio中的start_ap方法来调用wifi连接的方法 代码如下 wifi.radio.start_ap
2 在开发板文件夹下创建一个新文件命名为setting.toml 并用记事本打开 输入以下宏定义
# 配置wifi的ID名称
CIRCUITPY_WIFI_SSID = "你家的wifiid"
# 配置wifi密码,把你的wifi密码填到里面
CIRCUITPY_WIFI_PASSWORD = "你家的wifi密码"
#以下的定义经过测试不输入开发板也能完成连入wifi可不输入
# 配置网页工作流密码,这个千万不要改,除非你懂了
CIRCUITPY_WEB_API_PASSWORD = "ilfree"
# 配置网页工作流端口
CIRCUITPY_WEB_API_PORT = 80
使用第一种方法的总体代码如下
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}")
这种方法联网的优点如下
使用的包非常少 适合本开发板因为内存不大够
代码简单不需要新增文件 可移植性高
使用第二种方法的代码如下
import os
import time
import ssl
import wifi
import socketpool
import microcontroller
import adafruit_requests
# adafruit quotes URL
quotes_url = "https://www.bing.com"
os.getenv('CIRCUITPY_WIFI_PASSWORD'))
pool = socketpool.SocketPool(wifi.radio)
requests = adafruit_requests.Session(pool, ssl.create_default_context())
while True:
try:
# pings adafruit quotes
print("Fetching text from %s" % quotes_url)
# gets the quote from adafruit quotes
response = requests.get(quotes_url)
print("-" * 40)
# prints the response to the REPL
print("Text Response: ", response.text)
print("-" * 40)
response.close()
# delays for 1 minute
time.sleep(60)
# pylint: disable=broad-except
except Exception as e:
print("Error:\n", str(e))
print("Resetting microcontroller in 10 seconds")
time.sleep(10)
microcontroller.reset()
代码提供者:忙碌的死龙
本人才学短浅 部分代码我并没有看明白 还请大佬赐教整个while循环内的代码用途
本人采用第一种方法配置完显示屏的左上角显示出开发板连接的ip地址 如下图所示
|