Flutter控制WLED设备插件wled_cli的使用
WLED CLI #
🚧 注意! 当前版本正在积极开发中,公共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
更多关于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'),
),
],
),
),
);
}
}