找回密码
 立即注册
查看: 2200|回复: 0

ESP8266控制继电器

[复制链接]

86

主题

0

回帖

894

积分

中级会员

积分
894
发表于 2024-6-18 09:56:42 | 显示全部楼层 |阅读模式
  1. #include <ESP8266WiFi.h>

  2. #define RELAY 0    //connected to GPIO0

  3. const char *ssid = "WiFi SSID";    // Enter your router or WiFi SSID here
  4. const char *password = "WiFi password";    // Enter your router or WiFi password here

  5. WiFiServer server(80);

  6. void setup()
  7. {
  8.     Serial.begin(115200);
  9.     pinMode(RELAY, OUTPUT);    //Set GPIO0 to output mode.
  10.     digitalWrite(RELAY, HIGH);    //Set the GPIO0 output level to high.

  11.     /* Connect to the WiFi network. */
  12.     Serial.println("");
  13.     Serial.print("Conneting to ");
  14.     Serial.println(ssid);
  15.     WiFi.begin(ssid, password);

  16.     while (WiFi.status() != WL_CONNECTED) {     // If the connection to WiFi fails, retry every 500 milliseconds.
  17.         delay(500);
  18.         Serial.print(".");
  19.     }

  20.     Serial.println("");
  21.     Serial.println("WiFi connected.");

  22.     /* Start the Server. */
  23.     server.begin();
  24.     Serial.println("Server started.");

  25.     /* Output of the IP address. */
  26.     Serial.print("Use this URL to connect: ");
  27.     Serial.print("http://");
  28.     Serial.print(WiFi.localIP());
  29.     Serial.println("/");
  30. }

  31. void loop()
  32. {
  33.     /* Check whether a user has established a connection. */
  34.     WiFiClient client = server.available();
  35.     if (!client)
  36.         return;

  37.     /* Wait until the user sends data. */
  38.     Serial.println("new client.");
  39.     while (!client.available())
  40.         delay(1);

  41.     /* Reading the first line of the request. */
  42.     String request = client.readStringUntil('\r');
  43.     Serial.println(request);
  44.     client.flush();

  45.     /* Assignment of the request. */
  46.     int value = HIGH;
  47.     if (request.indexOf("/RELAY=ON") != -1) {
  48.         Serial.println("RELAY=ON");
  49.         digitalWrite(RELAY, LOW);
  50.         value = LOW;
  51.     }
  52.     if (request.indexOf("/RELAY=OFF") != -1) {
  53.         Serial.println("RELAY=OFF");
  54.         digitalWrite(RELAY, HIGH);
  55.         value = HIGH;
  56.     }

  57.     /* Return the answer. */
  58.     client.println("HTTP/1.1 200 OK");
  59.     client.println("Content-Type: text/html");
  60.     client.println("");
  61.     client.println("<!DOCTYPE HTML>");
  62.     client.println("<html>");
  63.     client.println("<meta name='viewport' content='width=device-width, inital-scale=1'>");
  64.     client.println("<head><title>ESP8266 RELAY Control</title></head>");
  65.     client.println("<style>");
  66.     client.println("* {text-align: center; font-family: Conso-las;}");
  67.     client.println("");
  68.     client.println(".container {position: absolute; top: 45%;");
  69.     client.println("left: 50%; transform: translateX(-50%) translateY(-50%);}");
  70.     client.println("");
  71.     client.println(".inner {font-size: 40px;}");
  72.     client.println("");
  73.     client.println("a {display: inline-block; width: 300px; height: 100px;");
  74.     client.println("color: #FFFF00; background-color: #275C6B;");
  75.     client.println("margin-top: 20px; padding: 10px 20px;");
  76.     client.println("text-decoration: none; border-radius: 5px;");
  77.     client.println("font-weight: 800; font-size: 70px;}");
  78.     client.println("</style>");
  79.     client.println("<div class='container'>");
  80.     client.println("<div class='inner'>");
  81.     client.print("RELAY if now: ");

  82.     if (value == HIGH)
  83.         client.print("OFF");
  84.     else
  85.         client.print("ON");

  86.     client.println("<br>");
  87.     client.println("<a href="/RELAY=OFF">OFF</a>");
  88.     client.println("<a href="/RELAY=ON">ON</a>");
  89.     client.println("<style>");
  90.     client.println(".footer-text { font-size: 25px; }");
  91.     client.println(".bold-text { font-weight: bold; }");
  92.     client.println("</style>");
  93.     client.println("<div class='footer'>");
  94.     client.println("<p class='footer-text'>This software was written by <span class='bold-text'>Grayson Zheng</span>.</p>");
  95.     client.println("</div>");
  96.     client.println("</div>");
  97.     client.println("</html>");
  98.     client.println("");
  99. }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EnMaking

GMT+8, 2025-3-25 13:22 , Processed in 0.046562 second(s), 23 queries .

Powered by Qiqirobot

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表