937|1

46

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第1期】+ 任务3 网络时间同步到板端 [复制链接]

 

一、PICO上的WIFI

Raspberry Pico W 和 Pico WH 在PICO的基础上添加了WIFI功能,使用英飞凌(Infineon)CYW43439 添加了板载单频2.4GHz 无线接口 (802.11n),同时保留了 Pico 外形。

板载2.4GHz无线接口具有以下特点:

  • 无线 (802.11n),单频段 (2.4 GHz)
  • WPA3
  • 最多支持四个客户端的软接入点

原文如图1所示。

 图1

该天线是从 ABRACON(ProAnt)获得许可的板载天线。无线接口通过SPI连接到RP2040微控制器。

由于管脚限制,部分无线接口管脚是共用的。 CLK与VSYS共用,因此只有当没有正在进行的 SPI传输时,才能通过ADC读取 VSYS。 Infineon CYW43439 DIN/DOUT 和 IRQ 在 RP2040 上共享一个引脚。只有当 SPI 事务未在进行时才适合检查 IRQ。该接口通常以33MHz 运行。

二、WIFI连接测试

 

 

根据直播课连接WiFi方法或者找到connecting-to-the-internet-with-pico-w.pdf这个文档3.6节测试,如图2所示

 图2

测试连接代码如下:

import time
import network
import urequests

#from machine import Pin, I2C
#from ssd1306 import SSD1306_I2C

#i2c=I2C(0,sda=Pin(8),scl=Pin(9),freq=400000)
#oled = SSD1306_I2C(128, 64, i2c)

ssid = 'ZBWL001'#wifi名称
passwd = '24458871'#wifi密码

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid,passwd)
#try to connect wifi
max_wait = 10
while max_wait > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    max_wait -= 1
    print('等待连接WiFi')
    #oled.fill(0)
    #oled.text('Wait WiFi',1,12,1)
    #oled.show()
    time.sleep(1)
#判定网络状态
if wlan.status() != 3:
    raise RuntimeError('联网失败')
else:
    print('网络已连接')
    status = wlan.ifconfig()
    print('ip = '+status[0])
    
#访问互联网测试
r = urequests.get("https://www.digikey.cn/zh")
print(r.status_code)
print(r.headers)
r.close()

打印如图3所示。

 图3

三、同步网络时间

首先下载ntptime模块,下载地址为https://github.com/micropython/micropython-lib/blob/master/micropython/net/ntptime/ntptime.py,点击Mu软件的文件,如果灰色先点击REPL,再点击文件,将ntptime.py拖到设备上,如图4所示。

 图4

编写测试程序,如下所示:

import time
import network
import urequests
from machine import RTC
import ntptime
#from machine import Pin, I2C
#from ssd1306 import SSD1306_I2C

#i2c=I2C(0,sda=Pin(8),scl=Pin(9),freq=400000)
#oled = SSD1306_I2C(128, 64, i2c)

ssid = 'ZBWL001'#wifi名称
passwd = '24458871'#wifi密码

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid,passwd)
#try to connect wifi
max_wait = 10
while max_wait > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    max_wait -= 1
    print('等待连接WiFi')
    #oled.fill(0)
    #oled.text('Wait WiFi',1,12,1)
    #oled.show()
    time.sleep(1)
#判定网络状态
if wlan.status() != 3:
    raise RuntimeError('联网失败')
else:
    print('网络已连接')
    status = wlan.ifconfig()
    print('ip = '+status[0])
    
#访问互联网测试
#r = urequests.get("https://www.digikey.cn/zh")
#print(r.status_code)
#print(r.headers)
#r.close()

点击运行后,打印窗口显示如图5所示,时间已经校准。

  图5

四、总结

    学习了WiFi的连接方法,以及连接时间服务器同步网络时间到板端,同时熟悉Mu软件的使用。

 

 

最新回复

   学习了WiFi的连接方法,以及连接时间服务器同步网络时间到板端,同时熟悉Mu软件的使用。 感谢大佬分享!   详情 回复 发表于 2023-6-1 07:35
点赞 关注
 
 

回复
举报

6841

帖子

11

TA的资源

版主

沙发
 

   学习了WiFi的连接方法,以及连接时间服务器同步网络时间到板端,同时熟悉Mu软件的使用。

感谢大佬分享!

 
 
 

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

随便看看
查找数据手册?

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