#include #include "WiFi.h" #include "ESPAsyncWebServer.h" #include const int trigPin = 12; const int echoPin = 14; #define SOUND_SPEED 0.034 long duration; float distanceCm; const char* ssid = "FAB-LAB1"; const char* password = "fab172030!"; AsyncWebServer server(80); String readDistance(){ digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distanceCm = duration * SOUND_SPEED/2; Serial.println("Distance:"); Serial.println(distanceCm); return String(distanceCm); } const char index_html[] PROGMEM = R"rawliteral(

Ultrasonic sensor reading on server

Distance %DISTANCE% Cm

)rawliteral"; String processor(const String& var){ //Serial.println(var); if(var =="DISTANCE"){ return readDistance(); } return String(); } void setup(){ // Serial port for debugging purposes Serial.begin(115200); pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output pinMode(echoPin, INPUT); // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); } Serial.println("connected to wifi ...."); if(!MDNS.begin("ESP32_1234")) { Serial.println("Error starting mDNS"); return; } Serial.println(WiFi.localIP()); // Route for root / web page server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); server.on("/distanceCm", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", readDistance().c_str()); }); // Start server server.begin(); int nrOfServices = MDNS.queryService("http", "tcp"); if (nrOfServices == 0) { Serial.println("No services were found."); } for (int i = 0; i < nrOfServices; i=i+1) { Serial.println("---------------"); Serial.print("Hostname: "); Serial.println(MDNS.hostname(i)); Serial.print("IP address: "); Serial.println(MDNS.IP(i)); Serial.print("Port: "); Serial.println(MDNS.port(i)); Serial.println("---------------"); } Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); Serial.print("Subnet Mask: "); Serial.println(WiFi.subnetMask()); Serial.print("Gateway IP: "); Serial.println(WiFi.gatewayIP()); Serial.print("DNS 1: "); Serial.println(WiFi.dnsIP(0)); Serial.print("DNS 2: "); Serial.println(WiFi.dnsIP(1)); Serial.print("Hostname: "); Serial.println(WiFi.getHostname()); } void loop(){ }