远程控制:您可以使用手机应用或网页控制Arduino上的各种设备。例如,您可以通过WiFi连接到Arduino,并通过手机应用控制灯光、电机或其他外围设备的开关

217 阅读1分钟

以下是一个简单的例子代码,演示如何使用手机应用或网页控制Arduino上的灯光开关:

#include <ESP8266WiFi.h>

// WiFi网络信息
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";

// 服务器信息
WiFiServer server(80);

// LED灯引脚
const int ledPin = 13;
bool ledState = false;

void setup() {
  // 初始化串口
  Serial.begin(115200);

  // 连接WiFi网络
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  // 创建服务器
  server.begin();

  // 设置LED灯引脚为输出模式
  pinMode(ledPin, OUTPUT);

  // 初始状态为关闭
  digitalWrite(ledPin, LOW);

  // 打印IP地址
  Serial.print("Connected! IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  // 等待客户端连接
  WiFiClient client = server.available();
  if (client) {
    Serial.println("New client connected!");

    // 读取客户端请求
    String request = client.readStringUntil('\r');
    Serial.println(request);
    client.flush();

    // 解析请求
    if (request.indexOf("/LED=ON") != -1) {
      ledState = true;
      digitalWrite(ledPin, HIGH);
    } else if (request.indexOf("/LED=OFF") != -1) {
      ledState = false;
      digitalWrite(ledPin, LOW);
    }

    // 返回响应
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("<h1>Arduino LED Control</h1>");

    // 根据灯的状态显示按钮状态
    if (ledState) {
      client.println("<p>LED is ON</p>");
    } else {
      client.println("<p>LED is OFF</p>");
    }

    // 显示控制按钮
    client.println("<p><a href=\"/LED=ON\"><button>ON</button></a></p>");
    client.println("<p><a href=\"/LED=OFF\"><button>OFF</button></a></p>");
    client.println("</html>");

    delay(10);
    client.stop();
    Serial.println("Client disconnected!");
  }
}

请注意,这只是一个简单的例子,您可以根据自己的需求和项目进行修改和扩展。