hola buen dia, me encuentro realizando un proyecto para la academia, y tengo un par de dudas, estoy utilizando un arduino uno y un modulo esp8266 - 01 para el control de una variable, en este caso un encoder, pero dejando de lado esa parte, mi problema radica en que la comunicacion es continua.
if (c == '\n' && currentLineIsBlank) {
Serial.println("Enviando datos");
client.print(
"HTTP/1.1 200 OK\r\n"
"Content-Type: text/html\r\n"
"Connection: close\r\n" // cerrar conexion al finalizar transmision
"Refresh: 10\r\n" // actualizar automatico cada n segundos
"\r\n");
client.print("<!DOCTYPE HTML>\r\n");
client.print("<html>\r\n");
client.print("<h1>TVNKlassen!</h1>\r\n");
client.print("Pieza: ");
client.print(++reqCount);
client.print("
\r\n");
client.print("Medicion: ");
client.print(analogRead(0));
client.print("
\r\n");
client.print("</html>\r\n");
break;
}
no tengo muy en claro si esta es la funcion que envia los datos, ya que es un ejemplo de la libreria "WiFiEsp.h", pero lo que quisiera lograr es que cada vez que presione un boton determinado en arduino, este me envie una informacion de una variable hacia la pagina web.
Aqui el codigo completo....
#include "WiFiEsp.h"
// emular serial1
#ifndef HAVE_HWSERIAL1
#include "SoftwareSerial.h"
SoftwareSerial Serial1(6, 5); // RX, TX
#endif
char ssid[] = "INFINITUMTEFF_2.4"; //nombre ssid de la red
char pass[] = "NT4JSYVumR"; // contrasena de la red
int status = WL_IDLE_STATUS; // estado del modulo wifi
int reqCount = 0; // peticiones recividas
WiFiEspServer server(80);
void setup()
{ // serial arduino pc
Serial.begin(115200);
// serial arduino esp
Serial1.begin(9600);
// iniciar wifi
WiFi.init(&Serial1);
// ver estado del modulo
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("El modulo esta desconectado");
// don't continue
while (true);
}
// conectando
while ( status != WL_CONNECTED) {
Serial.print("Conectando a red WPA SSID: ");
Serial.println(ssid);
// conectar a red WPA/WPA2
status = WiFi.begin(ssid, pass);
}
Serial.println("Te haz conectado a la red");
printWifiStatus();
// iniciar el servidor en puerto 80
server.begin();
}
void loop(){
// buscando clientes entrantes
WiFiEspClient client = server.available();
if (client) {
Serial.println("New client");
// una solicitud http termina con una línea en blanco
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
Serial.println("Enviando datos");
client.print(
"HTTP/1.1 200 OK\r\n"
"Content-Type: text/html\r\n"
"Connection: close\r\n" // cerrar conexion al finalizar transmision
"Refresh: 10\r\n" // actualizar automatico cada n segundos
"\r\n");
client.print("<!DOCTYPE HTML>\r\n");
client.print("<html>\r\n");
client.print("<h1>TVNKlassen!</h1>\r\n");
client.print("Pieza: ");
client.print(++reqCount);
client.print("
\r\n");
client.print("Medicion: ");
client.print(analogRead(0));
client.print("
\r\n");
client.print("</html>\r\n");
break;
}
if (c == '\n') {
// estas comenzando nueva linea
currentLineIsBlank = true;
}
else if (c != '\r') {
// tienes caracter en la linea actual
currentLineIsBlank = false;
}
}
}
delay(10);
// cierra la conexion
client.stop();
Serial.println("Cliente desconectado");
}
}
void printWifiStatus()
{
// print the SSID of the network you're attached to
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print your WiFi shield's IP address
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print where to go in the browser
Serial.println();
Serial.print("Para ver datos, abre en el navegador http://");
Serial.println(ip);
Serial.println();
}
prueba_1_esp.ino.ino (2.97 KB)