Arduinolyzer.js: Convertir tu Arduino en un analizador lógico (4 / 8 paso)

Paso 4: Node.js Server

Estas son las principales tareas del servidor:

  • Inicializar el puerto serie y arrancar el Arduino
  • Iniciar un servidor HTTP
  • Servir la página index.html (y todas las páginas estáticas de "/")
  • Responder al POST de AJAX para "/ start" mediante la entrega de los datos para el Arduino mediante el objeto puerto serie
  • Registrar una devolución de llamada para escuchar el Arduino para terminación
  • Recibir y empaquetar los datos de Arduino en un objeto JSON y enviar al cliente vía socket.io

Todo esto se hace en un centenar de líneas de código gracias a módulos de gestión existentes. El servidor acepta un parámetro de línea de comandos, el nombre de puerto serie (/ dev/tty * mac/unix, y COM * en Windows).

[ADVERTENCIA: esta es mi primera vez utilizando el paquete de serialPort . No tengo ningún problema, pero no tengo esa sensación de realmente entender todavía, que me pone intranquila. A veces la consola de depuración tiene caracteres extraños cuando se inicia el Arduino. Podría ser debido al TTY no irrigando, o podría ser debido a algo que no entiendo sobre el puerto serial. Por favor, hágamelo saber si usted tiene algún problema.]

Antes server.js inicia el servicio HTTP con el oyente de aplicación Express, inicializa el puerto serial proporcionado por el primer argumento en la línea de comandos. Tiene que haber un tiempo de espera de 3 segundos de espera para que el dispositivo de arranque. He añadido las medidas preventivas adicionales que esperar para la cadena "inicializada" de Arduino antes de que el usuario puede enviar datos.

A comunicación de servidor cliente

Hay sólo dos extremos exponen por el servidor, puesto que "/ start" y de "/".

El cliente llamada servidor vía AJAX es manejado por un formidable objeto de formulario. El punto final de aplicación Express "localhost:8080 / start" capta la transmisión POST mediante el objeto de formulario, que entra como objeto de texto JSON nativo. Realmente no necesita un objeto, podría se utilizado una cadena de texto, pero dejó cierta flexibilidad. Incluso no registrar una devolución de llamada .on() con el objeto POST, simplemente me refiero al parámetro de "campos" durante la llamada Parse .

La página index.html se sirve mediante el módulo de servidor Express página estática. Todo en el público / carpeta puede servir así, incluyendo módulos de CSS y JS.

Servidor de comunicación de Arduino

Puesto que el cliente ya con formato de la cadena de comando, el servidor simplemente escribe en el puerto serie como-está utilizando serialport.write() mediante el objeto de analizador .

Arduino para comunicación entre el servidor

La respuesta de la Arduino viene en la devolución de llamada de .on('data') del puerto serial en el objeto de analizador

Servidor de comunicación con el cliente

La devolución de llamada de datos también encarga de empaquetado de los datos en un objeto JSON y disparar al cliente mediante un empuje de socket.io. (Esto es todo muy emocionante y refrescante en comparación con hacer push de la web a finales de los 90)

He añadido algunos comandos de registro para que yo puedo ver las secuencias de datos desde Arduino y el cliente. Yo también uso el paquete de morgan para rastrear las solicitudes HTTP.

Artículos Relacionados

Convertir tu Arduino Uno en una USB-HID-Mididevice

Convertir tu Arduino Uno en una USB-HID-Mididevice

mientras que un Arduino Uno basa controlador Midi para Ableton Live, me encontré con el proyecto HIDUINO (http://code.google.com/p/hiduino/). Le permite convertir su Arduino Uno (o cualquier otro dispositivo utilizando un chipset USB AVR como el 8u2)
Cómo se prueba fácilmente un microcontrolador con un analizador lógico

Cómo se prueba fácilmente un microcontrolador con un analizador lógico

Algunos de mis proyectos en el pasado han tenido problemas debido a un mala pin digital. Si esto ha pasado a usted, entonces usted sabe lo frustrante que puede ser. La primera reacción de la mayoría de la gente es que hay algo mal con el código. Uste
Analizador lógico barato

Analizador lógico barato

Si quieres hacer circuitos digitales quizás necesita un analizador lógico para registrar datos y analizarlos en PC que es muy útil para la depuración. Estas herramientas no son tan caras y se puede comprar uno simplemente. Un día que me di cuenta de
Arduino / procesamiento de analizador de espectro Audio

Arduino / procesamiento de analizador de espectro Audio

En este Instructable voy a mostrar cómo hacer un programa en el proceso que analiza el sonido en su computadora y envía los datos a un Arduino que controla una matriz de LED para mostrar el análisis de espectro.Yo se explicar donde conseguir material
ArrDrownHo! -Fácilmente convertir AVR Arduino

ArrDrownHo! -Fácilmente convertir AVR Arduino

Cap ArrDrownHo! es el josepbesolillucia de Ardweeny y Boarduino y él está aquí para comandar sus buques AVR. ArrDrownHo! hereda los pros de ambos y las desventajas de ninguno. Recoger un chip AVR e iniciar prototipos al instante en un protoboard! ¿De
Convertir tu Arduino en un sintetizador de tabla de ondas de 4 voz con sólo unos pocos componentes...

Convertir tu Arduino en un sintetizador de tabla de ondas de 4 voz con sólo unos pocos componentes...

Se han realizado múltiples proyectos de sintetizador para el Arduino, pero pocos han sido capaces de utilizar toda la potencia del procesador Arduino. DZL de GeekPhysical escribió un sintetizador de tabla de ondas de 4 voz que es uno de los más avanz
Arduino RC circuito: PWM analógico DC

Arduino RC circuito: PWM analógico DC

Arduino es una plataforma que puede ser utilizada para desarrollar objetos interactivos. Para este proyecto vamos a utilizar el el Arduino Mega 2560. Tiene 54 pines de entrada/salida digitales, que 15 puede utilizarse como salidas de modulación de an
Arduino: Lectura de voltaje analógico

Arduino: Lectura de voltaje analógico

En esta lección usarás dos resistores - una resistencia estática y una resistencia variable - para crear un divisor de tensión que le permite comprender efectivamente la intensidad de luz detectada por el fotoresistor - esencialmente un medidor de lu
256 Bit analizador lógico de bolsillo

256 Bit analizador lógico de bolsillo

esto es un bolsillo 256 bits ocho entrada digital analizador de tamaño de para la comprobación de funciones de circuito digital que he construido para mi uso en casa. Cuesta menos de veinte dólares para construir y me permite probar funciones conmuta
Analizador de clonación mi amplificador IR remoto (y otros) utilizando una lógica y Arduino

Analizador de clonación mi amplificador IR remoto (y otros) utilizando una lógica y Arduino

este tutorial (el primero) está aquí para resumir algunos trabajos que hice para clonar un control remoto. Esto es parte de un proyecto más global sobre el ahorro de energía apagando sistemas inactivos (hifi, tv,...) cuando no esté en uso nominal.Si
3020 CNC, CNC + Arduino + GRBL escudo V3

3020 CNC, CNC + Arduino + GRBL escudo V3

Vamos a convertir una máquina de CNC chinos barata de puerto paralelo a Arduino y GRBL.Bueno chicos, esto es la culminación de semanas de lectura, investigación y determinación. Es mi primer instructable para esperanza esto ayuda a llegar a donde nec
Bot - un inteligente arduino bluetooth robot la pipa

Bot - un inteligente arduino bluetooth robot la pipa

Este es mi primer instructables. Aquí estoy mostrando cómo hacer un dos ruedas arduino bluetooth robot barato, utilizando tubos de PVC y sus articulaciones (para hacer el cuerpo). Es sencillo de hacer y fácil de programar. Tienen un montón de diversi
Arduino básico: Hacer sonido

Arduino básico: Hacer sonido

el arduino es sin duda el pequeño micro controlador que podría. Usted puede hacer mucho con ella! En instructables hemos estado teniendo tan divertido con los arduinos, Queríamos mostrar a la comunidad de hacer algunos de los conceptos básicos.Este p
Guía de iniciación a Arduino

Guía de iniciación a Arduino

Después de algunos años de experimentar con Arduino, he decidido que ha llegado el momento de compartir el conocimiento que he adquirido. Así aquí va, una guía de Arduino, con los fundamentos desnudos para principiantes y algunas explicaciones más av