463|4

164

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

【得捷电子Follow me第2期】+任务2:网络功能使用 [复制链接]

  本帖最后由 EPTmachine 于 2023-8-14 19:38 编辑

ESP32系列芯片的一大优点就是内置了Wifi功能,不需要外接Wifi芯片从而实现Wifi连接,这一优点使其特别适用于物联网应用。

1.程序使用到的硬件

由于芯片本身具有Wifi功能,所以实现网络功能只需要ESP32-S3芯片就可以了,不需要额外的器件,在Wifi应用中,ESP32-S3可以通过Wifi连接网络中,也可以创建为Wifi热点,让其他设备连接到ESP32-S3上。

2.连接到Wifi

参考Adafruit官网和CircutPython官网上对于Wifi功能的介绍,连接到附近的Wifi网络,需要的导入的库有os和wifi。

首先在对CIRCUTPY中的settings.toml修改,定义系统变量WIFI_SSID和WIFI_PASSWORD的值。settings.toml的内容示例如下:

WIFI_SSID = "WIFI名称"
WIFI_PASSWORD = "WIFI密码"

在code.py中添加以下代码,

# SPDX-FileCopyrightText: 2020 Brent Rubell for Adafruit Industries
#
# SPDX-License-Identifier: MIT

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}")

在串口中打印的信息如下:

ESP32-S3 Station Test
My MAC address: ['0xf4', '0x12', '0xfa', '0x59', '0xd4', '0xe0']
Available WiFi networks:
	HOST_BWG		RSSI: -65	Channel: 6
	CMCC-2301		RSSI: -72	Channel: 6
	2101		RSSI: -63	Channel: 1
	ChinaNet-bb4Z		RSSI: -86	Channel: 1
	TP-LINK_1404		RSSI: -90	Channel: 1
	CMCC-2807		RSSI: -91	Channel: 11
	花花之家		RSSI: -93	Channel: 11
	2306		RSSI: -91	Channel: 4
	Xiaomi_85AB		RSSI: -88	Channel: 8
	Linzai_2401		RSSI: -91	Channel: 5
Connecting to HOST_BWG
Connected to HOST_BWG
My IP address: 192.168.0.101

3.创建Wifi热点

创建Wifi热点时,同时采用类似的方法,首先在CIRCUTPY中的settings.toml定义要创建的热点的AP_SSID和AP_PASSWORD。settings.toml的内容示例如下:

AP_SSID = "WIFI名称"
AP_PASSWORD = "WIFI密码"

在code.py中添加以下代码,

import os
import wifi
import adafruit_requests

print("ESP32-S3 Access Point Test")

print(f"My MAC address: {[hex(i) for i in wifi.radio.mac_address]}")

wifi.radio.start_ap(os.getenv("AP_SSID"), os.getenv("AP_PASSWORD"))

在电脑上就可以搜索到创建的热点名。

 

4.总结

在官网和网上能找到的关于CircutPythton的Wifi使用教程,Wifi模块的设计高度模块化,各个函数的意义很明确,使用起来很方便,对于熟悉Wifi开发的人来说,可以很快地搭建应用,验证方案地可行性。

最新回复

好的,我回去试一下     详情 回复 发表于 2023-8-21 13:16
点赞 关注
 
 

回复
举报

6060

帖子

6

TA的资源

版主

沙发
 

楼主你好,创建WiFi热点还需要特殊设计吗?代码没有提示错误,不过没有创建成功

点评

主程序最后要加一个 while:     pass  详情 回复 发表于 2023-8-20 22:28
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

164

帖子

2

TA的资源

一粒金砂(高级)

板凳
 
秦天qintian0303 发表于 2023-8-20 07:45 楼主你好,创建WiFi热点还需要特殊设计吗?代码没有提示错误,不过没有创建成功

主程序最后要加一个

while:
    pass

点评

好的,我回去试一下    详情 回复 发表于 2023-8-21 13:16
 
 
 

回复

164

帖子

2

TA的资源

一粒金砂(高级)

4
 

 

 
 
 

回复

6060

帖子

6

TA的资源

版主

5
 
EPTmachine 发表于 2023-8-20 22:28 主程序最后要加一个 while:     pass

好的,我回去试一下  

个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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