< >
Home » Farmbot开发入门教程 » farmbot开发入门教程-高层概述

farmbot开发入门教程-高层概述

说明:

  • 介绍FarmBot 软件的每个组件如何组合在一起

请输入图片描述

  • 下表粗略概述了 FarmBot 软件系统的代码库及其开发语言。实际上,没有人需要了解所有这些语言;所需的实际工具集将根据您要执行的任务而有所不同

    固件:C++
    FarmBot 操作系统:灵丹妙药
    休息 API:Ruby on Rails
    Web 应用程序:ReactJS、Typescript 和 WebPack

硬件和物理外围设备

  • Farmbot 使用物理传感器和执行器与其环境进行交互。这需要在物理花园和软件层之间架起一座桥梁。

  • 固件是负责与现实世界交互的软件。基于 Arduino 的微控制器运行固件并执行传感器和执行器命令。当 FarmBot 打开水阀或探测土壤湿度时,就会看到这样的示例。设备固件直接告诉这些外围设备何时以及如何运行。系统的其他部分可以通过向固件发送命令来请求访问外围设备。

  • 固件包的功能范围在设计上是有限的。它是一个高度专业化的软件组件。它不是为开发人员的可扩展性而设计的。Farmbot的微控制器提供了出色的外围设备处理能力,但存在性能缺陷。对于任何需要超过几千字节内存的任务来说,它也是一个糟糕的主机。

  • 由于这些原因,第三方定制最好在FarmBot OS或Web 应用程序(如下所述)中处理

日常运营和花园管理

  • Arduino 缺乏内存和处理非硬件任务的能力。为了克服这些限制,Farmbot 还包含一个Raspberry Pi 单板计算机。Raspberry Pi 提供更大的内存、CPU 和网络外围设备。FarmBot OS是一个嵌入式操作系统,它在 Raspberry Pi 上运行,用于管理以下任务:

    • 向最终用户和REST API传达消息(例如报告或传感器数据)。
    • 执行设备级安全功能。
    • 维护和执行工作计划。
    • 接受来自用户和设备外软件包的传入远程过程调用。
  • FarmBot OS 对于以下操作特别有用:

    • 需要持续执行,即使在网络丢失的情况下。
    • 对网络延迟的容忍度很低或者没有。

数据存储和云

  • Raspberry Pi 为许多任务提供了足够的处理能力。与 Arduino 非常相似,它也存在一些设计上的权衡。最值得注意的问题是数据完整性和可用性。离线时无法访问设备上的数据。设备还可能出现意外断电和电涌,从而损坏板载 SD 卡。此外,即使设备处于离线状态,也必须发生某些事件,例如电子邮件警报。

  • 正是由于这些原因,FarmBot 无法 100% 自主运行。为了缓解数据完整性和可用性问题,该设备与始终在线的 Web 服务器(通常称为“Web 应用程序”)协同工作。

  • 该 Web 应用程序在一个包中包含三个核心组件:

    • 用于数据库、用户和设备之间消息传递的实时消息代理
    • 用于最终用户设备控制的图形用户界面
    • 用于数据存储和访问的 REST API
  • 下表列出了常见的 FarmBot 用例及其适当的软件包。

  • 常见组件用例

    长期数据存储:REST API
    设备离线时远程管理设备:Web 应用程序和REST API
    管理设备和帐户数据:Web 应用程序和REST API
    为执行器供电:固件
    重复任务:FarmBot 操作系统
    长时间运行的操作,例如浇水序列:FarmBot 操作系统

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none