<-- назад

Построим теперь проект на плате "ESP32", где включение и выключение светодиода (или РЕЛЕ) мы будем осуществлять ДИСТАНЦИОННО (с компьютера или мобильного устройства) посредством технологии WiFi связи.

        Для схемы, собранной в предыдущем эксперименте:

    напишем следующую программу:
    (рассмотрите ее внимательно)
      
      // wifi web-управление светодиодами
      // + датчик освещенности
      #include <WiFi.h>
      #include <WebServer.h>
      #include <Wire.h>
    
      int led18 = 18;
      int led19 = 19;
      int led15 = 15;
    
      /*Put your SSID & Password*/
      const char* ssid = "............";  // здесь местная сеть
      const char* password = ".........";  //и пароль
    
      WebServer server(80);             
     
      void setup() {
        Serial.begin(115200);
        delay(100);
        pinMode(led18,OUTPUT);
        pinMode(led19,OUTPUT);
        pinMode(led15,OUTPUT);
      
        Serial.println("Connecting to ");
        Serial.println(ssid);
    
        //connect to your local wi-fi network
        WiFi.begin(ssid, password);
    
        //check wi-fi is connected to wi-fi network
         while (WiFi.status() != WL_CONNECTED) {
         delay(1000);
         Serial.print(".");
        }
         Serial.println("");
         Serial.println("WiFi connected..!");
         Serial.print("Got IP: ");  Serial.println(WiFi.localIP());
      ////// подпрограммы
      server.on("/", handle_OnConnect);
      server.onNotFound(handle_NotFound);
      server.on("/back", handle_OnConnect);
      server.on("/on1", handleon1); 
      server.on("/off1", handleoff1);
      server.on("/on2", handleon2); 
      server.on("/off2", handleoff2);
     
      server.begin();
      Serial.println("HTTP server started");
    }  // конец setup
    
    void loop() {
      server.handleClient(); // сервер 'слушает' клиента
    ////////работа датчика освещенности sv//////////
     float sv = analogRead(34)/10; //sensor light
        if (sv > 215){
       digitalWrite(led15, LOW);  //switch off led-15 
           } else {
           digitalWrite(led15, HIGH);//switch on led-15  
           }
      /////////////////////////////////////
    }
    // подпрограммы
    void handleon1() { //включение Зеленого СД
     digitalWrite(led18,HIGH);
     server.send(200, "text/html", "<center><br><br><br><b>LED18 is ON<br> -
    - <br><a href=\"back\"><button><b>PRESS</button></a>"); 
    }
    void handleoff1() {
     digitalWrite(led18,LOW);
     server.send(200, "text/html", "<center><br><br><br><b>LED18 is OFF<br>-
    - <br><a href=\"back\"><button><b>PRESS</button></a>"); 
    }
    void handleon2() { //включение красного СД
     digitalWrite(led19,HIGH);
     server.send(200, "text/html", "<center><br><br><br><b>LED19 is ON<br>-
    - <br><a href=\"back\"><button><b>PRESS</button></a>"); 
    }
    void handleoff2() {
     digitalWrite(led19,LOW);
     server.send(200, "text/html", "<center><br><br><br><b>LED19 is OFF<br>-
    - <br><a href=\"back\"><button><b>PRESS</button></a>"); 
    }
    
    void handle_OnConnect() {  // на начало WEB-сервера
      server.send(200, "text/html", SendHTML(temperature,pressure,altitude));
      }
    
    void handle_NotFound(){
      server.send(404, "text/plain", "Not found");
    }
    
    String SendHTML(float temperature,float pressure,float altitude){
      // здесь строки WEB-HTML сервера
      String ptr = " <html>\n";
      ptr +="<head>\n";
      ptr +="</head>\n";
      ptr +="<h1>ESP32 Web-server</h1>\n";
      ptr +="<h2>Leds control</h2><font size=+1 color=darkblue><b>\n";
      ptr +="<p>LED Green <a href=\"on1\"><button><b>ON</button></a>
      ptr +="<a href=\"off1\"><button><b>OFF</button></a></p>";
      ptr +="<p>LED Red <a href=\"on2\"><button><b>ON</button></a>
      ptr +="<a href=\"off2\"><button><b>OFF</button></a></p>";
      ptr +="</body>\n";
      ptr +="</html>\n";
    
       return ptr;
    }
    


    Можете взять эту программу Здесь и вставить ее в новый файл в "Arduino IDE".

    Подключите плату "ESP32" к компьютеру, скомпилируйте программу и загрузите ее в микроконтроллер платы. Загрузка должна закончиться сообщением:
    (не забудьте при начале загрузки нажать и удерживать 3-4сек кнопку 'BOOT' на плате)

    Далее открываем 'Монитор порта':

    и нажимаем на кнопку 'EN' на плате -> происходит подключение к WiFi-сети и открытие WEB-сервера по указанному адресу:


    Теперь в любом браузере набираем этот адрес и видим:


    И теперь, нажимая на кнопки 'ON' и 'OFF', мы можем дистанционно зажигать и гасить светодиоды:


    Как и в предыдущем примере, снижение освещенности ниже определенного уровня, приводит к автоматическому зажиганию желтого светодиода.



    Итак, мы решили этот вариант типовой автоматизации - дистанционное (WiFi и Web-сервер) управление светодиодами (или РЕЛЕ).

    ! Повторите описанные действия и постройте САМОСТОЯТЕЛЬНО  аналогичный проект управления реле (светодиодами) посредством технологии WiFi связи и Web-сервера!



    <-- назад