好问题 👍,我帮你把 Raspberry Pi 在你作业里的作用讲透彻(和我刚才解释的 Arduino Nano 33 IoT 对应起来),这样你能更清晰理解整个 IoT 管道。
1. 什么是 Raspberry Pi
- Raspberry Pi 是一款低成本、信用卡大小的 单板计算机,可以跑 Linux 系统(通常是 Raspberry Pi OS)。
- 它有完整的 操作系统、USB 接口、网络接口、GPIO 针脚,所以既能像电脑一样运行程序,又能和传感器、硬件交互。
- 在 IoT 项目里,它通常扮演 “边缘网关(Edge Gateway)” 的角色:负责把 本地设备(Arduino、传感器)和云端(MQTT、AWS)连接起来。
2. 为什么在你的项目里选择 Raspberry Pi
在 Assessment 1 的设计中:
- Arduino Nano 33 IoT 功能有限(BLE 外设 + 传感器采集 + 控制 LED),不能直接跑 MQTT 客户端。
- Raspberry Pi 功能强大,可以运行 Python 脚本,连接到 AWS EC2 上的 Mosquitto (MQTT Broker)。
因此 Pi 在项目中的作用是:
作为 BLE Central(中心设备)
- 使用 Python
bleak
库连接到 Arduino(BLE Peripheral)。 - 从 Arduino 读取温湿度数据。
- 把云端命令写入 Arduino(控制 LED)。
- 使用 Python
作为 MQTT Client
- 使用 Python
paho-mqtt
库和 AWS EC2 上的 Mosquitto broker 通信。 - 把传感器数据上传到云端。
- 接收云端命令并转发给 Arduino。
- 使用 Python
👉 简单理解:
Arduino = IoT 节点(小传感器/小执行器)
Raspberry Pi = IoT 网关(本地大脑 + 云端桥梁)
3. 怎么方便理解
你可以把整个系统类比成一个 智能家居系统:
- Arduino = 温湿度探头/智能灯泡(硬件节点)。
- Raspberry Pi = 家里的智能音箱(本地控制中心)。
- AWS MQTT = 云端(阿里云/亚马逊云/小米云)。
流程:
- Arduino 测温度 → BLE 发给 Pi → Pi 上传到云端。
- 云端下发“开灯”命令 → Pi 收到 → BLE 发给 Arduino → Arduino 灯亮。
4. 现实生活中的应用
Raspberry Pi 在现实 IoT 应用里常用来做:
- 智能家居网关 → 连接 Zigbee 灯泡、蓝牙传感器,再上传到云端。
- 工业边缘计算 → 在工厂里采集传感器数据,本地预处理后上传。
- 教育实验 → 因为便宜好用,全球学生都用它来学 IoT/AI/嵌入式。
5. 作业1代码里和 Raspberry Pi 相关的部分
你需要在 Pi 上运行 两个 Python 脚本:
上行 (Upstream):bleread_mqttpub.py
- 用
bleak
连接 Arduino Nano 33 IoT - 读取
dhtCharacteristic
(温湿度数据) - 用
paho-mqtt
发布到 AWS MQTT broker
- 用
下行 (Downstream):mqttsub_blewrite.py
- 用
paho-mqtt
订阅主题ifn649/proj1/actuators/led
- 收到
"LED_ON"
/"LED_OFF"
命令 - 用
bleak
写入 Arduino 的ledCharacteristic
- Arduino 控制板载 LED
- 用
✅ 总结:
Raspberry Pi = IoT 网关,负责 BLE ↔ MQTT 的桥接。
- 它让 Arduino(BLE 节点)能“说云端听得懂的话(MQTT)”。
- 没有它,你的系统就不能实现从 传感器数据 → 云端 → 执行器控制 的完整闭环。