elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 22
11  Programación / Programación General / Caida de servidor ESP8266 (Programación Arduino) en: 13 Febrero 2018, 21:20 pm
Hola gracias por leer mi problema. Espero que sea correcta la sección  estaba dudando entre ponerlo aquí o en la sección de Redes.  
Estoy programando un Módulo ESP8266 mediante Arduino y tengo un problema. El objetivo que busco es programar el módulo para que pueda encender un LED a través de un dispositivo que no esté en la red  interna(por ejemplo desde un móvil) o desde la red interna.

Para ello he abierto el puerto 80 de mi router y que todas las peticiones externas que vayan al puerto 80 las desvíe  a la IP del Módulo ESP 8266.

Para el control del led se ha programado una pequeña página WEB mediante html que tiene unos botones para encender o apagar el led, aparte de la propia programación de Arduino.


Vale, cuando accedo con un dispositivo  que está en la red interna (móvil o PC)  a la IP del módulo ESP funciona correctamente.

Cuando accedo con un dispositivo externo a la red (con un móvil), poniendo la IP pública de mi red, enciendo el led  y  después doy a apagar el led y el módulo se queda bloqueado y el navegador se queda en blanco, no llega enviar la petición al servidor.

Os dejo el código, aunque no hayáis programado en Arduino echad un ojo al código es bastante intuitivo, quizás veáis algo.


Código
  1. #include <ESP8266WiFi.h>                    //Incluye la librería ESP8266WiFi
  2. const char* ssid = "Nombre de Wifi";                  //Indicamos el nombre de la red WiFi (SSID) a la que queremos conectarnos.
  3. const char* password = "contraseña";      //Indicamos la contraseña de de red WiFi
  4. WiFiServer server(80);                     //Definimos el puerto de comunicaciones
  5. int PinLED = 2; // GPIO2                   //Definimos el pin de salida - GPIO2 / D4
  6. int estado = LOW;                          //Definimos la variable que va a recoger el estado del LED
  7. int t1=0;
  8. int t2=0;
  9. void setup() {
  10.  
  11.  Serial.begin(115200);                     // configuracion del monitor serial del Arduino(para visualizar por la consola de Arduino)
  12.  pinMode(PinLED, OUTPUT);                 //Inicializamos el GPIO2 como salida
  13.  digitalWrite(PinLED, LOW);               //Dejamos inicialmente el GPIO2 apagado
  14.  
  15.  WiFi.begin(ssid, password);              //Inicializamos  la conexión del ESP8266 con la red WiFi
  16.  Serial.printf("Conectando a la red: %s", WiFi.SSID().c_str());
  17.  
  18.  while (WiFi.status() != WL_CONNECTED) {  // Verifica el estado de la conexión del ESP8266 cada 0,5s hasta que conecta
  19.    delay(500);
  20.    Serial.print(".");                    
  21.  }
  22.  Serial.println("");
  23.  Serial.println("WiFi conectada");        // Indica que el ESP8266 conectado con la red WiFi
  24.  
  25.  server.begin();                          // Inicia el ESP8266 en modo Station
  26.  Serial.println("Servidor inicializado");
  27.  
  28.  Serial.printf("Utiliza esta URL para conectar: http://%s/n", WiFi.localIP().toString().c_str());//IP del ESP8266
  29. }
  30.  
  31. void loop(){
  32. if (WiFi.status() == WL_CONNECTED)                           //Esta parte no es necesaria se ha puesto para ver si
  33.   {                                                          // el servidor se bloquea, si va bien cada 10seg muestra
  34.      t1=millis();                                            // el mensaje
  35.      if((t1-t2)>=10000)
  36.        {
  37.      Serial.printf("Conectado a la red: %s\n", WiFi.SSID().c_str());
  38.       t2=millis();
  39.       }
  40.   }
  41.  WiFiClient client = server.available();  // Comprueba si el cliente ha conectado con el ESP8266
  42.  if (!client) {
  43.    return;
  44.  }
  45.  
  46.  Serial.println("nuevo cliente");         // Espera hasta que el cliente envía alguna petición
  47.  while(!client.available()){
  48.    delay(1);
  49.  }
  50.  
  51.  String peticion = client.readStringUntil('\r');  // Lee la petición enviada al ESP8266 y se almacena en un string.
  52.  Serial.println(peticion);
  53.  client.flush();
  54.  
  55.  // Comprueba la petición
  56.  if (peticion.indexOf('/LED=ON') != -1) {        //Si se dió al boton de la  pagina WEB encender LED=ON estará en el string de petición
  57.    estado = HIGH;
  58.  }
  59.  if (peticion.indexOf('/LED=OFF') != -1){
  60.    estado = LOW;
  61.  }
  62.  
  63.  digitalWrite(PinLED, estado);           //Enciende o apaga el LED en función de la petición
  64.  
  65.  client.println("HTTP/1.1 200 OK");      //Envía la página HTML de respuesta al cliente
  66.  client.println("");                     //No olvidar esta línea de separación
  67.  client.println("<!DOCTYPE HTML>");
  68.  client.println("<meta charset='UTF-8'>");               //para que en el servidor aparezcan tildes
  69.  client.println("<html>");
  70.  
  71.      //Imprime el estado del led
  72.  client.print("<h1>El LED está ahora: ");                
  73.  if(estado == HIGH) {
  74.    client.print("ENCENDIDO</h1>");  
  75.  } else {
  76.    client.print("APAGADO</h1>");
  77.  }
  78.  
  79.      //Se crean enlaces para modificar el estado del LED      
  80.  client.println("Presiona <a href='/LED=ON'>AQUÍ</a> para encender el LED<br>");
  81.  client.println("Presiona <a href='/LED=OFF'>AQUÍ</a> para apagar el LED<br><br>");
  82.  
  83.      //Se crean cajas de comprobación (checkbox) para modificar el estado del LED
  84.  client.println("<input type='checkbox' onClick=location.href='/LED=ON'> ENCENDER </input><br>");
  85.  client.println("<input type='checkbox' onClick=location.href='/LED=OFF'> APAGAR </input><br><br>");
  86.  
  87.      //Se crean botones para modificar el estado del LED
  88.  client.println("<button type='button' onClick=location.href='/LED=ON'> ENCENDER </button>");
  89.  client.println("<button type='button' onClick=location.href='/LED=OFF'> APAGAR </button><br><br>");
  90.  
  91.      //Se crean botones con estilos para modificar el estado del LED
  92.  client.println("<button type='button' onClick=location.href='/LED=ON' style='margin:auto; background-color:green; color:#A9F5A9; padding:5px; border:2px solid black; width:200;'><h2> ENCENDER</h2> </button>");
  93.  client.println("<button type='button' onClick=location.href='/LED=OFF' style='margin:auto; background-color:red; color:#F6D8CE; padding:5px; border:2px solid black; width:200;'><h2> APAGAR</h2> </button><br><br>");
  94.  
  95.      //Se crea un único botón para modificar el estado del LED
  96.  if(estado == HIGH) {
  97.    client.print("<button type='button' onClick=location.href='/LED=OFF'> APAGAR </button><br><br>");  
  98.  } else {
  99.    client.print("<button type='button' onClick=location.href='/LED=ON'> ENCENDER </button><br><br>");
  100.  }
  101.  client.println("</html>");
  102.  delay(1);
  103.  Serial.println("Petición finalizada");          // Se finaliza la petición al cliente. Se inicaliza la espera de una nueva petición.
  104.  
  105. }

Muchas gracias por la ayuda.

Salu2.

12  Foros Generales / Foro Libre / Re: ¿Un "ovni nuclear alienígena" de Corea del Norte? Las extrañas luces en el cielo en: 28 Diciembre 2017, 20:18 pm
En este articulo Daniel Marín explica muy bien como se forman estas estelas y el por qué  se sus formas tan curiosas. Espero que os guste ;)

http://danielmarin.naukas.com/2017/12/26/el-lanzamiento-de-spacex-que-sorprendio-a-california/

Salu2.
13  Sistemas Operativos / Windows / Re: Problema al iniciar Windows7 en Asus en: 24 Junio 2016, 07:34 am
Gracias por la ayuda, Como tenía que volver a formatear opté ir a lo seguro ya que siendo nuevo el portátil no quería cacharrear mucho con el. Lo que he pensado hacer en un futuro si tengo que formatearlo de nuevo probaré a realizar todo lo mencionado para ver si consigo instalar Windows 7, si es así lo pondré en el foro por si a alguien le resultara útil.
Un saludo.
14  Sistemas Operativos / Windows / Re: Problema al iniciar Windows7 en Asus en: 23 Junio 2016, 18:45 pm
Gracias por la ayuda que me habéis dado, al final he decidido instalar windows10, he visto que Asus para ese modelo no tiene drivers, solo para windows 8.1 y windows 10. Con el portátil ya venían los drivers para windows 10. El windows 10 lo he instalado perfectamente y sin problemas.
Un saludo.
15  Sistemas Operativos / Windows / Re: Problema al iniciar Windows7 en Asus en: 23 Junio 2016, 14:00 pm
He accedido a la página que me has proporcionado y el enlace del modelo R510JX está caído ¿Donde has visto que lo hayan instalado?.

Por lo que he visto por Internet  debe ser que : antes de instalar nada hay que formatear completamente el disco duro y  poner el MBR en vez del GPT, creía que al poner instalarlo no habría problemas.

No se tengo que ver si se puede hacer desde  la consola de instalación de windows 7.
Gracias.
16  Sistemas Operativos / Windows / Re: Problema al iniciar Windows7 en Asus en: 23 Junio 2016, 13:07 pm
Gracias Hason por la respuesta.
Bueno he hecho algunas comprobaciones, el problemas es porque windows7 Ultimate no trae algún driver necesario ya que cuando intento iniciar en modo seguro no me carga y  se queda pillado en la carga de drivers, a continuación explico donde se queda.

1º En la BIOS he cambiado la configuración del SATA, que estaba en AHCI y la he puesto en IDE por si Windows 7 Ultimate no tenía esos drivers.

2º Como he comentado anteriormente,  en modo seguro se queda colgado en la carga de los drivers os dejo una captura:
<a href='http://www.subirimagenes.com/privadas-cargadearchivos-2374542.html'>

Comprobando por google he buscado una imagen que tiene los mismos drivers cargados y el que iría a continuación sería el CLASSPNP.SYS


https://www.google.es/imgres?imgurl=http%3A%2F%2Fpad2.whstatic.com%2Fimages%2Fthumb%2F8%2F81%2FActivate-Safe-Mode-on-Windows-7-Step-5-Version-2.jpg%2F670px-Activate-Safe-Mode-on-Windows-7-Step-5-Version-2.jpg&imgrefurl=http%3A%2F%2Fhownerd.blogspot.com%2F2015%2F01%2Fhow-to-activate-safe-mode-on-windows-7.html&docid=ZtaWRl_WoPwOuM&tbnid=vag6_lieuFNmmM%3A&w=670&h=503&client=firefox-b&ved=0ahUKEwiBpd2O-73NAhVIPxQKHT3uCnYQMwg-KBYwFg&iact=mrc&uact=8&biw=1600&bih=788

He visto en las opiniones de compra que algunos usuarios consiguieron instalar Windows 7  asi que no lo entiendo la verdad.

____________Edito___________
Estaba escribiendo y no he visto tu respuesta  Orubatosu, ahora lo voy a mirar. Gracias.

Un saludo.
17  Sistemas Operativos / Windows / Problema al iniciar Windows7 en Asus en: 22 Junio 2016, 23:41 pm
Hola gracias por leer mi duda. Tengo un portátil Asus R510J, el windows7 se ha instalado correctamente  desde CD pero en el reinicio se queda en la pantalla negra con la ventana. He probado  a cargarlo ne modo seguro pero tampoco ha cargado.
He visto en el foro que alguien tuvo problemas para instalar windows 7 en un Asus porque el disco duro estaba en modo GPT, pero como he dicho a mi se me ha instalado correctamente.
El portátil es el siguiente:
https://www.amazon.es/ASUS-R510JX-DM302D-Port%C3%A1til-i7-4750HQ-GeForce/dp/B01AV4XGI2/ref=cm_cr_arp_d_product_top?ie=UTF8
¿Tenéis alguna idea de cual será el problema?
Un saludo.  
18  Informática / Electrónica / Re: medicion 110v segura con raspberry ¿cómo? en: 1 Junio 2016, 07:46 am
Podrías usar un transformador de 110v a 5v para bajar la tensión y tener un aislamiento galvánico por lo que te protege sobre la alta tensión. Lo de usar un Divisor de tensión no es descabellado ya que si las dimensionas correctamente no tiene por qué fundirse las resistencias. En ambos casos colocaría un zener de 5V (5.1V) para evitar sobretensiones.
Yo veo mejor el transformador ya que te aísla de la alta tensión.

Otra cosa clara que tienes que tener en cuenta r es que esos 110V serán eficaces, aquí en España tenemos 230V eficaces pero de pico tenemos unos 325Voltios (230*sqrt(2)), no sé si esos 110V que das son de pico o tensión eficaz.
Saludos.
19  Informática / Electrónica / Re: Bateria de android con mucho voltaje que hago? en: 26 Diciembre 2015, 18:18 pm
Por los voltajes que indicas,  será una celda(una pila) de litio ya que la TENSION NOMINAL de estas celdas son de 3.7V, y el voltaje cuando están cargadas es de 4.2V por lo que  yo creo que es algo normal que te marque ese voltaje.
Saludos.
20  Seguridad Informática / Wireless en Linux / Re: Problema con aircrack: fixed channel mon0: -1 en: 25 Agosto 2015, 16:57 pm
Lo mejor sería que mates a cada uno con:

Código:
kill -9 PID
Gracias por responder, nada no funciona sigue en canal 1.
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines