693|2

143

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

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

  本帖最后由 Tristan_C 于 2023-8-30 09:01 编辑

任务2的内容是网络功能的使用,也就是完成网络功能的使用,能够创建热点和连接到WiFi,鉴于Circuit Python非常丰富的参考,再结合ESP32-S3本身也已经有原生软硬件支持WiFi,因此也是非常容易实现WiFI的AP和Station。

一、WiFi AP热点功能

首先在文件settings.toml中定义WiFi使用到的SSID和Password

如下图定义。

然后在使用是,利用os.getenv接口获取。

具体实现代码如下

import os

import wifi

print("Flow Me Task 2:WiFi AP Mode")

wifi.radio.start_ap(os.getenv("WIFI_SSID"), os.getenv("WIFI_PASSWORD"))

while True:

    pass

保存运行之后板载显示屏显示信息如下

就可以用电脑扫描到该热点。

此时可以点击链接,输入前述密码建立链接如下。

二、WiFi Station功能连接到WiFi热点

昨晚了AP的功能,接下来实现任务中作为station链接到别的AP的功能。

完成的目标是能够连接到指定ssid和password的ap,并能通过网络API获取当前时。

首先同样需要在文件settings.toml中定义WiFi使用到的SSID和Password,只不过这次使用的ssid和password是被链接的ap的信息。然后再定义时间戳获取的接口api地址。

使用的地址可以参考如下的获取时间api接口大全

这里选择一个苏宁的接口接口地址

http://quan.suning.com/getSysTime.do

该接口返回的时间信息如下图,会比较方便显示,通过json解析即可,在浏览器输入API获得回复如下。

我们将其也加到settings.toml中

而为了能让时间滚动起来,我们加入time,每2秒通过该api请求一次时间

本次需要额外添加的是adafruit_requests

具体代码如下:

import os

import wifi

import ssl

import socketpool

import adafruit_requests

import time

print("Flow Me Task 2:WiFi station Mode(connect to an AP)")

print(f"ESP32 connecting to {os.getenv('WIFI_SSID')}")

wifi.radio.connect(os.getenv("WIFI_SSID"), os.getenv("WIFI_PASSWORD"))

print(f"ESP32 connected to {os.getenv('WIFI_SSID')}")

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

print(f"My IP address: {wifi.radio.ipv4_address}")

print("Get time from SUNING.")

pool = socketpool.SocketPool(wifi.radio)

requests = adafruit_requests.Session(pool, ssl.create_default_context())

while True:

    #每2秒获取一次时间

    time.sleep(2)

    response = requests.get(os.getenv("SUNING_TIME_API"))

    print(f"{response.json()['sysTime2']}")

运行效果

最新回复

python确实方便,不像C那么繁琐。   详情 回复 发表于 2023-8-31 14:21
点赞 关注
 
 

回复
举报

7182

帖子

2

TA的资源

版主

沙发
 

python确实方便,不像C那么繁琐。

点评

对的,确实很方便。我也是学习阶段,其实给我个人感觉是CircuitPython做了底层的封装,包括硬件驱动,这样一来,直接在应用python试用就可以,免去太多跟底层打交道的过程,看起来才会这么方便了  详情 回复 发表于 2023-8-31 18:50
 
 
 

回复

143

帖子

4

TA的资源

一粒金砂(高级)

板凳
 
wangerxian 发表于 2023-8-31 14:21 python确实方便,不像C那么繁琐。

对的,确实很方便。我也是学习阶段,其实给我个人感觉是CircuitPython做了底层的封装,包括硬件驱动,这样一来,直接在应用python试用就可以,免去太多跟底层打交道的过程,看起来才会这么方便了

 
 
 

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

查找数据手册?

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