#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

const int trigPin = 2;  //D4
const int echoPin = 0;  //D3
long duration; // время распространения звуковой волны от излучателя T до приемника R
int distance; // расстояние до предмета

// Параметри WiFi сети
const char* ssid = "botnetcam";
const char* password = "12345678990";
 
ESP8266WebServer server(80);   //instantiate server at port 80 (http port)

String page = "";

void setup(void) {
  // Формируем html код кнопки 
  page = "<a href=\"GO\"><button>GET DISTANCE</button></a></br>";
  
  pinMode(trigPin, OUTPUT); // Инициализация пина D4
  pinMode(echoPin, INPUT); // Инициализация пина D3
  delay(1000); //ждем 2 секунды
  WiFi.begin(ssid, password); // Соединяемся с WiFi роутером
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);   // Ждем соединения с WiFi роутером 0.5 секунды
  }
 
  server.on("/", [](){
    server.send(200, "text/html", page);
  });

  server.on("/GO", [](){
    digitalWrite(trigPin, LOW); // Обнуляем излучатель Trig-pin
    delayMicroseconds(2);

    digitalWrite(trigPin, HIGH); // Инициируем распространение звуковой волны излучателем 
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
  
    duration = pulseIn(echoPin, HIGH); // Вычисление времени распространения звуковой волны от излучателя к приемнику в микросекундах
    distance= duration*0.034/2; // Вычисляем расстояние до объекта

    server.send(200, "text/html", page+"distance: "+distance+" santimetrov");
  });
 
   server.begin();
}

void loop(void){
server.handleClient();
}
