Buenos días amig@s,
He creado un firmware para mi ESP8266-01 el cual captura y envía los valores de sensor DHT11 a una página web donde se muestran.
El tema es que estoy recibiendo dos errores distintos.
El primero relacionado con el "void setup()", y es pasajero hasta que se logra conctar con la red WiFi, este error es:
ets Jan 8 2013,rst cause:4, boot mode:(3,6)
wdt reset
load 0x4010f000, len 3456, room 16
tail 0
chksum 0x84
csum 0x84
va5432625
~ld
Y el segundo relacionado con el "void loop()", este si es permanente, no se logra conectar con el localhost por el puerto 80, ya comprobé la dirección del localhost en el navegador y funciona perfectamente, lo que deja como única opción de error el puerto 80, los datos que obtengo siempre por monitor serial son:
Connecting to Pedraz 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
Connected [OK]
[Connecting to 192.168.0.11 ... Connection failed...
[Connecting to 192.168.0.11 ... Connection failed...
[Connecting to 192.168.0.11 ... Connection failed...
[Connecting to 192.168.0.11 ... Connection failed...
El código completo del sketch es el ejemplo del "ESP8266 Arduino Core" claro, un tanto modificado para mi conveniencia, los datos de mi plataforma son: Linux raspberrypi 5.4.44-v7+ #1320 SMP Wed Jun 3 16:07:06 BST 2020 armv7l GNU/Linux.
Pero quizás este haciendo algo mal en el código y si alguien tiene experiencia con este problema de conexión y sería tan amable de ayudarme, se lo agradecería mucho.
Les adjunto el sketch que cargue al ESP8266-01 con la línea que me genera el error de conexión en negritas y color rojo, desde ya les agradezco su ayuda.
Saludos cordiales.
// incluimos libreria esp8266 y dht
#include <ESP8266WiFi.h>
#include <DHT.h>
// parametros WiFi
const char* ssid = "mi-WiFi";
const char* pass = "mi-password";
// parámetros host
const char* host = "192.168.0.11"; // IP localhost
const int port = 80;
// definimos los parámetros del sensor DHT y el pin de conexión
#define DHTTYPE DHT11 // DHT21, DHT22
#define DHTPIN 2 // GPIO 2 del ESP8266
DHT dht(DHTPIN, DHTTYPE, 11); // 11 works fine for ESP8266 threshold => MHZ CPU
// definimos las variables para temperatura y humedad
float temperatura;
float humedad;
void setup() {
// iniciamos comunicación serial a 115200 baudios
Serial.begin(115200);
Serial.println();
// iniciamos comunicación con el módulo DHT11
dht.begin();
// intentamos conectarnos al WiFi
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, pass);
int i = 1;
while(WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(i++);
Serial.print(" | ");
}
// si tiene exito la conexión al WiFi, mostramos conexión
Serial.println("\n");
Serial.println("Connected [OK]");
}
void loop() {
// creamos una instancia para client
WiFiClient client;
// intentamos conectarnos con el host
Serial.printf("\n[Connecting to %s ... ", host);
// si la conexión tiene exito
[b][color=red]if(client.connect(host, port)) {[/color][/b]
Serial.println("connected]");
// Leemos la los datos de temperatura y humedad del módulo DHT11
temperatura = dht.readTemperature();
humedad = dht.readHumidity();
// enviamos la petición desde el módulo ESP8266 al servidor
Serial.println("[Sending a request]");
client.print(String("GET /servidor1_esp8266/?Temp=") + temperatura +
"&Hume=" + humedad + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n" + "\r\n"
);
// esperamos respuesta
Serial.println("[Response:]");
// mientras haya conexión
while(client.connected()) {
// si existen datos
if(client.available()) {
String line = client.readStringUntil('\n');
Serial.println(line);
}
}
client.stop();
Serial.println("\n[Discconected]");
} else {
Serial.println("Connection failed...");
client.stop();
}
//retardo
delay(5000);
}
