Hola
Veo que estás intentando imprimir en pantalla todas las líneas del html con el comando
println(string) que bajo mi punto de vista no es lo más adecuado.
println imprime una sóla línea y tu le estás enviando varias. Podría ser que cualquier error de sintaxis en el html arruine la salida que esperas obtener.
Mi recomendación es que concatenes todo el texto html (por supuesto, teniendo mucho cuidado con escapar los caracteres especiales como pueden ser otras comillas que vayan en una propiedad de algún elemento) y uses la instrucción
client.print(html) que imprime todo el texto a la vez. O mejor que hagas una línea nueva cada vez con el texto html sólo de esa línea, de la forma:
Código:
temperatura = bme.readTemperature(); //Se lee el sensor BME280 de Adafruit
if (client) {
client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");
// ....
client.println("<form id='form1' method='get' action='http:localhost/clima/index.html' />");
// ....
// aquí descomponemos la línea html para que la variable temperatura no esté entre comillas
// puesto que entonces se imprimiría como el texto literal y no con el valor que contiene.
client.println("<input type='hidden' name='tempe' value='");
client.println(temperatura);
client.println("' />");
// ....
client.println("</html>"); // Acá termina la String pagina
}
O bien con una cadena con todo el html (he colocado saltos de línea para que el html generado tenga algo de formato y no esté todo en una sola línea):
Código:
temperatura = bme.readTemperature(); //Se lee el sensor BME280 de Adafruit
if (client) {
client.print("<!DOCTYPE html>\n"
"<html>\n"
"<head>\n"
// ....
"<form id='form1' method='get' action='http:localhost/clima/index.html' />\n"
// ....
"<input type='hidden' name='tempe' value=' " + temperatura + " ' />\n"
// ....
"</html>"); // Acá termina la String pagina
}
Por otra parte, no entiendo por qué declaras la caja de texto"tempe" como "hidden", que significa que estará invisible en la página. Supongo que tendrás otro campo que recoja ese dato una vez que envíes el formulario (aunque no veo un
input type="submit" para enviar ese dato al destino que sería la página
'http:localhost/clima/index.html'.
Evidentemente sin ver todo el código no puedo ayudarte mucho más. Espero que al menos mis comentarios te den una pista de lo que pueda estar sucediendo en tu código.
P.D. Echa también un vistazo a la instrucción
sprintf que permite la sustitución de variables dentro del texto usando comodines:
https://parzibyte.me/blog/2020/12/26/eje...f-arduino/
Saludos