En primer lugar, está haciendo algo MUY correcto que muchos diseñadores y usuarios de IoT no hacen: considera el hecho de que la operación debe ser confiable y limitada por la latencia. No todos lo hacen, y es por eso que muchos dispositivos IoT son realmente malos.
La elección del estándar entre 802.11 b / g / n realmente no influirá mucho en su latencia. Supongo que tenemos latencias limitantes <10 ms, porque todo eso "solo funcionará en el 99.5% de los casos con un buen hardware WiFi".
Si estás en un escenario de latencia, ciertamente no lo harás
- use TCP (y por lo tanto, MQTT, que se suma a eso)
- use un dispositivo que emule un enlace en serie lento: si sus paquetes tienen 4 caracteres y tiene 9600 baudios, gastará un milisegundo solo para obtener datos del µC al dispositivo WiFi
- use WiFi, ya que no hay garantía de que su estación pueda enviar dentro de un período de tiempo finito (solo es probable)
Si necesita confiabilidad, por otro lado, no debe
- use UDP puro (ya que no hay garantía ni comentarios de que los paquetes lleguen a su destino)
- usar un protocolo de radio unidireccional puro (mismo motivo)
- use un ESP8266, lo que le da ventaja de precio por la falta de pruebas, diseño y certificación para una operación de alta confiabilidad (y, por lo tanto, ningún gran fabricante de productos electrónicos lo usará sin realizar las pruebas ellos mismos, en cuyo caso módulos listos de fabricantes confiables generalmente se vuelven más baratos)
Entonces, antes que nada, defina cuáles son sus requisitos de latencia y sus requisitos de confiabilidad. Usted debe tener un pedazo de papel que dice
La latencia para la comunicación de {uno | dos} vías debe ser <{latencia máxima} en {porcentaje tolerable}% de los casos. No debe haber una probabilidad de más del {porcentaje tolerable}% de perder un paquete.
Luego, puede ver los límites teóricos de los sistemas, y luego mirar los límites prácticos de las implementaciones de aquellos que se ajustan a eso.