树莓派开发
本文介绍如何使用MicroPython开发树莓派Pico 2W物联网设备,连接SiliZap物联网平台,实现设备数据上报和远程控制。
一、树莓派介绍
1.1 树莓派概述
树莓派(Raspberry Pi)起源于2006年,由英国剑桥大学埃本·厄普顿(Eben Upton)等人创立,最初目的是解决英国计算机科学教育下滑的问题,为学生提供一款低成本、易于编程的计算机平台。Raspberry Pi基金会(注册慈善机构)于2009年正式成立,全力推动这一项目的发展。
树莓派是由英国Raspberry Pi基金会推出的低成本、高性能的微控制器开发板,专为物联网和嵌入式应用设计。Pico 2W搭载了RP2040芯片,内置Wi-Fi功能,使其成为连接互联网项目的理想选择。
自2012年首款树莓派发布以来,已售出超过4000万台设备,成为全球最畅销的计算机之一,广泛应用于教育、创客、物联网、工业自动化和家庭娱乐等领域。

1.2 RP2040芯片特性
RP2040是树莓派基金会自主研发的双核ARM Cortex-M0+微控制器,具有以下特点:
强大的处理能力:
- 双核ARM Cortex-M0+处理器,最高频率133 MHz
- 264 KB SRAM
- 支持最多16 MB外部Flash存储
- 硬件整数除法器和快速乘法器
丰富的外设接口:
- 26个可编程GPIO引脚
- 2个SPI控制器
- 2个I²C控制器
- 2个UART控制器
- 12位ADC,4个通道
- 可编程PIO(Programmable IO)单元,支持自定义数字接口
网络连接:
- 内置2.4GHz IEEE 802.11n Wi-Fi
- 支持WPA3加密(通过软件实现)
二、MicroPython环境搭建
2.1 开发环境简介
对于初学者来说,使用MicroPython开发树莓派Pico 2W是一种简单高效的方式。MicroPython是Python 3语言的精简实现,包含Python标准库的一小部分,并针对微控制器和受限环境进行了优化。
2.2 安装开发工具
推荐使用Thonny IDE作为MicroPython开发工具,Mac和Windows都可以使用:
- 访问Thonny官网下载并安装最新版本
- 打开Thonny,点击"运行" > "选择解释器"
- 选择"MicroPython (Raspberry Pi Pico)"
- 选择正确的串口端口
- 点击"确定"完成设置
三、MicroPython代码实现
可以使用树莓派Pico 2W开发板进行测试,外加四路继电器:
3.1 环境准备
- 已安装MicroPython固件的树莓派Pico 2W开发板
- Thonny IDE或其他MicroPython开发工具
- USB数据线
- 4路继电器模块(对应的引脚分别为15、16、17、18)
- sht31温湿度传感器模块(对应的引脚分别为26、27)
- 在SiliZap平台上已创建产品和设备,获取MQTT连接信息
- umqtt.simple库(MicroPython的轻量级MQTT客户端库)


3.2 代码实现
我们的项目使用两个主要文件:main.py(主程序)和mqtt_local.py(配置文件)。
# 克隆仓库
git clone https://gitee.com/SiliZap/SZ_RP2W_PYTHON_PUBLIC.git3.2.1 配置文件
首先创建配置文件mqtt_local.py,包含连接信息和引脚定义:
# mqtt_local.py Local configuration for Raspberry Pi Pico W MQTT client.
import time
import network
from machine import Pin
# ---------- 必须修改7个全局定义数据 ----------
# (产品ID、用户ID、MQTT服务器地址、MQTT用户名、MQTT密码、WIFI账号、WIFI密码)
PRODUCT_ID = 'XXX' # 1、产品ID(填入你的产品ID)
USER_ID = 'XXX' # 2、用户ID(填入你的用户ID)
MQTT_SERVER = 'XXX' # 3、MQTT服务器地址(填入你的MQTT服务器)
MQTT_USER = 'XXX' # 4、MQTT用户名(填入你的MQTT用户名)
MQTT_PASSWORD = 'XXX' # 5、MQTT密码(填入你的MQTT密码)
WIFI_SSID = 'XXX' # 6、WIFI账号(填入你的WIFI账号)
WIFI_PASSWORD = 'XXX' # 7、WIFI密码(填入你的WIFI密码)
# ---------- 定义4个引脚用于控制四个外设 ----------
LAMP_PIN = 18 # 台灯引脚
AC_PIN = 15 # 空调引脚
ALARM_PIN = 16 # 告警引脚
FAN_PIN = 17 # 风扇引脚
# MQTT配置
MQTT_PORT = 1883 # MQTT端口
KEEPALIVE = 60 # 心跳间隔(秒)
MAX_RECONNECTS = 5 # 最大重连次数
# 引脚初始化
lamp_pin = Pin(LAMP_PIN, Pin.OUT)
ac_pin = Pin(AC_PIN, Pin.OUT)
alarm_pin = Pin(ALARM_PIN, Pin.OUT)
fan_pin = Pin(FAN_PIN, Pin.OUT)
# 设置初始状态为关闭(低电平表示关闭,高电平表示打开)
lamp_pin.value(0)
ac_pin.value(0)
alarm_pin.value(0)
fan_pin.value(0)
def connect_wifi(ssid, password, timeout=30):
"""连接WiFi网络"""
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('正在连接WiFi...')
wlan.connect(ssid, password)
# 等待连接或超时
start_time = time.time()
while not wlan.isconnected() and (time.time() - start_time) < timeout:
time.sleep(1)
print('.', end='')
if wlan.isconnected():
print('\nWiFi连接成功!')
ip, subnet, gateway, dns = wlan.ifconfig()
print(f'IP地址: {ip}')
return True
else:
print('\nWiFi连接失败!')
return False
def get_mac_address():
"""获取设备MAC地址"""
wlan = network.WLAN(network.STA_IF)
mac = wlan.config('mac')
# 格式化MAC地址
mac_addr = ':'.join(['%02x' % b for b in mac])
return mac_addr3.2.2 主程序
创建main.py文件,实现MQTT通信和设备控制逻辑,直接从项目复制过去即可,main功能:
- WiFi自动连接与重连
- MQTT协议通信与SiliZap平台交互
- 设备状态自动获取与上报(每10秒)
- 远程控制命令接收与执行
- 一键控制指令序列执行
- 设备状态实时监控与ACK回复
- 自动获取设备MAC地址并生成Client ID
3.3 安装必要的库
这里以Windows为例,运行Thonny,依次点击[Tools]→[Manage Packages…]显示“Manage Package for Raspberry Pico”对话框,在编辑框输入“umqtt.simple”且点击[Search on PyPI] umqtt.simple库,如图所示。

选取[micropython-umqtt.simple],点击[Install]按钮安装micropython-umqtt.simple库,如图所示。 
micropython-umqtt.simple成功安装后,umqtt.simple库将存放于树莓派Pico W无线开发板的lib文件夹中。

3.4 运行程序
- 在Thonny中,创建并保存mqtt_local.py文件,修改以下配置:
- PRODUCT_ID:您的产品ID
- USER_ID:您的用户ID
- MQTT服务器地址
- MQTT用户名
- MQTT密码
- WiFi账号
- WiFi密码
- 创建并保存main.py文件
- 点击"运行"按钮将代码上传到树莓派Pico 2W无线开发板
- 观察Shell窗口中的输出,确认程序正常运行
- 程序会自动获取设备MAC地址,构建Client ID,连接WiFi和MQTT服务器
- 程序每10秒上报一次设备状态数据
- 支持接收远程控制命令和一键控制指令


四、项目运行效果


