当我读到这个问题时,我很喜欢这个问题。“它带我回来了”,正如灰胡子说的 :) TinyOS 在 2000 年“上市”——根据维基百科 的说法,在“物联网”这个词被创造出来大约一年之后。很久以前,在一个很远很远的星系里……好吧,说正事:
我相信您关于尘埃、TinyOS、NesC 等是否是“当今的好选择”的问题的答案是不合格的“是”。我会解释为什么。
我在 2003 年了解到 TinyOS;到那时它已经是一个相当成熟的系统,并被用于一些有趣的应用程序中。“Motes”是硬件的术语,如“远程传感器”。每个尘埃都有一个处理器、一个电池、一个收音机(不是WiFi)和某种传感器。前三个组件在各种微尘中很常见,而传感器通常是应用所特有的;光、热、磁场等。如果您对细节感兴趣,已经发表了许多论文(主要是学术论文和冗长的论文),这些论文记录了 TinyOS 的设计……这是我喜欢的一篇。
作为一个系统,TinyOS 和 mote 旨在以极其匮乏的资源完成一个目标。例如:
- TinyOS 占用了大约 400 字节的内存;典型应用程序 12-16 kB。
- TinyOS 在微型 8 位微控制器上运行;例如 Atmel 的 AT-90L、TI 的 MSP430 和来自 Microchip 的更现代的 ATtiny9。
- 与传统应用程序相比,NesC 代码更像是“内核”的一部分;系统效率需要这种方法。
- 低占空比和迎合节能的系统架构使电池能够使用一年或更长时间(当然取决于应用)。
将传感器数据从可能从飞机上以自由落体方式掉落到极其恶劣的操作环境中的广泛分散的微粒传送到其最终目的地,需要巧妙的路由算法。因此,“灵活性”是 TinyOS 通信堆栈设计的关键驱动因素。因此,不需要现有的通信基础设施。这当然是既赋予权力又具有挑战性的。开发了许多路由协议,开源许可鼓励采用和修改这些协议。
至于 TinyOS 被放弃或停滞不前,我认为情况并非如此。在TinyOS的GitHub库显示最近的活动,并表明它得到维护和照顾后。也就是说,TinyOS 永远不会吸引“将电子和软件作为一种爱好”的人群。直到最近 Arduino 和 Raspberry Pi 变得流行时才真正存在的人群。
这让我在这个对你发人深省的问题的精心“回答”中指出了这一点。我不认为有一个简单的、实事求是的答案。我认为该答案归结为:我们人类是多如羊或旅鼠比我们愿意相信。Raspberry Pi、Arduino 等产品吸引了大量关注小工具交易者的好奇心和收入,但这与它们对特定应用程序的适用性几乎或没有任何关系。我并不是建议为每个新问题重新发明轮子,但同时,一个(或两个)尺寸并不适合所有人。为工作使用正确的工具。
我从你的问题中知道你明白这一点,但也许没有这样想过。坦率地说,我也没有,直到你的问题震动了一些松动的石头。所以是的,我认为您仍然可以使用 TinyOS 构建一些非常优雅的东西,但是您可能需要使用较少的支持资源来完成它。或者,也许将来会有“TinyOS Stack Exchange”?哈哈 - 不要屏住呼吸:)
我会以这样的方式结束:“真相往往是我们的看法;你听到了你想听到的,相信了你想相信的。”
附录:
当您考虑如何构建您的设备并将它们聚合到系统中时,Phil Levis 在这个简短的视频中提供了一些值得深思的内容。
至于支持 TinyOS 开发的资源,这里有一些我在研究我的“答案”时发现的: