树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践

这篇具有很好参考价值的文章主要介绍了树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

树莓派Pico W开发板是树莓派基金会于2022年6月底推出的一款无线WiFi开发板,它支持C/C++和MicroPython编程。本文介绍树莓派Pico W无线WiFi开发板的使用方法及MicroPython编程示例,包括树莓派Pico W开发板板载LED使用及控制编程示例,Pico W开发板用作WiFi无线HTTP网络服务器的MicroPython编程示例。
1、树莓派Pico W无线WiFi开发板简介
树莓派Pico W无线WiFi开发板是在树莓派Pico基础上,添加了无线通讯功能模块,无线模块硬件采用了英飞凌CYW43439无线芯片,支持WiFi 4无线网络,给无线网络控制和通信相关的嵌入式系统与智能硬件应用开发提供了极大的方便。
Pico W开发板主要功能特性有:
•采用树莓派官方自主设计的RP2040 MCU芯片;
•搭载双核ARM Cortex M0+处理器,运行频率高达133MHz(灵活时钟);
•采用英飞凌CYW43439 WiFi芯片,支持WiFi 4无线网络;
•内置264KB的SRAM和2MB片上Flash;
•邮票孔设计,可直接焊接集成到用户自主设计的PCB底板上;
•USB1.1主机和设备支持;
•支持低功耗睡眠和休眠模式;
•可通过USB接口识别海量存储器进行拖放式程序下载;
•多达26个多功能GPIO引脚;
•2个SPI,2个I2C,2个UART,3个12位ADC,16个程控PWM通道;
•精确的片上时钟和定时器;
•温度传感器;
•片上加速浮点库;
•8个可编程I/O(PIO)状态机,用于支持自定义外设。
2、下载Pico W开发板MicroPython固件
可从网址https://datasheets.raspberrypi.com/soft/micropython-firmware-pico-w-290622.uf2直接下载Pico W开发板UF2格式MicroPython固件文件,也可从网址https://www.raspberrypi.com/documentation/microcontrollers/micropython.html或https://micropython.org/download/rp2-pico-w下载Pico W开发板最新版本UF2格式MicroPython固件文件。
3、安装MicroPython固件到Pico W开发板
找到Pico W开发板的[BOOTSEL]按钮,将连接PC机与Pico W的USB-Micro USB电缆线Micro USB接头插入Pico W开发板,如图1所示。按住[BOOTSEL]按钮并保持,然后将USB-Micro USB电缆线USB接头插入PC机USB接口,即通过USB接口将Pico W开发板连接到已开机的电脑,稍后松开Pico W开发板的[BOOTSEL]按钮。此时,Pico W开发板进入USB海量存储工作模式(USB mass storage device mode),说得通俗一点,此时,Pico W开发板就相当于是一个U盘,它会显示一个名为RPI-RP2的盘符和两个文件。将刚下载好的micropython-firmware-pico-w-290622.uf2固件文件拖拽到(或复制到)RPI-RP2所在盘中,Pico W开发板MicroPython固件安装成功,Pico W重新启动进入虚拟串口终端工作模式。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图1
4、安装Thonny IDE
Thonny IDE支持Windows、Mac、Linux操作系统,可从Thonny官方网站https://thonny.org下载最新版Thonny IDE,如图2所示。这里下载Windows版Thonny并安装到PC机。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图2
5、使用Thonny IDE设置Pico W开发板MicroPython编程环境
运行Thonny,单击菜单栏的[Tools],选择[Options…],弹出[Thonny Options]对话框,选择【Which interpreter or device should Thonny use for running your code?】下拉列表中的[MicroPython(Raspberry Pi Pico)]选项,如图3所示。如果没有发现[MicroPython(Raspberry Pi Pico)]选项,那么请检查PC机是否连接了Pico W开发板。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图3
选择【Port】下拉列表,本人笔记本电脑连接Pico W开发板设备后,其设备名称是[USB串行设备(COM24)],如图4所示。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图4
6、使用Thonny Shell输入MicroPython命令点亮Pico W开发板板载LED
与树莓派Pico开发板板载LED通过470Ω贴片电阻直接连接到RP2040 MCU芯片的GPIO25(GP25)引脚不同,树莓派Pico W开发板板载LED没有连接到RP2040 MCU芯片引脚,而是连到无线芯片的GPIO引脚。树莓派Pico W开发板MicroPython固件针对GPIO引脚的变化、新增WiFi无线连接等功能做了修改。
运行Thonny,在Thonny IDE开发环境MicroPython Shell命令行下,控制树莓派Pico W板载LED的亮/灭基本语句如下:

>>> import machine
>>> onboard_led = machine.Pin("LED", machine.Pin.OUT)
>>> onboard_led.value(1)    # Pico W板载LED点亮
>>> onboard_led.value(0)    # Pico W板载LED熄灭
>>> onboard_led.on()     # Pico W板载LED点亮
>>> onboard_led.off()     # Pico W板载LED熄灭

若查看Pico W板载LED对象onboard_led,可直接输入onboard_led:

>>> onboard_led

此时,Thonny Shell显示:
Pin(WL_GPIO0, mode=OUT)
以上MicroPython命令操作界面执行情况如图5所示。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图5
我们也可以执行如下命令:

>>> onboard_led = machine.Pin("LED", machine.Pin.OUT, value=1)

该命令将配置Pico W板载lED对象onboard_led,并将该对象与Pico W板载LED关联并点亮板载LED。
7、控制Pico W开发板板载LED闪烁MicroPython程序示例
Pico W板载LED闪烁程序清单如下:

# Filename: pico_w_onboard_led.py
import time
def onboard_led_blink():
    led = machine.Pin('LED', machine.Pin.OUT)
    led.on()
    time.sleep(.5)
    led.off()
    time.sleep(.5)
while True:
onboard_led_blink()

在Thonny IDE编辑窗口录入以上程序,顺序点击[File]→[Save as…]→[Raspberry Pi Pico]将程序以文件名“pico_w_onboard_led.py”存储到Pico W开发板,如图6所示。点击Thonny中的播放按钮运行程序,此时可看到Pico W板载LED间断闪亮。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图6
8、Pico W开发板用作WiFi无线HTTP网络服务器MicroPython编程示例
这里将Pico W开发板用作WiFi无线HTTP网络服务器,我们在任意一台电脑或手机的浏览器输入Pico W开发板的IP地址打开index.html网页。当点击网页中的[1]/[0]按钮时即可WiFi无线控制Pico W开发板板载LED的亮/灭。
下面分别编写main.py程序文件、index.html网页文件。
(1)main.py程序文件清单

# Filename: main.py
# Raspberry Pi Pico W
# 导入Pico W MicroPython模块
import rp2 # 导入rp2模块,该模块包含专门用于RP2040的函数和类
import network  # 导入network模块,用于连接WiFi
import ubinascii # 导入ubinascii模块,用于将MAC地址转换为十六进制字符串
import machine # 导入machine模块,用于GPIO控制
import urequests as requests # 导入urequests模块,用于HTTP请求
import time # 导入time模块,用于延时
import socket # # 导入socket模块,用于建立套接字
# 设置国家/地区代码以避免发生可能的错误
# CN/US/DE/DK/GB/JP(国家或地区代码:中国/美国/德国/丹麦/英国/日本)
rp2.country('CN') # 这里设置Pico W的国家/地区代码为中国
wlan = network.WLAN(network.STA_IF) # 创建WLAN连接对象
wlan.active(True) # 激活WLAN接口

# 查看Pico W开发板无线WiFi的MAC地址
# 获取MAC地址,并将其转换为十六进制字符串
mac = ubinascii.hexlify(network.WLAN().config('mac'),':').decode()
print('Pico W MAC地址=' + mac)   # 显示Pico W开发板十六进制MAC地址

ssid = '所使用的WiFi名称'    # 设置WiFi名称 (ssid: service set identifier)
psw = '所使用的WiFi密码'  # 设置WiFi密码

wlan.connect(ssid, psw)  # 连接到WiFi网络

timeout = 10   # 设置最长等待连接时间为10秒
while timeout > 0:
    if wlan.status() < 0 or wlan.status() >= 3: # 如果WiFi连接成功或者失败
        break # 跳出循环
    timeout -= 1
    print('等待连接!')
    time.sleep(1) # 延时1秒

# 定义Pico W板载LED闪亮函数
def onboard_led_blink(blink_numbers):
    onboard_led = machine.Pin('LED', machine.Pin.OUT) # 创建GPIO控制对象
    for i in range(blink_numbers):
        onboard_led.value(1)  # 点亮LED
        # onboard_led.on()  # 另一种点亮LED的方法
        time.sleep(0.5)  
        onboard_led.value(0) # 熄灭LED
        # onboard_led.off() # 另一种熄灭LED的方法
        time.sleep(0.5)

wlan_status = wlan.status() # 获取当前WiFi连接状态
onboard_led_blink(wlan_status) # 根据WiFi连接状态控制LED

# 处理连接错误
if wlan_status != 3: # 如果WiFi连接失败
    raise RuntimeError('WiFi连接失败!') # 抛出异常
else:
    print('WiFi已连接...')
    status = wlan.ifconfig() # 获取WiFi接口配置信息
    print('IP地址=' + status[0]) # 输出IP地址

# 定义加载HTML页面函数  
def get_html(html_name):
    with open(html_name, 'r') as file: # 打开HTML文件
        html = file.read() # 读取HTML内容
    return html

# 打开HTTP Web服务器套接字socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1] # 获取IP地址和端口号
s = socket.socket() # 创建socket对象
s.bind(addr) # 绑定socket到IP地址和端口号
# 开始监听端口号,最多只允许1个客户端连接
s.listen(1)

print('正在监听', addr)

onboard_led = machine.Pin('LED', machine.Pin.OUT)

# 进入循环,监听连接
while True:
    try:
        # 接受客户端连接,获取连接和地址
        cl, addr = s.accept()
        print('客户机连接来自', addr)
        # 接收客户端请求消息
        r = cl.recv(1024)
        r = str(r)
        # 在请求消息中查找是否有开/关LED的命令
        onboard_led_on = r.find('?onboard_led=1')
        onboard_led_off = r.find('?onboard_led=0')
        print('LED=', onboard_led_on)
        print('LED=', onboard_led_off)
        # 若找到'?onboard_led=1',则开LED
        if onboard_led_on > -1:
            print('开LED')
            onboard_led.value(1)
        # 若找到'?onboard_led=0',则关LED
        if onboard_led_off > -1:
            print('关LED')
            onboard_led.value(0)
        # 获取HTML文件内容
        response = get_html('index.html')
        # 发送HTTP响应头
        cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
        # 发送HTML文件内容
        cl.send(response)
        # 关闭客户端套接字
        cl.close()
    # 若发生OSError错误,则关闭客户端套接字并输出相关信息
    except OSError as e:
        cl.close()
        print('关闭连接')

在main.py程序中,ssid = '所使用的WiFi名称’要用具体的WiFi名称替换,psw = '所使用的WiFi密码’要用相应的密码替换。由于本程序代码已给出了详细注释,这里不再作进一步解释。
(2)index.html网页文件清单

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>树莓派Pico W开发板</title>
    </head>
    <body>
        <h3>树莓派Pico W</h3>
        <p>控制板载LED亮灭</p>
        <a href=\"?onboard_led=1\"><button>1</button></a>&nbsp;
        <a href=\"?onboard_led=0\"><button>0</button></a>
    </body>
</html>

复制粘贴上面的main.py程序和index.html文件内容,并用相同的文件名分别存到Pico W开发板,如图7所示。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图7
运行Pico W开发板中的main.py程序后,在Thonny Shell窗口显示情况如图8所示。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图8
从图8可知,这里的Pico W开发板用作WiFi无线HTTP网络服务器的IP地址为192.168.1.12。现用一台笔记本电脑打开浏览器,在浏览器地址栏输入IP地址192.168.1.12,将显示index.html网页。在网页中,当点击[1]按钮(标红色框的按钮)时(图9所示),Pico W开发板板载LED被点亮(图10)。点击[0]按钮时,Pico W开发板板载LED熄灭。
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图9
树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
图10
打开手机浏览器,在地址栏输入IP地址192.168.1.12,同样可以实现WiFi无线控制Pico W板载LED的亮灭。
若Pico W开发板无法正常连接WiFi,可按下面几条进行处理:
(1)查看使用的SSID和密码是否正确;
(2)如果使用学校或工作场所的WLAN,未经授权的设备可能无法访问WiFi;
(3)如果Pico W开发板WiFi连接一次不成功,可尝试再次连接WiFi。
最后,我们还可以拔下Pico W开发板USB-Micro USB电缆线连接到电脑端的USB插头,断开Pico W开发板与电脑之间的连接。将Pico W开发板USB-Micro USB电缆线接电脑端的USB插头转接到一个5V USB直流电源(如使用Samsung 5V手机USB充电器电源)。此时,Pico W开发板将作为HTTP网络服务器独立运行。文章来源地址https://www.toymoban.com/news/detail-411391.html

到了这里,关于树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 树莓派摄像头使用方法

       打开之后,重启树莓派:sudo reboot  输入以下指令,可以使用树莓派摄像头的拍照功能:  树莓派拍摄照片保存到指定文件夹,下面的例子将照片保存在了/home/pi/httpHeadler/ 也可以通过system函数调用拍照命令。

    2024年02月14日
    浏览(46)
  • 潮wifi怎么使用 潮wifi使用方法教程图解

    潮wifi是商家为顾客提供WiFi上网环境,弹出商家促销页面,采集分析营销数据,调整营销重点;顾客享用免费WiFi上网,知晓商家优惠信息;平台提供网络软件服务,不断新增设计各行业页面模板,增强系统功能。免费WiFi联盟智能营销系统,助您在营销数据收集、分析、测试、

    2024年02月06日
    浏览(42)
  • 百度小度WiFi怎么用?小度WiFi的安装使用方法

    很多的百度用户通过各种活动已经拥有了小度WiFi,它的主要功能是在有线网络的基础上,创建WiFi热点,达到网络共享目的。关于这款硬件的安装与使用存在很多的技巧,在具备网络共享的同时,还可以隔空传物、影音共享。 1、取出你的小度WiFi,插入电脑的USB插口,电脑会

    2024年02月07日
    浏览(46)
  • 如何使用Mac终端给树莓派pico构建C/C++程序进行开发,以及遇到各种问题该怎么处理,不使用任何IDE或编辑器(例如VS Code)

    写本文的原因是官方的教程已经过时了,如果你现在按照官方教程来在 Mac 上进行配置,那么会遇到一堆问题,比如我几乎把能踩的“雷”都踩了。所以这里记录了完整过程,以及各种错误的原因和处理方法,不然以后换 Mac 了或者在其他平台遇到同样的问题,忘记怎么处理的

    2024年02月13日
    浏览(65)
  • 树莓派PICO入门:电脑连接简易树莓派PICO单片机,烧录,使用python进行简单代码操作。

    需求:pico树莓派一个,python,thonny工具 需求: 1,pico树莓派一个;     2,thonny工具:   通过数据线连接电脑后,桌面会弹出一个文件夹,点击弹出的网络链接到指定网站下载烧录文件,下载完毕后,将烧录文件拖入该文件夹中开始烧录:(注意下载的是mircropython,不要下载

    2024年02月10日
    浏览(51)
  • 【39元linux开发板-ADB远程教程】-[ADB远程终端]-幸狐Luckfox Pico-超越树莓派PICO

    【教程-持续更新】 幸狐Luckfox Pico RV1103 教程合集 【39元linux开发板-ADB远程教程】-[ADB远程终端]-幸狐Luckfox Pico-超越树莓派PIC

    2024年02月10日
    浏览(45)
  • 无线路由器的使用方法以及无线路由器基本设置图解

    无线路由器怎么使用?目前不少朋友都在问这个问题。无线网络在我们身边运用越来越广泛,随着智能3G手机、平板电脑、笔记本电脑等便携设备的流行,加大了对无线网络的需求。而无线网络的实现我们都是以无线路由器来实现的。针对目前不少用户对无线网络了解比较少

    2024年02月05日
    浏览(53)
  • 手把手使用Micropython+合宙Esp32c3(驱动安装,为合宙Esp32c3安装Micropython固件库,代码上传到ESP32C3中)含Thonny和vscode两种方法

    CH343驱动下载 下载最新版本就好 驱动下载好后,以管理员身份运行,并点击“安装” 安装完成之后连接设备就可以在设备管理器中看到自己设备及端口 MicroPython 是一种精简版的 Python 语言实现,专门用于嵌入式系统和物联网设备。它提供了一个适用于微控制器的交互式解释

    2024年02月10日
    浏览(67)
  • usb无线网卡怎么用 usb无线网卡使用设置方法教程

    由于台式电脑与一些上网本内部并未安装有无线网卡,但不少这类用户就选用USB无线网卡来实现台式电脑以及部分未自带无线网卡的上网本。不少用户知道可以购买USB无线网卡来满足无线上网,但又很担忧不会设置,其实此类担心完全没必要,USB无线网卡怎么用,包你看完教

    2024年02月06日
    浏览(44)
  • 手机wlan怎么用 wlan无线上网使用方法

    wlan是一种无线网络技术,WLAN和GPRS都是中国移动提供的无线上网方式(电信也提供WLAN无线上网业务)。二者共同组成了中国移动“随e行”业务,为用户提供“网络随身、世界随心”的无线上网感受,只不过WLAN无线上网速度要远远高于GPRS上网速度,不少朋友办理移动相关业务

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包