Tutorial del Internet de las Cosas y Bluetooth con el ESP32
Juan Antonio Villalpando
Volver al índice del tutorial
____________________________
217.- Wemos D1 R32 ESP32.WiFi. Servo movido desde una página web con botones. Código de la librería.
- Al pulsar dos botones de una página web, el eje del servo se desplaza 5 grados en un sentido o en otro.
- Está basado en:
https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/SimpleWiFiServer/SimpleWiFiServer.ino
________________________________
- Conexiones.

- En este ejemplo he conectado el Servo directamente a los 5V de la tarjeta, normalmente se suele conectar a una alimentación externa.
- Bajamos el siguente archivo, lo descomprimos y lo copiamos en la carpeta libraries de Arduino.
ESP32_Arduino_Servo.zip
________________________________
- Código.
|
// Juan A. Villalpando.
// KIO4.COM
// Saldrá una página web con dos botones.
// Mover servo.
#include <Servo.h>
Servo myservo;
static const int servoPin = 14;
int grado = 90;
#include <WiFi.h>
const char* ssid = "Nombre_de_tu_red_wifi";
const char* password = "La_clave_de_tu_red_wifi";
WiFiServer server(80);
void setup()
{
Serial.begin(115200);
delay(10);
Serial.println();
Serial.print("Conectando con ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Direccion IP: ");
Serial.println(WiFi.localIP());
server.begin();
myservo.attach(servoPin);
}
int value = 0;
void loop(){
WiFiClient client = server.available(); // Chequea si hay nuevos clientes.
if (client) {
Serial.println("Nuevo cliente."); // Nuevo cliente conectado.
String despues_ip = ""; // Lo que viene después de la IP
while (client.connected()) { // Mientra esté conectado está en este bucle.
if (client.available()) { // El cliente envía un dato.
char c = client.read(); // lee un byte
Serial.write(c); //
if (c == '\n') { // Si ha pulsado Enter hace esto...
if (despues_ip.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
// Consulta el caracter enviado.
client.print("<a href=\"/H\"><button> Pulsa para aumentar 5 grados. </button></a><br>");
client.print("<a href=\"/L\"><button> Pulsa para disminuir 5 grados. </button></a><br>");
client.print(grado);
client.println();
break;
} else { // Si ha puesto IP pero luego no hay nada más.
despues_ip = "";
}
} else if (c != '\r') { // if you got anything else but a carriage return character,
despues_ip += c; // add it to the end of the currentLine
}
// Comprueba si ha enviado H o L.
if (despues_ip.endsWith("GET /H")) {
grado = grado + 5;
myservo.write(grado);
}
if (despues_ip.endsWith("GET /L")) {
grado = grado - 5;
myservo.write(grado);
}
}
}
client.stop();
Serial.println("Cliente desconectado.");
}
}
|
________________________________
- Comentarios.
- En vez de utilizar el Reloj, podríamos mover el Deslizador y después pulsar el Botón "Enviar valor del Deslizador", pero para ello debemos poner todos los TemporizadorHabilitado en falso, para que no actue el Reloj.
_______________________________
|