¿Cómo tener wifi conectado raspberry pi controla un arduino?

8

Tengo un arduino uno que necesita responder a una aplicación iOS con Internet como medio. Mi plan inicial era usar un escudo wifi para el arduino, pero como no puedo obtener uno en este momento, pensé que podría usar un raspberry pi que esté conectado a internet para controlar el arduino. ¿Asumo que esto es posible?

Necesito que la frambuesa pi responda a un servidor web y envíe una señal al arduino. ¿Es esto posible? De ser así, ¿alguien puede darme algún consejo sobre cómo hacerlo?

Byron Shilly
fuente

Respuestas:

3

De hecho, estoy trabajando en un proyecto similar en este momento. Es un simple R / C Car controlado por la web. Estaba en el mismo bote que tú, originalmente quería un escudo wifi para mi arduino. Pero decidí usar una frambuesa pi conectada a mi mega 2560 a través de USB. Deberías considerar ejecutar el firmata protcol en tu arduino. Viene con el IDE Arduino. Simplemente mire en Archivo-> Ejemplos-> Firmata y cargue StandardFirmata en su tablero.

El siguiente paso que tomé fue ejecutar un servidor web node.js con los paquetes de nodo firmata y socket.io. Recientemente comencé a experimentar con el paquete johnny-five node.js. Simplemente porque soy un poco novato en lo que respecta a la programación de node.js, y tenía problemas para que funcione correctamente solo con el paquete de nodo firmata. Johnny-five parece prometedor y he tenido un poco de suerte, pero mi código aún está en proceso. Publicaré un enlace a mi página de github para que al menos pueda tener una referencia (motor_test.js y motor_test.html, solo tenga en cuenta que sigue siendo un código que no funciona. He podido controlar con éxito un led, pero los motores son un historia diferente. Si tengo tiempo hoy, publicaré mi código en mi control LED de trabajo a través del proyecto node.js.

De todos modos, sé que no podría proporcionarle una solución completamente funcional, pero espero que esto al menos lo lleve en la dirección correcta. No dude en enviarme un correo electrónico en cualquier momento ([email protected]) Me encantaría ayudarlo de cualquier manera que pueda.

Aquí están las referencias. Solo búscalos en Google. No puedo publicar más de 2 enlaces.
Instale Node.js en RPi ( http://joshondesign.com/2013/10/23/noderpi )
Mi página de github ( https://github.com/messyfresh/pi_rc )
Firmata
Node.js (encontré la mejor versión para utilizar con socket.io y firmata es 0.8.2x)
Socket.io
Node.js Firmata
Johnny-Five Node.js

messyfresh
fuente
3

Recientemente logré esto con node-serialport .

El siguiente enlace explica una buena estrategia para el control total sobre el Arduino.

Editar: alguien editó y agregó un enlace para mí :)

Mi solución

Vea arduino / serial.ino, pi / server.js y pi / views / profile.ejs. Server.js abre el puerto serie y un socket con profile.ejs. Cuando algo sucede en profile.ejs, activa serialPort.write (búfer, codificación) en server.js;

Solo un FYI por defecto, el Arduino Uno se restablece cuando se abre una conexión en serie. Si intenta enviar datos sin esperar uno o dos segundos después de que se abra la conexión en serie, fallará. Encontré que este problema se resolvió por sí solo cuando solicité la interacción humana para activar serialport.write (). Se puede encontrar otra solución buscando en Google DisablingAutoResetOnSerialConnection.

¡Espero que esto ayude!

@ bobbyg603

bobbyg603
fuente
debe agregar en sus comentarios a qué proyecto github se refiere, entonces el OP puede echar un vistazo
kolin
3

La forma más sencilla sería usar el hardware UART ( primero deshabilitar la consola en Pi ) en ambos dispositivos. Cuando se configura a 115kilobaud puede transmitir una gran cantidad de datos de texto, como JSON, pero incluso datos binarios como zips, se pueden manejar jpgs. Se recomienda comenzar con tasas más bajas primero porque algunas bibliotecas tienen problemas a baudios más altos.

Luego puede escribir envoltorios en el Pi en cualquier sabor que desee: C, PHP, Java, .NET MONO, Perl o Python.

Esta es una opción para una biblioteca liviana que puede construir usted mismo y hay una gran cantidad de artículos sobre cómo hacer esto en Arduino y Raspberry Pi.

Piotr Kula
fuente
1

Desarrollamos un pequeño demonio php que se conecta y envuelve un demonio remserial (Uart-to-TCP-Socket). Se puede ampliar fácilmente para realizar tareas adicionales como conectarse a un servidor web y enviar algunos datos.

El demonio viene en un paquete junto con una interfaz de usuario web completa para controlar una placa similar a Arduino llamada CoPiino.

Avísame si necesitas ayuda para extraer el demonio.

Algunas informaciones del proyecto se pueden encontrar aquí http://www.copiino.cc

tswaehn
fuente