Herramientas de usuario

Herramientas del sitio


documentacion-proceso:tecnologicos:taller-esp8266

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Última revisiónAmbos lados, revisión siguiente
documentacion-proceso:tecnologicos:taller-esp8266 [2016/03/12 01:57] brolindocumentacion-proceso:tecnologicos:taller-esp8266 [2016/03/12 21:32] – [Relevo wifi] miguel
Línea 164: Línea 164:
 {{:documentacion-proceso:tecnologicos:20160305_235052.jpg?400 |}}{{:documentacion-proceso:tecnologicos:20160305_235516.jpg?400 |}} {{:documentacion-proceso:tecnologicos:20160305_235052.jpg?400 |}}{{:documentacion-proceso:tecnologicos:20160305_235516.jpg?400 |}}
  
-===== 4. Ejemplo LED-Blink (Y de ahí lo que se les ocurra) =====+===== 4. Ejemplos ===== 
 + 
 +==== LED-Blink ====
  
 El builtin led para el ESP-12 no es el mismo que está definido dentro del código de arduino. Se debe renombrar esta variable y usar el **pin 2**. A continuación se muestra el código probado con la modificación mencionada. El builtin led para el ESP-12 no es el mismo que está definido dentro del código de arduino. Se debe renombrar esta variable y usar el **pin 2**. A continuación se muestra el código probado con la modificación mencionada.
Línea 197: Línea 199:
 </code> </code>
  
 +==== Relevo wifi ====
 +
 +La idea es programar el ESP8266 para que de manera remota a través de una petición a un servidor web que se crea dentro del chip se encienda o se apage un pin. El código a continuación es tomado del ejemplo **WifiWebServer** de Arduino para ESP8266. Probamos usando el **pin GPIO2** para activar el relevo pero presentaba problemas con la conexión a la red. Lo cambiamos para el **pin GPIO4**
 +
 +<code c>
 +/*
 +  This sketch demonstrates how to set up a simple HTTP-like server.
 +  The server will set a GPIO pin depending on the request
 +    http://server_ip/gpio/0 will set the GPIO2 low,
 +    http://server_ip/gpio/1 will set the GPIO2 high
 +  server_ip is the IP address of the ESP8266 module, will be 
 +  printed to Serial when the module is connected.
 + */
 +
 +#include <ESP8266WiFi.h>
 +
 +const char* ssid = "ElNombreDeLaRed";
 +const char* password = "LaClaveDeLaRed";
 +
 +// Create an instance of the server
 +// specify the port to listen on as an argument
 +WiFiServer server(80);
 +
 +void setup() {
 +  Serial.begin(115200);
 +  delay(10);
 +
 +  // prepare GPIO2
 +  pinMode(4, OUTPUT);
 +  digitalWrite(4, 0);
 +  
 +  // Connect to WiFi network
 +  Serial.println();
 +  Serial.println();
 +  Serial.print("Connecting to ");
 +  Serial.println(ssid);
 +  
 +  WiFi.begin(ssid, password);
 +  
 +  while (WiFi.status() != WL_CONNECTED) {
 +    delay(500);
 +    Serial.print(".");
 +  }
 +  Serial.println("");
 +  Serial.println("WiFi connected");
 +  
 +  // Start the server
 +  server.begin();
 +  Serial.println("Server started");
 +
 +  // Print the IP address
 +  Serial.println(WiFi.localIP());
 +}
 +
 +void loop() {
 +  // Check if a client has connected
 +  WiFiClient client = server.available();
 +  if (!client) {
 +    return;
 +  }
 +  
 +  // Wait until the client sends some data
 +  Serial.println("new client");
 +  while(!client.available()){
 +    delay(1);
 +  }
 +  
 +  // Read the first line of the request
 +  String req = client.readStringUntil('\r');
 +  Serial.println(req);
 +  client.flush();
 +  
 +  // Match the request
 +  int val;
 +  if (req.indexOf("/gpio/0") != -1)
 +    val = 0;
 +  else if (req.indexOf("/gpio/1") != -1)
 +    val = 1;
 +  else {
 +    Serial.println("invalid request");
 +    client.stop();
 +    return;
 +  }
 +
 +  // Set GPIO2 according to the request
 +  digitalWrite(4, val);
 +  
 +  client.flush();
 +
 +  // Prepare the response
 +  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
 +  s += (val)?"high":"low";
 +  s += "</html>\n";
 +
 +  // Send the response to the client
 +  client.print(s);
 +  delay(1);
 +  Serial.println("Client disonnected");
 +
 +  // The client will actually be disconnected 
 +  // when the function returns and 'client' object is detroyed
 +}
 +</code>
 +
 +{{https://ia801505.us.archive.org/7/items/VID20160312240306565/VID_20160312_240306565.ogv?600}}
 +
 +
 +
 +===== Registro =====
 +
 +{{:documentacion-proceso:tecnologicos:20160309_174236.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160309_174236.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160309_174245.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160309_174302.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160309_174954.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160309_175020.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160309_195005.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160309_195017.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160309_195023.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160311_181625.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160311_181630.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:20160311_182318.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:img_20160311_174035721.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:img_20160311_174035721.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:img_20160311_225111575.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:img_20160311_230635217.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:img_20160311_231703366.jpg?400 |}}
 +{{:documentacion-proceso:tecnologicos:img_20160311_231703622.jpg?400 |}}