Soy nuevo en Arduino, sin embargo, tengo experiencia en desarrollo web, últimamente he estado usando, meteor js y el stack medio para diferentes proyectos. Sin embargo, estoy abierto a probar cualquier lenguaje para el desarrollo.
Lo que intento hacer es crear una aplicación simple para controlar el LED en el Arduino a través de la web.
Estoy trabajando con otra persona, y el Arduino estará detrás de un firewall, así que no estoy seguro de cómo acceder a través de Internet. Tengo acceso a un Arduino Uun que puedo usar para probar en casa que tiene linio conectado a través del puente, que no entiendo muy bien lo que hace.
También he oído hablar de esto , pero me gustaría alejarme lo más posible de las compilaciones de terceros si puedo hacerlo yo mismo.
¿Cuál es la forma común de hacer esto con un Arduino detrás de un firewall? ¿Cómo hago esto con un Arduino Yun? ¿Es más fácil con un Yun?
Estoy trabajando en un proyecto similar que usa internet para comunicarse con un dispositivo externo (móvil). Estoy leyendo datos de sensores y pasándolos por la web con tomas web. Estoy usando Arduino Yun para este proyecto y Spacebrew (para la comunicación de sockets web). Es un enfoque muy interesante pero todo un desafío en algunos casos. Probablemente se encuentre con un problema asincrónico / síncrono, que en mi caso me llevó a ejecutar algunos scripts de Python en Yun activados desde el código de procesamiento. Actualmente estoy ejecutando el servidor Spacebrew en mi VPN, por lo que puedo conectar mi Yun dejado en casa y usar mi iPhone desde todas partes para obtener las lecturas.
También vale la pena mencionar que Yun viene con la biblioteca Temboo preinstalada, que es un excelente punto de partida para la comunicación web. La configuración es realmente fácil y rápida. También encontrará documentación oficial muy útil y fácil de entender. Es un excelente punto de partida para experimentar con aplicaciones web integradas con Arduino Yun.
Spacebrew es un kit de herramientas de software abierto y dinámicamente redirigible para coreografiar espacios interactivos. O, en otras palabras, una forma simple de conectar cosas interactivas entre sí. Cada elemento que conecta al sistema puede suscribirse y publicar feeds de datos.
La biblioteca Spacebrew Yun presenta dos componentes principales: un conjunto de scripts de python que se ejecutan en el linino y una biblioteca que se ejecuta en el chip atmel. Allí encontrará información sobre cómo instalar ambos componentes para poder conectarse a Spacebrew desde un boceto de Arduino.
Temboo
Yun también ha construido en la biblioteca Temboo, es una excelente manera de comenzar a experimentar, una vez que demuestre el concepto, puede comenzar a reducir su entorno y alejarse si no desea utilizar software de terceros.
La Biblioteca Temboo facilita la conexión a más de 100 recursos y servicios basados en la web con Processing. Actualmente puede encontrar bibliotecas para Android, Arduino, iOS, Java, Node.js, PHP, Processing, Python, REST API, Ruby, Twyla
Node.js
También puede ejecutar node.js en el propio Yun, aquí hay un buen artículo y algunos paquetes listos para instalar:
Este es un paquete openwrt para el nodo. Probablemente solo funcione en mips (no mipsel o brazo). También ejecuta un v8 desactualizado.
¿Qué es la biblioteca Bridge para Arduino Yun?
También preguntaste sobre la biblioteca Bridge. Como sabes, Yun tiene dos procesadores a bordo, uno está ejecutando tu código de procesamiento y el otro tiene Linux (Linino). Básicamente, el puente simplifica la comunicación entre ellos para que puedan "hablar" entre sí, más información aquí:
El Arduino Yún tiene dos procesadores a bordo. Uno es un ATmega32U4 como en el Arduino Leonardo. El otro es un Atheros 9331, que ejecuta Linux y la pila inalámbrica OpenWRT, que permite que la placa se conecte a redes WiFi y Ethernet. Es posible llamar a programas o scripts personalizados en el sistema Linux a través de Arduino para conectarse con varios servicios de Internet.
La biblioteca Bridge simplifica la comunicación entre el ATmega32U4 y el AR9331. Hereda de Stream, y muchos de los métodos deberían ser familiares de Serial y otros derivados de Stream.
Python interpreta los comandos de puente del 32U4 en el AR9331. Su función es ejecutar programas en el lado de GNU / Linux cuando Arduino se lo solicite, proporcionar un espacio de almacenamiento compartido para compartir datos como lecturas de sensores entre Arduino e Internet, y recibir comandos de Internet y pasarlos directamente al Arduino.
Bridge permite la comunicación en ambas direcciones, actuando como una interfaz para la línea de comando de Linino.
¿Donde empezar?
Comenzaría con Temboo si fuera tú, es una gran curva de aprendizaje y un paso bastante simple para comenzar. También aprenderá y comprenderá cómo funciona el tablero y cómo puede comunicarse con el "mundo externo". Una vez que tenga una prueba de concepto, comience a experimentar con diferentes bibliotecas y mejore el enfoque. Quizás encuentre Spacebrew más útil más tarde o incluso descubra diferentes soluciones.
¡Bienvenido a Arduino Stack Exchange! ¿Puedes agregar más detalles a tu respuesta? Las respuestas que son todos o en su mayoría enlaces no son aceptables en Stack Exchange porque la respuesta es inútil si el sitio deja de funcionar. Los enlaces a las bibliotecas están bien, ya que la biblioteca es inútil si el sitio se cae; Los artículos y tutoriales deben ser parafraseados. ¿Quizás solo cite algunas oraciones y agregue un código de ejemplo? ¡Gracias!
Anonymous Penguin
1
En primer lugar, debe tener claro lo que debe hacer. Arduino UNO es solo un microcontrolador con una conexión en serie (a través de USB). Para que su arduino sea accesible desde Internet, debe estar conectado a Internet o tener algo que actúe como un puente. Puede usar un escudo de ethernet, un wifi activado o un brujo de YUN es un arduino UNO + un micro linux con ethernet y wifi (programable en phyton, o el chip puede mandar el comando de envío de linux a bash shell usando la biblioteca de puente especial ) Incluso puede conectar arduin en la PC mediante usb y crear un programa puente, o, si su firewall / enrutador es un linux / similar desbloqueado, puede usarlo.
Cuántas opciones, y comenzamos a decidir cómo hablar con él. Como desea usar node.sj, puede usar socket o get / post. Usar socket es más rápido, más liviano y puede crear una conexión de extracción, y js será un requisito. Con get / post ni siquiera necesita js, el formulario html puro lo hará.
luego, después de que haya decidido qué sistema le gusta (arduino como servidor http o socket simple), puede abrir el puerto correspondiente en el firewall / nat. pero es solo la última parte
En primer lugar, debe tener claro lo que debe hacer. Arduino UNO es solo un microcontrolador con una conexión en serie (a través de USB). Para que su arduino sea accesible desde Internet, debe estar conectado a Internet o tener algo que actúe como un puente. Puede usar un escudo de ethernet, un wifi activado o un brujo de YUN es un arduino UNO + un micro linux con ethernet y wifi (programable en phyton, o el chip puede mandar el comando de envío de linux a bash shell usando la biblioteca de puente especial ) Incluso puede conectar arduin en la PC mediante usb y crear un programa puente, o, si su firewall / enrutador es un linux / similar desbloqueado, puede usarlo.
Cuántas opciones, y comenzamos a decidir cómo hablar con él. Como desea usar node.sj, puede usar socket o get / post. Usar socket es más rápido, más liviano y puede crear una conexión de extracción, y js será un requisito. Con get / post ni siquiera necesita js, el formulario html puro lo hará.
luego, después de que haya decidido qué sistema le gusta (arduino como servidor http o socket simple), puede abrir el puerto correspondiente en el firewall / nat. pero es solo la última parte
fuente