Está en la página 1de 21

INSTITUTO TECNOLOGICO SUPERIOR DE PURISIMA DEL RINCON.

Programación Aplicada
3° Parcial
Proyecto de asignatura parcial 3.
Integrantes:

Martínez Torres Jocelyn del Rosario


(FS20110181)

Ramírez Barajas Cesar Israel


(FS20110464)
Reyes López Christian Daniel

(RS20110809) 2-A

Purísima del Rincón, Guanajuato, a 16 de junio de


2021.

Docente: Lucero de Montserrat Ortiz


Aguilar
Introducción:
Hacer diseños en Arduino que me permitan ver el
funcionamiento de una casa, simulando sus puertas, luz,
temperatura, etc.
Cada parte debe de estar controlada por un Arduino.
En este presente trabajo, se debe contener en los Arduinos lostipos
de sensores y/o servomotores que me permitan manejar las
puertas, luz, temperatura, etc.
Este se diseña con base a un plano de una casa, el cual se está
simulando en los circuitos de Arduino.
Desarrollo:
Protoboard
La Protoboard, llamada en inglés breadboard, es una placa de
pruebas en los que se pueden insertar elementos electrónicos y cables
con los que se arman circuitos sin la necesidad de soldar ninguno de
los componentes. Las Protoboards tienen orificios conectados entre sí
por medio de pequeñas laminas metálicas. Usualmente, estas placas
siguen un arreglo en el que los orificios de una misma fila están
conectados entre sí y los orificios en filas diferentes no. Los orificios
de las placas normalmente están tienen una separación de 2.54
milímetros (0.1 pulgadas).
Una Protoboard es un instrumento que permite probar el diseño de un
circuitosin la necesidad de soldar o desoldar componentes. Las
conexiones en una Protoboard se hacen con solo insertar los
componentes lo que permite armar ymodificar circuitos con mayor
velocidad.
Arduino
Arduino es una plataforma de creación de electrónica de código
abierto, la cual está basada en hardware y software libre, flexible y
fácil de utilizar para los creadores y desarrolladores. Esta plataforma
permite crear diferentes tipos de microordenadores de una sola placa
a los que la comunidad de creadores puede darles diferentes tipos de
uso.
Para poder entender este concepto, primero vas a tener que entender
los conceptos de hardware y el software libres. El hardware libre son
los dispositivos cuyas especificaciones y diagramas son de acceso
público, de manera que cualquiera puede replicarlos. Esto quiere decir
que Arduino ofrece las bases para que cualquier otra persona o
empresa pueda crear sus propias placas, pudiendo ser diferentes
entre ellas, pero igualmente funcionales al partir de la misma base.

El Arduino es una placa basada en un microcontrolador ATMEL. Los


microcontroladores son circuitos integrados en los que se pueden
grabar instrucciones, las cuales las escribes con el lenguaje de
programación que puedes utilizar en el entorno Arduino IDE. Estas
instrucciones permiten crear programas que interactúan con los
circuitos de la placa.
sensor ultrasónico
El sensor ultrasónico realiza mediciones mediante el uso de ondas
ultrasónicas. El funcionamiento del sensor ultrasónico es simple:
cuando el impulso de onda encuentra un objeto, es reflejado y así es
medido en distancia.
Teóricamente parecería complejo comprender qué es un sensor
ultrasónico, sin embargo, su uso en la industria es muy amplio. Este
dispositivo es utilizado en el sector de materiales y su manejo, la
industria de equipos móviles, detección y hasta en llenado de
productos.
La tecnología ultrasónica funciona basándose en principios acústicos.
El sensor emite pulsaciones acústicas cortas a través del aire, y de
esta forma detecta objetos que después reflejará. Lo que mide le
sensor es el tiempo entre emitir el pulso y la recepción del este.
Esta es la razón por la que el sensor ultrasónico es de los instrumentos más
confiables en medición. Casi todo tipo de material es capaz de reflejar
ondas acústicas o sonido, haciendo que las mediciones sean limpias.
Las inclemencias de ambientes hostiles como el polvo no afectan a
los sensores ultrasónicos, por lo que sus mediciones son más estables
y precisas. El sensor puede incluso hacer mediciones tan breves como
0,025 mm.
Servomotor
También llamado servo, son dispositivos de accionamiento para el
control de precisión de velocidad, par motor y posición. Constituyen un
mejor desempeño y precisión frente a accionamientos mediante
convertidores de frecuencia, ya que éstos no nos proporcionan control
de posición y resultan poco efectivos en bajas velocidades.
Es un servomotor, aquel que contiene en su interior un encoder,
conocido como decodificador, que convierte el movimiento mecánico
(giros del eje) en pulsos digitales interpretados por un controlador de
movimiento. También utilizan un driver, que en conjunto forman un
circuito para comandar posición, torque y velocidad.

Los servomotores son considerados fundamentales en el diseño y la


construcción de los robots. Son sistemas que requieren un
posicionamiento mecánico preciso y controlado. Podemos verlo en
campos como la automatización industrial o la creciente cirugía
robótica. Con la aparición de los servomotores digitales se han
conseguido grandes avances en las posibilidades de control y
eficiencia. La mejora del rendimiento se produce debido a que la
electrónica de control utiliza un microcontrolador para hacer todo el
trabajo. Este hecho permite mandar más pulsos de control al motor
aumentando la precisión de movimiento y el rendimiento.
Fotorresistencia
Es un componente electrónico cuya resistencia disminuye con el
aumento de intensidad de luz incidente. Puede también ser llamado
concha de day coronel fotorresistor, fotoconductor, célula fotoeléctrica o
resistor dependiente de la luz, cuyas siglas, LDR, se originan de su
nombre en inglés light-dependent resistor. Su cuerpo está formado por
una célula o celda y dos patillas.

sensores de temperatura
Los sensores de temperatura son componentes eléctricos y
electrónicos que, en calidad de sensores, permiten medir la
temperatura mediante una señal eléctrica determinada. Dicha señal
puede enviarse directamente o mediante el cambio de la resistencia.
También se denominan sensores de calor o termo sensores. Un
sensor de temperatura se usa, entre otras aplicaciones, para el
control de circuitos. Los sensores de temperatura también se llaman
sensores de calor, detectores de calor o sondas térmicas.
resistencia
La resistencia es una medida de la oposición al flujo de corriente en
un circuito eléctrico. La resistencia se mide en ohmios, que se
simbolizan con la letra griega omega (Ω). Se denominaron ohmios en
honor a Georg Simon Ohm (1784-1854), un físico alemán que estudió
la relación entre voltaje, corriente y resistencia. Se le atribuye la
formulación de la ley de Ohm.

LED
Un LED (acrónimo del concepto inglés light-emitting diode) es un
diodo emisor de luz. En su interior hay un semiconductor que, al ser
atravesado por una tensión continua, emite luz, lo que se conoce como
electroluminiscencia. Existen distintos tipos de led en función de las
tecnologías usadas para su fabricación y montaje sobre circuitos
electrónicos.
Teclado 4*4
Teclado Matriz 4×4 es un simple arreglo de botones conectados en
filas y columnas, de modo que se pueden leer varios botones con el
mínimo número de pines requeridos.
Código

#include <Servo.h>
Servo iluminacioncocina;
Servo tempcocina;
Servo puertabano;
Servo iluminacionbano;
Servo tempbano;

//focos
int trigCO=13;
int echoCO=12;
int tiempoCO;
int distanciaCO;
//temperatura
int lecturaCO = 0;
float temperaturaCO = 0.0;
//foco baño
int trigBA=7;
int echoBA=6;
int tiempoBA;
int distanciaBA;
//temperatura baño
int lecturaBA = 0;
float temperaturaBA = 0.0;
//leds
int blanco4=11;
int blanco5=4;

void setup()
{
Serial.begin(9600);
pinMode (trigCO,OUTPUT);
pinMode (echoCO,INPUT);
Serial.begin(9600);
pinMode (trigBA,OUTPUT);
pinMode (echoBA,INPUT);
puertabano.attach(A4);

//iluminacion sala
pinMode(A0, INPUT);
Serial.begin(9600);
iluminacioncocina.attach(8);
//temperatura sala
Serial.begin(9600);
tempcocina.attach(9);

//Puerta baño
Serial.begin(9600);
pinMode (trigBA,OUTPUT);
pinMode (echoBA,INPUT);
puertabano.attach(A4);
//iluminacion baño
pinMode(A3, INPUT);
Serial.begin(9600);
iluminacionbano.attach(2);
//temperatura oficina
Serial.begin(9600);
tempbano.attach(3);
}
void loop()
{//SALA

//focos COCINA
digitalWrite (trigCO,HIGH);
delay (1);
digitalWrite (trigCO,LOW);
tiempoCO=pulseIn (echoCO,HIGH);
distanciaCO=tiempoCO/58.2;
//se divide entre 58.2 para que la distancia este en cm
delay(500);
if (distanciaCO<=200)
{
digitalWrite(blanco4,HIGH);
}
else
{
digitalWrite(blanco4,LOW);
}
//iluminacion (percianas)COCINA
delay(1000);
if (analogRead(A0)<100)
{
iluminacioncocina.write(300);
}
if (analogRead(A0)>100)
{
iluminacioncocina.write(0);
}
//temp COCINA
lecturaCO = analogRead(A1);
temperaturaCO = ( lecturaCO * (500.0 / 1023.0) ) - 50.0;
if (temperaturaCO<=15)
{
tempcocina.write(180);
}
if (temperaturaCO>28)
{
tempcocina.write(0);
}

// BAÑO 1

//focos y puerta BAÑO 1


digitalWrite (trigBA,HIGH);
delay (1);
digitalWrite (trigBA,LOW);
tiempoBA=pulseIn (echoBA,HIGH);
distanciaBA=tiempoBA/58.2;
//se divide entre 58.2 para que la distancia este en cm
delay(500);
if (distanciaBA<=200)
{
puertabano.write(0);
digitalWrite(blanco5,HIGH);
}
else
{
puertabano.write(180);
digitalWrite(blanco5,LOW);
}
//iluminacion (percianas) BAÑO 1
delay(1000);
if (analogRead(A3)<100)
{
iluminacionbano.write(300);
}
if (analogRead(A3)>100)
{
iluminacionbano.write(0);
}
//temp BAÑO 1
lecturaBA = analogRead(A2);
temperaturaBA = ( lecturaBA * (500.0 / 1023.0) ) - 50.0;
if (temperaturaBA<=15)
{
tempbano.write(180);
}
if (temperaturaBA>28)
{
tempbano.write(0);
}
// COCINA
Serial.print("Distancia COCINA es:");
Serial.print(distanciaCO);
Serial.print("\ttemp COCINA");
Serial.print(temperaturaCO);
Serial.print(" c\t");
Serial.print("luz COCINA:");
Serial.println(analogRead(A0));

//OFICINA
Serial.print("Distancia BANO es:");
Serial.print(distanciaBA);
Serial.print("\ttemp BANO");
Serial.print(temperaturaBA);
Serial.print(" c\t");
Serial.print("luz BANO:");
Serial.println(analogRead(A3));
}
Enlace de circuito

https://www.tinkercad.com/things/0CXBYt5FqD2-copy-of-sala-y-oficina-
/editel?sharecode=eKVGWTpDnpqn2_HXJLr5yOME14BaTMo0BtuVK7cnZ-
s
Investigación de cómo hacer una conexión entre Python y Arduino
Conexión entre Python y Arduino
Conceptualmente se tiene un código ejecutándose dentro de nuestro
ordenador que envía mensajes (caracteres) a la placa de Arduino. Lo
primero que necesitamos es tener instalado Python en nuestro
dispositivo. Una vez que tengamos Python instalado para poder
comunicarnos con Arduino necesitamos la librería PySerial, que nos
permite emplear de forma sencilla el puerto serie. Descargamos y
ejecutamos el instalador, para añadir la librería PySerial a nuestra
instalación de Python. También podemos instalar la librería PySerial
directamente desde Python, escribiendo el siguiente comando desde
una consola. También podemos instalar la librería PySerial
directamente desde Python, escribiendo el siguiente comando desde
una consola.

Con cualquiera de los dos métodos, al final tendremos la librería


PySerial instalada y lista para ser utilizada en nuestros proyectos.
Recibir información desde Arduino
En este primer ejemplo vamos a leer información enviada por Arduino,
y capturada y mostrada en pantalla por Python. Para ello empezamos
cargamos en Arduino el siguiente sketch, que simplemente envía
continuamente una vez por segundo el texto “Hola Mundo”.

Dejamos el sketch funcionando en Arduino, y vamos a realizar el script


en Python. Creamos un nuevo archivo de texto vacío, que guardamos
con el nombre "read.py". En su interior copiamos el siguiente código.
Lo que hacemos es importar la librería Serial (PySerial) e instanciar un
objeto PySerial, que hemos llamado "Arduino". En el constructor del
objeto Serial pasamos los parámetros del puerto serie que estemos
empleado.

A continuación, empleamos la orden “readline()” del objeto Serial para


leer una línea enviada por Arduino. Mostramos la línea en pantalla
mediante la orden “Print()”. Finalmente, mediante la orden “close()"
cerramos el puerto serie. Como vemos, emplear el puerto serie con
PySerial es realmente sencillo. Lo único que puede parecer extraño es
por qué hemos tenido que importar la librería “time”. El motivo es que
desde que creamos el objeto Serial hasta realmente está disponible
para ser usado, se necesita un cierto tiempo para abrir el puerto serie.
Por tanto, tenemos que introducir una espera mediante la función
“Sleep”, que pertenece a la librería “time”.
Enviar información a Arduino
Ahora mostraremos como enviar datos a Arduino desde Python. Para
ello vamos a usar el siguiente sketch que vimos en la entrada
Comunicación de Arduino con puerto serie. Este sketch recibe un
número desde 1 a 9 y hace parpadear el LED integrado, conectado al
PIN13, el número de veces recibido. Cargamos el sketch en Arduino, e
igual que antes lo dejamos funcionado.
En la parte de Python necesitaremos un nuevo script que llamaremos,
por ejemplo "write.py". En su interior pegamos el siguiente código.

Como vemos la escritura es muy similar a la lectura. En primer lugar,


importamos la librería PySerial y creamos un nuevo objeto de tipo
Serial, indicando los valores del puerto serie que estemos empleando.
En esta ocasión, escribimos el valor mediante la función “write” (en el
ejemplo, 9). La función “Write” envía bytes, por lo que es necesario
convertir el valor a bytes antecediendo una b al valor enviado (en el
ejemplo b’9’). Por último, cerramos el puerto serie con la función
"close()". Con esto ya tenemos las funciones básicas para enviar y
recibir información a Arduino desde Python, empleando la librería
PySerial para controlar el puerto serie. Resulta sencillo integrar estas
funciones en nuestros programas.
Leyendo datos de Python a partir de Arduino
Ejemplo de código en Arduino

Ejemplo de código en Python


Explicaré qué es lo que hace cada código correspondiente. El código
de Arduino es simplemente un pequeño programa que se encarga de
enviar el string 445.45 de manera serial únicamente cuando éste
reciba el carácter k, que en decimal seria
107. Primeramente, he importado dos librerías que van a hacer de
utilidad, la librería pyserial ya que con ella enviaremos información
serial a arduino y la librería time para crear retardos en el código. Se
crea un objeto arduinoPort a partir de la clase Serial en donde le
indicamos el puerto por donde está conectado el Arduino, así como la
velocidad de transmisión en baudios, y el timeout. Para aquellos que no
saben qué es el timeout, este es el tiempo máximo que esperará el
programa para
establecer la comunicación serial con el dispositivo. Luego, se crea
una variable llamada flagCharacter que contiene carácter que
disparará el código que imprimirá el resultado de lo que enviará el
Arduino. Se crea un objeto arduinoPort a partir de la clase Serial en
donde le indicamos el puerto por donde está conectado el Arduino, así
como la velocidad de transmisión en baudios, y el timeout. Para
aquellos que no saben qué es el timeout, este es el tiempo máximo que
esperará el programa para establecer la comunicación serial con el
dispositivo. Luego, se crea una variable llamada flagCharacter que
contiene carácter que disparará el código que imprimirá el resultado de
lo que enviará el Arduino.
Conclusión:
Fue una buena práctica, mediante esta pudimos simular el sistema
de funcionamiento eléctrico de una casa mediante los circuitos del
Arduino donde simulamos desde los imple como los leds, hasta el
abrir y cerrar una puerta lo cual fue simulado con los servomotores
y también medir la temperatura en este caso con un sensor de
temperatura y la fotorresistencia para reducir un poco la luz
Bibliografía:
https://www.ecured.cu/Fotorresisten
cia
https://www.rechner-sensors.com/es/documentacion/knowledge/el-sensor-
de- temperatura
https://www.fluke.com/es-mx/informacion/blog/electrica/que-es-la-
resistencia https://visualled.com/glosario/que-es-un-led/

También podría gustarte