Red mesh con NRF24L01

Hola!

Vengo a pedir algo de ayuda para conseguir una red de sensores tipo "mesh" (comunicación todos con todos). Pido ayuda porque de tener 9 meses para prepararla he pasado a tener sólo 4 y es la "primera" vez que toco arduino. (la primera real fue para hacer chuminadas con unos LED en carnaval...XD) Además he buscado bastante info, me he leido el datasheet y tal, pero no me ha quedado claro, y menos aun se usar las librerías tipo RF24 ni nada.

Necesito que todos los sensores se puedan comunicar con una central aunque no tengan cobertura directa con ella, es decir se deben usar los otros sensores de la red como puente. Por esto necesito algo por RF que pueda mandar mensajes a varios nodos a la vez (a todos los que le "escuchen"). Estoy entre el NRF24L01+ y los transmisores típicos de 433MHz. En principio me he decantado por los NRF por parecer más complejos (con CRC, ACK...) pero no sé usarlos, de hecho aun ni siquiera estoy seguro de que uno pueda comunicar un mensaje por ejemplo a 30 a la vez que estén escuchandole. Mi pregunta es: puede un NRF24L01+ mandar mensajes punto-multipunto? (sin estar limitado a los famosos 6 pipes) Es decir, usar en todos un mismo pipe y diferenciarlos yo manualmente en mi código. Entiendo que POSIBLEMENTE se pueda, pero entonces creo que tendré que prescindir de las bondades de este chip, cómo el auto ACK, CRC y tal no? Y posiblemente para tener que prescindir de todo eso que este chip aporta quizás sean mas cómodos los de 433MHz, no? A ver si me podéis aportar luz entre todos por favor. Un saludo y gracias!

hasta donde yo se, puedes lograr un pseudo mesh. O sea un nodo conectado a sus 6 nodos hijos o sea que solo una ruta es posible para llegar al central.

Pero imagina una topologia en la cual cada nodo es rodeado por sus 6 hijos generando un camino posible. Tendrías lo mismo salvando la distancias. Es lo mejor que hay a bajo precio o considera enlaces con ESP8266 usando una red wifi. Aca si sería MESH real.

En principio necesito mesh real, porque en la red no se sabrá qué nodos tienen cobertura con qué nodos ni dónde estarán colocados. Entonces interesa que cada uno pueda hablar con todos los que le llegue la cobertura para después buscar y definir el camino más corto. Seguro que colocando a los NRF la misma dirección no se pueden comunicar con más de 6? (y además al tener la misma dirección la comunicación sería a la vez supongo)

Me miraré lo de hacerlo por wifi con los ESP8266, porque la verdad es que no tiene porqué ser con los NRF obligatoriamente. (pero algo tan caro como XBee no)

Otra cosa es: Si cuando un módulo RF de los baratos de 433Mhz emite, pueden escuchar infinitos receptores podría cambiar a ellos, ya que parecen sencillos y son baratos. Y ya implementaría yo a mano corrección de errores, ACK etc... ¿se puede con los de 433MHz? TX y RX de 433MHz

Yo estoy seguro de los nRF24L01+ y como lo estoy te dije que era una pseudo mesh y por ello te sugerí el ESP8266.

Si no me crees ( y te aclaro que no estoy molesto) busca e investiga por tu cuenta. Pero hazlo en inglés porqu en espaÑol no hay información.

Busca : nrf24l01 mesh y luego : esp8266 mesh

Le creo, pero tenia la idea de que quizás poniendo una misma direccion fisica en varios, se podrian hablar entre varios a la vez. Bueno de hecho he encontrado una página donde alguien comenta que ha hecho un sniffer con el NRF24L01+ y puede recibir lo que otros dos se dicen por un pipe. Esto podria ser un tipo de broadcast que es un poco lo que busco.

Luego del esp8266 se mas bien poco, he leido sus comentarios de cuando lo descubrió, pero no se ni precios ni usarlo, y de aquí aque me llegase...

Alguien puede confirmar que se puede hacer broadcast entre varios modulos con los normalitos de 433MHz? (Estos me van a llegar dentro de nada y los podría usar para el proyecto, además creo que son sencillos de usar)

De todos modos, al ser para un proyecto de escuela, ya le he preguntado al profesor si puede ser pseudo-mesh, pero creo que me dirá que no. Gracias por la info surbyte

Ahh pero si es un proyecto de escuela que el profesor se contente con eso. Puedes armar una red de 6000 nodos con nRF24L01. Yo no lo he hecho mas que con 10 y como usé la librería no me preocupé de como estaban ubicados. Los numeré de 0 a 9 sin problemas. Y sigo sumando. Todos en mi casa.

Es que en principio el proyecto trata de conseguir una red mesh, entonces si ya torcemos el propósito principal no se si va a valer, en principio mis libertades se limitan a elegir los transmisores y receptores, no a cómo debe ser la red.

Por cierto, quisiera comentar que acerca de mi idea de compartir un pipe entre todos los nodos, al parecer es posible, tengo dos links que lo corroboran, podrías mirartelo surbyte? En uno se habla de esta posibilidad, pero se pierde la utilidad del ACK, y en otro un forero comenta que tiene así funcionando un maestro con 10 esclavos. Si ellos pueden yo también, no? Dejo los links: Link 1 Link 2 - el forero con 10 esclavos en 1 master

Bueno por lo visto tienes razón.
Pero si un nodo no escucha la transmisión no tienes forma de darte cuenta.
Es como decir, crucemos los dedos y esperemos que llegue al otro lado.
Y ni hablar cuando incrementes las capas.

Lo que no entiendo en tu planteo es esto
ESP8266 menos de 5 dolares. MESH total y ademas WIFI compatible.

nRF24L01 menos de 2 a 3 dolares y son dos.

Un ESP8266 <= 5 dolares. 2 nRF24L01 <= 2 dolares.
Vale la pena por 5 dolares por unidad pensar en usar algo mas barato que me dará dolores de cabeza?

Tienes tu también toda la razón del mundo, pero voy a intentar dar respuesta a todo punto por punto:

Mi idea es implementar un ACK propio, es decir que al inicio el maestro dé una ID a cada esclavo para después poder identificarlos y una vez un esclavo reciba un mensaje, que mande un ACK con su ID al maestro. Eso implementado manualmente por mi en el sketck y no usando el ACK propio del NRF.

Lo que dices del ESP8266 me llama mucho, pero lo primero es que si se poco del NRF, menos se aun del ESP8266 porque no me he mirado nada, además no se si el mesh que hace es automático o voy a tener que implementarlo yo tal y como pienso hacer en los NRF, entonces la faena sería la misma. Por otro lado pedí por internet un WIFI para comunicar el arduino maestro con un PC, y da la casualidad de que creo que es ese ESP8266, el problema es que tardan un mes en llegar, si llegan. Y yo sólo tengo 4 meses para tener la red lista. De los NRF ya tengo 3 y otros 4 en camino y puedo ir probando cosas, del ESP8266 sólo tengo uno en camino así que ni siquiera puedo probar nada. Ahora buscaré sus características y precio en tiendas de España a ver que tal.

Por último, decir que no se que dolores de cabeza me va a dar el ESP jaja. ¿Tú tienes experiencia con ellos y son mas fáciles de usar que los NRF?

P.D.: Sí, el que tengo pedido es este WIFI. Deben faltar un par de semanas para que me llegue, pero solo pedí 1 porque era para conectar arduino al PC/smartphone

Bueno ese mismo que tienes pedido te resolverá el problema.

Si ya esta inventada la solución para que reinventar la rueda. Yo ya expuse mi postura. Tu la tuya. Es tu proyecto, tu decides. Para mi la opción es obvia. Te dejo algo para que veas este Enlace ESP8266 conectandose entre si y el código o firmware para hacerlo ESP8266 MESH NETWORK.

Pinta bien, pero me tengo que mirar esos links mañana con calma. Seguramente pida un par más, aunque sea sólo por la función que he visto de subir sketches por wifi al arduino :P Yo encontrar cosas para hacer mesh no he encontrado nada, sólo intentos fallidos de gente, o gente trabajando en ello. Además presiento que voy a necesitar un programador, y no tengo tampoco, uso arduino UNO por USB. Pero bueno, no puedo decir nada porque tengo mucho sueño ya y los dos últimos links que me has pasado me los he mirado muy por encima, por no decir que sólo he mirado las fotos casi jaja. Gracias por todo, mañana me lo miro bien, a ver si la posibilidad de hacer la red mesh facilmente es real.

Para sensores remotos olvidate del uno, piensa en mini como una de las mejores opciones. La red Mesh habla de 255 nodos que es interesante pero esperaba mas. Yo he leido que con el nRF24L01 garantizasn 3000 nodos claro que no MESH.

Los UNO son para testear el proyecto y diseñarlo, en caso de crearse la red de forma real supongo que sí se usarán minis o nanos o algo, pero eso ya no es cosa mía. Por otro lado, no veo tan sencillo crear la red con el ESP8266... En los links que has puesto yo entiendo que por lo visto no lo acaban de conseguir hacer funcionar bien. De todos modos si lo diesen mascado mascado (que no lo dan) no habría proyecto que hacer jaja. Creo que voy a empezar a intentarlo con los NRF creando mi propio sistema de ACK. A ver que chapuza sale, si es que me sale algo jaja Un saludo!