Arduino网页控制led灯

代码

//web界面控制板载的led灯光的开关以及打开,局域网控制;
#include <ESP8266WiFi.h>
#include<ESP8266WiFiMulti.h>
#include<ESP8266WebServer.h> 


ESP8266WiFiMulti wifi_list;
ESP8266WebServer esp8266_server(80);
bool pinState; 

void setup() {
  //设置板载led
  pinMode(LED_BUILTIN,OUTPUT);
  
  //设定串口通讯波比率
  Serial.begin(9600);

  //设定需要连接的WiFi名称和密码列表可以多个;
  wifi_list.addAP("wifi名称","wifi密码");

 Serial.print("正在连接网络");
  while (wifi_list.run()!=WL_CONNECTED)
  //如果wifi_list.run()连接WiFi成功,则会返回WL_CONNECTED,也就结束了循环
  {
      delay(500);
      Serial.print(".");
  }
  
  //WiFi连接成功后,向串口输入WiFi的名称以及IP地址
  Serial.println("\n网络连接成功");
  Serial.print("WIFI名称:");
  Serial.println(WiFi.SSID());
  Serial.print("IP地址:");
  Serial.println(WiFi.localIP());

  //启动网络服务
  esp8266_server.begin();
  esp8266_server.on("/",handleRoot);//定义网页根目录访问的函数
  esp8266_server.on("/on",led_on);//定义on目录控制板载led灯打开
  esp8266_server.on("/off",led_off);//定义off目录控制板载led关闭
  esp8266_server.on("/led",led);//定义off目录控制板载led关闭

  esp8266_server.onNotFound(handleNotFound); //页面请求不存在则请求的函数
  Serial.println("HTTP esp8266_server 启动成功!");
  
}

void loop() {
  esp8266_server.handleClient();     // 处理http服务器访问
  
}


void handleRoot() {   //处理网站根目录“/”的访问请求 
  esp8266_server.send(200, "text/html", "Hello from ESP8266\nindex-YES\nLed-state:x");   // NodeMCU将调用此函数。
}


void led_on() {   //打开led
  digitalWrite(LED_BUILTIN,LOW);
  esp8266_server.send(200, "text/html", "LED-on");   // NodeMCU将调用此函数。

}

void led_off() {   //关闭led
  digitalWrite(LED_BUILTIN,HIGH);
  esp8266_server.send(200, "text/html", "LED-off");   // NodeMCU将调用此函数。

}


void led(){
    pinState=digitalRead(LED_BUILTIN);
    if (pinState==0){
        //如果为LED此时的状态为打开则关掉,否则则打开led
        led_off();
    }
    else{
        //否则打开led
        led_on();
        Serial.println(htmlcode);
    }
    
}


void handleNotFound(){                                        // 当浏览器请求的网络资源无法在服务器找到时,
  esp8266_server.send(404, "text/html", "404: Not found");   // NodeMCU将调用此函数。
}

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 首先,需要连接Arduino 8266板和LED。将LED的正极连接到Arduino的数字引脚D4上,负极连接到Arduino的GND引脚上。 2. 在Arduino IDE中,选择“文件”-“示例”-“ESP8266WiFi”-“WiFiAccessPoint”示例。将WiFi名称和密码设置为您的无线网络名称和密码。 3. 将以下代码复制到Arduino IDE中: ``` #include <ESP8266WiFi.h> const char* ssid = "your_SSID_here"; const char* password = "your_PASSWORD_here"; WiFiServer server(80); void setup() { pinMode(2, OUTPUT); //设置D4口为输出 digitalWrite(2, LOW); //初始状态为关闭 Serial.begin(115200); delay(10); //连接WiFi Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); //启动服务器 server.begin(); Serial.println("Server started"); } void loop() { //等待客户端连接 WiFiClient client = server.available(); if (!client) { return; } //等待客户端请求 Serial.println("new client"); while(!client.available()){ delay(1); } //读取请求 String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); //处理请求 if (request.indexOf("/LED=ON") != -1) { //打开LED digitalWrite(2, HIGH); } else if (request.indexOf("/LED=OFF") != -1) { //关闭LED digitalWrite(2, 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("<head><title>ESP8266 LED Control</title></head>"); client.println("<body>"); client.println("<h1>ESP8266 LED Control</h1>"); client.println("<br>"); client.println("<a href=\"/LED=ON\"><button>LED ON</button></a>"); client.println("<a href=\"/LED=OFF\"><button>LED OFF</button></a>"); client.println("</body>"); client.println("</html>"); delay(1); Serial.println("Client disonnected"); Serial.println(""); } ``` 4. 上传代码到Arduino 8266板。 5. 打开串口监视器,等待板子连接到WiFi网络。一旦连接成功,您将看到以下消息: ``` WiFi connected Server started ``` 6. 打开Web浏览器,在地址栏中输入Arduino的IP地址(可以在串口监视器中找到)。您应该会看到一个简单的网页,其中包含两个按钮:“LED ON”和“LED OFF”。 7. 点击“LED ON”按钮,LED应该会亮起来。点击“LED OFF”按钮,LED应该会熄灭。 现在,您已经成功地使用一个简单的网页控制LED

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值