Estoy usando Bluetooth Low Energy para comunicarme desde mi periférico a Android e iOS, logrando una tasa de puerto serie continua de 38.4kbps con iOS y 57.6kbps con Android sin pérdida de paquetes, pero para mantener la coherencia, he establecido ambos a 38.4kbps .
Estas son las velocidades en baudios de uart, por lo que la velocidad de datos es de 30720 bps. Creo que tendrá dificultades para obtener más que eso con un iPhone a través de BLE. Medí esto en un iPhone 5 con iOS 9. He leído todo tipo de comentarios acerca de las restricciones en el intervalo mínimo de conexión y la cantidad de paquetes por intervalo de conexión, por lo que no puedo garantizar que este rendimiento aún se pueda igualar en un iPhone 6.
La razón para usar BLE fue después de una gran cantidad de investigación, parecía ser el único método práctico (o al menos el más fácil) para interactuar con iOS sin unirse al programa MFi (es probable que esto sea una consideración muy importante) .
BLE es extremadamente fácil de comenzar. Mi solución utiliza un módulo Laird BL600 en el periférico y mis aplicaciones móviles se basan en el código fuente de ejemplo de Laird. Utiliza su servicio propietario de puerto serie virtual. No trabajo para Laird ... hay ofertas similares de Microchip, Blugiga, Cypress y varios otros fabricantes.
El consumo de corriente mientras se transmite parece estar alrededor de 2 mA a 3 V, lo que parece excelente para mi aplicación, pero obviamente depende del ciclo de trabajo de Tx.
Si necesita transferir más rápido que eso, entonces puede hacerlo con un perfil Wifi o BT PAN (el perfil de puerto serie solo es para los socios de MFi) pero es posible que desee considerar el esfuerzo adicional requerido para implementar los protocolos de red en su periférico vs un simple puerto serie.
Cualquier pregunta, por favor pregunte y puedo tratar de elaborar.
No tengo experiencia con WiFi directo, pero me interesaría mucho conocer aquí la experiencia de otros.