Hola, me gustaria saber si se puede enviar un archivo desde arduino (almacenado en una micros SD) a un dispositivo android, y si es posible, como se hace.
un saludo
Hola, me gustaria saber si se puede enviar un archivo desde arduino (almacenado en una micros SD) a un dispositivo android, y si es posible, como se hace.
un saludo
Sí y tienes 2 opciones:
Debo aclararte que si la transmisión se realiza mediante puerto serial, no esperes recibir música MP3 en cuestión de segundos. Aún a 115200 bps la tasa de transferencia apenas alcanza los 10 KB/s (a menos que el hardware externo pueda mantener un ritmo de 2 Mbps)
Gracias Lucario por la rapida respuesta, estoy intentando hacerlo por bluetooth (son arhivos de 20 kbytes), pero no se que comandos o libreria utilizar.
un saludo
Será Bluetooth vía serial, porque no conozco si algún módulo soporta el protocolo de archivos (ese donde el dispositivo pregunta que si desea recibir un archivo de cierta fuente; como en aquellos tiempos "pre-WhatsApp" donde la gente se compartía multimedios por Bluetooth).
Respecto al transmisor: es cuestión de saber usar la librería SD y el puerto serial en Arduino.
Por lado receptor, no sé donde pretendes desarrollar la aplicación...
La APP la he hecho en appinventor, pero el problema es q la libreria SD creo q no dispone de ningun comando para la transferencia de archivos.es decir aun no llegue a plantearme la recepcion en el dispositivo android pq no se enenviarlo desde arduino. la pregunta es si hay alguna libreria especifica o alguna manera para hacerlo?
un saludo y gracias nuevamente
Mira como hace Android para transferir una foto via BT. A ver si encuentras una forma de hacerlo desde android.
Luego habrá que encontrar el modo desde arduino.
A titulo de idea te dejo este video que muestra una posible maneara.
Y el enlace del foro en inglés de donde lo conseguí. Leelo a ver si te sirve File transfer via Bluetooth Serial Communication
Otra opción para leer Arduino Android Bluetooth File Transfer
antoniosanz:
La APP la he hecho en appinventor
¿Ah sí? ¿Y como está implementada?
Recuerda que los HC solo soportan el protocolo de puerto serie (SPP), así que básicamente tendremos que reinventar el protocolo de archivos. ¿Tiene AppInventor alguna forma de obtener un valor con 4 bytes?
Antes de recibir un archivo, el programa debe saber el tamaño y el nombre; una vez obtenidos estos datos, la aplicación da la orden al Arduino de enviar todo el contenido.
De antemano debe saberlo para poder autonombrar el archivo resultante (nombre), y saber hasta dónde terminarlo (tamaño).
antoniosanz:
pero el problema es q la libreria SD creo q no dispone de ningun comando para la transferencia de archivos
No directamente, pero aún así es posible. En escencia sería algo como:
//Asumiendo que el archivo acaba de ser abierto para lectura
unsigned long len = archivo.size();
while (len) {
Serial.write(archivo.read());
len--;
}
// Envía el contenido entero del archivo mediante puerto serial, en forma binaria.
// Si el contenido es texto plano, en una terminal verás letras y números propiamente, si es otro como una imagen, solo verás caracteres "sin sentido"
Perdonar por el retraso de la contestacion y gracias lucario por tu dedicacion y conocimiento ,
ya habia pensado en enviar los datos byte a byte, pero complicaba demasiado el codigo por eso yo buscaba una funcion que me automatizase y facilitase el proceso. y respecto a la pregunta (Tiene AppInventor alguna forma de obtener un valor con 4 bytes?) pues no lo se yo envio byte a byte o una cadena con la funcion sprintf.
un saludo
antoniosanz:
y respecto a la pregunta (Tiene AppInventor alguna forma de obtener un valor con 4 bytes?) pues no lo se yo envio byte a byte o una cadena con la funcion sprintf
Si es texto plano creo que no estan difícil de responder; pero si un archivo binario (imagen, audio, video), ahí es más delicado porque en un archivo binario el contenido es completamente arbitrario; entones la única forma saber dónde termina, es conociendo su tamaño.
El punto es que ese programa en AppInvertor debe saber en qué momento el archivo termina para finalizarlo por el lado del móvil.
Lo del nombre es para automatizar esa parte...
Alguien me puede ayudar como hizo para enviar el archivo de un arduino transmisor a un arduino receptor por favor
No revivas hilos con mas de 120 dias.
Hilo cerrado.