You are on page 1of 16

TECNOLOGA DE SOFTWARE PARA

ELECTRNICA
INGRESO DE CONTRASEA Y VERIFICACIN DE USUARIO

CARLOS ORTIZ, GARETH ESPINOZA, IVAN YEPEZ

15/11/2013

Tabla de contenido
Tema del Proyecto.....................................................................1
Localizacin............................................................................1
Entidad Ejecutora ................................................................................... 1
Objetivos................................................................................1

Marco Terico............................................................................2
Redes.....................................................................................2
Introduccin
2
Clasificacin........................................................................................ 3
Componentes...................................................................................... 5
Protocolos........................................................................................... 6
Arduino..................................................................................7
Introduccin
7
Libreras.............................................................................................. 8

Conclusiones y Recomendaciones.............................................11

Bibliografa.............................................................................11

Anexos....................................................................................12

Tema del proyecto:


Se desea implementar el ingreso de la contrasea de un usuario
determinado mediante un teclado matricial y esta contrasea una vez
ingresada pasar a la verificacin en un servidor, cuando esta sea la
indicada proceder a activarse y si es la incorrecta se le negara el
acceso al usuario y este deber volver a intentarlo, pero existir un
nmero mximo de intentos que se puede realizar.

Cobertura y Localizacin:
Este proyecto se lo entregara al Ing. Darwin Caina docente de la
Universidad de las Fuerzas Armadas en la ciudad de Sangolqu,
Cantn Rumiahui
Entidad Ejecutora:
Universidad de las fuerzas armadas
Gareth Espinoza
Carlos Ortiz
Ivn Ypez

Objetivos:
General:

Comprender el funcionamiento de una red de computadoras


para implementarlo en aplicaciones prcticas.
Especficos:

Aprender las lneas de cdigo que son indispensables cuando se


requiera desarrollar aplicaciones que usen una comunicacin en
red.
Investigar y comprender el funcionamiento del Arduino Uno asi
como su programacin y las libreras que son necesarias para
su correcta implementacin.
Desarrollar una aplicacin servidor cliente con la ayuda del
Arduino.

Marco Terico:
Red de Computadoras

Una red de computadoras es una interconexin de computadoras


para compartir informacin, recursos y servicios. Esta interconexin
puede ser a travs de un enlace fsico (alambrado) o inalmbrico.
Algunos expertos creen que una verdadera red de computadoras
comienza cuando son tres o ms los dispositivos y/o computadoras
conectadas.
Para comunicarse entre s en una red el sistema de red utiliza
protocolos de red.
La comunicacin por medio de una red se lleva a cabo en dos
diferentes categoras: la capa fsica y la capa lgica.
La capa fsica incluye todos los elementos de los que hace uso un
equipo para comunicarse con otros equipos dentro de la red, como,
por ejemplo, las tarjetas de red, los cables, las antenas, etc.
La comunicacin a travs de la capa fsica se rige por normas muy
rudimentarias que por s mismas resultan de escasa utilidad. Sin
embargo, haciendo uso de dichas normas es posible construir los
denominados protocolos, que son normas de comunicacin ms
complejas (mejor conocidas como de alto nivel), capaces de
proporcionar servicios que resultan tiles.
Los protocolos son un concepto muy similar al de los idiomas de las
personas. Si dos personas hablan el mismo idioma, es posible
comunicarse y transmitir ideas.
La razn ms importante (quiz la nica) sobre por qu existe
diferenciacin entre la capa fsica y la lgica es sencilla: cuando existe
una divisin entre ambas, es posible utilizar un nmero casi infinito
de protocolos distintos, lo que facilita la actualizacin y migracin
entre distintas tecnologas.

Figura 1: Red de Computadoras


Extrado 14-11-2013 de
http://scartman.wordpress.com/author/scartman/

Clasificacin
Por extensin las redes pueden ser:
*rea de red local (LAN)
*rea de red metropolitana (MAN)
*rea de red amplia (WAN)
*rea de red personal (PAN)
Por relacin funcional se clasifican en:
*Cliente/Servidor
*igual-a-igual (P2P)
Por topologa:
*red alambrada
*red de anillo
*red de bus
*red de bus-estrella
*red de estrella
*red Mesh

Figura 3: Conexin de redes


Extrado 14-11-2013 de
http://www.madrimasd.org/blogs/universo/2008/03/25/87333
Por estructura:
Red OSI
Red TCP/IP
Puede ser una intranet o extranet

Figura 3: Capas del Modelo OSI


Extrado 14-11-2013 de
http://es.wikipedia.org/wiki/Red_de_computadoras
Para poder formar una red se requieren elementos: hardware,
software y protocolos. Los elementos fsicos se clasifican en dos
grandes grupos: dispositivos de usuario final (hosts) y dispositivos de
red. Los dispositivos de usuario final incluyen los computadores,
impresoras, escneres, y dems elementos que brindan servicios
directamente al usuario y los segundos son todos aquellos que
conectan entre s a los dispositivos de usuario final, posibilitando su
intercomunicacin.
El fin de una red es la de interconectar los componentes hardware de
una red , y por tanto, principalmente, las computadoras individuales,
4

tambin denominados hosts, a los equipos que ponen los servicios en


la red, los servidores, utilizando el cableado o tecnologa inalmbrica
soportada por la electrnica de red y unidos por cableado o
radiofrecuencia. En todos los casos la tarjeta de red se puede
considerar el elemento primordial, sea sta parte de un ordenador, de
un conmutador, de una impresora, etc. y sea de la tecnologa que sea
(ethernet, Wi-Fi, Bluetooth, etc.)
Software
Permite la interconexin de ordenadores para poder acceder a los
servicios y recursos. Al igual que un equipo no puede trabajar sin un
sistema operativo, una red de equipos no puede funcionar sin un
sistema operativo de red. En muchos casos el sistema operativo de
red es parte del sistema operativo de los servidores y de los clientes,
por ejemplo en Linux y Microsoft Windows.
Hardware
Tarjeta de red
Para lograr el enlace entre las computadoras y los medios de
transmisin (cables de red o medios fsicos para redes almbricas e
infrarrojos o radiofrecuencias para redes inalmbricas), es necesaria
la intervencin de una tarjeta de red, o NIC (Network Card Interface),
con la cual se puedan enviar y recibir paquetes de datos desde y
hacia otras computadoras, empleando un protocolo para su
comunicacin y convirtiendo a esos datos a un formato que pueda ser
transmitido por el medio (bits, ceros y unos). Cabe sealar que a cada
tarjeta de red le es asignado un identificador nico por su fabricante,
conocido como direccin MAC (Media Access Control), que consta de
48 bits (6 bytes). Dicho identificador permite direccionar el trfico de
datos de la red del emisor al receptor adecuado.
Dispositivos de usuario final
Computadoras personales: son los puestos de trabajo habituales de
las redes. Dentro de la categora de computadoras, y ms
concretamente computadoras personales, se engloban todos los que
se utilizan para distintas funciones, segn el trabajo que realizan.
Impresoras: muchos de estos dispositivos son capaces de actuar
como parte de una red de ordenadores sin ningn otro elemento, tal
como un print server, actuando como intermediario entre la
impresora y el dispositivo que est solicitando un trabajo de
impresin de ser terminado. Los medios de conectividad de estos
dispositivos Otros elementos: escneres, lectores de CD-ROM,
Dispositivos de red
Los equipos informticos descritos necesitan de una determinada
tecnologa que forme la red en cuestin. Segn las necesidades se
deben seleccionar los elementos adecuados para poder completar el
sistema. Por ejemplo, si queremos unir los equipos de una oficina
5

entre ellos debemos conectarlos por medio de un conmutador o un


concentrador, si adems hay un varios porttiles con tarjetas de red
Wi-Fi debemos conectar un punto de acceso inalmbrico para que
recoja sus seales y pueda enviarles las que les correspondan, a su
vez el punto de acceso estar conectado al conmutador por un cable.
Si todos ellos deben disponer de acceso a Internet, se interconectaran
por medio de un router, que podra ser ADSL, ethernet sobre fibra
ptica, broadband, etc.
Elementos
Los elementos de la electrnica de red ms habituales son:
Conmutador, o switch,
Enrutador, o router,
Puente de red, o bridge,
Puente de red y enrutador, o brouter,
Punto de acceso inalmbrico, o WAP (Wireless Access Point),
Protocolos
Existen diversos protocolos, estndares y modelos que determinan el
funcionamiento general de las redes. Destacan el modelo OSI y el
TCP/IP. Cada modelo estructura el funcionamiento de una red de
manera distinta. El modelo OSI cuenta con siete capas muy definidas
y con funciones diferenciadas y el TCP/IP con cuatro capas
diferenciadas pero que combinan las funciones existentes en las siete
capas del modelo OSI.4 Los protocolos estn repartidos por las
diferentes capas pero no estn definidos como parte del modelo en s
sino como entidades diferentes de normativas internacionales, de
modo que el modelo OSI no puede ser considerado una arquitectura
de red.

Arduino Uno

Arduino es una plataforma de electrnica abierta para la creacin de


prototipos basada en software y hardware flexibles y fciles de usar.
Se cre para artistas, diseadores, aficionados y cualquiera
interesado en crear entornos u objetos interactivos.
Arduino puede tomar informacin del entorno a travs de sus pines
de entrada de toda una gama de sensores y puede afectar aquello
que le rodea controlando luces, motores y otros actuadores. El
microcontrolador en la placa Arduino se programa mediante el
lenguaje de programacin Arduino (basasdo en Wiring) y el entorno
de desarrollo Arduino (basado en Processing). Los proyectos hechos
con Arduino pueden ejecutarse sin necesidad de conectar a un
ordenador, si bien tienen la posibilidad de hacerlo y comunicar con
diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).
Las placas pueden ser hechas a mano o compradas montadas de
fbrica; el software puede ser descargado de forma gratuita. Los
ficheros de diseo de referencia (CAD) estn disponibles bajo una
licencia abierta, as pues eres libre de adaptarlos a tus necesidades.
Arduino recibi una Mencin Honorfica en la seccin Digital
Communities de la edicin del 2006 del Ars Electronica Prix. El equipo
Arduino (Arduino team) es: Massimo Banzi, David Cuartielles, Tom
Igoe, Gianluca Martino, and David Mellis. Credits

Figura 4: Arduino Uno


Extrado 14-11-2013 de http://www.arduino.cc/es/

Figura 5: Interfaz del entorno de desarrollo de Arduino


Extrado 14-11-2013 de http://es.wikipedia.org/wiki/Arduino

Libreras
Mtodos de la versin 1.1.0
Mtodo

Descripcin

ArduinoRX(string nombre del

Este mtodo se utiliza para iniciar la

puerto, inttime out, int baud

conexin de Java con Arduino

rate,SerialPortEventListener eve

SOLAMENTE PARA LA RECEPCIN DE

nto)

DATOS. En elnombre de puerto se


coloca el COM#, o sea el puerto COM
donde est conectado Arduino,
el time out es el tiempo de espera
(yo uso 2000), el baud rate debe ser
el mismo que se usa en Arduino IDE
(generalmente 9600) y el Serial
PortEventListener debe ser una
variable declarada antes de utilizar

este mtodo.
Este mtodo se utiliza para iniciar la
ArduinoTX(string nombre del

conexin de Java con Arduino

puerto, inttime out, int baud

SOLAMENTE PARA LA TRANSMISIN DE

rate)

DATOS.

ArduinoRXTX(string nombre
del puerto, inttime

Este mtodo se utiliza para iniciar la

out, int baud

conexin de Java con Arduino PARA LA

rate,SerialPortEventListener eve

TRANSMISIN Y RECEPCIN DE

nto)

DATOS.
Mtodo utilizado para enviar datos a
Arduino. Los datos se deben enviar

SendData(String data)

como cadena de texto (string).


Devuelve un dato recibido a travs del
puerto serie. Este dato ser numrico
en formato ASCII por lo que se debe

ReceiveData()

traducir de decimal a caracter.


Devuelve un valor boolean que nos
indica si hay algn mensaje disponible
para imprimir. Dicho mensaje DEBE
ser enviado desde Arduino utilizando

MessageAvailable()

Serial.println();

PrintMessage()

Devuelve una cadena de caracteres


que contiene el mensaje que ha sido
enviado desde Arduino, pero traducido
a caracteres. SE DEBE UTILIZAR
DENTRO DE UNA ESTRUCTURA
CONDICIONAL UTILIZANDO

MessageAvailable(). Cuando haya un


mensaje disponible, se imprime
utilizando este mtodo.

Para utilizar esta librera se debe importar la librera a los archivos del
proyecto. Tambin se necesita la librera RXTX
Si se va a usar la conexin RX o la RXTX, hay que declarar un
SerialPortEventListener y se debe agregar los mtodos de esta clase
(Java lo har automticamente).
Si se utiliza ReceiveData() se recibirn los datos directamente desde
Arduino, en formato ASCII.
Si se usa PrintMessage() se recibirn
traducidos a caracteres y ordenados
PRINTLN EN ARDUINO y se recomienda
cuando MessageAvailable() devuelva un

los mensajes desde Arduino


por lneas. SE DEBE USAR
que este mtodo slo se use
valor true.

Cdigo de Programacin Arduino


#include<Keypad.h>
int Input=0;
const byte Filas = 4;
const byte Columnas = 4;
byte pinsFilas[Filas] = {9, 8, 7, 6};
byte pinsColumnas[Columnas] = {5, 4, 3, 2};
char Teclas[Filas][Columnas]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
Keypad Teclado = Keypad(makeKeymap(Teclas), pinsFilas,
pinsColumnas, Filas, Columnas);
char Tecla;
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
10

}
void loop()
{
Tecla = Teclado.getKey();
if(Tecla != NO_KEY)
{
Serial.println(Tecla);
}
if (Serial.available()>0)
{
Input=Serial.read();
if (Input=='1')
{
digitalWrite(13, HIGH); //Si el valor de input es 1, se enciende el
led
}
else
{
digitalWrite(13, LOW); //Si el valor de input es diferente de 1, se
apaga el LED
}
}
}
Programa Java Cliente
public class HiloCliente extends Thread
{
String Usuario;
String Password;
boolean ingreso;
public HiloCliente(String User, String Pass)
{
this.Usuario = User;
this.Password = Pass;
}
public boolean Verificacion()
{
try
{
int Puerto=35557;
Socket socket = new Socket ("localhost", Puerto);
System.out.println ("Conectado con el Servidor");
InputStream entrada = socket.getInputStream();
OutputStream salida = socket.getOutputStream();
DataInputStream entradaDatos = new DataInputStream
(entrada);
11

DataOutputStream salidaDatos = new DataOutputStream


(salida);
salidaDatos.writeUTF(Usuario);
salidaDatos.writeUTF(Password);
ingreso = entradaDatos.readBoolean();
socket.close(); // Con esto se cierra el socket servidor, ya no
atendemos ms conexiones.
System.out.println ("Coneccion Cerrada");
}
catch (IOException ex)
{
Logger.getLogger(HiloCliente.class.getName()).log(Level.SEVERE, null,
ex);
}
return(ingreso);
}
Codigo Java Servidor
public class HiloServer extends Thread{
public String Usuario;
public String Password;
Usuario User1 = new Usuario("Carlos", "Ortiz", "5756ABCD",
"18047981");
Usuario User2 = new Usuario("Gareth", "Espinoza", "12345DCB",
"12345678");
Usuario User3 = new Usuario("Ivan" , "Yepez", "12345678",
"ABCD0987");
public void run()
{
while(true)
{
int Puerto=35557;
try
{
ServerSocket socket = new ServerSocket (Puerto);
System.out.println ("Esperando Coneccion por el
Puerto:"+Puerto);
Socket cliente = socket.accept();
System.out.println ("Conectado con un Cliente");
InputStream entrada = cliente.getInputStream();
OutputStream salida = cliente.getOutputStream();
DataInputStream entradaDatos = new DataInputStream
(entrada);
DataOutputStream salidaDatos = new DataOutputStream
(salida);
12

Usuario = entradaDatos.readUTF();
Password = entradaDatos.readUTF();
salidaDatos.writeBoolean(Verificar());
cliente.close(); // Con esto se cierra la conexin con el
cliente.
System.out.println ("Coneccion Cerrada");
socket.close(); // Con esto se cierra el socket servidor, ya no
atendemos ms conexiones.
}
catch (IOException ex)
{
Logger.getLogger(HiloServer.class.getName()).log(Level.SEVERE, null,
ex);
}
}
}
private boolean Verificar()
{
boolean aux = false;
if(User1.Usuario.equals(Usuario) &&
User1.Password.equals(Password))
{
aux=true;
}
else if(User2.Usuario.equals(Usuario) &&
User2.Password.equals(Password))
{
aux=true;
}
else if(User3.Usuario.equals(Usuario) &&
User3.Password.equals(Password))
{
aux=true;
}
else
{
aux=false;
}
return(aux);
}

13

Conclusiones Y Recomendaciones:

La comunicacin entre Arduino y el ordenador se realiza por


el puerto serie(RS232) o tambin puede usarse el puerto USB
El Arduino nos sirve tanto como para la parte de interaccin
con el ordenador como para la programacin del micro
controlador
Se recomienda hacer la conexin servidor cliente con un
cable UTP cruzado
Es recomendable ingresar al CMD y realizar el PING
correspondiente para verificar que estn conectados los
ordenadores

Bibliografa:
[1]Redes de computadoras articulo web disponible en lnea en:
http://scartman.wordpress.com/author/scartman/paralelo (14/11/2013
16:00).
[2] Arduino, articulo web disponible en lnea en
http://www.arduino.cc/es/ (14/11/2013 16:00)

Anexos

14

You might also like