¿La forma más sencilla de conectar un Arduino a Android (de forma inalámbrica)?

2

Quiero controlar una luz simple en un Arduino desde mi Android. El Arduino tengo abajo palmadita, no hay problema. Sin embargo, sin usar Bluetooth en mi Android, ¿cuál es la forma más sencilla de conectarlo (o usar algún tipo de aplicación) para controlar un LED?

Tengo la opción A: configurar un servidor en mi Arduino, con un sitio web que me permite hacer clic en los botones o algo para cambiar las opciones de iluminación.

o la opción B: ¿Enviar datos seriales desde mi Android a mi Arduino de forma inalámbrica?

¿Cuál sería probablemente la opción más fácil? ¿Es la opción A incluso viable o no realmente? Realmente no conozco las capacidades de "alojamiento" de un Arduino, pero si el Arduino tiene la misma conexión Wi-Fi que el teléfono Android que estoy usando, no debería tener problemas para recibir información (desde hacer clic en los botones ¿La "página web" de Arduino, correcto?)

    
pregunta Chetan Bhargava

3 respuestas

7

La opción A es factible, pero no trivial.

Opción B: Sin usar Bluetooth, no hay ninguna salida serial de radio inalámbrica preparada que tengan los teléfonos Android, que yo sepa.

Hay una opción C , si el requisito es relativamente cercano y solo para la experimentación de pasatiempos:

  • Genere programáticamente una salida de audio de ~ 19-20 KHz desde el altavoz de Android, al máximo volumen. La mayoría de los adultos no pueden escuchar esa frecuencia, pero mis teléfonos Android pueden emitir hasta 22.1 KHz con éxito.
  • Implementar un micrófono electret básico - > preamplificador - > filtro de paso de banda estrecho - > detector de picos con amplificadores operacionales, con la banda de paso en la frecuencia de interés.
  • Use un pin Arduino ADC para detectar la señal del módulo anterior.

Algunas mejoras simples:

  • Use dos frecuencias diferentes, como 18 KHz y 20 KHz, pulsadas alternativamente, y detecte una entrada de sonido alterna en el extremo Arduino. Esto evitará falsos positivos falsos.
  • Use una banda ligeramente más ancha y salte el detector de picos, use Arduino para muestrear y procesar la señal de audio entrante para detectar las frecuencias específicas recibidas. Este último agrega la flexibilidad de cambiar las frecuencias de diseño o lograr una señalización más compleja a través de multifrecuencia de doble tono Protocolos (DTMF), similares a la marcación por tonos del teléfono, o Frequency Shift Keying como se usa en el antiguo teléfono de acceso telefónico modems de linea

Hay varias aplicaciones de Android que utilizan dicha señalización de sonido para varios propósitos. Además, esta presentación propone un mecanismo similar, para la transferencia de datos entre Teléfonos Android con sonido.

ACTUALIZACIÓN: Esta pregunta sobre transmisión / recepción de audio por infrarrojos entre teléfonos móviles , muestra una interesante Opción D , la de utilizar un transmisor de infrarrojos conectado al audio del teléfono móvil y utilizar un sensor de infrarrojos estándar como receptor en el Arduino. El resto del mecanismo permanece como en la Opción C, con el preamplificador, el filtro de paso de banda, etc.

    
respondido por el Anindo Ghosh
2

Aquí hay algunos recursos para

Opción A: Webduino

  1. enlace (mi recomendación)
  2. enlace

Opción C: SoftModem

  1. enlace
  2. enlace

El Softmodem está limpio, he recibido el escudo pero aún no lo he probado. Como entonces también necesito escribir la aplicación del teléfono.

Donde recientemente escribí la opción A.2 para el reproductor de MP3 basado en la web Arduino.

En su caso recomendaría A.1. Lo he probado y sus ejemplos me han hecho hacer lo que usted quiere realmente rápido. Al estar basado en la web, no necesita preocuparse por escribir una aplicación de teléfono. Y webduino soporta JSON. Para que las páginas web descubran automáticamente los controles disponibles y demás. Donde usaba mucha memoria Arduino y no podía combinarla con mi reproductor de MP3 porque la biblioteca SdCard combinada excedía el límite de memoria UNO.

La opción B, es más simple en el lado de Arduino, pero no hay mucho que hacer para conectarlo al USB del teléfono. Y en el teléfono puede usar un TTY o un emulador de terminal para hablar con el teléfono.

Opción D, no muchos teléfonos tienen IR en ellos.

La opción E, NFC (Near Field Communications) protege similar a RFID, pero es bidireccional y puede enviar / recibir paquetes. También tienen el problema de que solo unos pocos teléfonos los tienen.

Todas las opciones distintas de A terminan requiriendo una aplicación en el teléfono. Y luego tienes trato con Android vs iPhone.

    
respondido por el mpflaga
1

Aparte de la buena respuesta de Anindo (y su genial idea), la opción A es viable. Hecho todo el tiempo. Para una conexión inalámbrica completa, puedes utilizar un protector de WIFI (y una batería para el arduino). O puede usar un protector Ethernet para enchufarlo a un enrutador existente. Ambos requieren un código de servidor en el arduino para controlar el escudo y recibir los datos de su teléfono o dispositivo Android.

Ejemplo: Servidor Web Wifi Arduino Bastante entra y sale.

La otra opción es modificar su enrutador para que sea el servidor, conectándose a su Arduino a través de una conexión en serie.

La última opción es hacer que tu computadora actúe como servidor y conectar tu Arduino a tu computadora.

Todo viable, y todo hecho rutinariamente.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas