Controlar PC desde otro PC

Moyano Jonathan dijo:
Está perfecto meta, lo has puesto con contraseña la página ? El tema del puerto controlado sería mucho mejor con USB pero si lo haces con el puerto serie no importa.

Si, si importa, me centro en el puerto serie ahora ya que lo domino y acabo antes para un manual, el otro manual ya sería sólo para USB que por supuesto lo haré.

Lo de la contraseña a la página hay que ponerlo, por eso uso el MySQL, porque es bueno en ello y se usa mucho. Lo que tengo que diseñar la página, entrada de login y password, etc.



Una idea sería que tu programa buscara todos los puertos COM disponibles en la máquina servidor y largarnos una lista y que una vez conectado el microcontrolador nos mande una cadena de respuesta.
En ese caso si se podría utilizar USB ya que se implementaría la emulación CDC.

Lo se, te pogo el código abajo.
Código:
private System.Windows.Forms.ComboBox comboBox1;

private System.IO.Ports.SerialPort PuertoSerie;

 

public Form1()

{

InitializeComponent();

      this.comboBox1 = new System.Windows.Forms.ComboBox();

      // comboBox1

      this.comboBox1.FormattingEnabled = true;

      this.comboBox1.Name = "comboBox1";

      this.Controls.Add(this.comboBox1);

}

 

private void Form1_Load(object sender, EventArgs e)

{
      // GetPortNames, nos devuelve un array con los nombres

      // de los puertos instalados en nuestro equipo

String[] Ports = System.IO.Ports.SerialPort.GetPortNames();

      this.comboBox1.Items.AddRange(Ports);

}

 

// En el evento SelectedIndexChanged… del ComboBox1

{     

      // ... Por ejemplo
      PuertoSerie.Close();

      PuertoSerie.PortName = this.comboBox1.SelectedItem.ToString();

      PuertoSerie.Open();

}
Me respondieron hace un tiempo en:
http://msmvps.com/blogs/peplluis/ar...los-com-s-de-nuestro-equipo-en-vb-y-en-c.aspx
 
Si ese código lo ví y lo estoy utilizando en un par de programas. El tema del puerto serie si importa yo me refería a que lo hagas por ahora con el puerto serie y despues cuando adquieras los conocimientos lo hagas con el puerto USB.

un saludo
 
Muy bueno tus avances yo estoy por las 63 páginas y avanzando pero toda la traducción al español de algunas cosa se está volviendo lento ya que el inglés no es precisamente lo mio.
Felicitaciones por tus logros.
 
A mi tampoco se me da el Inglés, irás lento pero no pausado con lo que sognifica que avanzas y no te detienes.

Tu manual está de lujo, cuando lo acabes haré pruebas con él y lo pasamos a otros lenguajes, claro que primero debo probarlo de arriba abajo.

Voy a diseñar ya la base en sólo html la web para que los vean a ver como queda, después lo paso a php si es posible.

Saludo.
 
La demanda por lo que veo aquí, prefieren la mayoría por vía Web. También lo estoy haciendo de escritorio para aquellos que usen en modo local.

Vamos a ver como les interesa al final la gente sobre el control de PIC por vía Web. En este caso uso Apache, PHP, MySQL. También puedes usarlo en servidores externos como Lycos.

Se me ocurrió hacer logger de fecha y hora en cada modificación de estado y guardarlo en un abase de datos.
 
Hola:

Chico3001:

Antes de subir el servidor la interfaz de php, me tienes que decir el puerto de la base de datos y la dirección.

Crea una base de datos e inserta estos datos en l atabla.

Código:
--
-- Base de datos: `prueba01`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `dispositivos`
--

CREATE TABLE IF NOT EXISTS `dispositivos` (
  `ID` int(11) NOT NULL,
  `nombre` varchar(30) NOT NULL,
  `estado` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `descripcion` varchar(200) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Volcar la base de datos para la tabla `dispositivos`
--

INSERT INTO `dispositivos` (`ID`, `nombre`, `estado`, `descripcion`) VALUES
(1, 'RELE 1', 1, 'Motor 1'),
(2, 'RELE 2', 1, 'Motor 2'),
(3, 'RELE 3', 1, 'Alarma'),
(4, 'RELE 4', 1, 'WebCam');
 
Gracias por responder.

Ahora si es posible, crea esta otra base de datos y tabla que es una prueba del programa C#.

Código:
--
-- Base de datos: `prueba01`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `tabla01`
--

CREATE TABLE IF NOT EXISTS `tabla01` (
  `RELE_1` tinyint(1) DEFAULT NULL,
  `RELE_2` tinyint(1) DEFAULT NULL,
  `RELE_3` tinyint(1) DEFAULT NULL,
  `RELE_4` tinyint(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;

--
-- Volcar la base de datos para la tabla `tabla01`
--

INSERT INTO `tabla01` (`RELE_1`, `RELE_2`, `RELE_3`, `RELE_4`) VALUES
(1, 1, 0, 0);
Ya me avisarás. Por ahora esto es todo.

Saludo.
 
Ando revisando tu codigo PHP para subirlo al server y no entiendo bien como estas logrando la comunicacion entre las 2 computadoras... me puedes aclarar un poco el tema para ayudarte en la parte del server?
 
Hola:

- Falta el programa hecho con Visual C#.
- Tanto PHP y Visual C# leen los valores de la base de datos MySQL.
- PHP modifica los valores de On/Off de la base de datos.
- Visual C#, los lee y los interpreta al mismo tiempo envía órdenes al PIC por puerto serie (También recibir datos).

Un cordial saludo.
 
No podriamos modificar de algun modo el PHP del servidor y el SQL para que se comuniquen entre ellos? asi podriamos eliminar el problema de tener que permitir el acceso por IP....

Estoy investigando de que manera se puede abrir y cerrar un socket en PHP....
 
PHP siempre se comunica al SQL. Lo de la IP ya que cosa del servidor Web y hay muchos, el más usado es el Apache y dirige PHP y la IP. El router de tu casa debe tener acceso libre al exterior o Internet, sobre todo los nuevos.

No se si PHP puede abrir y cerrar sockect, voy a investigar.
 
Esto puede servir de mucho... si logramos la comunicacion por medio de sockets podemos reducir muchisimo los requerimientos

http://www.php.net/sockets
http://www.php.net/manual/es/sockets.examples.php
http://www.elguruprogramador.com.ar/articulos/introduccion-a-los-sockets-en-php.htm
http://theseismo.wordpress.com/2007/05/07/trabajando-con-sockets-en-php/
http://www.arrakis.es/~dmrq/beej/theory.html

Pero segun lo que tengo entendido PHP solo se puede conectar como cliente a un servidor.... y necesitamos que sea alrevez... a menos que pongamos la computadora de la casa en modo servidor corriendo un programa en C a esperar una conexion desde internet.....
 
No se exactamente para que quieres los sockes si solo controla puerto de entrada y salida de programas hacia internet como HTTP que es el 80 y 8080 por defecto, 21 del FTP, nada de ello controla el puerto seire, por eso lo hago con Visual C# (puede ser otro lenguaje) que haga de intermediario que si lo puede controlar.
 
Segun he leido la manera mas sencilla de mandar datos de una computadora a otra es por medio de sockets.... lo unico que se hace es abrir la conexion desde el cliente, procesar los datos en el servidor (para este ejemplo manipular el puerto serie) y devolver el resultado al cliente

El lenguaje de programacion mas comun en internet es php y para una PC casera es C, en ambos lenguajes es bien facil manipular un socket, pero ademas de eso se presenta una ventaja extra.... como un socket es comunicacion de red a nivel mas basico podriamos conectar el PIC a un controlador Ethernet y recibir los datos directamente de internet sin pasar por la PC....
 
Arriba