Flutter控制WLED设备插件wled_cli的使用

WLED CLI #

Pub Version

🚧 注意! 当前版本正在积极开发中,公共API可能会在1.0发布之前多次更改。 🚧

使用 wled 包。

变更日志 #

查看 CHANGELOG.md

用法 #

🚧 待定 🚧

命令 #

切换: wled_cli toggle <host>

路线图 #

🚧 待定 🚧

示例 #

以下是一个完整的示例,展示如何使用Flutter和wled_cli插件来控制WLED设备。

步骤1: 添加依赖 #

在您的pubspec.yaml文件中添加wled_cli依赖:

dependencies:
  wled_cli: ^0.1.0

步骤2: 导入库 #

在您的Dart文件中导入wled_cli包:

import 'package:wled_cli/wled_cli.dart';

步骤3: 创建一个函数来切换LED #

创建一个函数来调用wled_cli的toggle命令:

Future<void> toggleLed(String host) async {
  try {
    await WledCli.toggle(host);
    print('LED toggled successfully.');
  } catch (e) {
    print('Error toggling LED: $e');
  }
}

步骤4: 调用函数 #

在您的主函数中调用此函数,并传递WLED设备的主机地址:

void main() async {
  // 替换为您的WLED设备的实际主机地址
  String host = 'http://192.168.1.100';

await toggleLed(host); }


更多关于Flutter控制WLED设备插件wled_cli的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter控制WLED设备插件wled_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


wled_cli 是一个用于控制 WLED 设备的 Flutter 插件。WLED 是一个用于控制 WS2812B 和其他基于 APA102/SK6812 的 LED 条的开源固件。wled_cli 插件允许你在 Flutter 应用中通过命令行接口与 WLED 设备进行交互。

安装 wled_cli 插件

首先,你需要在 pubspec.yaml 文件中添加 wled_cli 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  wled_cli: ^0.1.0  # 请检查最新版本

然后运行 flutter pub get 来安装依赖。

使用 wled_cli 插件

以下是一个简单的示例,展示如何使用 wled_cli 插件来控制 WLED 设备。

import 'package:flutter/material.dart';
import 'package:wled_cli/wled_cli.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: WLEDControlScreen(),
    );
  }
}

class WLEDControlScreen extends StatefulWidget {
  [@override](/user/override)
  _WLEDControlScreenState createState() => _WLEDControlScreenState();
}

class _WLEDControlScreenState extends State<WLEDControlScreen> {
  final WLEDCli wledCli = WLEDCli();
  String _deviceIp = '192.168.1.100'; // 替换为你的 WLED 设备 IP 地址

  Future<void> _togglePower() async {
    try {
      await wledCli.togglePower(_deviceIp);
      print('Power toggled');
    } catch (e) {
      print('Failed to toggle power: $e');
    }
  }

  Future<void> _setBrightness(int brightness) async {
    try {
      await wledCli.setBrightness(_deviceIp, brightness);
      print('Brightness set to $brightness');
    } catch (e) {
      print('Failed to set brightness: $e');
    }
  }

  Future<void> _setColor(Color color) async {
    try {
      await wledCli.setColor(_deviceIp, color);
      print('Color set to $color');
    } catch (e) {
      print('Failed to set color: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('WLED Control'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: _togglePower,
              child: Text('Toggle Power'),
            ),
            Slider(
              value: 128,
              min: 0,
              max: 255,
              onChanged: (value) {
                _setBrightness(value.toInt());
              },
            ),
            ElevatedButton(
              onPressed: () => _setColor(Colors.red),
              child: Text('Set Color to Red'),
            ),
            ElevatedButton(
              onPressed: () => _setColor(Colors.blue),
              child: Text('Set Color to Blue'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部