ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

IoT 深入探秘:物联网应用架构、微控制器与单板计算机实战指南(基于 IoT-For-Beginners 第 2 课)

2026/9/15 14:48:16 拓冰建站 浏览量
IoT 深入探秘:物联网应用架构、微控制器与单板计算机实战指南(基于 IoT-For-Beginners 第 2 课) IoT 深入探秘物联网应用架构、微控制器与单板计算机实战指南基于 IoT-For-Beginners 第 2 课【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners本篇文章源自 IoT-For-Beginners 课程入门项目第 2 课《A deeper dive into IoT》即 translations/cs/1-getting-started/lessons/2-deeper-dive/README.md 对应的捷克语译本英文原版见 1-getting-started/lessons/2-deeper-dive/README.md并结合仓库内真实源码、配置与硬件指南进行纵深扩充。导读物联网IoT应用不止是联网的设备它由**设备Thing与互联网Internet**两大核心组件构成二者之间还需要考虑边缘计算、安全、云服务与数据处理等完整链路。本篇文章将围绕 IoT-For-Beginners 第 2 课的核心脉络深入剖析微控制器microcontroller与单板计算机single-board computer的 CPU、内存、GPIO 输入输出、物理尺寸、编程框架与操作系统并辅以仓库中的 Arduino sketch 源码、PlatformIO 配置与 Python 示例进行印证。学完本篇你将能准确理解 IoT 应用的整体架构、判断一个设备该用微控制器还是单板计算机、理解 Arduinosetup/loop运行模型并能据此结合 hardware.md 的硬件清单做出自己的选型决策。一、IoT 应用的两大核心组件设备Thing与互联网InternetIoT 应用由两个主要部分组成Internet互联网和Thing设备/物件。理解二者各自的职责与交互方式是理解后续所有课程的基础。1.1 设备The Thing与物理世界交互的实体IoT 中的Thing指的是能够与物理世界交互的设备。这类设备通常体积小、价格低、运行速度慢、功耗极低。例如简单的微控制器只有几 KB 的 RAM相比之下 PC 有数 GB主频只有几百 MHz相比之下 PC 有数 GHz但功耗低到可以靠电池运行数周、数月甚至数年。设备与物理世界的交互分为两种方式传感器sensors从周围环境收集数据输出 / 执行器actuators执行物理改变。典型的例子是智能恒温器smart thermostat它拥有温度传感器、一个设置目标温度的旋钮或触摸屏以及一个可开关的加热/制冷系统连接。当检测到室温超出目标范围时温度传感器发现房间太冷执行器就打开暖气。可以作为 IoT 设备的Thing种类极其丰富从只感知单一事物的专用硬件到通用设备甚至你的智能手机——手机既能用传感器如 GPS探测周围世界也能用执行器如扬声器与你交互例如通过 GPS 传感器获知你的位置再用扬声器播报导航指令。✅ 思考练习你身边还有哪些系统在读取传感器数据后做出决策文中给出的一个例子是烤箱上的温控器你还能找到更多吗1.2 互联网The Internet云服务与数据处理IoT 应用的Internet部分由两类应用组成IoT 设备可以连接以收发数据的应用处理设备数据、协助决定向设备执行器发送什么指令的其他应用。典型架构是IoT 设备连接到某个云服务云服务负责处理安全、接收来自设备的消息以及向设备回发消息云服务再连接到其他应用这些应用可以处理或存储传感器数据或将传感器数据与其他系统的数据结合以做出决策。值得注意的是设备并不总是通过 WiFi 或有线连接直接上网。有些设备使用网状网络mesh networking通过蓝牙等技术彼此通信再经由一个有互联网连接的**中枢设备hub**接入网络。沿用智能恒温器的例子恒温器通过家庭 WiFi 连接到云端服务将温度数据发送到云端并写入数据库房主通过手机 App 查看当前与历史温度云中的另一个服务知道房主想要的目标温度通过云服务向 IoT 设备回发消息指示暖气系统开关。更智能的版本还可在云端引入AI结合其他 IoT 设备如检测各房间是否有人使用的占用传感器的数据以及天气数据甚至日历来做智能调温例如读到日历显示你在度假就关掉暖气或者按房间使用情况逐房间关暖并从数据中不断学习、越来越精准。✅ 思考练习还有哪些数据能让联网恒温器变得更聪明1.3 边缘计算IoT on the Edge不联网也能处理虽然 IoT 中的 I 代表 Internet但设备不一定要直连互联网。在某些场景下设备可以连接到edge 设备边缘设备——运行在本地网络上的网关gateway从而无需经过互联网就能处理数据。边缘计算的优势包括更快当数据量大或互联网连接慢时本地处理更高效支持离线运行在无法联网的环境如船上、人道主义危机中的灾区仍能工作保护隐私数据不出本地网络。有些设备会使用云工具训练的处理代码并在本地运行用于收集和响应数据而无需联网做决策。一个典型例子是智能家居设备如 Apple HomePod、Amazon Alexa 或 Google Home它们使用在云端训练、但在设备本地运行的 AI 模型来聆听你的声音。这些设备只有听到特定**唤醒词wake word**或短语时才苏醒之后才将语音发送到互联网处理并在检测到语音停顿时停止发送。唤醒词之前说的话、停止聆听之后说的话都不会被发送到互联网因此保持私密。✅ 思考练习还有哪些场景对隐私要求高、更适合在边缘处理而不是云端提示——想想带摄像头或其他成像设备的 IoT 设备。1.4 IoT 安全IoT Security任何互联网连接都必须考虑安全。有一个老笑话IoT 里的 S 代表 Security——但 IoT 里根本没有字母 S暗示它天生不安全。IoT 设备连接到云服务因此其安全性上限就是云服务的安全性——如果云服务允许任何设备连接就可能被发送恶意数据甚至遭受病毒攻击。这会产生非常现实的影响因为 IoT 设备会交互并控制其他设备。例如 Stuxnet 蠕虫 通过操纵离心机中的阀门来损坏设备黑客也曾利用 安全漏洞入侵婴儿监视器 等家庭监控设备。 有时 IoT 设备与边缘设备会运行在完全与互联网隔离的网络上以保持数据私密和安全这种做法称为 air-gapping物理隔离。二、深入微控制器Deeper Dive into Microcontrollers在第 1 课中我们初步认识了微控制器本课从CPU、内存、输入输出、物理尺寸、框架与操作系统五个维度深入剖析。2.1 CPU微控制器的大脑CPU 是微控制器的大脑是运行你代码的处理器可以向连接的设备发送数据、从连接的设备接收数据。CPU 可以包含一个或多个内核core——本质上是一个或多个可以协同运行代码的处理器。CPU 依赖时钟clock每秒滴答数百万甚至数十亿次。每一次滴答即一个周期 cycle同步 CPU 可执行的动作每个周期 CPU 可以执行程序中的一条指令例如从外部设备取数据或执行数学计算。这种规律周期保证所有动作在下一条指令处理前完成。时钟周期越快每秒处理的指令越多CPU 就越快。CPU 速度以 赫兹Hz 衡量1 Hz 表示每秒一个周期。 CPU 速度常以 MHz 或 GHz 表示1 MHz 100 万 Hz1 GHz 10 亿 Hz。 CPU 通过 取指-译码-执行循环fetch-decode-execute cycle 执行程序每个时钟滴答CPU 从内存取出下一条指令、译码然后执行例如用算术逻辑单元 ALU 将两个数相加。某些指令需要多个周期完成因此下一条指令的循环会在其完成后才开始。微控制器的时钟速度远低于台式机、笔记本电脑甚至大多数智能手机。例如Wio Terminal的 CPU 运行在120 MHz即每秒 120,000,000 个周期。✅ 普通 PC 或 Mac 的 CPU 有多核、运行在数 GHz即每秒滴答数十亿次。请查一下你电脑的时钟速度与 Wio Terminal 比较快了多少倍。每个时钟周期都会消耗电能并产生热量滴答越快耗电越多、发热越大。PC 需要散热器和风扇来散热否则几秒内就会过热关机微控制器通常两者都没有因为运行更凉爽、更慢。PC 依赖市电或大电池运行几小时而微控制器可以用小电池运行数天、数月甚至数年。微控制器还可以拥有运行在不同速度的内核在 CPU 负载低时切换到较慢的低功耗内核以降低功耗。 一些 PC 和 Mac 也在采用快高功耗核心 慢低功耗核心的组合来省电。例如 Apple M1 芯片可以在 4 个性能核心和 4 个效率核心之间切换以根据任务优化续航或速度。实战任务Wio Terminal如果你使用 Wio Terminal 上课尝试找到 CPU——在 Wio Terminal 产品页的Hardware Overview部分查看内部照片并通过背面透明塑料窗口观察 CPU。2.2 内存程序内存与 RAM微控制器通常有两种内存类型特性用途程序内存Program memory非易失性non-volatile断电后内容保留存储程序代码RAM随机访问内存易失性volatile断电后内容丢失、程序被重置程序运行时使用存放程序分配的变量和从外设获取的数据 程序内存存放你的代码断电后仍保留。 RAM 用于运行程序断电后被重置。与 CPU 类似微控制器的内存比 PC 或 Mac小几个数量级典型 PC 有 8 GB8,000,000,000 字节RAM每个字节足以存储一个字母或 0~255 的数字微控制器通常只有KB 级RAM1 KB 1,000 字节。上文的 Wio Terminal 拥有192 KB RAM192,000 字节比普通 PC少 4 万多倍程序存储也比 PC 小典型 PC 可能有 500 GB 硬盘而微控制器可能只有 KB 或几 MB1 MB 1,000 KB 1,000,000 字节的存储。Wio Terminal 有 4 MB 程序存储。✅ 小调研你正在用来阅读的电脑有多少 RAM 和存储与微控制器相比如何2.3 输入/输出I/OGPIO 引脚微控制器需要输入和输出I/O连接来从传感器读取数据、向执行器发送控制信号。它们通常包含多个通用输入/输出GPIO引脚可在软件中配置为⬅️输入input接收信号用于从传感器读取数值➡️输出output发送信号用于向执行器发送指令。✅ 下一课会详细学习如何用 GPIO 连接传感器与执行器。实战任务Wio Terminal找到 GPIO 引脚。在 Wio Terminal 产品页的Pinout diagram部分查看各引脚定义。Wio Terminal 附赠一张可贴在背面的引脚编号贴纸如果还没贴就现在贴上。2.4 物理尺寸从高尔夫球凹坑到散热器微控制器通常很小最小的 Freescale Kinetis KL03 MCU 小到可以塞进高尔夫球凹坑。而 PC 中仅 CPU 就有 40mm × 40mm还不包括保证 CPU 运行超过几秒而不过热所需的散热器和风扇——比整个微控制器还大得多。下表对比了几种设备的尺寸设备尺寸Freescale Kinetis KL031.6mm × 2mm × 1mmWio Terminal72mm × 57mm × 12mmIntel i9 CPU 散热器 风扇136mm × 145mm × 103mm带微控制器、外壳、屏幕及一系列连接和组件的 Wio Terminal 开发套件比裸的 Intel i9 CPU 大不了多少且远小于带散热器和风扇的 CPU 组合。2.5 框架与操作系统为什么微控制器不需要桌面级 OS由于速度低、内存小微控制器不运行桌面意义上的操作系统OS。让电脑运行的 OSWindows、Linux 或 macOS需要大量内存和算力来运行对微控制器完全多余的任务。记住微控制器通常被编程执行一个或多个非常具体的任务不像 PC 或 Mac 这类通用计算机要支持用户界面、播放音乐电影、提供文档与代码工具、玩游戏或浏览互联网。编程无 OS 的微控制器需要一些工具链让你把代码构建成微控制器可运行的形式并使用能与外设通信的 API。每个微控制器都不同因此厂商通常支持标准框架framework让你遵循标准的配方构建代码并在任何支持该框架的微控制器上运行。也可以在微控制器上运行操作系统——常称为实时操作系统RTOS, real-time operating system因为它们专为实时处理与外设间的数据收发而设计。这些 OS 非常轻量提供如下功能多线程multi-threading让代码同时运行多个代码块可在多核上并行或在单核上轮流网络功能安全地通过互联网通信GUI 组件在带屏幕的设备上构建用户界面。✅ 可了解的 RTOS 示例Azure RTOS、FreeRTOS、Zephyr。Arduino最流行的微控制器框架Arduino 可能是最流行的微控制器框架尤其受学生、爱好者和创客欢迎。Arduino 是一个开源电子平台结合了软件与硬件——你可以从 Arduino 官方或其他厂商购买 Arduino 兼容板然后用 Arduino 框架编程。Arduino 板用 C/C 编程。使用 C/C 可以让代码编译得非常小、运行得很快这正是微控制器这类受限设备所需要的。Arduino 应用的核心称为sketch草图是包含两个函数的 C/C 代码setup上电后只运行一次用于写初始化代码例如连接 WiFi 和云服务、初始化输入输出引脚loop反复循环运行直到断电用于写处理代码例如读取传感器并把数值发送到云端。通常在每轮循环末尾加入delay延时——例如只想每 10 秒发送一次传感器数据就在循环末尾加 10 秒延时让微控制器休眠省电10 秒后再运行下一轮。这种程序架构称为事件循环event loop/ 消息循环message loop。许多应用都在底层使用它也是大多数运行在 Windows、macOS、Linux 上的桌面应用的标准范式loop监听用户界面组件如按钮或设备如键盘的消息并响应。仓库源码印证本仓库入门项目第 1 课的 Wio Terminal 示例 main.cpp 就是最精简的 sketch#include Arduino.h void setup() { Serial.begin(9600); while (!Serial) ; // Wait for Serial to be ready delay(1000); } void loop() { Serial.println(Hello World); delay(5000); }可以看到setup中初始化串口Serial.begin(9600)并等待串口就绪loop中每 5 秒向串口输出一次 Hello World。对应的 platformio.ini 配置则声明了构建目标与框架[env:seeed_wio_terminal] platform atmelsam board seeed_wio_terminal framework arduino即平台为 ATMEL SAMARM Cortex-M 系列、板型为seeed_wio_terminal、框架为arduino。到了第 3 课示例扩展为读取光传感器的值setup中通过pinMode(WIO_LIGHT, INPUT)初始化引脚loop中调用analogRead(WIO_LIGHT)读取并在串口输出见 code-sensor 的 main.cpp。Arduino 标准库Arduino 提供与微控制器和 I/O 引脚交互的标准库底层针对不同微控制器有不同实现。例如delay让程序暂停指定时长digitalRead从指定引脚读取HIGH或LOW——无论代码运行在哪块板上。这意味着为一块板编写的 Arduino 代码只要引脚相同、板子支持相同的功能就可以重新编译到任何其他 Arduino 板运行。此外还有庞大的第三方库生态可以添加传感器/执行器支持、连接云 IoT 服务等扩展功能。实战任务Wio Terminal重读上一课写的代码找到setup和loop函数监测串口输出观察loop被反复调用。尝试在setup中添加向串口写入的代码观察它只在每次重启时被调用一次用侧面的电源开关重启设备验证每次重启都会调用它。三、深入单板计算机Deeper Dive into Single-Board Computers第 1 课介绍了单板计算机本课以Raspberry Pi为对象深入展开。3.1 Raspberry Pi慈善基金会出品的单板计算机Raspberry Pi 基金会 是 2009 年成立于英国的慈善机构旨在促进计算机科学学习尤其面向学校。为此他们开发了单板计算机 Raspberry Pi目前有 3 种形态全尺寸版full size更小的 Pi Zero计算模块compute module——可内嵌进最终 IoT 设备。Raspberry Pi 4B是当前全尺寸版的最新迭代规格如下特性Raspberry Pi 4BRaspberry Pi ZeroCPU四核4 core 1.5 GHz单核 1 GHzRAM2 / 4 / 8 GB512 MB网络千兆以太网 WiFiWiFi仅 Zero W 型号视频输出2 个 HDMI支持 4k1 个 HDMI其他接口音频与复合视频输出、2×USB 2.0、2×USB 3.0、40 GPIO、摄像头接口、SD 卡槽micro-USB、40 GPIO、摄像头接口、SD 卡槽尺寸88mm × 58mm × 19.5mm65mm × 30mm × 5mm供电3A USB-C 电源功耗极低起售价35 美元起Zero 5 美元带 WiFi 的 W 版 10 美元 还有 Pi400——一台把 Pi4 内建进键盘的一体机。 这两种设备的 CPU 都是ARM 处理器不同于多数 PC/Mac 的 Intel/AMD x86 或 x64 处理器。它们与某些微控制器中的 CPU、几乎所有手机、Microsoft Surface X 以及新 Apple Silicon Mac 中的处理器类似。操作系统所有 Raspberry Pi 变体都运行名为Raspberry Pi OS的 Debian Linux 版本。它提供Lite 版无桌面适合不需要屏幕的headless无头项目完整版完整桌面环境含浏览器、办公软件、编程工具和游戏。由于是 Debian Linux 的发行版你可以安装任何能在 Debian 上运行、且针对 Pi 内部 ARM 处理器构建的应用或工具。实战任务Raspberry Pi阅读板上的硬件组件——在 Raspberry Pi 硬件文档 查看处理器细节定位 GPIO 引脚阅读 GPIO 文档并用 GPIO 引脚使用指南 识别 Pi 上不同引脚。3.2 编程单板计算机完整 OS 带来的语言自由单板计算机是运行完整 OS 的完整计算机因此有非常广泛的编程语言、框架和工具可选不像微控制器那样依赖 Arduino 等框架对板子的支持。大多数编程语言都有可访问 GPIO 引脚、与传感器和执行器收发数据的库。✅ 你会哪些编程语言它们在 Linux 上受支持吗在 Raspberry Pi 上构建 IoT 应用最常用的语言是Python。Pi 有庞大的硬件生态几乎所有组件都带有可供 Python 库使用的代码。其中一些生态基于hats——之所以这么叫是因为它们像帽子一样坐在 Pi 顶部通过一个大插座连接到 40 个 GPIO 引脚。hats 提供额外能力如屏幕、传感器、遥控车或用于连接标准化线缆传感器的适配器。仓库源码印证本仓库入门项目第 1 课的 Pi 示例 app.py 只有一行print(Hello World!)与 Arduino 的 C sketch 形成鲜明对比——Python 版本无需显式setup/loop直接以脚本方式运行这正是完整 OS 高级语言与裸机框架两种编程模型的差异所在。3.3 单板计算机在专业 IoT 部署中的使用单板计算机不仅用作开发套件也用于专业 IoT 部署。它们提供强大的硬件控制能力并能执行复杂任务例如运行机器学习模型。例如 Raspberry Pi 4 Compute Module 提供 Raspberry Pi 4 的全部性能但形态更紧凑、价格更低去掉了大部分端口专为内嵌进定制硬件而设计。四、挑战与作业用对比表格巩固选型能力 挑战上一课的挑战是尽可能列出家里、学校或工作场所中的 IoT 设备。本课请对清单中的每个设备判断它们是基于微控制器、单板计算机还是两者的组合课后作业对比微控制器与单板计算机本课的作业 assignment.md 要求创建一个对比表格对比微控制器与单板计算机写出至少 2 个选微控制器而非单板计算机的理由写出至少 2 个选单板计算机而非微控制器的理由。评分标准Rubric如下标准优秀Exemplary合格Adequate待改进Needs Improvement创建微控制器与单板计算机的对比表格创建了包含多项正确对比的清单只创建了少量对比项只能想出 1 项或完全无法对比选择理由能给出微控制器 ≥2 个理由、单板计算机 ≥2 个理由只能给出每类 1~2 个理由无法给出任何一类的理由选型参考结合本课内容微控制器的优势在于成本低、功耗极低、尺寸小、可靠性高适合电池供电、单一专用任务单板计算机的优势在于性能强、可运行完整 OS 与高级语言、能跑机器学习等复杂任务适合需要强大算力和灵活软件生态的场景。你也可以参考 hardware.md 中的硬件购买清单与实际成本来做出决策——该指南明确说明所有作业都可以用**虚拟硬件virtual device**完成不必购买任何实体硬件。五、复习与自主研究阅读 Arduino 入门指南更深入了解 Arduino 平台阅读 Raspberry Pi 4 介绍了解 Raspberry Pi阅读 Electrical Engineering Journal 上的《What the FAQ are CPUs, MPUs, MCUs, and GPUs?》弄清 CPU、MPU、MCU、GPU 等术语与缩写的区别。✅ 结合以上指南、硬件指南 中链接显示的成本决定你想使用哪种硬件平台或者是否更愿意使用虚拟设备。小结通过本课你可以系统性地回答以下问题IoT 应用由什么组成设备Thing负责感知与执行互联网Internet负责云服务、消息收发与数据处理边缘计算提供离线、隐私与低延迟选项安全贯穿始终微控制器有何特点时钟与内存比 PC 小几个数量级Wio Terminal120 MHz / 192 KB RAM / 4 MB 程序存储依赖 GPIO 与外设交互通常不运行桌面 OS而是用 Arduino 等框架以setup/loop模型编程单板计算机有何特点是运行完整 LinuxRaspberry Pi OS的完整计算机Pi 4B四核 1.5 GHz / 最高 8 GB RAM可用 Python 等高级语言编程甚至用于专业 IoT 部署运行机器学习模型如何选型通过对比表格梳理两类设备的差异结合 hardware.md 的成本信息或直接选择虚拟设备完成全部课程作业。从仓库源码可以看到Arduino 路径用 C 的setup/loop加 PlatformIO 配置framework arduino驱动 Wio Terminal而 Raspberry Pi 路径用 Python 脚本直跑——这正是微控制器与单板计算机两种编程范式的生动体现也为你后续在传感器、执行器与云连接课程中的实操打下基础。【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考