596|0

21

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

得捷电子 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地址 如下图所示

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表