你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
此 IoT 设备选择列表旨在帮助合作伙伴选择 IoT 硬件来快速轻松地构建原型和概念证明。[^1]
列出的所有电路板支持所有经验水平的用户。
注意
此表并非详尽列表,也不适合参考它来将解决方案投入生产。 [^2] [^3]
安全建议:建议将这些设备放在路由器和/或防火墙后面,Azure Sphere 除外。
[^1]:如果你是硬件编程新手,对于 MCU 开发工作,我们建议使用 VS Code Arduino 扩展或 VS Code 平台 IO 扩展。对于 SBC 开发工作,可以像对笔记本电脑一样对设备进行编程,即在设备本身上进行编程。Raspberry Pi 支持 VS Code 开发。
[^2]:支持资源的可用性中的设备、用于原型制作和 PoC 的常见板以及支持初学者友好 IDE(例如,Arduino IDE 和 VS Code 扩展)的板;例如 Arduino 扩展和平台 IO 扩展。为简单起见,我们的目标是将总设备列表保留为<6。其他团队和个人可能已根据他们对标准的解释选择使用不同的板。
[^3]:为了将设备投入生产,你可能希望使用特定芯片组、ST 的 STM32 或 Microchip 的 Pic-IoT 分线板系列来测试 PoC,设计出能够低于此处列出的 MCU 和 SBC 成本制造的定制电路板,甚至探索基于 FPGA 的开发套件。你还可能想要使用 STM32CubeMX 或 ARM mBed 基于浏览器的编程器等专业电气工程开发环境。
目录
部分 | 说明 |
---|---|
从这里开始 | 有关使用此选择列表的指南。 包括建议的选择条件。 |
选择图表 | 一个汇总常见选择条件和可能的硬件选项的视觉对象。 |
术语和 ML 要求 | 边缘机器学习 (ML) 的术语和首字母缩写词定义与设备要求。 |
MCU 设备列表 | 建议的 MCU(例如 ESP32)列表,以及技术规格和替代设备。 |
SBC 设备列表 | 建议的 SBC(例如 Raspberry Pi)列表,以及技术规格和替代设备。 |
从这里开始
如何使用本文档
使用本文档可以更好地理解 IoT 术语、设备选择考虑因素,并选择用于原型制作或构建概念证明的 IoT 设备。 建议完成以下过程:
请通读“选择电路板时考虑的事项”部分,以确定需求和约束。
使用应用程序选择视觉对象来确定 IoT 方案的可能选项。
使用 MCU 或 SBC 设备列表,检查设备规格并与需求/约束进行比较。
选择电路板时考虑的事项
要为 IoT 原型选择设备,请参阅以下条件:
微控制器单元 (MCU) 或单板计算机 (SBC)
- MCU 更适合单项任务,例如收集和上传传感器数据或在边缘上进行机器学习。 MCU 的成本往往也更低。
- 需要执行多个不同的任务(例如收集传感器数据和控制另一个设备)时首选 SBC。 当可能的解决方案有很多选项时,SBC 也可能是早期阶段的首选 - SBC 使你能够尝试许多不同的方法。
处理能力
内存:考虑需要多少内存存储(以字节为单位)、文件存储和内存才能运行项目所需的程序。
时钟速度:考虑程序需要以多快的速度的运行,或者设备需要以多快的速度与 IoT 服务器通信。
退役:考虑是否需要具有最新功能和文档的设备,或者是否可以使用已退役的设备作为原型。
功率消耗
电源:考虑电路板消耗的电压和电流。 确定墙插电源是否随时可用,或者应用程序是否需要电池。
连接:考虑与电源的物理连接。 如果需要电池电源,请检查电路板上是否有可用的电池连接端口。 如果没有电池连接器,请改用另一块类似的电路板,或考虑通过其他方式为设备添加电池电源。
Inputs and outputs
端口和引脚:考虑项目可能需要的端口和 I/O 引脚的数量及其类型。 * 其他考虑因素包括设备是否将与其他传感器或设备通信。 如果是,请确定这些信号需要多少个端口。
协议:如果使用其他传感器或设备,请考虑需要哪些硬件通信协议。 * 例如,可能需要 CAN、UART、SPI、I2C 或其他通信协议。
电源:考虑设备是否要为传感器等其他组件供电。 如果设备要为其他组件供电,请确定设备上电源引脚的电压和电流输出,并确定其他组件需要多大的电压/电流。
类型:确定是否需要与模拟组件通信。 如果需要模拟组件,请确定项目需要多少个模拟 I/O 引脚。
外围设备:考虑你是否偏好带有板载传感器或其他功能组件(例如屏幕、麦克风等)的设备。
开发
编程语言:考虑项目是否需要 C/C++ 以外的高级语言。 如果是,请确定所需应用程序的常用编程语言(例如,机器学习通常使用 Python)。 考虑哪些 SDK、API 和/或库对项目有帮助或有必要。 确定它们在哪些编程语言中受支持。
IDE:考虑设备支持的开发环境,以及它是否符合开发人员的需求、技能组合和/或偏好。
社区:考虑你在构建解决方案时想要/需要多少帮助。 例如,考虑你是否偏好从示例代码开始,是否需要故障排除建议或帮助,或者是否希望从生成新示例和更新文档的活跃社区获得好处。
文档:查看设备文档。 确定它是否完整且易于遵循。 考虑是否需要原理图、示例、数据表或其他类型的文档。 如果是,请进行搜索以查看这些项是否可用于你的项目。 考虑为电路板编写的软件 SDK/API/库,以及这些项是否会简化原型制作过程。 确定此文档是否得到维护以及维护者是谁。
安全性
网络:考虑设备是否连接到外部网络,或者是否可以放在路由器和/或防火墙后面。 如果原型需要连接到面向外部的网络,我们建议使用 Azure Sphere,因为它是唯一可靠且安全的设备。
外围设备:考虑设备连接到的任何外围设备是否使用无线协议(例如 WiFi、BLE)。
物理位置:考虑设备或其连接的任何外围设备是否可供公众访问。 如果是,我们建议避免以物理方式访问设备。 例如,将设备放在封闭的已上锁箱子中。
应用程序选择视觉对象
注意
此列表仅用于教育目的,而不旨在认可任何产品。
术语和 ML 要求
本部分提供视觉、听觉和传感器机器学习应用程序的嵌入式术语、首字母缩写词以及硬件规格的定义。
术语
术语和首字母缩写词按字母顺序列出。
术语 | 定义 |
---|---|
ADC | 模数转换器;将来自已连接组件(例如传感器)的模拟信号转换为设备可读的数字信号 |
模拟引脚 | 用于连接具有连续信号的模拟组件,例如光敏电阻(光传感器)和麦克风 |
时钟速度 | CPU 检索和解释指令的速度 |
数字引脚 | 用于连接具有二进制信号的数字组件,例如 LED 和开关 |
闪存(或 ROM) | 可用于存储程序的内存 |
IDE | 集成开发环境;用于编写软件代码的程序 |
IMU | 惯性测量单元 |
IO(或 I/O)引脚 | 用来与其他设备(例如传感器)和其他控制器通信的输入/输出引脚 |
MCU | 微控制器单元;单芯片上的小型计算机,包括 CPU、RAM 和 IO |
MPU | 微处理器单元;一种计算机处理器,它在单个集成电路 (IC) 或少量几个集成电路上整合了计算机中央处理单元 (CPU) 的功能。 |
ML | 机器学习;执行复杂模式识别的特殊计算机程序 |
PWM | 脉宽调制;一种修改数字信号以实现模拟般效果的方式,例如改变亮度、音量和速度 |
RAM | 随机存取存储器;有多少内存可用于运行程序 |
SBC | 单板计算机 |
TF | TensorFlow;为边缘设备设计的机器学习软件包 |
TF Lite | TensorFlow Lite;用于小型边缘设备的精简 TF 版本 |
机器学习硬件要求
视觉 ML
- 速度:200 MHz
- 闪存:300 kB
- RAM:100 kB
语音 ML
- 速度:60 MHz [^4]
- 闪存:50 kB
- RAM:8 kB
传感器 ML(例如运动、距离)
- 速度:20 MHz
- 闪存:20 kB
- RAM:2 kB
[^4]:提出这种速度要求主要是因为处理器需要能够至少以 6 kHz 的频率采样,只有这样,麦克风才能处理人声频率。
MCU 设备列表
下面是按字母顺序列出的 MCU 对照表。 该列表并不详尽。
注意
此列表仅用于教育目的,而不旨在认可任何产品。 所示价格表示多家分销商的平均价格,仅用于演示目的。
电路板名称 | 价格范围(美元) | 用途 | 软件 | 速度 | 处理器 | 内存 | 板载传感器和其他功能 | IO 引脚 | 视频 | 单选 | 有电池连接器? | 工作电压 | 获取明确表述的指南 | 替代方法 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Azure Sphere MT3620 开发工具包 | ~$40 - $100 | 高度安全的应用程序 | C/C++、VS Code、VS | 500 MHz 和 200 MHz | MT3620(三核 -- 1 个 Cortex A7,2 个 Cortex M4) | 4-MB RAM + 2 x 64-KB RAM | 认证:CE/FCC/MIC/RoHS | 4 个数字 IO、1 个 I2S、4 个 ADC、1 个 RTC | - | 具有天线分集的双频 802.11 b/g/n | - | 5 V | 1. Azure Sphere 示例库,2. Azure Sphere 气象站 | 空值 |
Adafruit HUZZAH32 – ESP32 Feather 电路板 | ~$20 - $25 | 监测;初学者 IoT;家庭自动化 | Arduino IDE、VS Code | 240 MHz | 32 位 ESP32(双核 Tensilica LX6) | 4 MB SPI 闪存,520 KB SRAM | 霍尔传感器、10 个电容式触摸 IO 引脚、50 多个附加板 | 3 个 UART、3 个 SPI、2 个 I2C、12 个 ADC 输入、2 个 I2S 音频、2 个 DAC | - | 802.11b/g/n HT40 Wi-Fi 收发器、基带、堆栈以及 LWIP、蓝牙和 BLE | √ | 3.3 V | 1. 科学研究冷冻箱监视器,2. Azure IoT SDK Arduino 示例 | Arduino Uno WiFi Rev 2 (~$50 - $60) |
Arduino Nano RP2040 Connect | ~$20 - $25 | 遥控;监视 | Arduino IDE、VS Code、C/C++、MicroPython | 133 MHz | 32 位 RP2040(双核 Cortex M0+) | 16 MB 闪存,264-kB RAM | 麦克风、具有 AI 功能的六轴 IMU | 22 个数字 IO、20 个 PWM、8 个 ADC | - | WiFi、蓝牙 | - | 3.3 V | - | Adafruit Feather RP2040(注意:还需要一个用于 WiFi 的 FeatherWing) |
ESP32-S2 Saola-1 | ~$10 - $15 | 家庭自动化;初学者 IoT;ML;监视;网格网络 | Arduino IDE、Circuit Python、ESP IDF | 240 MHz | 32 位 ESP32-S2(单核 Xtensa LX7) | 128 kB 闪存、320 kB SRAM、16 kB SRAM (RTC) | 14 个 电容式触摸 IO 引脚、温度传感器 | 43 个数字引脚、8 个 PWM、20 个 ADC、2 个 DAC | 串行 LCD、并行 PCD | Wi-Fi 802.11 b/g/n(802.11n,速率高达 150 Mbps) | - | 3.3 V | 1. 使用 Azure ML 进行安全人脸检测,2. Azure 成本监视器 | ESP32-DevKitC (~$10 - $15) |
Wio Terminal (Seeed Studio) | ~$40 - $50 | 监视;家庭自动化;ML | Arduino IDE、VS Code、MicroPython、ArduPy | 120 MHz | 32 位 ATSAMD51(单核 Cortex-M4F) | 4 MB SPI 闪存、192-kB RAM | 板载屏幕、麦克风、IMU、蜂鸣器、microSD 插槽、光传感器、IR 发射器、Raspberry Pi GPIO 安装件(作为子设备) | 26 个数字引脚、5 个 PWM、9 个 ADC | 2.4" 320x420 彩色 LCD | 双频 2.4Ghz/5Ghz (Realtek RTL8720DN) | - | 3.3 V | 使用 Azure IoT 监视工厂 | Adafruit FunHouse (~$30 - $40) |
SBC 设备列表
下面是按字母顺序列出的 SBC 对照表。 此列表并不详尽。
注意
此列表仅用于教育目的,而不旨在认可任何产品。 所示价格表示多家分销商的平均价格,仅用于演示目的。
电路板名称 | 价格范围(美元) | 用途 | 软件 | 速度 | 处理器 | 内存 | 板载传感器和其他功能 | IO 引脚 | 视频 | 单选 | 有电池连接器? | 工作电压 | 入门指南 | 替代方法 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Raspberry Pi 4,型号 B | ~$30 - $80 | 家庭自动化;机器人;自动驾驶汽车;控制系统;野外科学 | Raspberry Pi OS、Raspbian、Ubuntu 20.04/21.04、RISC OS、Windows 10 IoT 等 | 1.5 GHz CPU,500 MHz GPU | 64 位 Broadcom BCM2711(四核 Cortex-A72),VideoCore VI GPU | 2GB/4GB/8GB LPDDR4 RAM,SD 卡(未随附) | 2 个 USB 3 端口、1 个 MIPI DSI 显示器端口、1 个 MIPI CSI 摄像头端口、4 极立体声音频和复合视频端口、以太网供电(需要 HAT) | 26 个数字引脚、4 个 PWM | 2 个 micro-HDMI 复合端口、MPI DSI | WiFi、蓝牙 | √ | 5 V | 1. 将数据发送到 IoT 中心,2. 使用 Azure IoT 监视工厂 | BeagleBone Black Wireless (~$50 - $60) |
NVIDIA Jetson 2 GB Nano Dev Kit | ~$50 - $100 | AI/ML;自动驾驶汽车 | 基于 Ubuntu 的 JetPack | 1.43 GHz CPU,921 MHz GPU | 64 位 NVIDIA CPU(四核 Cortex-A57)、128-CUDA-core Maxwell GPU 协处理器 | 2GB/4GB LPDDR4 RAM | 472 GFLOPS for AI Perf,1 个 MIPI CSI-2 连接器 | 28 个数字引脚、2 个 PWM | HDMI、DP(仅限 4 GB) | 千兆以太网,802.11ac WiFi | √ | 5 V | 与 Azure IoT Central 深度集成 | BeagleBone AI (~$110 - $120) |
Raspberry Pi Zero W2 | ~$15 - $20 | 家庭自动化;ML;汽车改装;野外科学 | Raspberry Pi OS、Raspbian、Ubuntu 20.04/21.04、RISC OS、Windows 10 IoT 等 | 1 GHz CPU,400 MHz GPU | 64 位 Broadcom BCM2837(四核 Cortez-A53),VideoCore IV GPU | 512 MB LPDDR2 RAM,SD 卡(未随附) | 1 x CSI-2 摄像头连接器 | 26 个数字引脚、4 个 PWM | Mini-HDMI | WiFi、蓝牙 | - | 5 V | 将数据发送到 Azure IoT 中心和可视化数据 | Onion Omega2+ (~$10 - $15) |
DFRobot LattePanda | ~$100 - $160 | 家庭自动化;超大规模云连接;AI/ML | Windows 10、Ubuntu 16.04、OpenSuSE 15 | 1.92 GHz | 64 位 Intel Z8350(四核 x86-64),Atmega32u4 协处理器 | 2 GB DDR3L RAM,32 GB eMMC/4GB DDR3L RAM,64 GB eMMC | - | 6 个数字引脚(20 个 Atmega32u4 引脚)、6 个 PWM、12 个 ADC | HDMI、MIPI DSI | WiFi、蓝牙 | √ | 5 V | 1. Microsoft Azure 入门,2. 使用 Azure 的家庭监视系统 | Seeed Odyssey X86J4125800 (~$210 - $230) |
是否有任何问题? 想要提出请求?
请提交问题!
另请参阅
其他有用的资源包括: