【得捷电子Follow me第2期】任务二:连接WIFI和创建热点
[复制链接]
本帖最后由 eew_wdn7TD 于 2023-10-10 11:48 编辑
任务二:网络功能使用
(一)连接WiFi
相比于任务一,我多使用了wifi库,这个库的主要作用是用来连接wifi以及显示ip地址
导入库的代码如下
import board
import time
import wifi
import digitalio
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font
然后对于WiFi名称和密码进行设置,并且进行连接。
# 设置要连接的wifi和密码
SSID = "11122"
PASSWORD = "mima8888"
# 进行连接
wifi.radio.connect(SSID, PASSWORD)
这样就可以连接上名称为“11122”的WiFi了。
当然,这样的话,从屏幕上看不知道是否已经成功连接上,所以需要做一点点文字提示,就复用一下任务一的代码吧:
# 设置字体、背景的颜色,非必须,如果不需要可以注释掉,则为透明
color = 0x0000ff
background_color = 0x000000
# 设置要显示的文字
text = "已连接上" + SSID + "\n" + "IP地址为" + str(wifi.radio.ipv4_address)
# 初始化屏幕
display = board.DISPLAY
# 设置汉字的字体、颜色、位置
type = bitmap_font.load_font("/type/wenquanyi_9pt.pcf")
character = label.Label(type, text=text, color=color,scale=2, background_color=background_color)
character.x = 2
character.y = 30
# 显示提示语
display.show(character)
因为之前任务一的字库中的字比较少,所以我换了一个字库,这个字库大小为2.1MB,基本上就把内存占满了,没办法,自己又不会做字库,能跑进行
字库的下载地址:
然后文字提示使用了换行符“\n”,所以是两行显示,需要改一下文字的位置。
接下来就是老传统了,使用led提示程序正在运行,没有卡死
# 创建LED对象
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
# 死循环,控制led的闪烁
while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)
最后,贴一下效果图
(二)创建热点
首先是导入库,和连接WiFi的一样,没啥好说的
import board
import time
import wifi
import digitalio
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font
然后设置热点名称和密码,并且改一下代码语句,把连接热点改为创建热点,提示的文字也要改一下
# 设置要创建的wifi和密码
SSID = "ESP32-S3"
PASSWORD = "12345678"
# 创建这个热点
wifi.radio.start_ap(SSID, PASSWORD)
# 设置要显示的文字
text = SSID + "热点已创建" + "\n" + "密码为" + PASSWORD
剩下的和连接热点都一样一样的,我就直接粘贴代码了
# 设置字体、背景的颜色,非必须,如果不需要可以注释掉,则为透明
color = 0x0000ff
background_color = 0x000000
# 初始化屏幕
display = board.DISPLAY
# 设置汉字的字体、颜色、位置
type = bitmap_font.load_font("/type/wenquanyi_9pt.pcf")
character = label.Label(type, text=text, color=color,scale=2, background_color=background_color)
character.x = 2
character.y = 30
# 显示提示语
display.show(character)
# 创建LED对象
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
# 死循环,控制led的闪烁
while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)
效果如下
手机也可以正常连接上这个热点,就是没有网络
|