arduino 用网页上的一个按钮控制LED灯闪烁
时间: 2024-05-15 17:16:02 浏览: 254
要实现此功能,需要以下步骤:
1. 使用Arduino连接到WiFi或以太网。
2. 在网页上创建一个按钮。
3. 将该按钮的点击事件绑定到一个JavaScript函数上。
4. 在该函数中,使用Ajax或WebSocket与Arduino通信,发送控制指令。
5. 在Arduino中,使用digitalWrite()函数控制LED灯的闪烁。
以下是一个简单的示例代码:
网页部分:
```
<!DOCTYPE html>
<html>
<head>
<title>LED Control</title>
<script>
function toggleLED() {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "toggleLED", true);
xhttp.send();
}
</script>
</head>
<body>
<button onclick="toggleLED()">Toggle LED</button>
</body>
</html>
```
Arduino部分:
```
#include <WiFi.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
WiFiServer server(80);
int ledPin = 13;
bool ledState = false;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledState);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
server.begin();
Serial.println("Server started");
}
void loop() {
WiFiClient client = server.available();
if (client) {
String request = client.readStringUntil('\r');
client.flush();
if (request.indexOf("toggleLED") != -1) {
ledState = !ledState;
digitalWrite(ledPin, ledState);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println(ledState ? "LED is on" : "LED is off");
client.println();
}
}
delay(10);
}
```
在这个示例中,当按下网页上的按钮时,JavaScript函数toggleLED()会向Arduino发送一个HTTP GET请求,请求路径为"/toggleLED"。Arduino在loop()函数中等待客户端连接,并读取客户端发送的请求。如果请求路径包含"toggleLED",则切换LED的状态,并向客户端发送HTTP响应,告知LED的当前状态。
注意,这只是一个简单的示例,实际应用中需要考虑安全性和可靠性等问题。
阅读全文