Flutter插件pigation的介绍与使用

Flutter插件pigation的介绍与使用

PiGation介绍

PiGation 是一个用于在 Raspberry Pi 上运行灌溉系统的 Web 服务器和前端。

PiGation 可以让你配置花坛和灯具,并将这些功能与 Raspberry Pi 上的一般 IO 引脚关联起来。

PiGation 是用 Dart 编写的,安装非常简单。

首先,在你的 Raspberry Pi 上安装 Dart。

一旦 Dart 安装完成,你就可以安装 PiGation。

注意: 你可以在任何 Linux 系统上运行一个测试系统,因为 PiGation 带有一个 IO 模拟器,该模拟器在非 Raspberry Pi 系统上仅会记录任何 IO 引脚更改。

dart pub global activate pigation
dart pub global activate dcli_sdk
sudo env PATH="$PATH" dcli install

根据 dcli 的说明将 ~/.dcli/bin 目录添加到你的路径中。

现在编译 PiGation。

dcli compile --package pigation

现在运行 PiGation 安装程序。这将会把 PiGation 安装到 /opt/pigation

作为安装的一部分,你需要决定是否使用 HTTP 或 HTTPS 来访问 PiGation。如果你想使用 HTTPS,则你的 PI 必须暴露在互联网上(使用 NAT),并且端口 80 和 443 必须开放。

如果你不明白如何配置 NAT,那么只需选择 HTTP 即可。

sudo env PATH="$PATH" pig

访问

PiGation 服务器包含嵌入式前端。

要访问 PiGation 前端,请从浏览器导航到你的 RiPI 的 IP 地址或完全限定域名。

http://mypi

如果你启用了 HTTPS,则:

https://mypi

Flutter插件pigation开始使用

首先,你需要将 GPIO 引脚连接到灌溉装置,你需要一个继电器设备来提供足够的功率来触发阀门。

硬件配置完成后,你需要定义端点和花坛。

一个端点会在 Pi 上为 GPIO 引脚创建一个命名映射。 一旦你定义了端点,你就可以进入并配置你的花坛。之后,你就可以开始给花园浇水了。

HTTPS

如果你选择了 HTTPS,服务器将在启动时尝试获取 Let’s Encrypt 证书,并且还会自动续订证书。

为了使用 HTTPS,必须满足以下要求:

  • 端口 80 和 443 必须对公共互联网开放。这通常需要在家庭路由器上配置 NAT。

  • 在安装 PiGation 时,你应该选择一个 ‘Staging’ 证书,直到成功获得证书。

  • 一旦你获得了 Staging 证书,你可以通过运行 sudo pig 并切换到 Live 证书来切换到 Live 证书。

部署

pig 安装程序会将其自身安装到 /opt/pigation

它还会安装一个 cron 作业,以便在你的 RiPi 重新启动时重启 PiGation 服务器。

发布

PiGation 使用 pub_release 发布到 pub.dev。

从 pig_server 根目录运行:

dart pub global activate pub_release
pub_release

配置

/opt/pigation/config/config.yaml 文件用于配置服务器。

安装过程中会基于你在安装期间的回答创建 config.yaml 文件。 如果需要修改配置,最好运行 sudo pig,因为该命令会使用新配置重启 PiGation 服务器。

开发

你需要为开发环境准备一个单独的 config.yaml 文件。

使用 位置
开发路径

以下是你的 开发 环境的一个示例:

password: XXXXXXXXXXX
path_to_static_content: /home/bsutton/git/pigation/pig_app/build/web
path_to_lets_encrypt_live: /opt/pigation/letsencrypt/live
fqdn: <your local ip>
domain_email: bsutton@onepub.dev
https_port: 10443  # 使用大于 1024 的端口
http_port: 1080
production: false
binding_address: 0.0.0.0
logger_path: console
设置 目的
password 用于验证前端应用的哈希密码
path_to_static_content 服务器查找网站静态内容的位置
path_to_lets_encrypt_live 存储 Let’s Encrypt 证书的位置
fqdn 你的网站的完全限定域名
domain_email 提交给 Let’s Encrypt 的电子邮件地址,以便发送更新通知和其他关键通信(我们确实会自动更新证书)
https_port 监听 HTTPS 请求的端口
http_port 监听 HTTP 请求的端口。此端口必须打开,因为它是由 Let’s Encrypt 获取证书所必需的
production 控制我们获取 Live 还是 Staging Let’s Encrypt 证书。你应该先将其设置为 false,直到你看到 IHAServer 成功获取证书。然后可以将设置更改为 ‘true’ 并重启 IAHServer 以获取 Live 证书。见下文获取更多信息
binding_address IAHServer 将监听的 IP 地址。使用 0.0.0.0 告诉 PIG 服务器监听所有本地地址。如果你使用特定地址,它必须是服务器上的本地地址。
logger_path 写日志消息的路径。如果你将此值设置为 ‘console’,日志消息会被打印到标准输出(控制台)。这在开发环境中很有用

开发中的证书

在你的开发环境中,你可能会被 NAT 隐藏。 为了测试证书的获取和续订,你需要将端口 443 和 80 从你的本地路由器转发到你的开发机器。

你需要一个具有真实域名和指向你路由器的公共 IP 的 A 记录的 DNS 服务器。

在 Linux 上,你需要让服务器使用高于 1024 的端口(如果你不是 root 用户,只能监听低于 1024 的端口 - 不推荐用于开发)。

建议:

  • 80 -> 8080
  • 443 -> 8443

你需要更改 config/config.yaml 中的端口设置以匹配你选择的端口号。

你应该一般情况下使用 Staging 证书进行测试,直到你确信你的配置和 NAT 已经正确设置。

本地运行服务

要调试 pig 服务器,你可以在你最喜欢的 IDE 中简单地启动 bin/pig.dart --server

在 Pi 上构建

dart pub global activate dcli_sdk
sudo env PATH="$PATH" dcli install
git clone https://github.com/bsutton/pig_server.git
dcli compile bin/pig.dart
sudo env PATH="$PATH" pig

发布到 pub.dev

PiGation 服务器旨在发布到 pub.dev 以简化安装。

我们使用 pub_release 来实现这一点。

dart pub global activate pub_release
pub_release

更多关于Flutter插件pigation的介绍与使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter插件pigation的介绍与使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,插件(plugin)是用于扩展Flutter应用程序功能的重要工具。通常,Flutter插件提供与平台相关(如Android、iOS)的功能,或者封装了一些复杂的逻辑,以便开发者可以轻松地在Flutter应用中使用。

你提到的“pigation”插件,似乎并不是Flutter官方或社区中广泛使用的插件。可能是因为拼写错误,或者是一个较少人知的插件。为了更好地帮助你,我将提供一些步骤来探索和使用未知的Flutter插件。

1. 确认插件名称

首先,确认插件的名称是否正确。你可以尝试在 pub.dev 上搜索“pigation”,看看是否有相关的插件。如果找不到,可能是拼写错误,或者插件并未发布到pub.dev。

2. 查找插件的源代码

如果插件未发布到pub.dev,你可以尝试在GitHub或其他代码托管平台上搜索该插件的源代码。通常,开发者会将插件的代码托管在GitHub上,并附带使用说明。

3. 阅读插件的文档

一旦你找到插件的源代码,仔细阅读其README文件或文档。文档通常会提供插件的安装步骤、基本用法、API参考等信息。

4. 安装插件

如果插件发布在pub.dev上,你可以在pubspec.yaml文件中添加依赖项来安装插件。例如:

dependencies:
  pigation: ^1.0.0  # 假设插件的版本是1.0.0

如果插件未发布到pub.dev,你可以通过Git仓库来添加依赖项:

dependencies:
  pigation:
    git:
      url: https://github.com/yourusername/pigation.git
      ref: main  # 或者具体的分支或标签

5. 导入和使用插件

在Flutter项目中,你需要在Dart文件中导入插件,然后根据文档中的说明使用它。例如:

import 'package:pigation/pigation.dart';

void main() {
  // 使用插件的功能
  Pigation.doSomething();
}
回到顶部