这是我已经思考了一段时间的主题,尤其是因为“ IoT”概念最近一直在浮动。
我将从说“ IoT”的意思开始。我知道物联网这个词可能有不同的含义,有时会被滥用。它可能是一个没有明确定义的术语,并且可能引起围绕其确切含义的广泛讨论,我自己也不知道该术语的正确和广泛接受的定义。因此,对我来说,物联网是一个概念,它定义了从另一个嵌入式设备或从手机通过Internet远程连接到嵌入式设备的能力。就如此容易。
在这种情况下,连接的目的无关紧要,如果您可以将办公室中的一台设备与家里的另一台设备连接在一起,或者可以通过手机通过电话连接到家里的一台设备,那么我们在谈论的是物联网设备(嵌入式设备,而不是电话)。
因此,在就物联网的含义达成共识之后,现在我将描述我要实现的目标。
我想要实现的正是我在IoT定义中描述的内容。
我想在家中通过以太网或wifi将一个或几个嵌入式设备连接到我的Internet路由器,并能够与远程位置上的另一个嵌入式设备远程连接到它们(而远程是指不在同一网络上)也许还可以通过我手机上的监控应用程序连接到他们
例如,我可能有一个简单的嵌入式设备,用作挂在车库门开启器上的开/关开关,而另一个嵌入式设备则在工作中用作办公桌上的红色大按钮,这样我就可以按下办公桌上的红色按钮车库门打开。
另一个示例是拥有一个具有ADC功能的嵌入式设备,该设备可以监视我的房屋的温度,并在达到阈值时向我发送警报。通知可以通过一个简单的android应用程序接收,也可以通过另一个有小屏幕的嵌入式设备接收,该设备坐在我工作的桌子上。
这些示例可能很愚蠢,但只是为了说明我尝试实现的可能方案和用例。最后,想法是一样的,通过互联网将一个嵌入式设备连接到另一个嵌入式设备。
需要澄清的另一件事是,这些设备之间的数据交换非常轻巧,每次只需几个字节,而无需在设备之间交换数百千字节。
此外,我所指的“嵌入式设备”是基于100MHz或200MHz cortex-m4微控制器的简单但功能强大的设备。这一点很重要,因为在这些设备上不会运行任何Linux或复杂的库。最后,这是浪费资源,完全没有必要拥有运行Linux的强大处理器来打开和关闭灯泡。无论如何,我计划使用BeagleBoard,Raspberry Pi或类似的任何其他板作为嵌入式设备。只是微控制器,因为没有比这更多的复杂性了。
我对物联网平台以及那些复杂的解决方案了解不多。当我开始寻找通过互联网将一个嵌入式设备与另一个嵌入式设备连接的方法时,我偶然发现了两个具有IoT服务的站点。
我知道有一些物联网云服务,例如:
仅举几个。这些方面的主要问题是成本和复杂性。您必须付费才能获得这些服务,还必须学习如何实现它们拥有的所有服务,以防万一您需要它们,以及它们的API以及可能对我来说似乎不是必需的其他一些东西只能在设备之间交换一些字节。我只想要比这更简单的东西,我可以自己做。
您可能会说,实现我自己的“云”(如果这是我必须要做的)并不简单,有时为了简单起见,最好使用这些类型的服务,但是有两个主要原因我想知道如何实施我自己的物联网服务。
主要原因是我想自己做。我不想依靠第三方来将我的设备彼此连接,并且由于我将为我的设备开发代码和硬件,所以最好也创建自己的方法将它们作为物联网设备连接。
第二个原因是学习如何做。通过了解实现此目标所需的所有必要条件,我将对物联网世界有了更好的了解。
另外,我想提一下,我精通C语言,在工作中和在家中都将Linux用作日常操作系统,因此请避免使用Windows,因为这对我没有用。我不担心必须为嵌入式设备或Linux在C中实现任何东西来实现我的目标所需的任何东西。
因此,我的问题是,为了实现两个或更多嵌入式设备之间的数据交换,必须实现什么功能以及在何处实现互连?
这个问题我可以用什么在我们自己的服务器上创建物联网?具有相似但封闭且没有任何答案的条件,还假定要使用现有的云基础架构。所以这对我没有帮助。
另一篇文章哪些IoT服务可用于在云中存储/发送/发布通用数据?有一个类似的问题,但是OP明确要求提供IoT服务,而我试图避免这种情况。