ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

IoT-For-Beginners 硬件选购与开发指南:Arduino、Raspberry Pi 与 CounterFit 虚拟硬件

IoT-For-Beginners 硬件选购与开发指南:Arduino、Raspberry Pi 与 CounterFit 虚拟硬件 IoT-For-Beginners 硬件选购与开发指南Arduino、Raspberry Pi 与 CounterFit 虚拟硬件【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners本文是微软开源课程 IoT-For-Beginners 的硬件选型与配置指南围绕仓库根目录 hardware.md 展开系统讲解两条物理硬件路线Arduino Wio Terminal 与 Raspberry Pi的选购清单、平台差异、Grove 传感器生态以及无需购买任何硬件即可完课 CounterFit 虚拟硬件方案。读完本文你将能够根据自己的编程语言偏好、学习目标和预算独立完成硬件选型、套件采购核对与虚拟开发环境搭建。IoT 的 T一切项目都建立在真实硬件之上IoT 中的T 代表 Things指与真实世界交互的设备。在 IoT-For-Beginners 课程中每个项目都以学生和爱好者可以获得的物理硬件为基础。课程提供了两种 IoT 硬件选择取决于个人偏好、编程语言知识或偏好、学习目标以及硬件可获得性同时课程还提供了虚拟硬件virtual hardware版本供没有硬件条件、或希望在购买前先深入学习的人群使用。 你不需要购买任何 IoT 硬件也能完成全部作业使用虚拟 IoT 硬件即可完成所有内容。需要注意的是课程的物理硬件选项只有Arduino和Raspberry Pi两种。每种平台各有优缺点这些内容在第一项目的第二课中有系统讲解。如果你还没有决定硬件平台可以阅读 2-deeper-dive 第二课 来帮助你确定更感兴趣的学习平台——该课从 CPU、内存、I/O、体积、框架与操作系统等维度深入剖析了微控制器microcontroller与单板计算机single-board computer的差异。课程之所以选定这些具体硬件是为了降低课程和作业的复杂度。虽然其他硬件也可能工作但课程无法保证所有作业都能在你的设备上运行而无需额外硬件。一个典型的例子是很多 Arduino 设备没有 WiFi而连接云服务恰恰需要网络能力——Wio Terminal 正是因为内置 WiFi而被选中。此外除了电子硬件你还需要准备一些非技术性物品例如土壤或盆栽植物、水果或蔬菜用于种植与视觉识别类实验。快速采购Seeed 官方套件为了方便学习者Seeed Studios 已将课程所需的全部硬件打包成可直接购买的套件分为两条产品线Arduino - Wio Terminal 入门套件产品IoT for beginners with Seeed and Microsoft - Wio Terminal Starter Kit包含 Wio Terminal 开发板及配套传感器/执行器覆盖全部 Arduino 路线的作业需求。Raspberry Pi 入门套件产品IoT for beginners with Seeed and Microsoft - Raspberry Pi 4 Starter Kit包含 Raspberry Pi 4 及配套传感器/执行器覆盖全部 Raspberry Pi 路线的作业需求。Arduino 路线Wio TerminalCArduino 路线的全部设备代码使用 C 编写。要完成所有作业需要以下硬件Wio Terminal 主体Wio Terminal课程选定的 Arduino 兼容开发板核心优势是内置 WiFi满足连接云端的需要。可选USB-C 线或 USB-A 转 USB-C 适配器。Wio Terminal 配备 USB-C 端口随附一根 USB-C 转 USB-A 线如果你的 PC 或 Mac 只有 USB-C 端口则需要额外的 USB-C 线或转换适配器。从仓库源码可以印证 Wio Terminal 的实际开发形态在第一课的 wio-terminal 示例工程 中工程采用 PlatformIO 组织入口为src/main.cpp工程文件 与 platformio.ini 配置。而 2-deeper-dive 第二课 给出了该板的规格参数CPU 主频 120MHz、192KB RAM、4MB 程序存储——与 PC 动辄数 GB 的内存相比相差 4 万倍以上这正是微控制器编程要精打细算的原因。Arduino 程序采用经典的setup/loop结构setup在启动时执行一次用于初始化 WiFi、云连接和引脚loop则循环执行用于周期性读取传感器并上报数据。Arduino 专属传感器与执行器以下配件仅用于 Wio TerminalArduino 路线与 Raspberry Pi 路线无关ArduCam Mini 2MP Plus - OV2640SPI 接口的 200 万像素摄像头模块用于图像采集类实验如水果成熟度检测。ReSpeaker 2-Mics Pi HAT双麦克风语音扩展板用于语音识别类实验。面包板跳线Breadboard Jumper Wires用于搭建临时电路。耳机或其他带 3.5mm 插孔的扬声器或 JST 接口扬声器例如Mono Enclosed Speaker - 2W 6 Ohm。16GB 或更小的 microSD 卡及读卡适配器如果你的电脑没有内置读卡器。注意Wio Terminal只支持 16GB 及以下容量的 SD 卡不支持更高容量。Raspberry Pi 路线PythonRaspberry Pi 路线的全部设备代码使用 Python 编写。要完成所有作业需要以下硬件Raspberry Pi 主体Raspberry Pi推荐 Raspberry Pi 4 Model B版本要求Pi 2B 及以上的版本应可运行本课程全部作业若打算直接在 Pi 上运行 VS Code需要Pi 4 且 2GB 及以上内存若采用远程访问 Pi的方式任何 Pi 2B 及以上版本均可。microSD 卡部分 Raspberry Pi 套件自带 microSD 卡及读卡适配器。USB 电源部分 Pi 4 套件自带电源Raspberry Pi 4 需要USB-C 电源更早的型号需要micro-USB 电源。从 2-deeper-dive 第二课 可以看到 Raspberry Pi 4B 的规格四核 1.5GHz CPU、2/4/8GB RAM、千兆以太网、WiFi、双 4K HDMI、40 个 GPIO 引脚、摄像头接口与 SD 卡槽。与微控制器不同Pi 运行完整的 Debian 系 LinuxRaspberry Pi OS因此几乎所有为 Debian/ARM 构建的应用都能直接安装运行这也是 Python 及其庞大的硬件库生态能在 Pi 上丰富多样的原因。Raspberry Pi 专属传感器与执行器以下配件仅用于 Raspberry Pi与 Arduino 设备无关Grove Pi base hat将 Grove 标准化接口桥接到 Pi 的 40 针 GPIO 的扩展板。Raspberry Pi Camera module树莓派官方摄像头模块用于图像类实验。麦克风与扬声器四选一或等效替代任意USB 麦克风 任意 USB 扬声器、或带 3.5mm 插孔线的扬声器、或 Pi 连接带扬声器显示器/TV 时的HDMI 音频输出任意带内置麦克风的USB 耳机ReSpeaker 2-Mics Pi HAT 耳机/带 3.5mm 插孔的扬声器/JST 扬声器如 Mono Enclosed Speaker - 2W 6 OhmUSB SpeakerphoneUSB 会议电话。Grove Light sensor光敏传感器。Grove button按键。两条路线共用的 Grove 传感器与执行器课程所需的大多数传感器与执行器在 Arduino 与 Raspberry Pi 两条学习路径中通用且全部基于Grove 标准化连接器通过 Wio Terminal 的 Grove 接口或 Raspberry Pi 的 Grove base hat 接入传感器/执行器用途Grove LED ×2输出/指示类实验如夜灯Grove 温湿度传感器DHT11环境温湿度采集Grove 电容式土壤湿度传感器土壤湿度采集耐腐蚀用于农场项目Grove 继电器Relay控制水泵等高功率外设开关Grove GPS (Air530)定位数据采集用于运输项目Grove 飞行时间距离传感器VL53L0X非接触式距离测量这套清单直接映射了课程六大项目的实验需求从 1-getting-started 入门课 的夜灯LED 光敏/按键到 2-farm 农场项目 的土壤湿度与自动浇灌土壤湿度传感器 继电器 水泵再到 3-transport 运输项目 的 GPS 定位Air530以及 6-consumer 消费者项目 的语音交互麦克风 ReSpeaker 扬声器。可选硬件自动浇灌水泵组件农场项目中关于自动浇灌的课程通过继电器工作。作为一种可选扩展你可以把继电器接到一台由 USB 供电的水泵上需要以下硬件6V 迷你水泵USB 接线端子用于把 USB 电源转接给水泵硅胶软管红黑导线一把小平口螺丝刀。该组件的接线细节可参考 2-farm/3-automated-plant-watering 课程中的继电器控制代码与接线说明。虚拟硬件CounterFit零硬件完课方案虚拟硬件路线为传感器与执行器提供基于Python实现的模拟器。根据你的硬件条件你可以在普通开发设备Mac、PC上完全虚拟运行全部课程在 Raspberry Pi 上运行虚拟设备代码只模拟你缺少的那部分硬件——例如你拥有 Pi 摄像头但没有 Grove 传感器就可以在 Pi 上运行虚拟设备代码模拟 Grove 传感器同时使用物理摄像头完成图像实验。虚拟硬件基于CounterFit 项目实现。仓库中 1-getting-started/lessons/1-introduction-to-iot/virtual-device.md 详细记录了完整的搭建流程核心要点如下。基础软件准备安装Python最新稳定版安装Visual Studio Code课程操作说明均基于 VS Code也可以使用任何你习惯的 Python IDE安装 VS Code 的Pylance 扩展提供 Python 语言支持。此外完成虚拟硬件课程还需要一个摄像头webcam、麦克风以及音频输出扬声器或耳机。它们可以是内置或外接设备但必须配置好使其在操作系统中可用并能被所有应用程序调用。创建 Python 虚拟环境并安装 CounterFit 包为了避免不同项目间的依赖版本冲突课程使用 Python 虚拟环境 隔离依赖。在终端中依次执行mkdir nightlight cd nightlight python3 -m venv .venv 显式调用python3是为了防止系统同时装有 Python 2 时误用旧版本虚拟环境要求 Python 3.6 及以上。激活虚拟环境Windows 使用.venv\Scripts\activate.batPowerShell 使用.\.venv\Scripts\Activate.ps1macOS/Linux 使用source ./.venv/bin/activate后安装三个 CounterFit 相关的 Pip 包pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove其中counterfit-shims-grove提供Grove 硬件的 shim适配层让你可以用与编写物理 Grove 传感器/执行器完全相同的方式编写代码只是底层连接的是虚拟 IoT 设备。运行 CounterFit 并连接虚拟硬件首先在终端启动 CounterFit 应用counterfit应用会启动并在浏览器中打开初始状态为Disconnected右上角 LED 熄灭。然后编写代码连接到它——仓库中现成的 app.py 示例 完整展示了这一连接过程from counterfit_connection import CounterFitConnection CounterFitConnection.init(127.0.0.1, 5000) print(Hello World!)代码从counterfit_connection模块导入CounterFitConnection类来自前面安装的counterfit-connection包然后初始化到运行在127.0.0.1本机回环地址即 localhost5000 端口的 CounterFit 应用。如果 5000 端口被其他程序占用可以修改代码中的端口号并用CounterFit --port 端口号方式启动 CounterFit。在新的终端中运行python app.pyCounterFit 的状态会变为ConnectedLED 点亮——这就是虚拟环境下的硬件已连接。结语与选型建议总结起来本课程的硬件策略可以归纳为三条路径Arduino Wio TerminalC适合希望学习 C/C、体验微控制器受限环境编程setup/loop 循环、低内存高能效的学习者配套官方 Starter Kit 一步到位Raspberry PiPython适合熟悉 Python、希望使用完整 Linux 系统与丰富软件生态的学习者Pi 2B 即可入门直接在 Pi 上开发则建议 Pi 4 2GB 起CounterFit 虚拟硬件零成本适合无硬件条件或想先试后买的学习者完全基于 Python 模拟传感器与执行器甚至可以在 Pi 上混合使用物理摄像头与虚拟 Grove 传感器。无论选择哪条路径课程 hardware.md 与 lesson-template 模板 都提供了可复现的实验环境基线。若你还在犹豫平台选择建议先完成 2-deeper-dive 第二课 及配套的对比作业再结合 1-getting-started 第一课 的实际动手环节做出最适合自己的决定。【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表