Dies ist ein Thema, über das ich eine Weile nachgedacht habe, vor allem, weil das "IoT" -Konzept in letzter Zeit viel im Umlauf war.
Ich werde mit dem beginnen, was ich meine, wenn ich "IoT" sage . Ich weiß, dass der Begriff IoT verschiedene Bedeutungen haben kann und dass er manchmal missbraucht wird. Es könnte ein Begriff sein, der nicht klar definiert ist und zu großen Diskussionen darüber führen kann, was es genau bedeutet. Ich selbst kenne die richtige und allgemein akzeptierte Definition des Begriffs nicht. Für mich ist IoT also ein Konzept, das die Möglichkeit definiert, eine Remote-Verbindung zu einem eingebetteten Gerät über das Internet entweder von einem anderen eingebetteten Gerät oder von einem Mobiltelefon aus herzustellen . So einfach ist das.
In diesem Zusammenhang spielt der Zweck der Verbindung keine Rolle, ob Sie ein Gerät in Ihrem Büro mit einem anderen zu Hause verbinden können oder ob Sie von Ihrem Handy aus eine Verbindung zu einem Gerät zu Hause herstellen können, und zwar über das Internet. Dann sprechen wir über IoT-Geräte (die eingebetteten Geräte, nicht das Telefon).
Nachdem ich mich darauf geeinigt habe, was ich unter IoT verstehe, werde ich nun beschreiben, was ich erreichen möchte.
Was ich versuche zu erreichen, ist genau das, was ich in meiner Definition von IoT beschreibe.
Ich möchte ein oder mehrere eingebettete Geräte zu Hause über Ethernet oder WLAN mit meinem Internet-Router verbinden und mit anderen eingebetteten Geräten an einem Remotestandort eine Remoteverbindung herstellen können (und mit Remote meine ich, nicht im selben Netzwerk). und vielleicht auch, um mit einer Überwachungs-App auf meinem Handy eine Verbindung zu ihnen herzustellen
Beispielsweise kann ein einfaches eingebettetes Gerät als Ein- / Ausschalter an meinem Garagentoröffner angeschlossen sein und ein anderes eingebettetes Gerät als großer roter Knopf an meinem Schreibtisch, damit ich den roten Knopf an meinem Schreibtisch drücken kann und das garagentor öffnet sich.
Ein anderes Beispiel wäre ein eingebettetes Gerät mit ADC-Funktionen, das die Temperatur meines Hauses überwachen und mir eine Warnung senden kann, wenn es einen Schwellenwert erreicht. Die Benachrichtigung kann entweder über eine einfache Android-App oder über ein anderes eingebettetes Gerät mit einem kleinen Bildschirm auf meinem Schreibtisch bei der Arbeit empfangen werden.
Diese Beispiele mögen albern sein, dienen aber nur der Veranschaulichung der möglichen Szenarien und Anwendungsfälle für das, was ich erreichen möchte. Am Ende ist die Idee dieselbe, ein eingebettetes Gerät über das Internet mit einem anderen zu verbinden.
Eine andere Sache, die klargestellt werden muss, ist, dass der Datenaustausch zwischen diesen Geräten sehr gering sein wird, nur ein paar Bytes jedes Mal, es sind nicht Hunderte von Kilobytes erforderlich, um zwischen Geräten ausgetauscht zu werden.
Außerdem sind die "eingebetteten Geräte", auf die ich mich beziehe, einfache, aber leistungsfähige Geräte, die auf 100-MHz- oder 200-MHz-Cortex-m4-Mikrocontrollern basieren. Dies ist wichtig zu klären, da auf diesen Geräten keine Linux- oder komplexen Bibliotheken ausgeführt werden. Am Ende ist eine solche Verschwendung von Ressourcen und völlig unnötig, um einen leistungsstarken Prozessor unter Linux zu haben, nur um eine Glühbirne ein- und auszuschalten . Auf jeden Fall plane ich, ein BeagleBoard, Raspberry Pi oder ein anderes Board wie dieses als meine eingebetteten Geräte zu verwenden. Nur Mikrocontroller, weil nicht mehr Komplexität erforderlich ist.
Ich weiß nicht viel über IoT-Plattformen und solche komplexen Lösungen. Als ich mich auf die Suche nach einer Möglichkeit machte, ein eingebettetes Gerät über das Internet mit einem anderen zu verbinden, stieß ich auf einige Websites mit IoT-Diensten.
Ich weiß, dass es einige IoT-Cloud-Dienste gibt, z.
Nur um ein paar zu nennen. Die Hauptprobleme dabei sind Kosten und Komplexität. Sie müssen bezahlen, um diese Dienste zu erhalten, und Sie müssen lernen, wie Sie alle Dienste implementieren, die sie haben, falls Sie sie alle benötigen, und ihre APIs und möglicherweise eine Reihe anderer Dinge, die mir nicht notwendig erscheinen in der Lage, nur einige Bytes zwischen Geräten auszutauschen. Ich möchte nur etwas Einfacheres als das, etwas, das ich selbst tun kann.
Sie können sagen, dass das Implementieren meiner eigenen "Cloud", wenn ich das tun muss, nicht einfach ist und es manchmal besser ist, diese Art von Diensten der Einfachheit halber zu verwenden, aber es gibt zwei Hauptgründe, warum ich wissen möchte, wie es geht Implementieren Sie meine eigenen IoT-Dienste.
Der Hauptgrund ist, dass ich es selbst machen will. Ich möchte mich nicht darauf verlassen, dass Dritte meine Geräte miteinander verbinden, und da ich den Code und die Hardware für meine Geräte entwickeln werde, ist es besser, meine eigenen Mittel zu erstellen, um sie als IoT-Geräte zu verbinden.
Der zweite Grund ist zu lernen, wie man es macht. Wenn ich alle notwendigen Dinge kenne, um dies zu erreichen, kann ich die IoT-Welt besser verstehen.
Außerdem möchte ich erwähnen, dass ich C beherrsche und Linux sowohl bei der Arbeit als auch zu Hause als Alltagsbetriebssystem verwende. Vermeiden Sie daher Windows, da dies für mich nutzlos ist. Ich habe keine Angst vor irgendetwas, das ich in C für meine eingebetteten Geräte oder unter Linux implementieren muss, um alles zu implementieren, was zum Erreichen meines Ziels erforderlich ist.
Meine Frage ist also, was muss implementiert werden und wo müssen zwei oder mehr eingebettete Geräte miteinander verbunden werden, um Daten zwischen ihnen auszutauschen?
Diese Frage Was kann ich verwenden, um ein IoT auf unserem eigenen Server zu erstellen? habe etwas ähnliches aber ist geschlossen und hat keine antworten, setzt auch voraus, dass eine bereits vorhandene cloud infrastruktur genutzt wird. Also hilft es mir nicht.
Dieser andere Beitrag Welche IoT-Dienste stehen zum Speichern / Senden / Veröffentlichen von allgemeinen Daten in der Cloud zur Verfügung? hat eine ähnliche Frage, aber das OP fragt ausdrücklich nach IoT-Diensten und ich versuche, diese zu vermeiden.