GUIA DE PRACTICA (EX Aula opcional) LED RGB controlado por Arduino desde un dispositivo mo vil con SO Android 2.2 o superior.
|
|
- Patricia Venegas Maldonado
- hace 8 años
- Vistas:
Transcripción
1 UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS PROGRAMACION PARA DISPOSITIVOS MOVILES PDM115 Ciclo I-2014 GUIA DE PRACTICA (EX Aula opcional) LED RGB controlado por Arduino desde un dispositivo mo vil con SO Android 2.2 o superior. Objetivos General: Implementar la comunicación por medio de bluetooth de un circuito implementado con la placa Arduino y un dispositivo Android 2.2 o mejor. Específicos: Conocer las partes más importantes de un módulo bluetooth compatible con Arduino. Identificar y utilizar los pines de Arduino dedicados a la transición y recepción de datos. Utilizar una aplicativo Android para controlar un led RGB por medio de bluetooth.
2 Tabla de contenido Descripción general del proyecto a implementar:... 1 Precondiciones para la efectiva realización de la siguiente guía:... 2 Material necesario para realizar la practica:... 2 Código fuente para la placa Arduino:... 2 Solución a nivel de circuitería:... 3 Módulo bluetooth HC Diagrama de conexión del led RGB con Arduino y modulo bluetooth HC-07:... 5 Aplicativo bluetooth en Android Manifest:... 8 Strings... 9 Menú... 9 led_tri_color.xml... 9 desconecta.xml... 9 Layuot... 9 activity_led_tri_color.xml... 9 Clases Principales ConexionBT.java LedTriColor.java Detalles importantes del desarrollo de la aplicación Como funciona LedTriColor Anexos Obtener la MAC de un módulo bluetooth
3 Descripción general del proyecto a implementar: En la presente guía se muestra las modificaciones que se deben realizar al circuito elaborado en la guía anterior para poder manipular un led RGB por medio de un dispositivo móvil con SO Android 2.2 o mejor. En la guía anterior logramos manipular un led RGB por medio de comandos desde la computadora gracias a la consola de comunicación serial del IDE de Arduino, en esta guía vamos a llevarlo un paso más adelante logrando enviar parámetros por bluetooth desde una aplicación en Android la cual enviara el parámetro que corresponda la presionar el color que deseamos encender. Hablaremos un poco de lo que son los módulos bluetooth y para qué sirve cada uno de los pines que nos interesan conocer y así realizar la práctica de la mejor manera posible, evitando así conectar mal nuestro modulo, asegurándonos así la integridad del mismo. En la parte de circuitería integraremos un módulo bluetooth a nuestra placa Arduino para que este se pueda comunicar con el dispositivo móvil que deseemos, y luego la vincularemos a nuestro dispositivo móvil para que puedan comunicarse entre sí. En la parte programática desarrollaremos la aplicación por la cual nos comunicaremos con la placa Arduino, para lograr esto no necesitaremos modificar nuestro sketch ya que la comunicación entre el modulo bluetooth y la placa Arduino siempre se da por medio del puerto serial de la placa. 1
4 Precondiciones para la efectiva realización de la siguiente guía: Haber concluido la guía de implementación de un dispositivo para controlar un led RGB desde la computadora por medio de la placa Arduino. Tener el circuito elaborado en la guía anterior. Conocimiento en la creación de aplicativos para Android. Material necesario para realizar la practica: Modulo bluetooth compatible con arduino por ejemplo HC-05, HC-06, HC-07 o RN-42. Dispositivo móvil con bluetooth y SO Android 2.2 o mejor. Batería de 12v y clavija hembra tipo Jack para alimentar la placa y el modulo bluetooth o si se posee una fuente DC a 12 voltios también se puede utilizar. Código fuente para la placa Arduino: Debido a que la comunicación por parte del módulo bluetooth con la placa Arduino igualmente se realiza por medio del puerto serie de la misma, no se hará ningún cambio en el código fuente para que este funcione, por lo que no será necesario modificar el sketch de la guía anterior. 2
5 Solución a nivel de circuitería: Debido a que el circuito para controlar el led RGB es el mismo lo único que cambia en la manera de comunicarnos con la placa, que en esta ocasión es por medio de un módulo bluetooth. Para poder conectar nuestro modulo bluetooth en los pines correctos es necesario recordar el siguiente diagrama. Existe 2 formas de comunicarnos con esta placa Arduino: 1. Por medio del cable USB. 2. A través de los pines de recepción y transmisión de datos que son el Pin 0 (Rx0) y Pin 1 (Tx0) respectivamente. Cabe aclarar que en otras placas Arduino como por ejemplo los Atmega 2560 se cuenta con 4 pares de pines Tx y Rx con los que se puede tener diversas fuentes de comunicación. Una vez teniendo claro cuáles son los pines de comunicación de la placa Arduino procedemos a explicar algunas generalidades del módulo bluetooth a utilizar y luego procedemos a conectar el modulo a nuestra placa Arduino. 3
6 Módulo bluetooth HC-07 Este módulo es de los más comunes para trabajar con Arduino ya que tiene un alcance aceptable y su precio es muy accesible. Si usted posee un HC-05 o HC-06, el pinnado es el mismo ya que forman parte de la misma familia, el funcionamiento de cada uno de los pines se detalla a continuación. RXD: Es el pin que se encarga de la recepción de los datos que se desean transmitir por medio de bluetooth. Este pin se conecta directamente al pin TX de la placa Arduino. TXD: Es el pin que se encarga de la transmisión de los datos que se han recibido por medio del bluetooth hacia la placa Arduino. Este pin se conecta al RX del Arduino. GND: Es el pin de Tierra, se conecta a mismo GND del Arduino para cerrar el circuito electrónico. VCC: Es el pin de alimentación y tiene un margen de alimentación funcional de 3.6v a 6v. Se conecta al pin de alimentación de nuestro circuito. Los pines STATE y KEY nos sirven para la respectiva configuración de nuestro modulo, en los casos que se deseen cambiar los parámetros de fábrica. Cabe mencionar que el modulo debe estar previamente configurado; normalmente la configuración de fábrica de estos módulos es suficiente. Aunque hay caso en que se desea cambiar la clave de emparejamiento, el nombre del módulo, o en un caso especial los baudios de transmisión por defecto son 9600, este proceso no se explica en esta guía. 4
7 Diagrama de conexión del led RGB con Arduino y modulo bluetooth HC-07: 5
8 Los pines del módulo que utilizaremos son los siguientes: El pin RX (cable amarillo) del módulo HC-07 se conecta al pin TX0 del Arduino. El pin TX (cable café) del módulo HC-07 se conecta al pin RX0 del Arduino. El pin VCC (cable anaranjado) del módulo HC-07 se conecta al pin VCC del Arduino. El pin GND (cable negro) del módulo HC-07 se conecta al GND del Arduino. Como se puede observar, los otros componentes quedan conectados exactamente igual que en la guía anterior. Si hay alguna duda revise la guía anterior. Antes de proceder a alimentar el circuito para hacer una prueba si nuestro modulo bluetooth ha sido bien conectado, tomémonos el tiempo de revisar las conexiones ya que estos dispositivos son delicados y podrían sufrir algún daño por cualquier descuido. Procedemos a alimentar nuestro circuito ya se por medio de una batería de 12v(cuadrada), una fuete de 12 voltios de por lo menos 1A o por medio del cable usb hacia la computadora, en este momento el led(rojo) indicador de nuestro modulo debe estar parpadeante lo que indica que está listo para aparearse con otro dispositivo bluetooth. Y al momento en que se conecten este led debe de dejar de parpadear y quedar encendido. En este momento ya tenemos nuestro circuito listo para conectarnos a él por medio de un dispositivo con bluetooth, para esta práctica en específico lo haremos desde un dispositivo móvil con SO Android 2.2 o mejor. 6
9 Aplicativo bluetooth en Android. A continuación se presenta el código fuente para realizar la aplicación con la que controlaremos nuestro led RGB. Este aplicativo es capaz de funcionar desde dispositivos con Android 2.2 en adelante, aunque cabe aclarar que en versiones más recientes de Android se pueden utilizar funciones que facilitan el manejo del bluetooth, pero como el objetivo de esta práctica es abarcar la mayoría de dispositivos Android no se ha hecho uso de estas funciones. Android Android 2.2 7
10 Manifest: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="ues.fia.eisi.ledtricolor" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="17" /> <!-- Permisos para utilizar el Bluetooth --> <uses-permission android:name="android.permission.bluetooth"/> <uses-permission android:name="android.permission.bluetooth_admin"/> <application android:allowbackup="true" > <activity android:name="ues.fia.eisi.ledtricolor.ledtricolor" android:screenorientation="portrait"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> 8
11 Strings <?xml version="1.0" encoding="utf-8" standalone="no"?> <resources> <string name="app_name">ledtricolor</string> <string name="hello_world">controlador Led RGB</string> <string name="bluetooth">conectar</string> <string name="off">apagar</string> <string name="rojo">rojo</string> <string name="verde">verde</string> <string name="azul">azul</string> <string name="desconexion">desconectar</string> <string name="mac">00:12:07:13:12:91</string><!--hint FORMATO DE MAC --> </resources> Menú led_tri_color.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android=" <item android:orderincategory="100" android:showasaction="never"> </item> </menu> desconecta.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android=" > <item android:orderincategory="100"> </item> </menu> Layuot activity_led_tri_color.xml <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android=" xmlns:tools=" android:layout_width="fill_parent" android:layout_height="wrap_content" > <RelativeLayout android:layout_width="wrap_content" 9
12 android:layout_height="wrap_content" tools:context=".ledtricolor" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textsize="25sp" /> <EditText android:layout_width="fill_parent" android:layout_height="70dp" android:ems="10" android:inputtype="text textcapcharacters" android:maxlength="17" android:textsize="25sp" > <requestfocus /> </EditText> <LinearLayout android:layout_width="fill_parent" android:layout_height="80dp" > <Button android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" android:textsize="20sp" /> <Button android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" android:textsize="20sp" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" 10
13 android:layout_height="100dp" android:layout_marginbottom="20dp" android:layout_margintop="20dp" android:orientation="horizontal" > <Button android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" android:textsize="30sp" /> <Button android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" android:textsize="30sp" /> <Button android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" android:textsize="30sp" /> </LinearLayout> <Button android:layout_width="fill_parent" android:layout_height="60dp" android:textsize="30sp" /> </RelativeLayout> </ScrollView> 11
14 Clases Principales Esta clase es la encargada de efectuar todo lo concerniente a la conexión y a la comunicación. ConexionBT.java package ues.fia.eisi.ledtricolor; import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.util.uuid; import android.bluetooth.bluetoothadapte r; import android.bluetooth.bluetoothdevice ; import android.bluetooth.bluetoothserver Socket; import android.bluetooth.bluetoothsocket ; import android.content.context; import android.os.bundle; import android.os.handler; import android.os.message; import android.util.log; /** * Esta clase realiza todo el trabajo para configurar y administrar la conexion Bluetooth con otro dispositivo. * Hay un hilo que esta a la escucha de conexiones entrantes, un hilo para conexiones con un dispositivo y * un hilo para realizar las transmisiones una vez que se este conectado. */ public class ConexionBT { //<<<<<<<<<<<<<<<<<<<<<<<<< <<<< Definiciones >>>>>>>>>>>>>>>>>>>>>>>>>>> // Debug Para monitorizar los eventos private static final String TAG = "Servicio_Bluetooth"; private static final boolean D = true; // Nombre para el registro SDP cuando el socket sea creado private static final String NAME = "BluetoothDEB"; // UUID Identificador unico de URI para esta aplicacion private static final UUID MY_UUID = UUID.fromString(" F9B34FB"); // UUID para chat con otro Android ("fa87c0d0-afac- 11de-8a c9a66"); // UUID para modulos BT RN42 (" F9B34FB"); // Campos de coexion private final BluetoothAdapter AdaptadorBT; private final Handler mhandler; private AcceptThread HebraDeAceptacion; private ConnectThread HiloDeConexion; private ConnectedThread HiloConetado; private int EstadoActual; // Constantes que indican el estado de conexion 12
15 public static final int STATE_NONE = 0; // No se esta haciendo nada public static final int STATE_LISTEN = 1; // Escuchando por conexiones entrantes public static final int STATE_CONNECTING = 2; // Iniciando conexion saliente public static final int STATE_CONNECTED = 3; // Conectado con un dispositivo //<<<<<<<<<<<<<<<<<<<<<<<<< <<<< METODOS >>>>>>>>>>>>>>>>>>>>>>>>>>> //----<<<<---->>>>----METODOS NO ALTERADOS----<<<<---->>>>---- /** * Constructor. Prepara una nueva sesion para la conexion Bluetooth Smartphone-Dispositivo context El identificador UI de la actividad de context handler Un Handler para enviar mensajes de regreso a la actividad marcada por el UI * * */ public ConexionBT(Context context, Handler handler) { AdaptadorBT = BluetoothAdapter.getDefaultAdapte r(); EstadoActual = STATE_NONE; mhandler = handler; /** * Actualizamos estado de la conexion BT a la actividad estado Un entero definido para cada estado */ private synchronized void setstate(int estado) { EstadoActual = estado; // Le enviamos al Handler el nuevo estado actual para que se actualize en la Actividad mhandler.obtainmessage(ledtricolo r.mensaje_estado_cambiado, estado, -1).sendToTarget(); /** * Regresa el estado de la conexion */ public synchronized int getstate() { return EstadoActual; /** * Inicia el servicio bluetooth. Especificamente inicia la HebradeAceptacion para iniciar el * modo de "listening". LLamado por la Actividad onresume() */ public synchronized void start() { if (D) Log.e(TAG, "start"); //Cancela cualquier hilo que quiera hacer una conexion if (HiloDeConexion!= null) {HiloDeConexion.cancel(); HiloDeConexion = null; //Cancela cualquier hebra que este corriendo una conexion if (HiloConetado!= null) {HiloConetado.cancel(); HiloConetado = null; // Inicia la hebra que escuchara listen en el BluetoothServerSocket if (HebraDeAceptacion == null) { 13
16 HebraDeAceptacion = new AcceptThread(); HebraDeAceptacion.start(); setstate(state_listen); /** * Inicia el HiloConectado para iniciar la conexion con un dispositivo remoto device -->El dispositivo BT a conectar */ public synchronized void connect(bluetoothdevice device) { if (D) Log.e(TAG, "Conectado con: " + device); //Cancela cualquier hilo que intente realizar una conexion if (EstadoActual == STATE_CONNECTING) { if (HiloDeConexion!= null) {HiloDeConexion.cancel(); HiloDeConexion = null; //Cancela cualquier hilo que se encuentre corriendo una conexion if (HiloConetado!= null) {HiloConetado.cancel(); HiloConetado = null; //Inicia el hilo para conectar con un dispositivo HiloDeConexion = new ConnectThread(device); HiloDeConexion.start(); setstate(state_connecting); /** * Inicia la hebra conectada para iniciar la administracion de la conexiã³n BT socket El socket Bt donde se realizara la conexion device El dispositivo BT con que se conectara */ public synchronized void connected(bluetoothsocket socket, BluetoothDevice device) { if (D) Log.e(TAG, "connected"); // Cancela el hilo que completo la conexion if (HiloDeConexion!= null) {HiloDeConexion.cancel(); HiloDeConexion = null; //Cancela el hilo que actualmente esta corriendo la conexion if (HiloConetado!= null) {HiloConetado.cancel(); HiloConetado = null; // Cancela la Hebradeaceptacion debido a que solo queremos conectar con un dispositivo********** if (HebraDeAceptacion!= null) {HebraDeAceptacion.cancel(); HebraDeAceptacion = null; //Inicia el hilo para administrar la conexion y realizar transmisiones HiloConetado = new ConnectedThread(socket); HiloConetado.start(); //Envia el nombre del dispositivo conectado de vuelta Message msg = mhandler.obtainmessage(ledtricolo r.mensaje_nombre_dispositivo); Bundle bundle = new Bundle(); 14
17 bundle.putstring(ledtricolor.devi CE_NAME, device.getname()); msg.setdata(bundle); mhandler.sendmessage(msg); setstate(state_connected); /** * Para todos los hilos y pone el estado de STATE_NONE donde no esta haciendo nada */ public synchronized void stop() { if (D) Log.e(TAG, "stop"); if (HiloDeConexion!= null) {HiloDeConexion.cancel(); HiloDeConexion = null; if (HiloConetado!= null) {HiloConetado.cancel(); HiloConetado = null; if (HebraDeAceptacion!= null) {HebraDeAceptacion.cancel(); HebraDeAceptacion = null; setstate(state_none); /** * Escribe en el HiloConectado de manera Asincrona out Los bytes a escribir ConnectedThread#write(byte[]) */ public void write(byte[] out) { ConnectedThread r; //Creacion de objeto temporal // Syncronizar la copia del HiloConectado synchronized (this) { if (EstadoActual!= STATE_CONNECTED) return; r = HiloConetado; // Realizar la escritura Asincrona r.write(out); /** * Indica que el intento de conexion fallo y notifica a la actividad WidgetProvider/UpdateService */ private void connectionfailed() { setstate(state_listen); //Envia un mensaje de falla de vuelta a la actividad Message msg = mhandler.obtainmessage(ledtricolo r.mensaje_toast); Bundle bundle = new Bundle(); bundle.putstring(ledtricolor.toas T, "Error de conexión"); msg.setdata(bundle); mhandler.sendmessage(msg); /** * Indica que la conexion se perdio y notifica a la UI activity(widgetprovider/updateser vice) */ private void connectionlost() { setstate(state_listen); //Envia un mensaje de falla de vuelta a la actividad Message msg = mhandler.obtainmessage(ledtricolo r.mensaje_toast); Bundle bundle = new Bundle(); 15
18 bundle.putstring(ledtricolor.toas T, "Se perdio conexion"); msg.setdata(bundle); mhandler.sendmessage(msg); msg = mhandler.obtainmessage(ledtricolo r.message_desconectado); mhandler.sendmessage(msg); /** * Este hilo corre mientras se este ESCUCHANDO por conexiones entrantes. Este se * comporta como el lado- Servidor cliente. Corre mientras la conexion es aceptada(o cancelada) */ private class AcceptThread extends Thread { // El soket de servidor Local private final BluetoothServerSocket mmserversocket; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> public AcceptThread() { BluetoothServerSocket tmp = null; //Creamos un nuevo listening server socket try { tmp = AdaptadorBT.listenUsingRfcommWith ServiceRecord(NAME, MY_UUID); catch (IOException e) { Log.e(TAG, "listen() fallo", e); mmserversocket = tmp; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> public void run() { if (D) Log.e(TAG, "Comenzar HiloDeAceptacion " + this); setname("hiloaceptado"); BluetoothSocket socket = null; //Escucha al server socket si no estamos conectados while (EstadoActual!= STATE_CONNECTED) { try { //Esto es un bloque donde solo obtendremos una conexion o una excepcion socket = mmserversocket.accept(); catch (IOException e) { Log.e(TAG, "accept() failed", e); break; //Si la conexion fue aceptada... if (socket!= null) { synchronized (ConexionBT.this) { switch (EstadoActual) { STATE_LISTEN: STATE_CONNECTING: // Situation normal. Iniciamos HebraConectada connected(socket, socket.getremotedevice()); break; STATE_NONE: 16
19 STATE_CONNECTED: no esta lista o ya esta conectado. Termina el nuevo socket { socket.close(); catch (IOException e) { // O try Log.e(TAG, "No se pudo cerrar el socket no deseado", e); break; if (D) Log.e(TAG, "Fin de HIlodeAceptacion"); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> public void cancel() { if (D) Log.e(TAG, "Cancela " + this); try { mmserversocket.close(); catch (IOException e) { Log.e(TAG, "close() del servidor FAllo", e); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> /** * Esta Hebra correra mientras se intente realizar una conexion de salida con un dispositivo. * Este correra a travã s de la conexion ya sea establecida o fallada */ private class ConnectThread extends Thread { private final BluetoothSocket mmsocket; private final BluetoothDevice mmdevice; public ConnectThread(BluetoothDevice device) { mmdevice = device; BluetoothSocket tmp = null; // Obtiene un BluetoothSocket para la conexion con el Dispositivo obtenido try { tmp = device.createrfcommsockettoservic erecord(my_uuid); catch (IOException e) { Log.e(TAG, "create() Fallo", e); mmsocket = tmp; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> public void run() { Log.e(TAG, "Comenzando HebraConectada"); setname("hiloconectado"); //Siempre cancela la busqueda debido a que esta hara lenta la conexion AdaptadorBT.cancelDiscovery(); // Realiza la conexion con el socketbluetooth try { 17
20 // Aqui solo recibiremos o una conexion establecida o una excepcion mmsocket.connect(); catch (IOException e) { connectionfailed(); // Cierra el socket try { mmsocket.close(); catch (IOException e2) { Log.e(TAG, "Imposible cerrar el socket durante la falla de conexion", e2); // Inicia el servicio a traves de reiniciar el modo de listening ConexionBT.this.start(); return; // Resetea el HiloConectado pues ya lo hemos usado synchronized (ConexionBT.this) { HiloDeConexion = null; // Inicia el hiloconectado connected(mmsocket, mmdevice); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> public void cancel() { try { mmsocket.close(); catch (IOException e) { Log.e(TAG, "close() of connect socket failed", e); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> //fin de conectthread /** * Este hilo corre durante la conexion con un dispositivo remoto. * Este maneja todas las transmisiones de entrada y salida. */ private class ConnectedThread extends Thread { private final BluetoothSocket BTSocket; private final InputStream INPUT_Stream; private final OutputStream OUTPUT_Stream; public ConnectedThread(BluetoothSocket socket) { Log.d(TAG, "Creacion de HiloConectado"); BTSocket = socket; InputStream tmpin = null; OutputStream tmpout = null; // Obtencion del BluetoothSocket de entrada y saldida try { tmpin = socket.getinputstream(); tmpout = socket.getoutputstream(); catch (IOException e) { 18
21 Log.e(TAG, "Sockets temporales No creados", e); INPUT_Stream = tmpin; OUTPUT_Stream = tmpout; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> /** * Escribe al Stream de salida conectado buffer Los bytes a escribir */ public void write(byte[] buffer) { try { OUTPUT_Stream.write(buffer) ; //Compartir el mensaje enviado con la UI activity mhandler.obtainmessage(ledtricolo r.mensaje_escrito, -1, -1, buffer).sendtotarget(); catch (IOException e) {Log.e(TAG, "Exception during write", e); //FIN DE WRITE //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> public void cancel() { try { BTSocket.close(); catch (IOException e) { Log.e(TAG, "close() del socket conectado Fallo", e); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> public void run() { Log.e(TAG, "Comenzar Hebraconectada"); byte[] buffer = new byte[1024]; int bytes; while (true) { //Mantiene escuchando el InputStream mientras este conectado try { //Lee desde el InputStream bytes = INPUT_Stream.read(buffer); // byte[] readbufx = (byte[]) buffer; //Construye un String desde los bytes validos en el buffer // String readmessagex = new String(readBufX, 0, bytes);//se envia el readnessagexxx en lugar del buffer pues ya se PARSEO mhandler.obtainmessage(ledtricolo r.mensaje_leido, bytes, -1, buffer).sendtotarget(); //readmessagex por buffer catch (IOException e) {Log.e(TAG, "disconnected", e);connectionlost();break; // FIN DE WHILE (TRUE)----- //************** FIN DE PUBLIC VOID RUN ************** //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> // *****FIN de la clase ConnectedThread*****
22 //<<<<< >>>>> <<<<< >> >>> FIN DE LA CLASE CONEXIONBT <<<<< >>>>> <<<<< >>>>> LedTriColor.java Esta es nuestra clase principal y desde donde utilizaremos la clase ConexionBT. package ues.fia.eisi.ledtricolor; import android.os.bundle; import android.os.handler; import android.os.message; import android.annotation.suppresslint; import android.app.activity; import android.bluetooth.bluetoothadapte r; import android.bluetooth.bluetoothdevice ; import android.content.intent; import android.util.log; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.button; import android.widget.edittext; import ) public class LedTriColor extends Activity { /* */ // Debugging public static final String TAG = "LedTriColor"; public static final boolean D = true; // Tipos de mensaje enviados y recibidos desde el Handler de ConexionBT public static final int Mensaje_Estado_Cambiado = 1; public static final int Mensaje_Leido = 2; public static final int Mensaje_Escrito = 3; public static final int Mensaje_Nombre_Dispositivo = 4; public static final int Mensaje_TOAST = 5; public static final int MESSAGE_Desconectado = 6; public static final int REQUEST_ENABLE_BT = 7; public static final String DEVICE_NAME = "device_name"; public static final String TOAST = "toast"; //Nombre del dispositivo conectado private String mconnecteddevicename = null; // Adaptador local Bluetooth private BluetoothAdapter AdaptadorBT = null; //Objeto miembro para el servicio de ConexionBT private ConexionBT Servicio_BT = null; //variables para el Menu de conexión private boolean seleccionador=false; public int Opcion=R.menu.led_tri_color; private EditText dirmac; /* public void oncreate(bundle savedinstancestate){ 20
23 super.oncreate(savedinstancestate ); setcontentview(r.layout.activity_ led_tri_color); Button Azul,Verde,Rojo,oFF,Conectar,Desc onectar; Azul=(Button)findViewById(R.id.Az ul); Azul.setOnClickListener(onc lick); Verde=(Button)findViewById( R.id.Verde); Verde.setOnClickListener(on click); Rojo=(Button)findViewById(R.id.Rojo); Rojo.setOnClickListener(onc lick); Desconectar.setOnClickListe ner(onclick); dirmac=(edittext)findviewby Id(R.id.mac); View.OnClickListener onclick= new View.OnClickListener() public void onclick(view v) { // TODO Apéndice de método generado automáticamente R.id.Azul: switch(v.getid()){ if(d) Log.e("BotonLed", "Encendiendo.."); sendmessage("a"); off=(button)findviewbyid(r. id.off); ick); off.setonclicklistener(oncl Conectar=(Button)findViewBy Id(R.id.conectar); Conectar.setOnClickListener (onclick); Desconectar=(Button)findVie wbyid(r.id.desconectar); break; R.id.Verde: if(d) Log.e("BotonLed", "Encendiendo.."); sendmessage("v"); break; R.id.Rojo: 21
24 if(d) Log.e("BotonLed", "Encendiendo.."); sendmessage("r"); if(seleccionador)// Esta conectado? { break; R.id.Off: if(d) Log.e("BotonLed", "Apagando.."); sendmessage("x"); desconectar(); else { sendmessage("x"); break; R.id.conectar: Toast.makeText(LedTriColor. this,"no ESTA CONECTADO",Toast.LENGTH_LONG).sho w(); if(d) Log.e("BotonLed", "Conectado!!!...!!!"); break; if(!seleccionador) //Esta desconectado? ; iniciarconexion(); else { { public void onstart() super.onstart(); ConfigBT(); Toast.makeText(LedTriColor. this,"esta CONECTADO!!",Toast.LENGTH_LONG).s how(); break; R.id.desconectar: if(d) Log.e("BotonLed", public void ondestroy(){ super.ondestroy(); if (Servicio_BT!= null) Servicio_BT.stop();//Detenemos servicio public void ConfigBT(){ // Obtenemos el adaptador de bluetooth 22
25 AdaptadorBT = BluetoothAdapter.getDefaultAdapte r(); if (AdaptadorBT.isEnabled()) //Si el BT esta encendido { if (Servicio_BT == null) //y el Servicio_BT es nulo, invocamos el Servicio_BT { Activity.RESULT_OK) {//BT esta activado,iniciamos servicio ConfigBT(); else {//No se activo BT, salimos de la app Toast.makeText(this,"ENCIEN DA EL BT!!! ",Toast.LENGTH_LONG).show(); finish(); //Fin de la APP Servicio_BT = new ConexionBT(this, mhandler); else{ if(d) Log.e("Setup", "Bluetooth apagado..."); //Mensaje para el log //fin de switch onactivityresult //fin de Intent enablebluetooth = new Intent(BluetoothAdapter.ACTION_RE QUEST_ENABLE); startactivityforresult(enab lebluetooth, REQUEST_ENABLE_BT); public void onactivityresult(int requestcode, int resultcode, Intent data){ //Una vez que se ha realizado una actividad regresa un "resultado"... switch (requestcode) { REQUEST_ENABLE_BT://Respuesta al intento de encendido de BT if (resultcode public boolean onprepareoptionsmenu(menu menux){ menux.clear();//limpiamos menu actual if (seleccionador==false) Opcion=R.menu.led_tri_color ;//dependiendo las necesidades if (seleccionador==true) Opcion=R.menu.desconecta; // crearemos un menu diferente getmenuinflater().inflate(o pcion, menux); return super.onprepareoptionsmenu(menux) ; 23
26 @Override public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { R.id.Conexion: if(d) Log.e("conexion", "conectandonos"); iniciarconexion(); R.id.desconexion: sendmessage("x"); return true; desconectar(); return true; //fin de swtich de opciones return false; //fin de metodo onoptionsitemselected public String obtenermac(){ String direccion=""; if(dirmac.gettext().tostrin g().length()==17){ direccion=dirmac.gettext(). tostring(); else { if(!dirmac.gettext().tostri ng().equals("")) Toast.makeText(this,"MAC ERRONEA", Toast.LENGTH_LONG).show(); direccion="00:12:07:1 3:12:91"; //Direccion MAC default. return direccion; public void iniciarconexion(){ String direccionmac=obtenermac();//extra emos la direccion try { BluetoothDevice device = AdaptadorBT.getRemoteDevice(direc cionmac); Servicio_BT.connect(device); catch (Exception e) { // TODO: handle exception public void desconectar(){!= null) if (Servicio_BT Servicio_BT.stop();//Detene mos la comunicacion BT. 24
27 public void sendmessage(string message) { if (Servicio_BT.getState() == ConexionBT.STATE_CONNECTED) {//checa si estamos conectados a BT if (message.length() > 0) { // checa si hay algo que enviar byte[] send = message.getbytes();//obtenemos bytes del mensaje if(d) Log.e(TAG, "Mensaje enviado:"+ message); Servicio_BT.write(send); //Mandamos a escribir el mensaje else Toast.makeText(this, "No conectado", Toast.LENGTH_SHORT).show(); //fin de sendmessage final Handler mhandler = new Handler() public void handlemessage(message msg) { (msg.what) { switch //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Mensaje_Escrito: byte[] writebuf = (byte[]) msg.obj;//buffer de escritura... // Construye un String del Buffer String writemessage = new String(writeBuf); if(d) Log.e(TAG, "Message_write =w= "+ writemessage); break; //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Mensaje_Leido: byte[] readbuf = (byte[]) msg.obj;//buffer de lectura... //Construye un String de los bytes validos en el buffer String readmessage = new String(readBuf, 0, msg.arg1); if(d) Log.e(TAG, "Message_read =w= "+ readmessage); break; //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Mensaje_Nombre_Dispositivo: mconnecteddevicename = msg.getdata().getstring(device_na ME); //Guardamos nombre del dispositivo Toast.makeText(getApplicationCont ext(), "Conectado con "+ mconnecteddevicename, Toast.LENGTH_SHORT).show(); seleccionador=true; break; //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 25
28 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Mensaje_TOAST: Toast.makeText(getApplicationCont ext(), msg.getdata().getstring(toast), Toast.LENGTH_SHORT).show(); break; //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> MESSAGE_Desconectado: if(d) Log.e("Conexion","DESConectados") ; seleccionador=false; break; //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> //FIN DE SWITCH CASE PRIMARIO DEL HANDLER //FIN DE METODO INTERNO handlemessage ;//Fin de Handler //Fin LedTriColor 26
29 Detalles importantes del desarrollo de la aplicación. Para que código anterior no se necesita ningún otro tipo de extensión, jar o cualquier otra configuración especial, basta con el código presentado. El código de la aplicación está documentado por si tiene alguna duda, se le invita a seguir la lógica del mismo y si fuese necesario se puede apoyar del ciclo de vida de una aplicación Android. La dirección MAC (siglas en inglés de media access control; en español "control de acceso al medio") es un identificador de 48 bits (6 bloques hexadecimales) que corresponde de forma única a una tarjeta o dispositivo de red. Se conoce también como dirección física, y es única para cada dispositivo. Por medio de esta dirección MAC nos conectamos a nuestro modulo bluetooth, si dentro de LedTricolor.java buscamos direccion="00:12:07:13:12:91", ahí se encuentra la dirección por default a la cual la aplicación intentara conectarse, si no encontrará ninguna dirección ingresada en el Editext o si la dirección ingresada es errónea. Motivo por el cual se le invita a cambiarla por la dirección de su módulo bluetooth y por cuestiones estéticas a cambiar el hint del Editext. Si no sabe cómo obtener la dirección MAC de su módulo bluetooth se le recomienda ver los anexos. 27
30 Como funciona LedTriColor Al correr la aplicación, si no tenemos encendido el servicio de bluetooth esta automáticamente nos pedirá permiso para encenderlo, si aceptamos nos activara el servicio, pero no lo activamos cierra la aplicación. Luego si corregimos la dirección MAC en el código anterior para que por defecto funcionase la de nuestra preferencia directamente podemos intentar conectarnos, o si intenta conectarse a otro modulo que no sea el suyo debe de ingresar la dirección en el Editext principal y luego en conectar. 28
31 En este momento procedemos a alimentar nuestro circuito, para que al momento de intentar conectar con nuestro modulo este sea encontrado. Recuerde que el led del módulo bluetooth debe estar parpadeado (color rojo) y al momento en que nuestros dispositivos se conecten este indicador quedara directo. Puede conectarse de 2 formas diferentes, por medio del botón conectar o abriendo el menú y seleccionando conectar y de las misma manera para desconectarse. En este momento al presionar conectar, nos enviará una notificación de vinculación de dispositivos en la cual debemos ingresar la clave de vinculación del módulo bluetooth, si esta no ha sido cambiada normalmente es 1234 o 0000 ya que son las claves que traen de fábrica. Si ingresamos la clave correcta procederá a intentar la conexión, con lo cual podemos estar seguro que los dispositivos están vinculados y si no vuelva a intentar de nuevo con otra clave. La vinculación solo se da la primera vez que se intentan conectar dos dispositivos bluetooth. Si la conexión fue exitosa nos informara junto con el nombre del módulo bluetooth al que nos hemos conectado, en nuestro caso el modulo se ha nombrado linvor. Los mismos comandos que enviamos en la guía anterior son enviados por esta aplicación al momento de presionar cualquiera de los botones. Ya sea Rojo envía r, o Azul envía a y estos datos son recibidos por la placa Arduino y esta se encarga de encender el led correspondiente. 29
32 Anexos 30
33 Obtener la MAC de un módulo bluetooth. Se puede obtener con los métodos siguientes, siempre y cuando nuestro modulo bluetooth este encendido. Por medio de un dispositivo móvil BlackBerry: o Primero debemos vincular los dispositivos. o Una vez estén vinculados, nos dirigimos al panel de configuración del bluetooth. o Luego buscamos los dispositivos bluetooth activos. o Y ubicamos nuestro modulo y ahí aparece el nombre, lo seleccionamos y entramos a las propiedades ahí encontraremos la dirección MAC con el siguiente formato: ##:##:##:##:##:##. Instalando una aplicación de consola bluetooth para nuestro dispositivo Android: o En este caso instalaremos BlueTerm (buscar en la playstore). o Una vez instalada la abrimos y luego desde el menú de opciones. o Seleccionamos Conectarse a un dispositivo y ahí nos aparecerá la lista de dispositivos bluetooth cercanos con su respectivo nombre y dirección MAC. Si disponemos con una maquina con dispositivo bluetooth: o Vinculamos el modulo. o Una vez vinculado, localizamos el dispositivo bluetooth de nuestro interés. o Abrimos las propiedades del dispositivo vinculado y ahí encontraremos la dirección MAC. 31
Ejercicio 18. Configuración de Widgets en Android. Android Con Java. Ejercicio 18. Configuración de Widgets en Android. Curso de Android con Java
Android Con Java Ejercicio 18 Configuración de Widgets en Android Objetivo del Ejercicio El objetivo del ejercicio crear un Widget que antes de utilizarlo nos permita configurarlo. En este caso, solicitar
Más detallesCODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web
CODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web I. Alcances del Proyecto a. Ide Eclipse Indigo 3.7 b. Api 10-17, Versión Android 2.3.3 A 4.2.2 c. Jdk 1.6 II. Conceptos Relacionados
Más detallesALMACENAMIENTOS DE DATOS EN ANDROID CON SQLITE
SQLite M.Sc. Reynaldo Zeballos ALMACENAMIENTOS DE DATOS EN ANDROID CON SQLITE En este ejercicio vamos a crear una tabla TELEFONOS para la base de datos GUIATEL. Para lo cual utilizaremos SQLite que viene
Más detallesPRACTICAS DE ANDROID 12 - Lanzar un segundo "Activity" y pasar parámetros Problema:
PRACTICAS DE ANDROID 12 - Lanzar un segundo "Activity" y pasar parámetros Hemos visto en el concepto anterior que un programa puede tener más de una ventana representando cada ventana con una clase que
Más detallesCurso de Android 2012/13
Curso de Android 2012/13 Conectividad Bluetooth Bluetooth es una tecnología standard abierta, global wireless para intercambio de datos sobre distancias cortas entre aparatos fijos y móviles, creado areas
Más detalleswww.android-spa.com Android Creación de una aplicación sencilla: Forwarding - Página 1 -
Android Creación de una aplicación sencilla: Forwarding - Página 1 - Realización de la aplicación Forwarding en Android Este es un pequeño tutorial con el que se realizará un pequeño programa para Android
Más detallesNotas para la instalación de un lector de tarjetas inteligentes.
Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación
Más detallesProgramación Android. Alejandro Alcalde. elbauldelprogramador.com
Programación Android Alejandro Alcalde elbauldelprogramador.com Copyright c 2013 Alejandro Alcalde P L A TEX. Programación Android por Alejandro Alcalde se encuentra bajo una Licencia Creative Commons
Más detallesTutorial BMS Server Studio UDP
Tutorial BMS Server Studio UDP ÍNDICE Página 0. Introducción...3 1. Configuración del puerto UDP...4 2. Ejemplos...6 2.1 Configuración manual...6 2.1.1 Configuración SocketTest...6 2.1.2 Configuración
Más detallesServicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación
Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 16 de septiembre de 2013 Histórico de cambios Fecha Descripción Autor
Más detallesHOW TO SOBRE REMOTE ACCESS VPN MODE EN LINUX
HOW TO SOBRE REMOTE ACCESS VPN MODE EN LINUX 1- En este how to realizaremos una conexión remota mediante vpn; lo que haremos es comprobar primero que las maquinas que vamos a conectar, se puedan ver y
Más detallesLas redes y su seguridad
Las redes y su seguridad 1. Control remoto de un ordenador En esta práctica tomaremos el control de otro ordenador de forma remota. Utilizaremos la aplicación TeamViewer que está disponible para plataforma
Más detallesProgramación Android. Rafael Morón Abad rafaelmoron@gmail.com
Programación Android Rafael Morón Abad rafaelmoron@gmail.com 3. Android 3.4 Recursos y Ficheros 5. Recursos y ficheros Nombre del Proyecto Código fuente Código generado Librerías Activos (recursos especiales)
Más detallesAGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7
Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos
Más detallesManual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2
Manual de software Dynamic Cloud 10/2014 MS-Dynamic_Cloud v1.2 ÍNDICE GENERAL 1. INTRODUCCIÓN... 2 1.1 Configuración mínima del PC... 2 2. INSTALAR DYNAMIC CLOUD... 3 2.1 Ejecutar Dynamic Cloud por primera
Más detallesCOMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX
COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor
Más detallesProgramación Android. Rafael Morón Abad rafaelmoron@gmail.com
Programación Android Rafael Morón Abad rafaelmoron@gmail.com 3.5. Persistencia Persistencia Para poder almacenar información persistente, Android nos proporciona 3 mecanismos: 1. Preferencias 2. Ficheros
Más detallesManual de operación Tausend Monitor
Manual de operación Tausend Monitor Luego de haber realizado satisfactoriamente el proceso de instalación, al iniciar el programa le aparecerá la siguiente ventana: El usuario principal y con el primero
Más detallesInstalación del Admin CFDI
Instalación del Admin CFDI Importante!!!Antes de comenzar verifique los requerimientos de equipo esto podrá verlo en la guía 517 en nuestro portal www.control2000.com.mx en el apartado de soporte, ahí
Más detallesDesarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android Sesión 7: Servicios de red Desarrollo de Aplicaciones para Android Depto. Ciencia de la Computación e IA Servicios de red-1 Puntos a tratar Conexiones HTTP Parsing
Más detallesWINDOWS 2008 5: TERMINAL SERVER
WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.
Más detallesGUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO
versiongalega.com - Departamento de Atención al cliente GUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO En este documento encontrará una descripción de cómo configurar sus cuentas de correo electrónico
Más detallesConfiguración de PDAs en ITACTIL.
Configuración de PDAs en ITACTIL. La aplicación ITACTIL puede trabajar con terminales de mano (PDAs, tablets o teléfonos Android, Iphone, Ipad, etc.) en sus versiones Profesional y Líder. El funcionamiento
Más detallesEscudo Movistar Guía Rápida de Instalación Dispositivos Symbian
Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian Guía de Instalación Página 1 Índice ESCUDO MOVISTAR.... 3 1. INSTALACIÓN DEL SERVICIO ESCUDO MOVISTAR... 3 1.1. VERSIONES SOPORTADAS... 3
Más detallesPrimer Parcial Septiembre 5 de 2009
Primer Parcial Septiembre 5 de 2009 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar
Más detallesLa central reproduce un sonido largo si los datos de configuración son almacenados de forma correcta, y dos sonidos cortos si hay un error.
Programación Básica de Alarma GSM Última modificación: 15 de Octubre de 2013 Antes de nada, queremos darle las gracias por adquirir en zoominformatica.com este producto, esperamos que cubra todas sus expectativas
Más detallesEjercicio 4. Manejo de Layouts en Android. Android Con Java. Ejercicio 4. Manejo de Layouts en Android. Curso de Android con Java
Android Con Java Ejercicio 4 Manejo de Layouts en Android Objetivo del Ejercicio El objetivo del ejercicio es entender el manejo de Layout y los Adaptadores en Android. Al finalizar deberemos observar
Más detallesEscritorio remoto y VPN. Cómo conectarse desde Windows 7
Escritorio remoto y VPN. Cómo conectarse desde Windows 7 Hay ocasiones en las que es necesario conectarnos a un equipo informático situado a mucha distancia de donde nos encontramos para realizar sobre
Más detallesSmart Buffer Plus Guía de Instalación y Configuración
Smart Buffer Plus Guía de Instalación y Configuración INDICE 1- Introducción...4 2- Conexiones Hardware...5 2.1 Significado de los LED... 5 3- Configuración de Smart Buffer Plus...6 3.1 Configuración
Más detalles- A continuación, se nos abrirá la siguiente ventana pidiendo contraseña, que el cliente haya especificado al instalar Wingest 7
Copia de seguridad en Wingest 7 desde WgAdmin Los pasos a seguir serán los siguientes: - Todos los usuarios de la aplicación deberán estar fuera de ella. - Deberemos entrar en nuestra carpeta de Wingest
Más detallesCapitulo 4: Componentes Android
Capitulo 4: Componentes Android Elaborado por: Gary Briceño http://gary.pe http://gary.pe 1 http://gary.pe 2 1. COMPONENTES DE LA APLICACIÓN http://gary.pe 3 Componentes Android permite a los desarrolladores
Más detallesNOTA DE APLICACIÓN AN-P002. Programando Wiring con NXProg
NOTA DE APLICACIÓN AN-P002 Programando Wiring con NXProg Este documento se encuentra protegido por una licencia Creative Commons Creative Commons: Atribution, Non-commercial, Share Alike Atribución: Puede
Más detallesSensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.
Sensor de Temperatura utilizando el Starter Kit Javelin Stamp Realizado por: Bertha Palomeque A. Rodrigo Barzola J. INTRODUCCION DIFERENCIAS EJEMPLOS JAVA Orientado a Objetos Multiplataforma Programar
Más detallesMóvil Seguro. Guía de Usuario Terminales Android
Móvil Seguro Guía de Usuario Terminales Android Índice 1 Introducción...2 2 Descarga e instalación de Móvil Seguro...3 3 Registro del producto...5 4 Funciones de Móvil Seguro...7 4.1 Antivirus... 7 4.1
Más detallesCrear una Activity en Android. Paso por paso
19-03-2014 Crear una Activity en Android. Paso por paso Una breve descripción de qué hacer cuando las herramientas de desarrollo de Android se convierten en nuestros enemigos. A veces, puede pasar que
Más detallesMANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)
MANUAL DE AYUDA SAT Móvil (Movilidad del Servicio Técnico) Fecha última revisión: Abril 2015 INDICE DE CONTENIDOS INTRODUCCION SAT Móvil... 3 CONFIGURACIONES PREVIAS EN GOTELGEST.NET... 4 1. INSTALACIÓN
Más detallesAdaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.
Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra
Más detallesPROGRAMA PARA LA RECEPCIÓN VALIDACIÓN Y RESGUARDO DE DOCUMENTOS FISCALES VERSIÓN 1.00 MANUAL DE OPERACIÓN
PROGRAMA PARA LA RECEPCIÓN VALIDACIÓN Y RESGUARDO DE DOCUMENTOS FISCALES VERSIÓN 1.00 MANUAL DE OPERACIÓN ENERO 2014 Versión 1.00 Página 1 de 12 CONTENIDO 1.- Introducción 2.- Entrar y Salir del Programa
Más detallesGUÍA DE USUARIO DEL CORREO
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN DIRECCIÓN GENERAL DE LA OFICINA DE ADMINISTRACIÓN Y SERVICIOS DIVISIÓN DE SOPORTE TÉCNICO Y FORMACIÓN AL USUARIO GUÍA DE
Más detallesUNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO
UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES Eduard Lara 1 1. CONFIGURACIÓN PREVIA DE LOS CLIENTES WINDOWS Objetivo: Configurar los clientes Windows XP/Vista en red para posteriormente poderlos integrar
Más detallesMANUAL DE USUARIO APLICACIÓN SYSACTIVOS
MANUAL DE USUARIO APLICACIÓN SYSACTIVOS Autor Edwar Orlando Amaya Diaz Analista de Desarrollo y Soporte Produce Sistemas y Soluciones Integradas S.A.S Versión 1.0 Fecha de Publicación 19 Diciembre 2014
Más detallesGastos Reales Web Manual de Usuario
Gastos Reales Web Manual de Usuario Unidad Informática Diciembre 2009 1 Índice de contenido 1Invocación al guardar un formulario...3 2Invocación desde una grilla...5 3Ingreso por primera vez...6 4Procesamiento
Más detallesAplicaciones Cliente/Servidor en Gambas Prof: Mileti, P.
Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P. Al igual que un usuario se comunica con el programa por medio del teclado, dos programas se pueden comunicar entre sí por medio Sockets. Se podría
Más detallesCIF-KM. GUÍA DE LOS PRIMEROS PASOS
CIF-KM. GUÍA DE LOS PRIMEROS PASOS Secciones 1. CONCEPTOS PREVIOS. 2. INSTALAR CIF-KM. 2.1 Descargar e instalar CIF-KM. 2.2 Configuración de CIF-KM. 2.3 Acceso externo al servidor de CIF-KM. 3. PRIMERA
Más detallesInstrucciones de instalación de TrueCode
Gracias por su compra y las instrucciones que le guiara a través del proceso de instalación y puesta en marcha de su nuevo software. Se recomienda la lectura y las discusiones de los usuarios por favor
Más detallesCATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO
CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO 1. CATÁLOGO MANUAL DE USUARIO CATÁLOGO AHORA CATÁLOGO MANUAL DE USUARIO 1 1. Introducción AHORA Catálogo es una aplicación
Más detallesLICENCIATURA EN EDUCACION FISICA RECREACION Y DEPORTES
CORREO ELECTRONICO PEDRONEL CASTAÑO GARCES UNIVERSIDAD DEL ATLANTICO LICENCIATURA EN EDUCACION FISICA RECREACION Y DEPORTES Página 1 QUE ES UN CORREO ELECTRÓNICO Un Correo electrónico, es una herramienta
Más detallesRedes Locales: El protocolo TCP/IP
Redes Locales: El protocolo TCP/IP Los protocolos de red son las reglas que siguen los equipos conectados a la red para poder comunicarse entre sí, y hablar así el mismo idioma. El grupo de protocolos
Más detallesRedes de Área Local: Configuración de una VPN en Windows XP
Redes de Área Local: Configuración de una VPN en Windows XP Tatiana Echegoyen Blasco Facultad de Informática UPV - Curso 2005/2006 Índice 1. Qué es una VPN?...2 2. Cómo funciona una VPN?...2 3. Por qué
Más detallesGESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)
APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I
Más detallesSpider S3 Manual del Usuario
Spider S3 Manual del Usuario Spider Tracks Ltd 203/150 Karangahape Road Auckland 1010 New Zealand info@spidertracks.com www.spidertracks.com P + 64 6 353 3395 Marzo 2015. Este manual es el más actual al
Más detallesDirecciones IP IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR. En redes IPv4.
Direcciones IP En redes IPv4. IMPLANTACIÓN DE SISTEMAS OPERATIVOS Cada ordenador en Internet dispone de una dirección IP única de 32 bits. Estos 32 bits,o 4 bytes, se representan normalmente como se muestra
Más detallesUso de la red telefónica
Copyright y marca comercial 2004 palmone, Inc. Todos los derechos reservados. palmone, Treo, los logotipos de palmone y Treo, Palm, Palm OS, HotSync, Palm Powered, y VersaMail son algunas de las marcas
Más detallesMANUAL DE LA APLICACIÓN HELP DESK
CASAMOTOR MANUAL DE LA APLICACIÓN HELP DESK Desarrollado por: NOVIEMBRE, 2012 BOGOTÁ D.C. - COLOMBIA INTRODUCCIÓN Este documento es el manual de la aplicación de Help Desk de Casamotor, producto desarrollado
Más detallesPSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:
CARACTERISTICAS DEL SISTEMA PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones: Sólo Servidor: Una sola computadora con el sistema instalado en modo Administrador. Pueden
Más detallesSan Miguel de Tucumán, 10 de Setiembre de 2014.- CIRCULAR Nº 28/14
San Miguel de Tucumán, 10 de Setiembre de 2014.- CIRCULAR Nº 28/14 ASUNTO: Bloqueo Cero: Procedimiento de certificación de netbooks para alumnos y docentes de establecimiento que implementan el Programa
Más detallesPráctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP
Práctica 9 GESTIÓN Y UTILIZACIÓN DE REDES LOCALES Curso 2001/2002 TCP/IP: protocolo TCP Introducción Como se ha comentado en la práctica anterior, el protocolo UDP es muy sencillo de implementar, pero
Más detallesAndroid Con Java. Ejercicio 2. Ciclo de Vida de las Actividades en Android. Ejercicio 2. Ciclo de Vida de las Actividades en Android
Android Con Java Ejercicio 2 Ciclo de Vida de las Actividades en Android Objetivo del Ejercicio El objetivo del ejercicio es entender y verificar cada una de las etapas del Ciclo de Vida de las Actividades
Más detallesGUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE
ÍNDICE ACCESO A LA APLICACIÓN... 2 1.- HOMOLOGACIÓN DE CURSOS... 4 1.1.- INICIAR EXPEDIENTE... 4 1.2.- CONSULTA DE EXPEDIENTES... 13 1.3.- RENUNCIA A LA HOMOLOGACIÓN... 16 2.- MECÁNICA DE CURSOS... 19
Más detallesComunicaciones vía Bluetooth
Autor: José Manuel CanoAutor: José Manuel Cano Guía Rápida Guía Rápida Comunicaciones vía Bluetooth 1. Introducción 2. Cableados e indicadores 3. Configuración 4. Pruebas realizadas Autor: Virginia Sánchez
Más detallesMANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS
MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS En este manual aprenderemos a introducir un Ticket de Soporte (Incidencia Informática) y ver todo el proceso hasta que se resuelve. Para poder escribir Tickets
Más detalles10 En este caso indica la dirección GPIB del instrumento.
Práctica: Manejo de intrumentos a tavés del bus GPIB. Utilización de drivers de instrumentos, funciones básicas GPIB. Utilización de sesiones VISA (Virtual Instrument Software Architecture). En esta práctiva
Más detallesProceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento
Qué es AT-Encrypt nos permitirá dotar de contraseña a cualquier documento o carpeta. Este documento o carpeta sólo será legible por aquel que conozca la contraseña El funcionamiento del cifrado (o encriptación)
Más detallesSERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC
Diputación de Lugo SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC Manual usuario ERP Marzo 2015 ÍNDICE 1 INTRODUCCIÓN...
Más detallesGuía para Instalar un Access Point (AP) INTELLINET en modo Repetidor
Guía para Instalar un Access Point (AP) INTELLINET en modo Repetidor Objetivos: Configurar un Access Point INTELLINET para repetir una señal inalámbrica. Requerimientos: Ilustración 1: Modelo de red Conocimientos
Más detallesColectora de datos Unitech HT360 Al abrir la caja que contiene el equipo colector de datos encontraremos los siguientes elementos:
MANUAL DE USUARIO COLECTORA DE DATOS UNITECH HT630 Contenido Colectora de datos Unitech HT360... 1 Preparación de la colectora Unitech HT630... 2 Descarga del Software JobGen... 5 Instalación del JobGen
Más detallesCOMISIÓN NACIONAL PARA EL USO EFICIENTE DE LA ENERGÍA
COMISIÓN NACIONAL PARA EL USO EFICIENTE DE LA ENERGÍA PROGRAMA DE EFICIENCIA ENERGÉTICA SISTEMA DE CONTROLY SEGUIMIENTO DE INDICADORES DEL CONSUMO DE ENERGÍA HERRAMIENTA ELECTRÓNICA DE INDICADORES DEL
Más detallesPROYECTO DE ELECTRÓNICA
PROYECTO DE ELECTRÓNICA Sistema de Alarma Raúl Lapaz de Juan Francisco Javier López Alcarria 1 ÍNDICE - Objetivo:... 3 - Justificación:... 3 - Plan de trabajo:... 3 A) Montaje del circuito en protoboards:...
Más detallesTciSatSingleW32 Versión 3.1
http://www.tci.net.pe Página 1 de 19 TciSatSingleW32 Versión 3.1 http://www.tci.net.pe Página 2 de 19 Tabla de Contenidos 1. Introducción.... 3 2. Consideraciones al instalar... 3 3. Pantalla Principal...
Más detallesMANUAL WEBSOPORTE DE IRIS-EKAMAT
MANUAL WEBSOPORTE DE IRIS-EKAMAT ÍNDICE 1. INTRODUCCIÓN... 2 2. IDENTIFICACIÓN... 3 2.1 Validar usuario... 3 2.2 Campos recordatorio... 4 2.3 Contactar con soporte y acceder al manual... 4 3. GESTIÓN DE
Más detallesMANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO
MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO INDICE DE CONTENIDOS 1) INTRODUCCIÓN... 3 2) OPERACIÓN CON LA PDA... 3 3) GOTELGEST.NET PDA... 3 1) PANTALLA DE INICIO... 3 2) NUEVO DOCUMENTO... 3 3) EDITAR
Más detallesInstrucciones para la Actualización del Firmware de Sistema para los modelos AVH-X2550BT y AVH-X5550BT
Instrucciones para la Actualización del Firmware de Sistema para los modelos AVH-X2550BT y AVH-X5550BT Observaciones: Si Usted tuviese alguna dificultad para llevar a cabo estas instrucciones, por favor
Más detallesMANUAL PARA LA ELABORACION DEL COMPROBANTE FISCAL DIGITAL (CFDfácil) BIENVENIDOS A CFDfácil
MANUAL PARA LA ELABORACION DEL COMPROBANTE FISCAL DIGITAL (CFDfácil) BIENVENIDOS A CFDfácil 1 INDICE PAGINA INSTALACION 4 DATOS DEL EMISOR 5 DATOS FISCALES 8 SERIES Y FOLIOS 9 COMPROBANTES FISCALES DIGITALES
Más detallesT3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L-5 08330 Premià de Mar Barcelona Tel. (93) 754 90 19 Fax 93 752 35 18 marketing@t2app.
T3-Rondas V 1.1 1 Indice 1 Requisitos mínimos 3 2 Instalación 3 2.1 Instalación del software 3 2.2 Instalación del terminal 4 3 Configuración Inicial 4 3.1 Crear terminales 5 3.2 Crear puntos de lectura
Más detallesConfiguración en Red
Configuración en Red Si se ha adquirido este módulo posteriormente al programa OPTISYS, antes que nada, se deberá configurar la Naranja USB, con una nueva clave de actualización proporcionada por Lemon
Más detallesInstalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta
Configuración de una red con Windows Aunque existen múltiples sistemas operativos, el más utilizado en todo el mundo sigue siendo Windows de Microsoft. Por este motivo, vamos a aprender los pasos para
Más detallesVolumen TECNOLOGÍA DE ADMINISTRACIÓN EMPRESARIAL SIMI EVOLUTION (9.0) Guía de usuario
Volumen 1 TECNOLOGÍA DE ADMINISTRACIÓN EMPRESARIAL SIMI EVOLUTION (9.0) Guía de usuario SISTEMA INTEGRADO DE MANEJO INMOBILIARIO Guía administración módulo CALLCENTER Tecnología de Administración Empresarial
Más detallesUnidad Didáctica 12. La publicación
Unidad Didáctica 12 La publicación Contenido 1. Desarrollar y explotar 2. Definición del Sitio 3. Alojar nuestra primera página Web 4. Configurar la conexión FTP U.D. 12 La publicación 1. Desarrollar y
Más detallesUNIDAD DIDACTICA 6 PERFILES LOCALES Y MÓVILES DE USUARIO
UNIDAD DIDACTICA 6 PERFILES LOCALES Y MÓVILES DE USUARIO Eduard Lara 1 1. INTRODUCCIÓN Ya tenemos agregado un equipo cliente Windows al dominio Podemos iniciar sesión en el equipo de dos formas: En el
Más detallesCOMO CONFIGURAR DISA EN ELASTIX
En este manual se presenta el proceso de configuración del servicio DISA (Direct Inward System Access) en un sistema Elastix, DISA (Direct Inward System Access) permite que alguien que llama desde fuera
Más detallesModificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.
UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:
Más detallesManual de usuario Versión 1.0
Versión 1.0 Correo electrónico de la Red Nacional de Bibliotecas Públicas. Dirección General de Bibliotecas ÍNDICE 1. Registro en Windows Live... 3 2. Crear un mensaje.... 5 3. Envió de archivos adjuntos
Más detallesUso básico desde la propia página del sitio
Para acceder al entorno de Office 365, escriba la dirección http://correo.ulpgc.es. Antes de introducir el nombre de usuario, marcamos la opción de "Mantener la sesión iniciada" e iniciamos sesión introduciendo
Más detallesHOW TO SOBRE FIREWALL
HOW TO SOBRE FIREWALL 1- En este how to estaremos estableciendo algunas reglas con el firewall para bloquear el acceso, o permitirlo. Lo primero que haremos es abrir la consola, ubicada en aplicaciones,
Más detallesAcronis License Server. Guía del usuario
Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE
Más detallesMANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD
MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...
Más detallesMi Cobertura Móvil. Preguntas frecuentes.
Mi Cobertura Móvil. Preguntas frecuentes. 1. Qué es? Mi Cobertura Móvil es un servicio móvil Movistar que proporciona cobertura Movistar 3G en interiores que dispongan de una conexión fija Movistar ADSL.
Más detallesGuía de instalación de la carpeta Datos de IslaWin
Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3
Más detalles5. Composer: Publicar sus páginas en la web
5. Composer: Publicar sus páginas en la web Si nuestras páginas existen únicamente en el disco duro local, sólo nosotros podremos navegar por ellas, pero nadie más podrá hacerlo. Composer nos permite publicarlas
Más detallesGuía de Apoyo Project Professional
Guía de Apoyo Project Professional Contenido INTRODUCCIÓN... 3 CAPITULO I: ELEMENTOS INICIALES DE PROJECT PROFESSIONAL... 4 Descripción de Entorno de trabajo... 4 Opciones de personalización de Project
Más detallesINSTALACION Y CONFIGURACION DE SQL SERVER MANAGEMENT (EXPRESS) 2008
INSTALACION Y CONFIGURACION DE SQL SERVER MANAGEMENT (EXPRESS) 2008 Requisitos de HW Virtualización SQL Server se admite en entornos de máquina virtual que se ejecutan en el rol de: Windows Server 2008
Más detallesProgramación en Android LSUB, GSYC, URJC
Programación en Android LSUB, GSYC, URJC Introducción Teléfono o Emulador Android Studio Introducción Activity Mgr App! Dialer Dalvik JVM SQLite WebKit... OpenGL Linux kernel Dispositivo móvil Aplicaciones
Más detallesPROGRAMA DE CONFIGURACION
PROGRAMA DE CONFIGURACION 1 VENTANA DE COMIENZO DE LA APLICACIÓN...2 1.1 VENTANA DE MODIFICACIÓN DE LA CLAVE DE ACCESO...4 1.2 VENTANA DE MODIFICACIÓN DE LOS PARÁMETROS GENERALES DEL SERVICIO...5 1.3 VENTANA
Más detallesGestió n de Certificadó Digital
Gestió n de Certificadó Digital Contenido Introducción... 2 Exportar certificado... 5 Importar certificado... 8 Renovar el Certificado... 10 1 Introducción Los certificados digitales o certificados de
Más detallesServicio de Informática
Vicerrectorado de Tecnologías de la Información y la Guía de usuario del servicio de Aula Virtual Última Actualización 02 de octubre de 2014 Tabla de contenido 1.- INTRODUCCIÓN... 3 2.- ACCESO AL SERVICIO...
Más detallesIntroducción a Moodle
Instituto la Américas de Nayarit Ing. Elías Portugal Luna Qué es Moodle? Moodle es una aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión de cursos, de distribución libre, que ayuda
Más detallesSitios remotos. Configurar un Sitio Remoto
Sitios remotos Definir un sitio remoto significa establecer una configuración de modo que Dreamweaver sea capaz de comunicarse directamente con un servidor en Internet (por eso se llama remoto) y así poder
Más detalles15 CORREO WEB CORREO WEB
CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,
Más detallesCurso de PHP con MySQL Gratis
Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este
Más detallesMANUAL BASICO DE WEBEX
MANUAL BASICO DE WEBEX Webex es un servicio de web conferencias y soluciones de colaboración, lo que significa que nos permite crear una conferencia por internet en la cual además de vernos los unos a
Más detalles