6 个物联网入门项目构想
作者:Charles Mahler / 用例
2023 年 5 月 8 日
导航至
本文最初发表于 The New Stack,并经许可在此转载。
了解规划物联网项目时需要考虑的主要事项,并提供教程和源代码链接。
关于物联网 (IoT) 的概念性文章有很多,但实际上并没有涵盖任何具体内容。如果您一直想开始一个真正的物联网项目,但不知道从哪里开始,那么您来对地方了。
本文将介绍规划物联网项目时需要考虑的一些事项,然后展示六个实用的物联网项目,并提供教程和源代码链接,以便您轻松入门,无论您的技术技能水平如何。
物联网项目需要什么?
在开始物联网项目之前,您需要确保已做好适当的规划,因为当涉及到硬件时,迭代的成本会变得更高。让我们看看规划物联网项目时需要考虑的主要事项。
硬件
根据您的项目范围,硬件可能是最昂贵的部分,因此您需要确保尽可能避免不必要的支出。有大量物联网设备可用于业余项目或原型设计。从广义上讲,它们可以分为微控制器和单板计算机 (SBC) 两类。
微控制器是小型计算机,CPU、RAM 和存储空间等资源最少。它们被编程为执行特定任务,并且没有完整的操作系统。微控制器的常见示例是 Arduino。
单板计算机是通用计算机,具有足够的资源来运行完整的操作系统,并且可以用于各种用例。SBC 的一个示例是 Raspberry Pi。
您选择哪种类型的硬件将取决于项目要求。如果您只需要一个低功耗微控制器来执行任务,那么使用它而不是花钱购买您不需要计算资源的 SBC 可能是明智之举。
物联网工具、框架和生态系统
规划物联网项目时要考虑的另一个方面是哪些工具可用,可以节省您的时间并使事情变得更容易。在本节中,我们将研究您应该研究的几个不同领域,以确定什么对您的项目有意义。
网络协议
带宽速度和网络可靠性可能是物联网项目的主要挑战。如果您知道您的设备将部署在 WiFi 可靠的地方,这不会是一个重大问题,但对于设备将部署在现场的项目,您将需要考虑不同的网络协议和互联网连接选项。您为通信选择的网络协议可能会对设备电池寿命、数据可靠性、带宽成本和开发速度等产生重大影响。
以下是一些在不同情况下用于物联网项目的常见网络协议
- MQTT
- LoRaWAN
- HTTP
- Matter
- Zigbee
- Thread
集成和自动化工具
物联网最重要的部分之一是“物”方面,即您可以从理论上连接的所有各种设备,并让它们相互通信和协同工作。虽然您可以自己编写所有这些代码,但有各种框架和活跃的社区共享代码,因此人们不必重新发明轮子。最流行的两个工具是 Node-RED 和 Home Assistant。
Node-RED 非常适合任何通用物联网项目。它可以轻松处理几乎任何常见物联网网络协议中设备发送的消息,然后根据这些消息采取行动。这可以是任何事情,从存储消息、使用自定义代码转换消息,到将消息发送到另一台设备以执行某些任务。
Home Assistant 与 Node Red 类似,但专注于家庭自动化,特别是。它具有许多功能,可帮助优化此用例。社区已经制作了 1,900 多个预构建的集成和自动化。如果您需要更多功能,您还可以通过 Home Assistant 利用 Node Red。
物联网平台
您项目的另一个潜在组件可能是专用物联网平台或物联网云服务。有许多这样的平台可用于简化常见物联网应用程序功能的实现和管理。您是否需要使用其中一个平台将取决于您的项目规模以及您需要的功能。物联网平台提供的一些常见功能包括
- 设备管理 — 这使您可以轻松地远程更新设备固件和配置设置。
- 分析 — 物联网平台可以轻松地流式传输和分析您的数据,通常提供 API 或与其他服务的内置集成。
- 安全 — 许多平台提供身份验证服务并加密您的数据。
- 网络 — 物联网平台通常提供某种功能,允许从边缘到云的数据传输。
数据存储
在许多情况下,您需要为物联网项目生成的数据提供某种持久存储。然后,可以将这些历史数据用于以后的可视化、分析或创建未来趋势的预测。物联网数据通常是某种形式的时序数据,在查询该数据时具有一些独特的特征。
虽然关系数据库可能适用于您将从物联网设备生成的数据量,但可能值得考虑针对存储时序数据进行优化的替代方案。
用于存储物联网项目数据的常见数据存储选择包括
原因是它们提供更好的数据压缩,并且针对通常在时序数据上运行的 OLAP(在线分析处理)类型查询进行了优化。结果是更快的查询性能、更少的硬件资源需求以及存储数据的成本节约。
物联网项目构想和示例
家庭自动化
物联网项目的常见起点是设置一些基本的家庭自动化。这通常涉及使用 Raspberry Pi 等设备作为连接房屋周围各种智能设备的中心。一个具体的例子是使用自动化工具 IFTTT 连接到智能摄像头,然后使用 Webhook 事件采取自动化操作。
AI 安全摄像头
一个更高级(且更昂贵)的家庭自动化项目是创建一个AI 驱动的安全摄像头,该摄像头能够在边缘设备本身上进行图像识别。对于此示例,您将需要像 Nvidia Jetson 这样的设备,该设备具有板载 GPU,用于快速对视频流中拍摄的图像进行推理。
一个用例是仅根据安全摄像头上显示的对象类型向您的手机发送警报。一天中的其他条件也可能是因素。例如,如果您在商店中安装了摄像头,并且在关门后检测到有人,则发送警报是有意义的,因为这可能意味着有人闯入。
花园监控
监控植物是另一个很好的初学者物联网项目,它将帮助您学习一些基础知识,然后可以将其扩展到更复杂的项目。在此示例中,您可以对微控制器进行编程,以从传感器中提取数据,以收集有关植物土壤的数据。然后,可以扩展此项目,以根据传感器数据使用机械臂或其他设备自动浇灌植物。
空气质量监测器
空气质量会对您的健康和表现产生重大影响,因此一个可以快速对您的生活产生积极影响的简单物联网项目是制造空气质量传感器。此示例展示了如何使用 Raspberry Pi 检测 PM2.5 水平(颗粒物)。您还可以添加其他传感器来检测二氧化碳等物质。
收集数据后,您可以定义阈值,并将它们与本文中讨论的一些工具集成,以根据这些水平采取行动。一些潜在的想法
- 短信
- 根据水平更改智能灯的颜色
- 将警报器直接连接到 Raspberry Pi 以在特定水平发出噪音
遥控乐高机器人
此项目使用 Python 通过蓝牙控制乐高机器人。可以扩展代码以使机器人执行许多不同的操作。在本例中,该程序正在根据从机器人返回的传感器数据创建实时数据可视化。
自动驾驶遥控车
- https://github.com/NVIDIA-AI-IOT/jetbot
- https://github.com/NVIDIA-AI-IOT/jetracer
- https://sisaha9.github.io/camera_mapping_navigation_website/nav_detectron.html
通过这个更高级的项目,您可以采用 AI 安全摄像头使用的一些概念,例如使用 Nvidia Jetson 进行图像识别,并将其与额外的硬件结合起来,然后可以根据摄像头生成的数据来控制遥控车的转向。