06-03-2021, 13:16 
		
	
	
		Saludos.
Recientemente he adquirido una placa Wemos mini D1 y me parece increíble que con lo pequeña que es, lo funcional que resulta, con wifi integrado y todo (ESP8266). Fijaros en la foto de mas abajo su tamaño, el cable conectado a ella es un micro-usb. El precio también es muy atractivo, por unos 3 € la podéis encontrar.
Con ella vamos a controlar el giro de un servo vía wifi desde una página web.
Material necesario:
![[Imagen: wemosmini.jpg]](http://chujalt.com/1/imagenes/wemosmini.jpg) 
![[Imagen: servo.jpg]](http://chujalt.com/1/imagenes/servo.jpg) 
Página web para controlar el servo:
Imagen de la página web:
![[Imagen: grados.png]](http://chujalt.com/1/imagenes/grados.png) 
Código Wemos mini:
Comentario del código:
Bueno, ya está, espero que a alguien le sirva.
Saludos
	
	
	
	
	
	
Recientemente he adquirido una placa Wemos mini D1 y me parece increíble que con lo pequeña que es, lo funcional que resulta, con wifi integrado y todo (ESP8266). Fijaros en la foto de mas abajo su tamaño, el cable conectado a ella es un micro-usb. El precio también es muy atractivo, por unos 3 € la podéis encontrar.
Con ella vamos a controlar el giro de un servo vía wifi desde una página web.
Material necesario:
- Una placa Wemos mini D1.
 
- Un Micro Servo 9G
 
![[Imagen: wemosmini.jpg]](http://chujalt.com/1/imagenes/wemosmini.jpg)
![[Imagen: servo.jpg]](http://chujalt.com/1/imagenes/servo.jpg)
Conexiones:
- Pin cable amarillo del servo al pin D7 de la Wemos mini.
 
- Pin cable rojo del servo al pin 5v de la Wemos mini.
 
- Pin cable marrón del servo al pin GND de la Wemos mini.
 
Página web para controlar el servo:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//ES" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
    <title>Control servo</title>
<style type="text/css">
#juan {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
}
</style>
  </head>
  <body>
<div id="juan">
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=000';" value="000" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=005';" value="005" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=010';" value="010" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=015';" value="015" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=020';" value="020" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=025';" value="025" /></br>
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=030';" value="030" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=035';" value="035" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=040';" value="040" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=045';" value="045" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=050';" value="050" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=055';" value="055" /></br>
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=060';" value="060" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=065';" value="065" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=070';" value="070" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=075';" value="075" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=080';" value="080" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=085';" value="085" /></br>
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=090';" value="090" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=095';" value="095" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=100';" value="100" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=105';" value="105" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=110';" value="110" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=115';" value="115" /></br>
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=120';" value="120" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=125';" value="125" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=130';" value="130" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=135';" value="135" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=140';" value="140" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=145';" value="145" /></br>
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=150';" value="150" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=155';" value="155" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=160';" value="160" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=165';" value="165" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=170';" value="170" />
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=175';" value="175" /></br>
   <input type="button" onclick="location.href='http://192.168.1.111/angulo=180';" value="180" />
 </div>
</body>
</html>Imagen de la página web:
![[Imagen: grados.png]](http://chujalt.com/1/imagenes/grados.png)
Código Wemos mini:
Código:
//Conexiones
//Amarillo: D7
//Rojo: 3V
//Marrón: GND
#include <Servo.h> 
#include <ESP8266WiFi.h>
const int servo_pin = D7; 
Servo myservo;  
unsigned int old_value;
const char* ssid = "Tu_ssid";
const char* password = "Tu_contraseña";
IPAddress ip(192,168,1,111);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
WiFiServer server(80);
void setup() 
{ 
  Serial.begin(115200);
  delay(10);
 myservo.attach(servo_pin); 
   old_value = 90;
 WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);
  
  server.begin(); 
} 
 String f = "";
void loop() {
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
 
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
 
  String request = client.readStringUntil('\r');
  client.flush();
 
   char i1 = request.indexOf("GET /angulo="), i2;
   if (i1 != -1) 
     i2 = request.indexOf(" ", i1+12);
     f = request.substring(i1+12, i2);
int g = f.toInt();
    
   if ((0 <= g) && (g <= 180)) {
         
      if (g < old_value)
       {   
      for(int i = old_value ; i > g ; i -= 1)
         {
         myservo.write(i);
         delay(15);
         }
         old_value = g;
       }
       
     if (g > old_value)
       {
       for(int i = old_value ; i < g ; i += 1)
         {
         myservo.write(i);
         delay(15);
         }
         old_value = g;
      }
   }  
 
 delay(100);
 client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println("");
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.print("<body onload='history.back();'>\n");
  client.println("</body>");
  client.println("</html>");
 
  delay(1);
}Comentario del código:
- Se incluyen las librerías necesarias.
 
- Se indica el pin del servo.
 
- Se dan todos los parámetros para la conexión wifi. En este caso a la placa le hemos asignado la dirección IP 192.168.1.111.
 
- Se inicia el servo y la conexión wifi.
 
- Se recibe mediante el método GET los parámetros enviados desde la página web y se desecha todo menos lo que nos interesa, que es el número de grados.
 
- Una vez captado ese número, se envía al servo para que gire esos grados.
 
- La placa envía al navegador una pequeña página web con un "history.back()" para que nos vuelva a mostrar el teclado de manera inmediata.
 
Bueno, ya está, espero que a alguien le sirva.
Saludos


