在树莓派中编写一个网页,可通过网页LED灯的行为。并给出index.html的代码和控制灯行为的python代码
时间: 2024-02-22 07:58:51 浏览: 80
好的,我可以为您提供这个问题的答案。以下是实现您要求的简单示例。
index.html代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>LED控制页面</title>
<meta charset="utf-8">
</head>
<body>
<h1>LED控制页面</h1>
<p>点击按钮控制LED灯</p>
<button onclick="toggle_led()">开关灯</button>
<script>
function toggle_led() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "toggle_led", true);
xhr.send();
}
</script>
</body>
</html>
```
Python代码:
```python
import RPi.GPIO as GPIO
from flask import Flask
app = Flask(__name__)
# 设置GPIO模式和引脚
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
# 定义路由
@app.route("/")
def index():
with open("index.html", "r") as f:
html = f.read()
return html
@app.route("/toggle_led")
def toggle_led():
# 获取当前LED的状态
led_status = GPIO.input(18)
# 翻转LED状态
if led_status == GPIO.HIGH:
GPIO.output(18, GPIO.LOW)
else:
GPIO.output(18, GPIO.HIGH)
return ""
if __name__ == "__main__":
app.run(host="0.0.0.0", port=80, debug=True)
```
在这个示例中,我们使用了 Flask 框架来创建一个简单的 Web 应用程序。我们在树莓派上的 GPIO 引脚上连接了一个 LED 灯,并使用 Python 的 RPi.GPIO 库来控制它的行为。
我们定义了两个路由,一个路由用于返回 index.html 页面,另一个路由用于控制 LED 灯的行为。当用户点击网页上的按钮时,JavaScript 代码将向服务器发送一个 GET 请求,以便执行 toggle_led() 函数。这个函数会翻转 LED 灯的状态,并返回一个空字符串。
注意,为了让 Web 应用程序可以从外部访问,我们将 Flask 的 host 参数设置为 0.0.0.0,这意味着它将监听所有网络接口。如果您只想在本地网络中访问应用程序,则可以将其设置为 localhost 或 127.0.0.1。
阅读全文