IoT-For-Beginners 硬件指南:Arduino(Wio Terminal)与 Raspberry Pi 双平台选型与虚拟硬件实战
【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners
导读
本指南基于 IoT-For-Beginners 课程仓库中的 hardware.md 硬件说明文档,系统梳理该 12 周、24 课 IoT 入门课程所依赖的硬件方案:以 Seeed Wio Terminal 为代表的Arduino 微控制器路线、以 Raspberry Pi 为代表的单板计算机路线,以及无需购买任何硬件即可完成全部作业的CounterFit 虚拟硬件路线。读完本文,你将掌握三条路线的设备清单、采购方式、传感器/执行器配置,以及虚拟硬件环境的搭建与源码级运行原理,从而为后续课程做出最合适的硬件选型决策。
课程硬件设计哲学:T 即 Things
IoT 中的T代表Things(物),即与周围世界交互的物理设备。本课程的每一个项目都基于真实可获得的硬件构建,但同时提供"虚拟硬件"版本——你不需要购买任何 IoT 硬件即可完成全部作业,所有内容都可以通过虚拟 IoT 硬件完成。
课程在设计上提供了Arduino与Raspberry Pi两种物理硬件选择,具体选哪条路线取决于个人偏好、编程语言熟悉程度、学习目标以及硬件可获得性。两大平台的差异(各自的优势与劣势)在 1-getting-started/lessons/2-deeper-dive/README.md(第一项目的第二课)中有深入讲解,尚未决定平台的学习者可以先阅读该课再行决策。
课程所选的硬件经过精心挑选,以降低课程与作业的复杂度:
- 虽然其他硬件可能也能工作,但无法保证全部作业都能在未附加硬件的情况下得到支持;
- 例如,大量 Arduino 设备没有 WiFi,而 WiFi 是连接云端(Azure IoT Hub 等)所必需的——这正是课程选择Wio Terminal的原因,因为它内置 WiFi。
此外,完成课程还需要少量非技术性物品,例如土壤或盆栽植物、水果或蔬菜(用于农业项目的植物生长预测、果实检测等实验)。
购买套件:Seeed Studios 官方套装
Seeed Studios 将课程所需的全部硬件打包为易于购买的一站式套件:
Arduino 路线 —— Wio Terminal 套装
IoT for beginners with Seeed and Microsoft - Wio Terminal Starter Kit(外部链接,详见英文原版 hardware.md)
Raspberry Pi 路线 —— Raspberry Pi 4 套装
IoT for beginners with Seeed and Microsoft - Raspberry Pi 4 Starter Kit(外部链接,详见英文原版 hardware.md)
说明:本仓库为纯文档/代码仓库,原文中的套件购买链接指向 Seeed 官网,文中不展开具体购买页内容;两套套件的完整设备构成见下文两个路线的硬件清单。
Arduino 路线:Wio Terminal(C++ 编程)
Arduino 路线的全部设备代码使用C++编写。在仓库中可以找到对应证据:Wio Terminal 的代码均位于各课的wio-terminal目录下,例如 1-getting-started/lessons/3-sensors-and-actuators/code-sensor/wio-terminal/nightlight/src/main.cpp,并配套 platformio.ini 工程配置文件。Arduino 应用以setup和loop两个函数为核心骨架,这一点在 1-getting-started/lessons/2-deeper-dive/README.md 中有详细展开。
Arduino 基础硬件
完成全部 Arduino 作业需要:
- Wio Terminal——课程选定的 Arduino 兼容开发板,内置 WiFi(这是连接云端的关键能力);
- (可选)USB-C 线缆或 USB-A 转 USB-C 适配器:Wio Terminal 配备 USB-C 端口,出厂附带一根 USB-C 转 USB-A 线。如果你的 PC 或 Mac 只有 USB-C 端口,则需要额外的 USB-C 线或转接适配器。
Arduino 专属传感器与执行器
以下外设仅适用于 Wio Terminal,与 Raspberry Pi 路线无关:
| 设备 | 用途(结合课程) |
|---|---|
| ArduCam Mini 2MP Plus (OV2640) | SPI 摄像头,用于制造业项目的果实/库存图像采集(参见 4-manufacturing/lessons/2-check-fruit-from-device 相关课程代码) |
| ReSpeaker 2-Mics Pi HAT | 双麦克风语音输入,用于消费者项目的语音识别(参见 6-consumer/lessons/1-speech-recognition) |
| 面包板跳线(Breadboard Jumper Wires) | 电路连接 |
| 3.5mm 接口耳机/音箱,或 JST 音箱(如 Mono Enclosed Speaker - 2W 6 Ohm) | 语音输出 |
| microSD 卡(16GB 及以下)+ SD 读卡器 | 存储图像/数据;注意:Wio Terminal 仅支持最高 16GB 的 SD 卡,不支持更高容量 |
Raspberry Pi 路线(Python 编程)
Raspberry Pi 路线的全部设备代码使用Python编写。仓库证据见各课的pi目录,例如 1-getting-started/lessons/3-sensors-and-actuators/code-sensor/pi/nightlight/app.py,该文件通过from grove.grove_light_sensor_v1_2 import GroveLightSensor直接操作 Grove 生态的光传感器。
Raspberry Pi 基础硬件
完成全部作业需要:
- Raspberry Pi(型号参考 Raspberry Pi 4 Model B)
💁兼容性说明:Pi 2B 及以上版本应可运行本课程全部作业。若计划直接在 Pi 上运行 VS Code 进行开发,则需要Pi 4 且内存 2GB 及以上;若采用远程访问方式连接 Pi,则任何 Pi 2B 及以上均可。
- microSD 卡(部分 Raspberry Pi 套件自带),配合 SD 读卡器(若电脑无内置卡槽);
- USB 电源适配器:Raspberry Pi 4 需要USB-C电源,更早的型号需要micro-USB电源。
Raspberry Pi 专属传感器与执行器
以下外设仅适用于 Raspberry Pi,与 Arduino 路线无关:
- Grove Pi base hat——通过 40 针 GPIO 扩展 Grove 生态传感器接口的扩展板;
- Raspberry Pi Camera Module——摄像头,用于果实检测、库存检测等视觉类项目(参见 4-manufacturing 与 5-retail 的课程);
- 麦克风与音箱(以下任一方案或其等价替代):
- 任意 USB 麦克风 + 任意 USB 音箱,或带 3.5mm 接口线的音箱,或在连接了带音箱显示器/电视时使用 HDMI 音频输出;
- 任意带内置麦克风的 USB 耳机;
- ReSpeaker 2-Mics Pi HAT + 3.5mm 耳机/音箱或 JST 音箱;
- USB 会议音箱(Speakerphone);
- Grove 光传感器(phototransistor 光电晶体管);
- Grove 按钮。
通用传感器与执行器:两条路线共用
以下传感器与执行器在 Arduino 和 Raspberry Pi 两条学习路线中都会被用到,是本课程硬件清单的核心:
| 设备 | 课程场景(结合仓库课程目录) |
|---|---|
| Grove LED × 2 | 夜灯项目输出(1-getting-started/lessons/3-sensors-and-actuators) |
| Grove 温湿度传感器(DHT11) | 植物生长温度监控(2-farm/lessons/1-predict-plant-growth) |
| Grove 电容式土壤湿度传感器(防腐型) | 土壤湿度检测与自动浇水(2-farm/lessons/2-detect-soil-moisture) |
| Grove Relay 继电器 | 控制水泵实现自动灌溉(2-farm/lessons/3-automated-plant-watering) |
| Grove GPS(Air530) | 位置追踪项目(3-transport/lessons/1-location-tracking) |
| Grove Time of Flight 测距传感器(VL53L0X) | 距离检测(3-transport 与 4-manufacturing 相关作业) |
仓库图片目录 images/ 中提供了上述传感器的实物图(如grove-relay.png、grove-capacitive-soil-moisture-sensor.png、grove-gps-sensor.png等),可用于核对设备外观与接线方式。
可选硬件:USB 水泵实现自动灌溉
2-farm/lessons/3-automated-plant-watering 的自动浇水课程通过继电器控制水泵。作为一个可选扩展,可以将继电器连接到由 USB 供电的水泵上,所需硬件如下:
- 6V 迷你水泵;
- USB 供电端子(USB terminal);
- 硅胶软管;
- 红黑导线;
- 小型一字螺丝刀。
该扩展硬件用于构建"湿度传感器读取 → 控制器判断 → 继电器开关 → 水泵灌溉"的完整自动浇水闭环,仓库中的 chart-soil-moisture-relay.png 等图片展示了相关运行结果。
虚拟硬件路线:用 CounterFit 模拟全部传感器与执行器
对于没有实体硬件、或希望在购买前先体验的学习者,课程提供了虚拟硬件路线:为传感器与执行器提供基于 Python 实现的模拟器,核心依赖CounterFit 项目。
灵活的运行方式
根据你的硬件拥有情况,虚拟路线支持三种模式:
- 在普通开发机(Mac / PC)上运行,模拟全部传感器与执行器;
- 在 Raspberry Pi 上运行,仅模拟你没有的那部分硬件——例如你拥有 Pi 摄像头但没有 Grove 传感器,就可以在 Pi 上运行虚拟设备代码来模拟 Grove 传感器,同时使用实体摄像头;
- 完全无硬件,仅靠开发机完成全部作业。
完成这些课程至少需要:网络摄像头、麦克风、音频输出(音箱或耳机),内置或外接均可,且需配置好与操作系统的兼容性、可供所有应用调用。
环境搭建与源码原理
虚拟硬件路线的完整搭建过程记录在 1-getting-started/lessons/1-introduction-to-iot/virtual-device.md,核心步骤如下:
1. 安装基础软件:Python、VS Code、VS Code Pylance 扩展(Python 语言支持)。
2. 创建 Python 虚拟环境(隔离 Pip 包,避免版本冲突):
mkdir nightlight cd nightlight python3 -m venv .venv激活虚拟环境(macOS/Linux 为source ./.venv/bin/activate,Windows 的 Command Prompt 为.venv\Scripts\activate.bat,PowerShell 为.\ .venv\Scripts\Activate.ps1),并确认 Python 版本不低于 3.6:
python --version3. 安装 CounterFit 相关 Pip 包:
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove三个包的分工(与仓库代码对应):
CounterFit:主应用,以本地 Web 应用形式模拟传感器与执行器;counterfit-connection:提供CounterFitConnection类,负责在代码中建立与 CounterFit 应用的连接;counterfit-shims-grove:Grove 硬件的 shim 层,让你可以像编写实体 Grove 传感器代码一样编写虚拟硬件代码。
4. 连接"硬件":先运行counterfit启动模拟应用(默认监听127.0.0.1:5000,可通过CounterFit --port <端口号>修改端口),再在代码中初始化连接:
from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)运行后 CounterFit 界面会从Disconnected变为Connected,表示虚拟设备连接成功。对应的完整 Hello World 代码见 1-getting-started/lessons/1-introduction-to-iot/code/virtual-device/nightlight/app.py。
虚拟传感器实战:夜灯项目中的光传感器
以夜灯项目为例,1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md 演示了如何在 CounterFit 中创建虚拟光传感器(在Sensors面板的Create sensor框中,将Sensor type选为Light、Units保持 NoUnits、Pin设为 0),然后编写读取代码。完整可运行版本见 1-getting-started/lessons/3-sensors-and-actuators/code-sensor/virtual-device/nightlight/app.py:
import time from counterfit_connection import CounterFitConnection from counterfit_shims_grove.grove_light_sensor_v1_2 import GroveLightSensor CounterFitConnection.init('127.0.0.1', 5000) light_sensor = GroveLightSensor(0) while True: light = light_sensor.light print('Light level:', light) time.sleep(1)运行python3 app.py后,控制台会持续输出光强读数。在 CounterFit 界面中既可以在Value框输入固定数值并点击Set,也可以勾选Random并设定Min/Max让传感器每次读取返回随机值,从而模拟环境光照变化。
值得注意的移植性设计:对比实体 Pi 版本 code-sensor/pi/nightlight/app.py,两者仅导入语句不同(counterfit_shims_grove.grove_light_sensor_v1_2对grove.grove_light_sensor_v1_2),核心读写逻辑完全一致——这正是 CounterFit shim 层的设计目标:让学习者从虚拟硬件迁移到实体硬件(或反向)时几乎无需改动业务代码。
选型决策与平台对比
综合以上信息,三条路线的选型决策可归纳为:
| 维度 | Arduino(Wio Terminal) | Raspberry Pi | 虚拟硬件(CounterFit) |
|---|---|---|---|
| 编程语言 | C++ | Python | Python |
| 成本 | 低,微控制器级别 | 较高(Pi 4 需 2GB+ RAM 才能本机开发) | 仅需电脑现有外设(摄像头/麦克风/音频) |
| 硬件准备 | Wio Terminal + Grove 外设 | Pi 主板 + microSD + 电源 + Grove hat 与外设 | 零采购 |
| 适用人群 | 偏好嵌入式/C++、关注低功耗 | 偏好 Python、需要完整操作系统与视觉/语音能力 | 无硬件或先体验课程内容 |
更深入的平台对比(微控制器与单板计算机在 CPU 主频、内存量级、I/O、操作系统、框架生态等方面的差异)见 1-getting-started/lessons/2-deeper-dive/README.md 与配套作业 assignment.md。
硬件的课程使用全貌
本仓库 6 大项目板块(入门、农业、交通、制造业、零售、消费者)对硬件的依赖贯穿始终:
- 1-getting-started:夜灯项目,使用 LED、光传感器、按钮、继电器与温湿度传感器,是硬件入门的起点;
- 2-farm:植物生长预测(温湿度/DHT11)、土壤湿度检测(电容式湿度传感器)、自动浇水(继电器 + 可选 USB 水泵);
- 3-transport:GPS(Air530)位置追踪、位置数据存储与可视化、地理围栏;
- 4-manufacturing 与 5-retail:ArduCam / Pi Camera 的图像采集与边缘推理;
- 6-consumer:ReSpeaker 双麦克风语音识别、语音反馈与多语言支持。
每个项目目录下都同时提供pi、wio-terminal、virtual-device三种实现,保证任意硬件路线(包括零硬件)的学习者都能完整走完课程。
总结
选择哪条硬件路线,本质是在嵌入式 C++ 的 Wio Terminal、Python 生态的 Raspberry Pi与零成本的 CounterFit 虚拟硬件之间做权衡。无论选择哪条路线,hardware.md 给出的清单与本文结合源码补充的环境搭建、传感器接线、虚拟模拟器使用方式,都能确保你以最小的上手成本开启完整的 12 周 IoT 学习之旅。如果仍有犹豫,最稳妥的做法是:先用虚拟硬件跑通前几课,再根据兴趣决定是否采购 Wio Terminal 或 Raspberry Pi 套件。
【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考