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