uControl
Octubre 24, 2014, 08:49:14 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  

La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Páginas: [1] 2   Ir Abajo
  Imprimir  
Autor Tema: Controlar PC desde otro PC  (Leído 10856 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« : Marzo 18, 2009, 05:54:47 »

Hola:

Tengo la idea de hacer dos programas en cada PC controlado mediante Internet y puerto serie.

1- EL PC1 hago la Interfaz de control para controlar por vía Internet mediante button (botones) el otro programa del PC que ahí está el PIC16F84A.

2- El PC2 tiene otro programa o Interfaz que puede controlar el puerto serie donde está conectado el PIC. Se controla como puedes ver en este vídeo...

http://www.youtube.com/watch?v=niWAbQ-HVnY

...con la diferencia que yo lo quiero hacer mediante control por IP y que ustedes sean capaces de controlarlo desde sus casas mientras ves como se mueve una webcam por poner un ejemplo.

Ahora la pregunta. ¿Con Visual C# se puede hacer esto?

Aquí hay un ejemplo directo de una Interfaz básico con su código fuente, conectado al puerto serie. En realidad esta Interfaz no tiene que ir con el puerto serie, sólo la conexión a Internet mediante una IP que debemos conocer para poder llegar al PC2 que si se puede conectar al puerto serie.

Las órdenes a enviar al PC2 para el puerto serie es algo parecido a esto.
 
Código:
          byte[] mBuffer = new byte[1]; 
            mBuffer[0] = 0x20; //ASCII letra "Espacio". 
            serialPort1.Write(mBuffer, 0, mBuffer.Length);






Necesito información y cómo se programa. Poco a poco lo intentaré, al menos como se envía esta trama de bytes en hex para que lo entienda el PC2 desde el PC1. De momento sigo buscando en www.google.com


En resumen:

Sólo necesito introducir la IP desde PC1-Cliente, para conectar al PC2-Servidor. Si se conecta, el PC2-Servidor envía al PC1-Cliente un mensaje de bienvenida, por ejemplo:

"Bienvenido a PC2".

A partir de ahí, al pulsar un botón del PC1-Cliente, envía tramas y/o string o lo que sea al PC2-Servidor para que ejecute las ordenes hacia el serialPort1.
Si todo sale bien, puedo controlar el PIC16F84A por el puerto serie.

Espero que esto no sea tan complicado como parece.

¿Sugerencias?

Un cordial saludo.
En línea
Leon Pic
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5317


Cumulonimbus


WWW
« Respuesta #1 : Marzo 18, 2009, 08:38:02 »

Tengo una sugerencia. Si trabajas con Windows, trae la opción de asistencia remota. Cuando te conectas por medio de ella y te dan el control total de la máquina, la puedes manejar por completo.

Algunos amigos, le instalo programa así o le arreglo la PC.
En línea

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.
Ariel
Global Moderator
dsPIC
****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 10631



WWW
« Respuesta #2 : Marzo 18, 2009, 10:25:21 »

Hace tiempo usaba para eso el Lap Link:



Laplink
From Wikipedia, the free encyclopedia

Laplink Gold is software used for data transfer and remote control between two or more computers. It can use Serial, Parallel, Dial-up networking, and Ethernet connections. The older DOS-based versions could use Parallel and Serial connections.

The firm Laplink Software has been providing connectivity products for over two decades, making it the second-oldest software company in the Seattle area after Microsoft. Founded by technologist Mark Eppley in 1983, the company, originally called 'Traveling Software', created the first embedded mobile application software for the Radio Shack Model 100 computer.

The Laplink DOS program that transferred files between laptop and desktop computers was widely used, and “to laplink” was used as a verb to describe file transfers between computers.[citation needed]

In 1989, the company patented the first bi-directional parallel cable communications. This technology delivered unprecedented transmission speeds of 3 Mbit/s.

In 1994, Laplink released the first low-power radio modem with integrated auto sync software (a Bluetooth precursor). 1994 also saw the invention and patenting of Laplink’s “SpeedSync ”, a real-time, high-speed delta sync technology that enabled faster synchronization by updating only the changed bytes in a data set.

In the , Laplink began to concentrate on connectivity software such as remote control and remote support solutions, as well as refining its file transfer and synchronisation technologies.

In 2003, Thomas Koll became CEOs of Laplink Software. Koll has strong ties with Microsoft, having managed the German division of Microsoft, and then moved on to manage Microsoft’s relationships with telecommunications companies. Under Koll’s direction, the company has introduced several new products and has expanded its retail presence.

Current Laplink products include:

    * Laplink Gold-flagship deep remote support tool
    * PCmover-simple, automatic migration solution (Kit works with Windows Vista
    * Laplink Everywhere-web-based remote access for mobile professionals
    * PCdefense-malware protection and disaster recovery security suite
    * Laplink RemoteAssist-web-based, on-demand remote support
    * ShareDirect-peer-to-peer based file sharing network
    * Controller-control and view a PDA using a full-sized PC keyboard, mouse, and screen
    * PDAsync-superfast synchronization between PCs and mobile devices with support for Outlook, Lotus Notes, Lotus Organizer, and ACT!
    * DoubleView-turn any spare PC into a monitor extension for your main workstation-without any hardware required
    * FileMover-fast, secure file transfer between PCs

En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Bruno10
Moderador
PIC16F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 931


texto personal


WWW
« Respuesta #3 : Marzo 18, 2009, 10:58:48 »

Posta, no hay que reinventar la rueda  Cool
En línea

Felixls
Moderador
PIC24F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 3037



WWW
« Respuesta #4 : Marzo 19, 2009, 10:24:06 »

Meta, te recomiendo que cambies la arquitectura de tu aplicación de la siguiente manera:

1. PC conectada por puerto serie al PIC:

   Haces una aplicación ASP.NET que te valide como usuario por medio de una base de datos con protocolos de encriptación.
   El router de tu casa lo configuras de manera segura y dejás redireccionado el puerto 8000 (por ej.) al 80 de esta PC.

2. PC2 desde cualquier otra pc, con un IE, Firefox, etc, se podría usar la app web y controlar tu pic.

La comunicación directa por winsock no te la recomiendo requiere mucho conocimiento y experiencia, además tendrías problemas cuando entre diferentes ISP no hay ruteo, y otras yerbas.

suerte...
En línea
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #5 : Marzo 19, 2009, 04:51:20 »

Gracias por la sugerencias, si alguien tiene más mejor que mejor.

Tengo dos vías para hacer el proyecto.

1) De escritorio
2) Vía Web.

El 1) sólo puedes controlarlo si tienes el programa cliente, lo puedes configurar para una sola persona o un grupo de personas.

El 2) desde que tengas Internet puedes controlarlo vía Web con la ventaja de no instalar nada en ese equipo, sólo con poner la contraseña y Login ya tienes. Este método sobre .net se llama .net remoting.

En ambos casos, más adelante se tratará sobre la seguridad, no me hace gracia que un tercero anónimo esté controlando mi PIC a distancia activando ventiladores, viendo la temperatura que hay en mi casa, moviendo la webcam a ver que hay en el alrededor de mi cuarto, etc...

Voy analizar bien  las sugerencias y muchas gracias por sus aportes.

EDITO:
Para no tener problemas si se cambia la IP.
http://www.dyndns.com
http://www.no-ip.com

Para saber la IP pública:
http://www.adslayuda.com/ip.html
http://www.whatismyip.com

Información que he visto por ahora es pero no entiendo nada.
http://www.eggheadcafe.com/software/aspnet/34123283/manual-redes-sockets-en.aspx
http://www.vitucho.info/detallearticulo.aspx?ca=7
http://elvex.ugr.es/decsai/csharp/distributed/remoting.xml
http://www.aztekmindz.org/2008/07/03/sockets-c-cliente-servidor/

Por si alguien no lo sabe y quiera aprender como se controla el PIC por puerto serie tengo manuales en Visual C#, Visual C++ y Visual Basic. En Linux lo tengo hecho con MonoDevelop bajo openSUSE, también válido ara Ubuntu que ya incluiré en el manual. (Los que me han pedido por e-mail que haga manuales bajo cmd o línea de comando tengo intenciones de hacerlo también).

http://www.abcdatos.com/tutoriales/tutorial/z9521.html
http://www.abcdatos.com/tutoriales/tutorial/v12.html

Felixls
Tendré en cuenta lo que dices, me imagino que el registro de login lo haré en SQL Express o MySQL ya que con eso viene protegido.

Sigan encontrando más, de momento estoy investigando y programando algo.
« Última modificación: Marzo 19, 2009, 08:00:54 por Meta » En línea
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #6 : Marzo 19, 2009, 08:13:54 »

ATS&S

Gracias por las respuestas.

Primero hago el programa con Visual C#. Después lo pasaré a Visual C++ o Visual Basic porque me lo piden mucha gente por e-mail, demasiado diría yo.

Así, me aseguro de que los demás aprendan hacer sus proyectos con sus lenguajes preferidos o el mejor que entienda. Eso si, no tienen ni idea el esfuerzo que  uno llega intentar cambiar de lenguaje a otro que apenas entiende.

Así lo he hecho con Visual C# lenguaje inicial y lo he pasado VC++ y VB para que los demás aprendan.

http://www.abcdatos.com/tutoriales/tutorial/z9521.html
http://www.abcdatos.com/tutoriales/tutorial/v12.html

Lo suelo publicar aquí:
http://electronica-pic.blogspot.com/

Saludo.

PD: No te preocupes si quieres tenerlo en VB, entre todos lo sacamos.

EDITO:
Primero diseño de la Interfaz, después la programación. Mi objetivo es hacerlo funcional del 1) método que lo veo más fácil que vía web. Vía Web para más adelante.



Cuando acabemos, ya nos diseñaremos una Interfaz con fundamento entre todos y lo que vamos a controlar antes de plasmarlo a un manual que hago siempre. Después haré en otros lenguajes que ya me encargaré yo para los interesados.

« Última modificación: Marzo 19, 2009, 09:26:40 por Meta » En línea
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #7 : Marzo 19, 2009, 11:18:42 »

Haciendo pruebas con el Telnet que ya me funciona al menos en red interna. Al acceder por vía Internet yo mismo no puedo.

Para saber la IP pública:
http://www.adslayuda.com/ip.html
http://www.whatismyip.com

Da la casualidad de que tenemos dos PC en mi casa, uno mio y  el otro de mi hermano. Tenemos la misma IP pública, la verdad que desde el router sólo se diferencia que el PC de cada uno de nosotros tenemos IP de red interna o Intranet.

En CMD de Windows, escriban
telnet open IP_Pública y puerto.

Me pide el password que yo pensaba que era el del servidor de pablin EZServer09.exe pero me di cuenta de que es del Router.

¿Saben alguna solución sobre este tipos de cosa? Primero hay que probar las herramientas de otros para luego saber que hacer con las mías. Cuando ya consiga entrar con las herramientas de terceros a mi IP pública para entrar a mi ordenador, entonces ya empezaré a programar algo.

Visual C#
Código:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.Net.Sockets;

    namespace ClienteBF
    {
        public partial class Form1 : Form
        {
            Socket client = null;
            public Form1()
            {
                InitializeComponent();
            }

            private void btnConectar_Click(object sender, EventArgs e)
            {
                //Declaro variables
                int recv;

                byte[] data = new byte[1024];  //Buffer de recepción y envío de los datos
                string input, stringData;

                //Preparo los datos (IP y puerto) del servidor al que me voy a conectar
                //La clase IPEndPoint representa un extremo de red como una dirección IP y un número de puerto.
                IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(textBox1.Text), 8888);

                //La clase Socket implementa la interfaz de sockets Berkeley (Creo el Socket)
                 client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                //CONECTO mi socket (cliente) al servidor definido por "ipep"
                //Try-Catch se usa en el caso de que un método pueda devolver excepciones
                //Connect puede devolver una excepción si es imposible conectar al servidor que queremos
                try
                {
                    //Connect es un método de la clase Socket
                    //Establece una conexión a un host remoto
                    client.Connect(ipep);
                    miTextBox.Text = "Conectado a 192.168.107.171 por el puerto 1234";
                }
                catch (SocketException error)
                {
                    //Si existe algún error al conectar informo al usuario
                    miTextBox.Text = "Imposible conectar con el servidor:" + error;
                    return;
                }

                //Desactivo el botón Conectar y activo el botón Desconectar
                btnDesconectar.Enabled = !btnDesconectar.Enabled;
                btnConectar.Enabled = !btnConectar.Enabled;

            }

            private void btnDesconectar_Click(object sender, EventArgs e)
            {
                //Finalizo conexion con el servidor
                client.Shutdown(SocketShutdown.Both);
                client.Close();

                miTextBox.Text = "Desconectado del Sevidor";

                //Desactivo el botón Conectar y activo el botón Desconectar
                btnDesconectar.Enabled = !btnDesconectar.Enabled;
                btnConectar.Enabled = !btnConectar.Enabled;
            }
        }
    }


En línea
geronimox
Moderador
PIC18F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 1175



WWW
« Respuesta #8 : Marzo 20, 2009, 12:34:31 »

Hola Meta.
Cuando quieras acceder desde internet a una pc particular de tu red, debes ir a la seccion "virtual server" de tu router, y alli agregas una regla donde indicas un puerto y una ip.
El puerto, es el puerto en el que el programa servidor esta escuchando.
La ip, es tu ip en la red lan.
Esto, hara que todos los datos provenientes de la wan a ese puerto, sean rebotados a la ip que corresponde a tu pc en la lan  laugh
Y listo... ya puedes acceder desde internet a tu pc =)
Saludos!
En línea

Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #9 : Marzo 20, 2009, 01:09:11 »

Gracias por contestar los dos, voy a investigar y el router a ver que consigo.

Siguiendo sus consejos, mi IP es el 192.168.1.35 y me funciona el Telnet.

Por ahora he logrado conectarme en red mediante telnet y ya hasta puedo leer los mensajes desde el PIC16F84A-04. Es un menú de ayuda simple, pero se entiende. Repito, viene directamente del PIC, si pulsa ? aparece este mensaje de ayuda.



Lo que me gustaría para hacer pruebas, que alguien de ustedes me entren al PIC16F84A, los grabo con el móvil N70 y les  envío el vídeo. Sólo por probar.

Hay que poner:
Telnet open 192.168.1.35 8888
Ya me entra en el servidor.
En línea
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #10 : Marzo 20, 2009, 06:04:22 »

Muy buenas explicación y no molestas nada, ayudas mucho incluido los demás.

meta está usado por alguien, pondré otro nombre.

Voy a probar a ver, espero que no tenga que tocar el Router ya que no es mio y me mete pegas.

EDITO:
Me registré con http://metaconta.dnsalias.com , me pide contraseña y no es la misma que el registro. Tengo que averiguar cual es.



Hay un buen manual:
http://diariosuayon.wordpress.com/2008/02/14/crear-un-host-para-nuestra-ip-dinamica-con-dyndns/
« Última modificación: Marzo 20, 2009, 06:56:35 por Meta » En línea
geronimox
Moderador
PIC18F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 1175



WWW
« Respuesta #11 : Marzo 20, 2009, 02:42:42 »

Hola Meta.
Hay Cero chances que podamos conectarnos a tu pc.
El router recibe peticiones en el puerto 8888 y no sabe a donde mandarlas, imaginate que hayan 100 pc en la lan, entonces, el router no sabe cual de todas es la que reclamo el puerto 8888.
Aqui hay un tuto bastante mas grafico que mi explicacion  laugh
http://www.taringa.net/posts/info/895064/Abrir-puertos-router-(NAT-o-Virtual-Server)_.html
Una vez hecho esto, nos sera posible conectarnos via telnet al 8888
Saludos!
En línea

Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #12 : Marzo 20, 2009, 07:04:00 »

Hola gente:

No puedo por ahora tocar el router porque es de mi hermano, cuando lo vea se lo digo. He visto información que dicen que no hace falta tocar el router, voy a ver si es verdad.

http://www.adslzone.net/postt8656.html

Por ahora me funciona con la LAN:

Con pulsar ? sale esta ayuda. Al menos se que funciona por vía Intanet.


Voy a leer el manual a ver si lo soluciono.

EDITO:
Viendo la web http://www.taringa.net/posts/info/895064/Abrir-puertos-router-(NAT-o-Virtual-Server)_.html

¿Realmente para lo que necesito es la NAT o otra cosa? Lo pregunto por si acaso.
« Última modificación: Marzo 20, 2009, 07:44:43 por Meta » En línea
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #13 : Marzo 21, 2009, 05:58:51 »

Hola:

He hablado con mi hermano y no me deja abrir nada porque dice que me entran todo el mundo y alguien puede joder buscando fallos de algo y hacer lo que le de la gana ya dentro de la máquina.

Esto no indica que no siga trabajando en el proyecto.

Ahora me toca a joderme.

Saludo.
En línea
Meta
PIC12F
**
Desconectado Desconectado

Mensajes: 425


« Respuesta #14 : Marzo 21, 2009, 05:51:59 »

Bueno, he acabado algo de programa.

Lo prueban entre ustedes, el puerto es 8888.

Descarga abajo.

* PC.zip (34.49 KB - descargado 140 veces.)
En línea
Páginas: [1] 2   Ir Arriba
  Imprimir  
 
Ir a:  


La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.20 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.088 segundos con 29 consultas. (Pretty URLs adds 0.034s, 3q)