IoT-For-Beginners 硬件指南:Arduino(Wio Terminal)与 Raspberry Pi 双平台选型与虚拟硬件实战
2026/9/15 2:14:28 网站建设 项目流程

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 硬件完成。

课程在设计上提供了ArduinoRaspberry 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 应用以setuploop两个函数为核心骨架,这一点在 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.pnggrove-capacitive-soil-moisture-sensor.pnggrove-gps-sensor.png等),可用于核对设备外观与接线方式。


可选硬件:USB 水泵实现自动灌溉

2-farm/lessons/3-automated-plant-watering 的自动浇水课程通过继电器控制水泵。作为一个可选扩展,可以将继电器连接到由 USB 供电的水泵上,所需硬件如下:

  • 6V 迷你水泵;
  • USB 供电端子(USB terminal);
  • 硅胶软管;
  • 红黑导线;
  • 小型一字螺丝刀。

该扩展硬件用于构建"湿度传感器读取 → 控制器判断 → 继电器开关 → 水泵灌溉"的完整自动浇水闭环,仓库中的 chart-soil-moisture-relay.png 等图片展示了相关运行结果。


虚拟硬件路线:用 CounterFit 模拟全部传感器与执行器

对于没有实体硬件、或希望在购买前先体验的学习者,课程提供了虚拟硬件路线:为传感器与执行器提供基于 Python 实现的模拟器,核心依赖CounterFit 项目

灵活的运行方式

根据你的硬件拥有情况,虚拟路线支持三种模式:

  1. 在普通开发机(Mac / PC)上运行,模拟全部传感器与执行器;
  2. 在 Raspberry Pi 上运行,仅模拟你没有的那部分硬件——例如你拥有 Pi 摄像头但没有 Grove 传感器,就可以在 Pi 上运行虚拟设备代码来模拟 Grove 传感器,同时使用实体摄像头;
  3. 完全无硬件,仅靠开发机完成全部作业。

完成这些课程至少需要:网络摄像头、麦克风、音频输出(音箱或耳机),内置或外接均可,且需配置好与操作系统的兼容性、可供所有应用调用。

环境搭建与源码原理

虚拟硬件路线的完整搭建过程记录在 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 --version

3. 安装 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选为LightUnits保持 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_2grove.grove_light_sensor_v1_2),核心读写逻辑完全一致——这正是 CounterFit shim 层的设计目标:让学习者从虚拟硬件迁移到实体硬件(或反向)时几乎无需改动业务代码。


选型决策与平台对比

综合以上信息,三条路线的选型决策可归纳为:

维度Arduino(Wio Terminal)Raspberry Pi虚拟硬件(CounterFit)
编程语言C++PythonPython
成本低,微控制器级别较高(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 双麦克风语音识别、语音反馈与多语言支持。

每个项目目录下都同时提供piwio-terminalvirtual-device三种实现,保证任意硬件路线(包括零硬件)的学习者都能完整走完课程。


总结

选择哪条硬件路线,本质是在嵌入式 C++ 的 Wio TerminalPython 生态的 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询