Naguissa escribió: ↑21 Feb 2018, 19:42
Para el hidden:
softAP(ssid, password, 8, 1);
El 1 final es el 'hiden'.
El resto de librerías si las necesitas:
La 1a es la base de la Wifi.
La 2a es para manejar los clientes que se conecten (etá claro que algo quieres hacer con ellos, además de conectarse, y se necesita para la 3a).
La 3a es el servidor web, el cual acepta clientes (2a librería) y luego puedes ya hacer lo que desees con ellos).
Si, además, quieres especificar una IP fija para el ESP:
Código: Seleccionar todo
[...]
IPAddress wifiIp(192, 168, 1, xxx);
IPAddress wifiNet(255, 255, 255, 0);
IPAddress wifiGW(192, 168, 1, xxx); // Opcional
void setupWiFi(void){
[...]
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(wifiIp, wifiGW, wifiNet);
[...]
La clave es el comando: WiFi.softAPConfig
Hola Naguissa, sigo trasteando con el esp8266, mientras espero que me llegue el nuevo modulo bluetooth,
he hecho un programa, a base de mirar unos y otros, y leer lo que he podido entender, aunque sigo sin aclararme, es este:
Código: Seleccionar todo
[...]
#include <ESP8266WiFi.h> //Incluye la librería ESP8266WiFi
const char ssid[] = "missid"; //Definimos la SSDI de nuestro servidor WiFi -nombre de red-
const char password[] = "12password21"; //Definimos la contraseña de nuestro servidor
WiFiServer server(80); //Definimos el puerto de comunicaciones
void setup() {
Serial.begin(115200);
server.begin(); //inicializamos el servidor
WiFi.mode(WIFI_AP);
WiFi.softAP(ssid, password); //Red con clave, en el canal 1 y visible
//WiFi.softAP(ssid, password,3,0); //Red con clave, en el canal 3 no visible
//WiFi.softAP(ssid); //Red abierta
Serial.println();
Serial.print("Direccion IP Access Point - por defecto: "); //Imprime la dirección IP
Serial.println(WiFi.softAPIP());
Serial.print("Direccion MAC Access Point: "); //Imprime la dirección MAC
Serial.println(WiFi.softAPmacAddress());
//IPAddress local_ip(192, 168, 1, 1); //Modifica la dirección IP
//IPAddress gateway(192, 168, 1, 1);
//IPAddress subnet(255, 255, 255, 0);
//WiFi.softAPConfig(local_ip, gateway, subnet);
//Serial.println();
//Serial.print("Access Point - Nueva direccion IP: ");
//Serial.println(WiFi.softAPIP());
}
void loop()
{
// Comprueba si el cliente se ha conectado
WiFiClient client = server.available();
if (!client) {
return;
}
// Espera hasta que el cliente envía alguna petición
Serial.println("nuevo cliente");
while(!client.available()){
delay(1);
}
// Imprime el número de clientes conectados
Serial.printf("Clientes conectados al Access Point: %dn", WiFi.softAPgetStationNum());
// Lee la petición
String peticion = client.readStringUntil('r');
Serial.println(peticion);
client.flush();
// Envía la página HTML de respuesta al cliente
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");// La conexión se cierra después de finalizar de la respuesta
client.println();
//Pagina html para el navegador
client.println("<!DOCTYPE HTML>");
client.println("<html>");
//client.println("HTTP/1.1 200 OK\r\nnContent-Type: /html\r\nConnection: close\r\n\r\n");
client.println("<html>\n<head>\n<title>JOSELU</title>\n</head>\n<body>");
client.println("<center>");
client.println("<h2>Control de Acceso</h2>");
client.println("<br/>");
client.println("<br/>");
client.println("<button type='button' onClick=location.href='/1' style='FONT-SIZE: 35pt;'> 1 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/2' style='FONT-SIZE: 35pt;'> 2 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/3' style='FONT-SIZE: 35pt;'> 3 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/A' style='FONT-SIZE: 35pt;'> A </button>");
client.println("<br/>");
client.println("<br/>");
client.println("<button type='button' onClick=location.href='/4' style='FONT-SIZE: 35pt;'> 4 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/5' style='FONT-SIZE: 35pt;'> 5 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/6' style='FONT-SIZE: 35pt;'> 6 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/B' style='FONT-SIZE: 35pt;'> B </button>");
client.println("<br/>");
client.println("<br/>");
client.println("<button type='button' onClick=location.href='/7' style='FONT-SIZE: 35pt;'> 7 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/8' style='FONT-SIZE: 35pt;'> 8 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/9' style='FONT-SIZE: 35pt;'> 9 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/C' style='FONT-SIZE: 35pt;'> C </button>");
client.println("<br/>");
client.println("<br/>");
client.println("<button type='button' onClick=location.href='/*' style='FONT-SIZE: 35pt;'> * </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/0' style='FONT-SIZE: 35pt;'> 0 </button>");
client.println("  ");
client.println("<button type='button' onClick=location.href='/E' style='FONT-SIZE: 35pt;'> # </button>");// le pongo como E, porque me sale un
// espacio en blanco y no el simbolo #
client.println("  ");
client.println("<button type='button' onClick=location.href='/D' style='FONT-SIZE: 35pt;'> D </button>");
client.println("</body></html>"); // Se finaliza la petición al cliente. Se inicaliza la espera de una nueva petición.
//Desconexión de los clientes
//WiFi.softAPdisconnect();*/
}
[...]
(esta basado en el ejemplo que se enciende y apaga un LED, desde un teléfono mobil), el tuyo también me ha ayudado bastante, gracias.
El caso es que a través de un portátil, me funciona perfectamente, me envia una botonera de 4x4 botones, cuando me conecto a través de su wifi
a 192.168.4.1, y al pulsar cada tecla, envía el numero o el símbolo asociado a cada una de ellas, al String peticion , y que lo lea y compare el Leonardo con su codigo de acceso, seria sencillo, sin embargo si me conecto desde un mobil, hay veces que funciona y otras que no (la mayoria), creo que puede ser por el numero de botones, porque cuando hice pruebas con solo dos botones funcionaba perfectamente, si puedes echarme una mano para depurarlo, o ver el montón de fallos que seguro que tendrá el programa te lo agradecería, aunque creo que me voy a quedar con el bluetooth, ya es un poco por cabezoneria, y porque creo que le pueda servir a alguien.
Seguiremos trasteando
Un saludo