Dies ist eine sehr weit gefasste Frage, aber ich werde versuchen, einige allgemeine Hinweise zu geben, die hoffentlich sowohl für andere als auch für Sie nützlich sind (bitte nehmen Sie meine Entschuldigung an, wenn ich Dinge poste, die Sie bereits kennen).
Wenn Sie nach Lesesensoren fragen, ist dies Telemetrie und nicht unbedingt IoT. Ich habe viele Projekte codiert, bei denen ein eigenständiger PC einige Messwerte liest und anzeigt.
Wenn Sie auch die angeschlossene Hardware steuern möchten, ist dies SCADA . Auch hier muss es nicht unbedingt mit dem Internet verbunden sein.
Hier ist ein Diagramm von SCADA, das ein sehr gutes Gefühl für das IoT im Allgemeinen vermittelt. Beachten Sie, dass die SPS im Diagramm Sensoren und Steuerungen von IoT-fähigen Geräten sind.
Unter Hardware-Empfehlungen können Sie Hardware-Empfehlungen für Sensoren und Controller anfordern .
Sobald Sie Code haben, können Sie sich bei Stack Overflow über Probleme beraten lassen .
Im Allgemeinen umfasst IoT für die Industrie das Client / Server-Modell, wobei der Client Hardwaregeräte misst / steuert und Befehle an den Server meldet / von diesem empfängt. Der Server verfügt im Allgemeinen auch über eine Datenbank und ermöglicht die Erstellung von Berichten für Verwaltung und Alarme (und weist die Remote-Hardware möglicherweise an, basierend auf den empfangenen Daten eine Neukonfiguration / ein Herunterfahren durchzuführen).
Puh! Das ist das Intro aus dem Weg. Nun, um uns die Hände schmutzig zu machen.
Wenn Sie sich mit dem Codieren befassen möchten, schauen Sie sich die Sockets an und verstehen Sie den Unterschied zwischen TCP und UDP .
Glücklicherweise haben die Jahrzehnte die meisten kniffligen Dinge in Bibliotheken verpackt, und Sie sollten sich am besten über RESTful-Services informieren. Abhängig von Ihrer Sprache gibt es zahlreiche kostenlose Online-Tutorials, Kurse und Videos. C ist eine traditionelle eingebettete Sprache, einige verwenden C ++, aber verwenden Sie natürlich alles, was Sie kennen / sich wohl fühlen. Python ist sehr beliebt und einfach zu erlernen sowie die empfohlene Sprache für den Raspberry Pi.
Persönlich ziehe ich kompilierte Sprachen der Interpretation vor, da es einfacher ist, die Fehler zu beseitigen, aber die Wahl liegt ganz bei Ihnen. Stellen Sie nur sicher, dass der Zugriff auf Peripheriegeräte über USB, Ethernet und - in der Industrie immer noch sehr verbreitet - serielle Schnittstelle gut unterstützt wird.
Auf der Serverseite laufen immer noch 90% der Server der Welt auf PHP. Es gibt jedoch eine Akzeptanz bei der Verwendung von NodeJS, hauptsächlich von Leuten, die Browser-Apps codieren, was derzeit nur in JavaScript möglich ist und keine zwei Sprachen lernen möchte. Ich empfehle nicht, browserbasierte IoT-Apps zu entwickeln, da der Zugriff auf das Dateisystem und die Peripheriegeräte durch den Browsercode eingeschränkt ist (ich würde jedoch Cordova erwähnen , wenn Sie für Smartphones entwickeln möchten).
Zu Beginn würde ich einen Raspberry Pi empfehlen (Codierung in Python oder C).
Und ich empfehle dringend einen Sensorhut. Dieser ist nur ein Beispiel, aber er ist nicht teuer und enthält
- Gyroskop - Winkelgeschwindigkeitssensor: +/- 245/500 / 2000dps Beschleunigungsmesser
- Linearbeschleunigungssensor: +/- 2/4/8/16 g
- Magnetometer - Magnetsensor: +/- 4/8/12/16
- Gauß-Barometer: 260 - 1260 hPa absoluter Bereich (Genauigkeit abhängig von Temperatur und Druck, +/- 0,1 hPa unter normalen Bedingungen)
- Temperatursensor (Temperaturgenauigkeit auf +/- 2 ° C im Bereich von 0 bis 65 ° C)
- Sensor für relative Luftfeuchtigkeit (genau auf +/- 4,5% im Bereich von 20-80% rH, genau auf +/- 0,5 ° C im Bereich von 15-40 ° C)
- 8x8 RGB LED Matrix Anzeige
- Kleiner 5-Tasten-Joystick
Auf diese Weise können Sie einige Daten sammeln und an Ihren Server melden. Möglicherweise finden Sie online einen kostenlosen Dienst zum Empfangen und Anzeigen Ihrer Daten. Ich habe einige auf einer anderen SO-Seite gesehen, aber vergiss wo.
Aber Sie möchten wahrscheinlich Ihren eigenen Server codieren. Ich würde PHP als Programmiersprache empfehlen. Für Linux sind Sie mit LAMP (Linux, Apache, MySQL & PHP) gut ausgestattet. Für Windows müssen Sie einen WAMP installieren (Windows usw.).
Sie können Ihre Wahl treffen. Ich benutze XAMPP seit über einem Jahrzehnt in industriellen Anwendungen. Sie müssen nicht haben zu Mysql verwenden, kann SQLite dienen genausogut (shaless Stecker für meine eigene Frage SO von 6 Jahren „ , SQLite oder MySQL? Wie entscheiden? „). Sie müssen auch etwas über CRUD lernen .
Basierend auf den vom Client / Sensor empfangenen Daten möchten Sie möglicherweise einen Befehl zurücksenden, auch nur einen einfachen (Anzeige: "Temperatur zu hoch", was möglicherweise zum Schließen eines Ventils in einem industriellen System führt).
Möglicherweise möchten Sie Alarme in Echtzeit auslösen (senden Sie eine E-Mail mit dem Hinweis, dass die Temperatur zu hoch ist).
Vielleicht möchten Sie auch über das Generieren von Berichten nachdenken. Beginnen Sie mit einer Tabelle mit den empfangenen Daten. Sie betrachten ein Diagramm oder etwas schickeres. Fügen Sie eine Option zum Exportieren in CSV ( Comma Separated Values ) hinzu, mit der der Endbenutzer die Daten zur weiteren Analyse und Bearbeitung in eine Tabelle importieren kann.
Wenn Sie sich für eine ausgefallene Berichterstellung entscheiden, können Sie dies in PHP tun, aber nach einigen Jahrzehnten bin ich nun dazu übergegangen, einen Großteil der Berichtsseite clientseitig im Browser auszuführen.
Verschaffen Sie sich einen Überblick über Single Page Applications und AJAX . Ich persönlich habe viel recherchiert und AngularJS von Google als meine Programmiersprache ausgewählt (es gibt viele Tutorials und großartige Unterstützung), aber Sie können einfach JS, Jquery usw. verwenden, wie Sie möchten.
Wenn Sie sich dazu entschließen, auch Browser- Inhalte zu codieren, und Sie möglicherweise auch NodeJs auf der Serverseite verwenden, müssen Sie nur eine neue Programmiersprache lernen.
Zu viele Möglichkeiten? Es tut uns leid :-(
Ich hoffe, dass dies Ihnen einige Ratschläge gegeben hat, aber Sie können gerne Fragen stellen und mich wissen lassen, ob hier allgemeine Ratschläge fehlen.