>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Unknown

awesome-iot 仓库中的硬件与协议世界指南

物联网开发常常让人感觉像在雾中摸索。数十家制造商提供各种硬件,通信协议每年都在增加。再加上 MicroPython、Rust 和 C++ 之间的选择,即使在设计阶段你的脑袋就开始疼了。我记得在构建第一个温度传感器仪表盘时,光是弄清楚 CoAP 和 MQTT 的区别以及什么能在微控制器上运行,就花了我两个晚上。

由 Khallim Carroum 维护的 awesome-iot 仓库有助于节省时间。这是一个精心整理的硬件平台、操作系统、编程语言和网络协议的集合。

该项目在 GitHub 上已获得超过四千颗星。让我们探索一下这里有哪些有趣的资源,以及如何利用这个知识库。

该目录包含什么

与任何 Awesome 列表一样,该项目由带有简要说明的链接组成。作者将所有资源分为五个主要部分:

  • 硬件和单板计算机
  • 软件栈(操作系统、语言、框架和工具)
  • 网络协议和通信标准
  • 联盟和行业组织
  • 书籍、文章和学术出版物

这种结构可以帮助你快速找到适合项目的组件,而无需在搜索引擎中翻找。

硬件和操作系统

除了熟悉的 Raspberry Pi 和 Arduino 主板,该集合还包括用于专业任务的解决方案。

对于带有 Wi-Fi 和蓝牙的简单传感器,ESP32 或 NodeMCU 芯片非常适合。如果你需要一个工作温度范围从 -25°C 到 +85°C 的微型工业级计算机,OLinuXino 会派上用场。对于使用汽车 CAN 总线,你可以在列表中找到 AutoPi 项目。

硬件的软件情况也类似。该目录包含实时操作系统:

  • FreeRTOS 和 Zephyr Project,适用于对功耗和内存有严格限制的设备。
  • Apache Mynewt,专注于蓝牙低功耗。
  • OpenWrt 和 Raspbian,适用于功能完整的单板计算机。
  • NodeOS,适用于想要运行基于 JavaScript 的操作系统的人。

用什么写代码

你不仅可以 用 C 或 C++ 将硬件连接到逻辑。社区已经为微控制器创建了熟悉的语言的适配版本。

该集合包含 MicroPython,以及只需要 4 KB RAM 的 PikaPython。对于喜欢严格类型的人,有 TinyGo,可以为 Arduino 和 BBC micro:bit 编译 Go 代码。如果你使用 Rust,也能找到丰富的库支持。诸如 AtomVM 这样的 exotic 选择让你可以直接在微控制器上运行 Erlang 和 Elixir。

框架和数据传输

将传感器连接到服务器是一项单独的任务。该目录清晰地分离了数据传输层。

物理和网络技术包括 LoRaWAN、NB-IoT、ZigBee 和 Thread。在应用层面,有 MQTT、CoAP 和 STOMP。

对于设备端或服务器端的数据处理,该列表包含现成的工具:

  • Home Assistant,用于家庭自动化。
  • Astarte,用于管理 Linux 和 ESP32 设备集群。
  • Eclipse Ditto,用于创建设备的数字孪生。
  • ForestHub,用于在 Jetson 或 Raspberry Pi 等边缘设备上运行人工智能模型。

在消息代理中,你可以选择轻量级的 NanoMQ 在设备本身运行,也可以选择高容量的 EMQX 和 VerneMQ,它们能够处理数百万并发连接。

谁会发现这个列表有用

该仓库在需要为新项目选择技术栈的情况下可以作为参考。

对于 Web 服务开发者,它展示了通过 JavaScript 或 Python 等熟悉的语言进入硬件的入口点。对于架构师,它简化了找到合适的代理或通信协议的过程。对于初级工程师,该集合提供了现代物联网系统构建方式的完整图景。

该项目对社区开放。如果你使用了一个好的开源解决方案来处理硬件,你可以通过 Pull Request 提交建议。

相关项目