物联网(IoT)是指由物理对象——设备、车辆、建筑及其他物品——组成的网络,这些对象内嵌传感器、软件和其他技术,能够通过互联网与其他设备和系统连接并交换数据。物联网涵盖从消费电子产品到工业系统的广泛应用,正在改变我们与物理世界交互的方式。

物联网的关键组成部分
设备与传感器
- 传感器:从环境中采集数据,如温度、湿度、光照、运动等。
- 执行器:根据指令执行动作,如开灯、开门或调节恒温器。
- 嵌入式系统:具备集成计算能力的设备,如智能恒温器、可穿戴设备和工业控制器。
连接性
- 网络:物联网设备通过各种网络通信,包括 Wi-Fi、蓝牙、Zigbee、蜂窝网络(4G/5G)、LoRaWAN 等。
- 协议:MQTT、HTTP/HTTPS、CoAP 和 WebSockets 等标准协议实现了设备与服务器之间的数据交换。
数据处理
- 边缘计算:在数据源处或附近(设备上)处理数据,以降低延迟和带宽消耗。
- 云计算:数据的集中处理与存储,通常涉及大规模分析和机器学习。
安全
保护数据和设备免受未授权访问和网络威胁的措施。
用户界面
- 应用程序:允许用户与物联网设备交互和控制的移动及网页应用。
- 仪表盘:用于监控和管理联网设备及数据的可视化界面。
使用场景:
- 家居自动化:控制和自动化家用设备。
- 工业物联网:监控和控制工业机械。
- 智慧城市:管理和控制智慧城市基础设施。
- 健康监测:从医疗设备采集和处理健康相关数据。
在 C++ 中,许多库可以帮助您实现物联网应用,但大多数运行在相对底层的层面。对于高级 SDK,Macchina.io是一个绝佳的选择,特别是当您寻求一个能简化物联网应用创建的健壮框架时。
与 C++ POCO 库一样,Macchina.io EDGE 设计精良,采用模块化、可扩展的架构构建。

以下是 macchina.io 设计的一些关键特性:
- 模块化:Macchina.io 高度模块化,允许开发者只使用所需的组件。
- C++ 与 JavaScript:支持使用 C++ 和 JavaScript 进行开发,为开发者提供灵活性。
- 设备管理:包含设备管理和通信的工具。
- 连接性:支持多种协议,包括 HTTP、MQTT、WebSockets 和 CoAP,使其适用于各种物联网场景。
- 数据处理:提供数据采集、存储和处理的组件。
- 自动化:包含自动化引擎,可创建基于规则的自动化任务。
- 安全:注重安全,提供加密、身份验证和安全通信组件。
使用 Macchina.io EDGE 的好处
- 降低复杂性:提供 JavaScript 和 C++ 的高级 API,简化物联网应用开发。
- 专注核心能力:通过处理基础设施和底层代码节省时间,让开发者专注于产品的独特功能。
- 硬件无关性:允许编写与硬件无关的应用,便于切换平台。
- 高性能与低占用:非常适合高要求的应用和注重成本的设备。
- 现代化遗留代码:便于对现有 C++ 和 C 代码进行面向未来的改造。
如何开始使用 Macchina.io Edge
如果您想探索 Macchina.io Edge 的能力,首先需要创建一个 bundle。实际上,Macchina.io EDGE 完全以模块化、基于插件的架构实现,使用名为Open Service Platform(OSP)的 C++ 框架。因此,几乎所有在 macchina.io EDGE 中运行的代码都来自插件,也就是在 OSP 和 macchina.io EDGE 中所说的bundle。
bundle 本质上是一个具有特定结构的目录,或者更常见的是一个包含该目录层级的 ZIP 压缩包(扩展名为.bndl)。bundle 包含必需的元数据(即所谓的清单(manifest)),以及配置文件、动态库和其他资源,如 HTML 文件、图片或样式表。
一般来说,在 bundle 中运行代码有两种方式。首先,bundle 可以提供一个BundleActivator类,它必须是 Poco::OSP::BundleActivator 的子类。除了实现该类之外,还必须在 bundle 的元信息(即所谓的bundle 清单)中声明它。
其次,bundle 还可以实现一个或多个扩展点(extension point)。一般来说,扩展点是由一个 bundle 定义的钩子,其他 bundle 可以挂接到其上。
这里有一份详细的文档,可以帮助您创建第一个 bundle。
总而言之,Macchina.io EDGE 是一个强大的物联网软件工具包,旨在简化边缘设备和网关的开发。凭借 JavaScript 和 C++ 的高级 API,它降低了复杂性,让开发者能够专注于自己的核心能力。该平台提供硬件无关性,便于在不同系统之间迁移,同时以小巧的资源占用提供高性能——非常适合高要求的应用。此外,它还支持遗留代码的现代化,帮助现有应用面向未来。
