commit
b2c1eadbf3
@ -0,0 +1,64 @@
|
|||||||
|
from flask import Flask, request, jsonify
|
||||||
|
from gpiozero import LED
|
||||||
|
import time
|
||||||
|
|
||||||
|
# 初始化 LED 对象
|
||||||
|
cpu_red = LED(16)
|
||||||
|
cpu_green = LED(20)
|
||||||
|
|
||||||
|
memory_red = LED(13)
|
||||||
|
memory_green = LED(19)
|
||||||
|
|
||||||
|
disk_red = LED(18)
|
||||||
|
disk_green = LED(15)
|
||||||
|
|
||||||
|
# 创建 Flask 应用
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route('/led', methods=['GET'])
|
||||||
|
def control_led():
|
||||||
|
# 获取请求参数
|
||||||
|
led_type = request.args.get('type')
|
||||||
|
color = request.args.get('color')
|
||||||
|
|
||||||
|
# 根据 type 和 color 控制不同的 LED
|
||||||
|
if led_type == 'cpu':
|
||||||
|
if color == 'red':
|
||||||
|
cpu_red.on()
|
||||||
|
cpu_green.off()
|
||||||
|
elif color == 'green':
|
||||||
|
cpu_red.off()
|
||||||
|
cpu_green.on()
|
||||||
|
else:
|
||||||
|
return jsonify({'status': 'error', 'message': 'Invalid color'}), 400
|
||||||
|
|
||||||
|
elif led_type == 'memory':
|
||||||
|
if color == 'red':
|
||||||
|
memory_red.on()
|
||||||
|
memory_green.off()
|
||||||
|
elif color == 'green':
|
||||||
|
memory_red.off()
|
||||||
|
memory_green.on()
|
||||||
|
else:
|
||||||
|
return jsonify({'status': 'error', 'message': 'Invalid color'}), 400
|
||||||
|
|
||||||
|
elif led_type == 'disk':
|
||||||
|
if color == 'red':
|
||||||
|
disk_red.on()
|
||||||
|
disk_green.off()
|
||||||
|
elif color == 'green':
|
||||||
|
disk_red.off()
|
||||||
|
disk_green.on()
|
||||||
|
else:
|
||||||
|
return jsonify({'status': 'error', 'message': 'Invalid color'}), 400
|
||||||
|
|
||||||
|
else:
|
||||||
|
return jsonify({'status': 'error', 'message': 'Invalid type'}), 400
|
||||||
|
|
||||||
|
# 返回成功的 JSON 响应
|
||||||
|
return jsonify({'status': 'success', 'message': f'{led_type} light turned {color}'}), 200
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
# 启动 Flask 服务
|
||||||
|
app.run(host='0.0.0.0', port=8080)
|
||||||
|
|
Loading…
Reference in new issue