Ich habe diese Frage geliebt, als ich sie gelesen habe. "Es bringt mich zurück", wie die Graubärte sagen :) TinyOS "ging an die Börse" im Jahr 2000 - laut Wikipedia etwa ein Jahr, nachdem der Begriff "Internet der Dinge" geprägt wurde . Vor langer Zeit, in einer weit entfernten Galaxie ... OK, zur Sache:
Ich glaube, die Antwort auf Ihre Frage, ob Motive, TinyOS, NesC usw. "heutzutage gute Optionen" sind oder nicht, ist ein uneingeschränktes "Ja" . Ich werde erklären warum.
Ich habe 2003 von TinyOS erfahren. Zu diesem Zeitpunkt war es bereits ein ziemlich ausgereiftes System, das in einigen interessanten Anwendungen verwendet wurde. "Motes" ist ein Begriff für die Hardware, wie bei "Remote Sensor". Jeder Mote hatte einen Prozessor, eine Batterie, ein Radio ( kein WiFi) und eine Art Sensor. Die ersten drei Komponenten waren für eine Vielzahl von Motiven gleich, während der Sensor im Allgemeinen für die Anwendung spezifisch war. Licht, Wärme, Magnetfelder usw. Wenn Sie an Details interessiert sind, wurden zahlreiche (meist akademische und wortreiche) Artikel veröffentlicht, die das Design von TinyOS dokumentieren ... hier ist einer, den ich mag.
Als System wurden TinyOS und das Mote entwickelt, um ein Ziel mit äußerst knappen Ressourcen zu erreichen. Zum Beispiel:
- TinyOS belegte ungefähr 400 Byte Speicher; eine typische Anwendung 12-16 kB.
- TinyOS läuft auf winzigen 8-Bit-Mikrocontrollern. zB Atmels AT-90L, TIs MSP430 und der modernere ATtiny9 von Microchip .
- NesC-Code ähnelt eher einem Teil des Kernels als einer herkömmlichen Anwendung. Die Systemeffizienz erforderte diesen Ansatz.
- Niedrige Arbeitszyklen und eine Systemarchitektur, die auf Energieeinsparung ausgerichtet war, ermöglichten eine Lebensdauer der Batterien von einem Jahr oder länger (natürlich anwendungsabhängig).
Die Lieferung von Sensordaten an ihr endgültiges Ziel aus breit gestreuten Motiven, die von einem Flugzeug im freien Fall in eine extrem feindliche Betriebsumgebung fallen gelassen werden könnten, erforderte clevere Routing-Algorithmen. "Flexibilität" war somit der Haupttreiber beim Design des TinyOS-Kommunikationsstacks. Folglich wird keine vorhandene Kommunikationsinfrastruktur benötigt. Dies ist natürlich sowohl ermächtigend als auch herausfordernd. Eine Reihe von Routing-Protokollen wurde entwickelt, und die Open-Source-Lizenzierung ermutigte zur Annahme und Änderung dieser Protokolle.
Soweit TinyOS aufgegeben wird oder stagniert, glaube ich nicht, dass dies der Fall ist. Das TinyOS GitHub-Repo zeigt die letzten Aktivitäten an und schlägt vor, dass es gewartet und gepflegt wird . Trotzdem würde TinyOS niemals die "Elektronik-und-Software-als-Hobby" -Menge anziehen. Eine Menge, die es bis vor kurzem nicht wirklich gab, als Arduino und Raspberry Pi populär wurden.
Und das bringt mich in dieser ausführlichen "Antwort" auf Ihre zum Nachdenken anregende Frage auf den Punkt. Ich glaube nicht, dass es eine sachliche Antwort gibt. Ich denke, die Antwort lautet: Wir Menschen sind eher wie Schafe oder Lemminge, als wir gerne glauben. Raspberry Pi, Arduino usw. sind Produkte, die bei denjenigen, die mit Gadgets arbeiten, große Anhänger der Neugier und des Umsatzes angezogen haben, aber wenig oder gar nichts mit ihrer Eignung für eine bestimmte Anwendung zu tun haben. Ich schlage nicht vor , dass man das Rad für jedes neue Problem neu erfindet, aber gleichzeitig passen eine (oder zwei) Größen nicht für alle. Verwenden Sie das richtige Werkzeug für den Job.
Ich weiß aus Ihrer Frage, dass Sie das verstehen, aber vielleicht nicht so darüber nachgedacht haben. Ehrlich gesagt hatte ich es auch nicht getan, bis Ihre Frage einige lose Steine erschütterte. Ja, ich denke, Sie können mit TinyOS immer noch einige sehr elegante Dinge erstellen, aber Sie müssen dies möglicherweise mit weniger Supportressourcen tun. Oder gibt es in Zukunft vielleicht einen "TinyOS Stack Exchange"? Ha ha - halte nicht den Atem an :)
Ich werde damit schließen: „Die Wahrheit ist oft das, was wir daraus machen; du hast gehört, was du hören wolltest, hast geglaubt, was du glauben wolltest. “
Nachtrag:
Während Sie darüber nachdenken, wie Sie Ihre Geräte bauen und zu Systemen zusammenfassen können, bietet Phil Levis in diesem kurzen Video einige Denkanstöße.
Und was Ressourcen zur Unterstützung der TinyOS-Entwicklung angeht, hier einige, die ich bei der Recherche meiner "Antwort" hier gefunden habe: