Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Нужна помощь реле и esp-01 + сенсорная кнопка

Тема в разделе "Железные вопросы по esp8266", создана пользователем Vladimir_G, 15 июн 2018.

  1. cruelty

    cruelty Новичок

    Сообщения:
    4
    Симпатии:
    0
    Вот на копипастил. Двойной wi-fi выключатель с кнопками.
    Возможно доработать. Нет синхронизации со страницей и кнопки через секунду пашут. Но работает.
    Пины и ip сами выберете, так для демонстрации 0-кнопка и 2-диод встроенный
    Конечно не профи, но профи копипастить)))
    Может кому пригодится.

    Раскрыть Спойлер
    Код (C):
    1.  
    2. #include <ESP8266WiFi.h>
    3. #include <WiFiClient.h>
    4. #include <ESP8266WebServer.h>
    5. #include <ESP8266mDNS.h>
    6.  
    7. MDNSResponder mdns;
    8.  
    9. const char* ssid = "********";
    10. const char* password = "********";
    11.  
    12. byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
    13. IPAddress ip(192,168,1,242);
    14. IPAddress gateway(192,168,1,1);
    15. IPAddress subnet(255,255,255,0);
    16.  
    17. ESP8266WebServer server(80);
    18.  
    19. int Relay1 = 2;
    20. int Relay2 = 14;
    21. int But1 = 0;
    22. int But2 = 13;
    23. int flag=0;
    24. int flag1=0;
    25.  
    26. void setup(void){
    27.  
    28.   pinMode(Relay1, OUTPUT);
    29.   digitalWrite(Relay1, LOW);
    30.   pinMode(Relay2, OUTPUT);
    31.   digitalWrite(Relay2, LOW);
    32.  
    33.   delay(100);
    34.   Serial.begin(115200);
    35.   WiFi.begin(ssid, password);
    36.   WiFi.config(ip, gateway, subnet);
    37.  
    38.   Serial.println("");
    39.  
    40.   while (WiFi.status() != WL_CONNECTED) {
    41.     delay(500);
    42.    Serial.print(".");
    43.   }
    44.   Serial.println("");
    45.   Serial.print("Connected to ");
    46.   Serial.println(ssid);
    47.   Serial.print("IP address: ");
    48.   Serial.println(WiFi.localIP());
    49.  
    50.   if (mdns.begin("esp8266", WiFi.localIP())) {
    51.     Serial.println("MDNS responder started");
    52.   }
    53. //+++++++++++++++++++++++ START  Relay2 +++++++++++++++++++++++
    54.   server.on("/", [](){
    55.     server.send(200, "text/html", webPage());
    56.   });
    57.   server.on("/socket1On", [](){
    58.     digitalWrite(Relay1, HIGH);
    59.     server.send(200, "text/html", webPage());
    60.     delay(100);
    61.     });
    62.   server.on("/socket1Off", [](){
    63.     digitalWrite(Relay1, LOW);
    64.     server.send(200, "text/html", webPage());
    65.     delay(100);
    66. //+++++++++++++++++++++++ END  Relay1 +++++++++++++++++++++++++
    67.  
    68.  
    69. //+++++++++++++++++++++++ START  Relay2 +++++++++++++++++++++++
    70.   });
    71.   server.on("/socket2On", [](){
    72.     digitalWrite(Relay2, HIGH);
    73.     server.send(200, "text/html", webPage());
    74.     delay(100);  
    75.   });
    76.   server.on("/socket2Off", [](){
    77.     digitalWrite(Relay2, LOW);
    78.     server.send(200, "text/html", webPage());
    79.     delay(100);
    80. //++++++++++++++++++++++++ END  Relay2 +++++++++++++++++++++++
    81.  
    82.   });
    83.   server.begin();
    84.   Serial.println("HTTP server started");
    85. }
    86.  
    87. void loop(void){
    88.   server.handleClient();
    89. // ++++++++++++++++++++++++ Buttons +++++++++++++++++++++++++++
    90. if(digitalRead(But1)==HIGH&&flag==0)
    91. {
    92. digitalWrite(Relay1,!digitalRead(Relay1));
    93. flag=1;
    94. }
    95. if(digitalRead(But1)==LOW&&flag==1)
    96. {
    97. flag=0;
    98. }
    99. {
    100. if(digitalRead(But2)==HIGH&&flag1==0)
    101. {
    102. digitalWrite(Relay2,!digitalRead(Relay2));
    103. flag1=1;
    104. }
    105. if(digitalRead(But2)==LOW&&flag1==1)
    106. {
    107. flag1=0;
    108. }
    109. // +++++++++++++++++++++++ Buttons +++++++++++++++++++++++
    110. }
    111. }
    112.  
    113. String webPage()
    114. {
    115.   String web;
    116.   web += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/> <meta charset=\"utf-8\"><title>Интернет выключатель</title><style>button{color:red;padding: 10px 27px;}</style></head>";
    117.   web += "<h1 style=\"text-align: center;font-family: Open sans;font-weight: 100;font-size: 20px;\">Интернет выключатель</h1><div>";
    118.  
    119. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++ Relay-1  ++++++++++++++++++++++++++++++++++++++++++++++++++++
    120.   web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">Выключатель 1</p>";
    121.   if (digitalRead(Relay1) == 1)
    122.   {
    123.     web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">Включен</div>";
    124.   }
    125.   else
    126.   {
    127.     web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">Выключен</div>";
    128.   }
    129.   web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket1On\"><button>ON</button></a>&nbsp;<a href=\"socket1Off\"><button>OFF</button></a></div>";
    130. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++ Relay-1  ++++++++++++++++++++++++++++++++++++++++++++++++++++
    131.  
    132. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++ Relay-2  ++++++++++++++++++++++++++++++++++++++++++++++++++++
    133.   web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">Выключатель 2</p>";
    134.   if (digitalRead(Relay2) == 1)
    135.   {
    136.     web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">Включен</div>";
    137.   }
    138.   else
    139.   {
    140.     web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">Выключен</div>";
    141.   }
    142.   web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket2On\"><button>ON</button></a>&nbsp;<a href=\"socket2Off\"><button>OFF</button></a></div>";
    143. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++ Relay-2  ++++++++++++++++++++++++++++++++++++++++++++++++++++
    144.  
    145. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++ REFRESH ++++++++++++++++++++++++++++++++++++++++++++++++++++
    146.   web += "<div style=\"text-align:center;margin-top: 20px;\"><a href=\"/\"><button style=\"width:158px;\">Обновить</button></a></div>";
    147. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++ REFRESH ++++++++++++++++++++++++++++++++++++++++++++++++++++
    148.  
    149.   web += "</div>";
    150.   return(web);
    151. }
    152.  
    153.  
    154.  
     

Поделиться этой страницей