ESP32 con sensor de ultrasonidos que mide el agua de los depósitos. El código es: #include #include #include #include const char* ssid = "xxxxxxxxxx"; const char* password = "xxxxxxxxxxx"; IPAddress ip(192,168,1,80); IPAddress gateway(192,168,1,1); IPAddress subnet(255,255,255,0); IPAddress dns(8,8,8,8); AsyncWebServer server(80); //Your Domain name with URL path or IP address with path String serverName = "http://bateriaseko.lobo99.com/agua2.php"; #define uS_TO_S_FACTOR 1000000ULL //Conversion factor for micro seconds to seconds #define TIME_TO_SLEEP 3600 //Time ESP32 will go to sleep (in seconds) RTC_DATA_ATTR int bootCount = 0; /////////////////////////////////////////////// //// ///// //// Variables lector ultrasonido ///// //// ///// /////////////////////////////////////////////// const int trigPin = 5; const int echoPin = 18; //define sound speed in cm/uS #define SOUND_SPEED 0.034 #define CM_TO_INCH 0.393701 long duration; float distanceCm; float distanceInch; void setup() { Serial.begin(115200); delay(10); Serial.println('\n'); // Definimos pin ultrasonido pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output pinMode(echoPin, INPUT); // Sets the echoPin as an Input WiFi.begin(ssid, password); WiFi.config(ip, gateway, subnet, dns); Serial.print("Conectando a "); Serial.print(ssid); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print('.'); } Serial.println('\n'); Serial.println("Conectado correctamente"); Serial.print("IP:\t"); Serial.println(WiFi.localIP()); server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(200, "text/plain", "V1.0 Primer OTA"); }); AsyncElegantOTA.begin(&server); // Start AsyncElegantOTA server.begin(); Serial.println("HTTP server started"); delay(1000); enviaLectura(); esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); Serial.println("Setup ESP32 to sleep for every " + String(TIME_TO_SLEEP) + " Seconds"); //Go to sleep now esp_deep_sleep_start(); } void loop() {} String enviaLectura() { // Clears the trigPin digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // Calculate the distance distanceCm = duration * SOUND_SPEED/2; //Check WiFi connection status if(WiFi.status()== WL_CONNECTED){ HTTPClient http; String serverPath = serverName + "?agua=" + distanceCm; // Your Domain name with URL path or IP address with path http.begin(serverPath.c_str()); // Send HTTP GET request int httpResponseCode = http.GET(); if (httpResponseCode>0) { Serial.print("HTTP Response code: "); Serial.println(httpResponseCode); String payload = http.getString(); Serial.println(payload); } else { Serial.print("Error code: "); Serial.println(httpResponseCode); } // Free resources http.end(); } else { Serial.println("WiFi Disconnected"); } delay(1000); return "OK"; }