833|0

6

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子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)

效果如下
 

手机也可以正常连接上这个热点,就是没有网络

 

点赞 关注
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表