通过浇水植物项目学习物联网的第一步

物联网 树莓派 aws-iot 阿杜伊诺
2021-06-01 16:16:47

我是一名经验丰富的开发人员,我想从一个小项目开始学习 IoT。自动给我家的植物浇水。

以下是要求:

  • 该项目是为了学习目的
  • 一定很简单
  • 它应该很容易扩展(如果我想买一个新工厂,我应该买一个新的传感器)
  • 现在,我想我只关心水分数据
  • 当水分含量过低时,它会将水泵入植物中
  • 安装应该是离散的。我喜欢植物,不想把它们变成一个巨大的技术可见装置
  • 我想用 Python 或 JS 编码。如果可能,我不想用 C 或 C++ 编码。
  • 我在 AWS 上效率很高,所以如果 AWS IoT 能给我带来一些有价值的东西,我想使用它。
  • 如果可能,简单的学习曲线
  • 可选 - 移动仪表板 - 我看到了blynk,我可能应该使用它,但这部分是我所知道的,所以应该不会那么难。

我应该使用 Arduino 还是 RasperryPi?

我应该使用什么样的架构?

或者基本上,知道我应该阅读什么,我应该从哪里开始?

1个回答

这是一个非常笼统的问题,答案主要取决于您现有的技能,以及您是否希望进行可能与商业相关的开发。根据您希望提前计划学习的程度,您可能希望从简单开始,并在进行过程中升级架构/实现。

平台

如果您想专注于高级软件,则 SBC(Pi 或类似产品)非常有用。这个问题解决了使用 SBC 和 MCU 会呈现不同体验的一些原因。SBC 相当耗电,可能没有内置短距离连接。

有内置 WiFi 或 BLE 的小型 mcu 板,它们更适合电池供电操作。MCU 板可以用 python 编码,micro:bit 有蓝牙并支持micropython(但如果你这样使用它可能不会很好地优化超低功耗)。

如果您关心制作一个安全的平台(现在或将来),那么您可能还会关心拥有安全的片上存储器、良好的熵源等。

建筑学

“多节点,一个集线器/网关”方法适用于电池供电的设备。您可以拥有一系列电池供电/短距离设备(网状或其他方式),与中央 SBC 设备进行通信。SBC 处理您的 WAN/云接口以及一些必要的独立功能。

如果您使每个节点成为对等节点(具有 wifi/WAN 访问权限),那么您只需要编写一个软件堆栈,但它更复杂,并且您最终将依赖 LAN 进行任何通信——因此断电操作是不可能的。

澄清设备的类型:

SBC单板计算机,树莓派是最常见的。这些可以运行 linux,也可以是 NAS、WiFi 路由器、智能家居设备或运行一些软件来处理自动化任务的手机/平板电脑。

MCU一类更广泛的设备,不一定在处理能力上显着降低,但更有可能运行实时操作系统,并且更有可能使用事件驱动编程。有许多小型评估板、WiFi 或蓝牙模块以及一些备用周期,以及像teensy系列这样的专用小型板MCU 可能更适合与某些类型的传感器接口,并且通常具有多种可用接口(甚至是显示器)。