Pulsando el botón de detección en la red informática

2

Me gustaría crear un dispositivo en red (en la línea de una llamada de servicio de habitaciones de hotel) que tenga varias líneas de entrada que puedan identificarse de manera única en una computadora de la red.

Encontré un product con funcionalidad.

¿Supongo que el dispositivo requerirá un microcontrolador interconectado con un controlador de E / S de Ethernet? ¿Necesito tener un sistema operativo para generar paquetes de mensajes TCP / IP que puedan detectarse en una PC? Por favor sugiera un esquema de bloque que pueda seguir para hacer esto.

    
pregunta Bleamer

3 respuestas

3

No me queda claro qué es exactamente lo que quieres. Creo que es como el siguiente: tiene un número de líneas que un microcontrolador tendrá que interconectar, y este microcontrolador envía una señal a una computadora. La computadora procesa esta señal.

Para la parte del microcontrolador, puede usar un chip con Ethernet integrado como PIC18F67J60 Olin mencionado También puede utilizar un chip más pequeño (más fácil de programar) con un chip externo de Ethernet como ENC28J60 . Puede escribir software para el microcontrolador utilizando pila TCP / IP de Microchip , pila TCP / IP de Olin Lathrop (consulte en "Networking Example Firmware") o la implementación de Matthew Schinkel en Jalv2 .

Dado que el microcontrolador envía una señal a la computadora, es más fácil hacer que la computadora sea el servidor y el microcontrolador el cliente. Eso significaría que necesitas algún tipo de servidor en la computadora. Te recomiendo que vayas a un servidor HTTP, porque hay la mayor cantidad de información disponible para él. Para Linux, puede usar un servidor LAMP : para Windows, use WAMP o XAMPP.

Tendrá que hacer algún script del lado del servidor que procese la solicitud del cliente. El cliente tiene que llamar a ese script. Por ejemplo, puede hacer que la solicitud del cliente /button.php?button=17 cuando se presione el botón número 17. Luego, el script del lado del servidor podría ser así:

<?php
if (!isset($_GET['button'])) {                    // Check if ?button exists
    die('The button variable is mandatory.');     // If not, quit
}

$button = (int) $_GET['button'];                  // Cast ?button to an integer
if ($button == 0) {                               // Check if it was an integer
    die('Invalid button number.');                // If not, quit
}

// Do stuff with $button

Aquí hay un esquema de bloque:

Déjame explicarte esto.

  • Los botones & otra IO forma la entrada para el microcontrolador que va a utilizar. Estos serían los botones con los que se conectará la interfaz, pero también podrían ser otras cosas, como dispositivos I2C / SPI, o lo que sea.

  • Puede obtener información de este IO con la programación básica de chips . El chip tiene que leer los valores de las entradas.

  • El chip (podría ser un PIC) con ethernet (podría estar integrado) procesa la información de entrada y la transmite a la IP del servidor , por ejemplo, 192.168.0.10.

  • Para esto, debe enviarse al enrutador en la IP 192.168.0.1 primero utilizando la pila TCP / IP . Usted no notará esto en el chip. Es como si te contactaras directamente con el servidor .

  • El enrutador procesa el paquete y lo envía al servidor en 192.168.0.10. No tienes que hacer esto, el enrutador lo hace por sí mismo.

  • El servidor obtiene una solicitud HTTP y necesita procesarla. Envía una respuesta al enrutador en 192.168.0.10, que la reenvía al chip. Esto no se muestra en el esquema de bloque porque no es necesario en esta aplicación: los datos deben enviarse desde el chip al servidor , pero no a la parte posterior.

  • Los datos del chip pueden ser utilizados por el servidor para mostrarlos en una pantalla, almacenarlos en un archivo o hacer algo más con ellos . Eso depende totalmente de usted.

También puede, como sugiere Olin en los comentarios, usar un servidor TCP en lugar de un servidor HTTP. Esto es posible y más eficiente (lo cual es un pro teórico, no lo notarás). Recomiendo un arranque en redes para ir con un servidor HTTP. Hay mucha información sobre el tema y es muy fácil comenzar. Si ya sabes cosas sobre redes, también puedes construir un servidor TCP. Ninguno de los dos servidores sería más complejo de implementar en el lado del cliente.

    
respondido por el Keelan
2

Sugeriría usar un microcontrolador de bajo costo que uso llamado "Imp eléctrico", es pequeño (del tamaño de una tarjeta SD) y contiene todo lo que necesita para tener un botón que haga una conexión segura a través de wifi a internet y incluso trabajar con la batería.

Por supuesto, una vez que presiona tu botón está fuera de Internet, tienes 1001 opciones diferentes con lo que puedes hacer con eso.

Una característica realmente interesante es que las actualizaciones de su código se transfieren al dispositivo desde Internet para que pueda actualizarse en el campo.

    
respondido por el back_ache
1

Obtenga un micro con capacidad Ethernet, como el PIC18F67J60, y conecte todos los botones a él. El micro desmonta los botones. Cuando ve una actividad que vale la pena informar, abre una conexión TCP a un servidor conocido en un puerto conocido, envía la información y cierra la conexión.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas