Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Fox_Neo

#11
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.


#include <ESP8266WiFi.h>                    //Incluye la librería ESP8266WiFi
const char* ssid = "Nombre de Wifi";                  //Indicamos el nombre de la red WiFi (SSID) a la que queremos conectarnos.
const char* password = "contraseña";      //Indicamos la contraseña de de red WiFi
WiFiServer server(80);                     //Definimos el puerto de comunicaciones
int PinLED = 2; // GPIO2                   //Definimos el pin de salida - GPIO2 / D4
int estado = LOW;                          //Definimos la variable que va a recoger el estado del LED
int t1=0;
int t2=0;
void setup() {

 Serial.begin(115200);                     // configuracion del monitor serial del Arduino(para visualizar por la consola de Arduino)
 pinMode(PinLED, OUTPUT);                 //Inicializamos el GPIO2 como salida
 digitalWrite(PinLED, LOW);               //Dejamos inicialmente el GPIO2 apagado

 WiFi.begin(ssid, password);              //Inicializamos  la conexión del ESP8266 con la red WiFi
 Serial.printf("Conectando a la red: %s", WiFi.SSID().c_str());
 
 while (WiFi.status() != WL_CONNECTED) {  // Verifica el estado de la conexión del ESP8266 cada 0,5s hasta que conecta
   delay(500);
   Serial.print(".");                    
 }
 Serial.println("");
 Serial.println("WiFi conectada");        // Indica que el ESP8266 conectado con la red WiFi

 server.begin();                          // Inicia el ESP8266 en modo Station
 Serial.println("Servidor inicializado");

 Serial.printf("Utiliza esta URL para conectar: http://%s/n", WiFi.localIP().toString().c_str());//IP del ESP8266
}

void loop(){
if (WiFi.status() == WL_CONNECTED)                           //Esta parte no es necesaria se ha puesto para ver si
  {                                                          // el servidor se bloquea, si va bien cada 10seg muestra
     t1=millis();                                            // el mensaje
     if((t1-t2)>=10000)
       {
     Serial.printf("Conectado a la red: %s\n", WiFi.SSID().c_str());
      t2=millis();
      }
  }
 WiFiClient client = server.available();  // Comprueba si el cliente ha conectado con el ESP8266
 if (!client) {
   return;
 }

 Serial.println("nuevo cliente");         // Espera hasta que el cliente envía alguna petición
 while(!client.available()){
   delay(1);
 }

 String peticion = client.readStringUntil('\r');  // Lee la petición enviada al ESP8266 y se almacena en un string.
 Serial.println(peticion);
 client.flush();

 // Comprueba la petición
 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
   estado = HIGH;
 }
 if (peticion.indexOf('/LED=OFF') != -1){
   estado = LOW;
 }

 digitalWrite(PinLED, estado);           //Enciende o apaga el LED en función de la petición

 client.println("HTTP/1.1 200 OK");      //Envía la página HTML de respuesta al cliente
 client.println("");                     //No olvidar esta línea de separación
 client.println("<!DOCTYPE HTML>");
 client.println("<meta charset='UTF-8'>");               //para que en el servidor aparezcan tildes
 client.println("<html>");

     //Imprime el estado del led
 client.print("<h1>El LED está ahora: ");                
 if(estado == HIGH) {
   client.print("ENCENDIDO</h1>");  
 } else {
   client.print("APAGADO</h1>");
 }

     //Se crean enlaces para modificar el estado del LED      
 client.println("Presiona <a href='/LED=ON'>AQUÍ</a> para encender el LED<br>");
 client.println("Presiona <a href='/LED=OFF'>AQUÍ</a> para apagar el LED<br><br>");

     //Se crean cajas de comprobación (checkbox) para modificar el estado del LED
 client.println("<input type='checkbox' onClick=location.href='/LED=ON'> ENCENDER </input><br>");
 client.println("<input type='checkbox' onClick=location.href='/LED=OFF'> APAGAR </input><br><br>");

     //Se crean botones para modificar el estado del LED
 client.println("<button type='button' onClick=location.href='/LED=ON'> ENCENDER </button>");
 client.println("<button type='button' onClick=location.href='/LED=OFF'> APAGAR </button><br><br>");

     //Se crean botones con estilos para modificar el estado del LED
 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>");
 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>");

     //Se crea un único botón para modificar el estado del LED
 if(estado == HIGH) {
   client.print("<button type='button' onClick=location.href='/LED=OFF'> APAGAR </button><br><br>");  
 } else {
   client.print("<button type='button' onClick=location.href='/LED=ON'> ENCENDER </button><br><br>");
 }
 client.println("</html>");
 delay(1);
 Serial.println("Petición finalizada");          // Se finaliza la petición al cliente. Se inicaliza la espera de una nueva petición.

}


Muchas gracias por la ayuda.

Salu2.

#12
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
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
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
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
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
Windows / Problema al iniciar Windows7 en Asus
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
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
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
Cita de: gck en 25 Agosto 2015, 03:36 AM
Lo mejor sería que mates a cada uno con:

kill -9 PID
Gracias por responder, nada no funciona sigue en canal 1.