Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Laboratorio de Percepción
Definición del sistema de percepción.................................................................................................3
Definición y diagramas de los actuadores y sensores utilizados.........................................................3
Servomotor.................................................................................................................................3
LED RGB......................................................................................................................................5
Buzzer..........................................................................................................................................6
Sensor ultrasónico....................................................................................................................7
Sensor LM35...............................................................................................................................8
Sensor fotorresistencia LDR................................................................................................10
Capturas del Monitor serial haciendo lectura del funcionamiento de los componentes....................12
Código fuente en Arduino IDE para ESP32.....................................................................................15
Captura del Servidor Web................................................................................................................22
Circuito Armado..............................................................................................................................23
CONCLUSION................................................................................................................................24
Definición del sistema de percepción
Servomotor
Un servomotor (o servo) es un tipo especial de motor con características
especiales de control de posición. Al hablar de un servomotor se hace referencia a
un sistema compuesto por componentes electromecánicos y electrónicos.
Sensor ultrasónico
Como su nombre lo indica, los sensores ultrasónicos miden la distancia mediante
el uso de ondas ultrasónicas. El cabezal emite una onda ultrasónica y recibe la
onda reflejada que retorna desde el objeto. Los sensores ultrasónicos miden la
distancia al objeto contando el tiempo entre la emisión y la recepción.
Sensor LM35
El LM35 es un sensor de temperatura lineal de tres terminales de National
semiconductors que puede medir temperaturas desde los -55 hasta los +150
grados centígrados, por lo que cuenta con aplicabilidad para distintos ambientes, y
gracias a sus dimensiones puede ser instalado en casi cualquier lugar. El ajuste
de salida de voltaje del LM35 es proporcional al de su entrada, y por cada valor de
temperatura este aumenta o disminuye 10 mV. El LM35 puede funcionar con una
fuente de alimentación continua de 5 V hasta 20 V, y la corriente de reserva es
inferior a 60 uA.
Este componente posee grades ventajas frente a los circuitos integrados
calibrados en grados kelvin, y la más destacable es que no se necesita sustraer
una tensión constante elevada de su salida para ajustarla a una escala en grados
centígrados. Por otra parte, no requieren de circuitos adicionales para calibrarlo
externamente, y su baja impedancia de salida, salida lineal y precisa calibración
hace posible que pueda ser instalado fácilmente en cualquier circuito de control.
Figura 11. Foto del sensor LM35.
Por si solo el LM35 no tiene mucho que ofrecer, no obstante, este circuito
integrado es de los que requiere de menor cantidad de conexiones externas para
medir la temperatura de un lugar. Una de las formas más eficientes de aprovechar
sus funcionamientos es a través de un Arduino, estos dispositivos (aparte de ser
compatibles con cualquiera de los sensores de temperatura comerciales
disponibles en el mercado), son fáciles de configurar, tienen bajo costo y admiten
salidas analógicas en circuitos integrados.
Es difícil describir el comportamiento del circuito integrado de este componente,
especialmente porque su salida es analógica, pero por medio de simples ajustes
en un Arduino es posible interpretar las variaciones de voltaje de salida en una
pantalla digital con mucha precisión y poca cantidad de dinero. Algunos
encapsulados admiten la instalación de accesorios metálicos que permiten
determinar la temperatura con mayor facilidad y aseguran que el componente
responderá a la prontitud.
Cuanto mayor intensidad es la luz que incide sobre el sulfuro de cadmio, más baja
es la resistencia, es decir mayor facilidad de los electrones para moverse. Vale
saber que la variación de la resistencia cuando hay cambios de luminosidad
repentinos no sigue la misma velocidad, sino que tiene retardo.
Figura 14. Diagrama de fotorresistencia LDR.
Capturas del Monitor serial haciendo lectura del funcionamiento de los componentes
Captura 1. Se mueve el servomotor a 80°.
NOTA: Se emplearon 3 botones para el led RGB, al encender dos de ellos a la vez
podemos apreciar colores diferentes, por lo cual se logran obtener los 5 colores en total.
Captura 5. Enciende el buzzer conectado al GPIO 33.
#include <WiFi.h>
#include <Servo.h>
Servo myservo;
WiFiServer server(80);
String header;
//Luz sensor
float weird;
int porcentaje = 0;
//temp sensor
float worst;
float better = 0;
int el;
const int Trigger = 18; //Pin digital 2 para el Trigger del sensor
const int Echo = 19; //Pin digital 3 para el Echo del sensor
void setup() {
Serial.begin(115200);
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.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
pinMode(output33, OUTPUT);
digitalWrite(output33, LOW);
myservo.attach(servoPin);
pinMode(output25, OUTPUT);
digitalWrite(output25, LOW);
pinMode(output26, OUTPUT);
digitalWrite(output26, LOW);
pinMode(output27, OUTPUT);
digitalWrite(output27, LOW);
void loop(){
WiFiClient client = server.available();
if (client) {
currentTime = millis();
previousTime = currentTime;
Serial.println("New Client.");
String currentLine = "";
while (client.connected() && currentTime - previousTime <= timeoutTime) {
currentTime = millis();
if (client.available()) { // if there's bytes to read from the client,
char c = client.read(); // read a byte, then
Serial.write(c); // print it out the serial monitor
header += c;
if (c == '\n') { // if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
// and a content-type so the client knows what's coming, then a blank line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
// Display the HTML web page
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-
scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\">");
client.println("<h1>Equipo No. 2</h1>");
client.println("</head><body><h2>Servidor WEB</h2>");
client.println("<p>Servomotor - Position: <span id=\"servoPos\"></span></p>");
client.println("<input type=\"range\" min=\"0\" max=\"180\" class=\"slider\" id=\"servoSlider\"
onchange=\"servo(this.value)\" value=\""+valueString+"\"/>");
digitalWrite(Trigger, HIGH);
delayMicroseconds(10); //Enviamos un pulso de 10us
digitalWrite(Trigger, LOW);
Serial.print("Distancia: ");
Serial.print(d); //Enviamos serialmente el valor de la distancia
Serial.print("cm");
client.println("<p>");
client.println("Distancia:");
client.println(d);
client.println("cm");
client.println("<p>");
//Luz //Sonido
weird = analogRead(pin34);
worst = analogRead(pin32);
porcentaje = weird/40.95;
better = ((worst*3.3*1000)/4095)/10;
Serial.println(porcentaje);
Serial.println(better);
Serial.println(worst);
client.println("<p>");
client.println("Iluminacion:");
client.println(porcentaje);
client.println("% de luz");
client.println("<p>");
client.println("Temperatura:");
client.println(better);
client.println("grados centigrados");
client.println("<p>");
client.println("</body></html>");