Interconexion modular

Hola buenos dias. tengo una duda, quiero comunicar arduinos entre si para mandar datos pero que sea de manera modular, necesito conectar 1 maestro y maximo 100 esclavos. pero lo que requiero es que sea modular, es decir que pueda poner el numero de arduinos escalvo y el maestro detecte cuantos hay y les asigne un numero especifico, porque a cada esclavo le llegaran datos distintos.
pero no tengo ni idea de como hacer este tipo de conexion, se que se puede hacer por I2C, bluetooth, Wireless o otros medios, pero como puedo decirle a mi esclavo que tome la posicion 1, 2, 3... para que tome solo esos datos. y que esa posicion sea de manera random es decir que si conecto un arduino escalvo en la posicion 1 y despues quito todo y lo enciendo pero ese arduino ahora lo puse en la posicion 3 este arduino sepa que cambio de lugar.
espero alguien me pueda ayudar con esto

En mi opinión lo que quieres pedir es harto díficil.

Generalmente en una red de dispositivos donde haya un maestro y varios esclavos, a dichos esclavos se les asigna una dirección fija via "software". Cuando cambias de lugar el dispositivo este mantiene su dirección. Así funciona i2c, modbus, etc.

Un caso especial sería el uso de un bus SPI donde para hacer funcionar a cada esclavo se necesita una línea de selección de chip (CS) para habilitar dicho esclavo. Pero esto presenta un problema, además de la limitación de distancia para una red de dispositivos, tendrías que tener esa línea CS para todos los esclavos, en tu caso hasta 100 dispositivos; es decir, desde tu maestro tendrán que salir los 2 o 3 cables de comunicación y los 100 de selección. E incluso así el esclavo seguiría sin saber quien es, solo que el maestro seleccionará un esclavo determinado.

Una posible solución sería colocar a cada esclavo unos jumpers o dip switch con los cuales puedas configurar su Id o dirección, y según esa dirección ejecute un código u otro para la lectura de los datos. Obviamente esta configuración debería hacerse a mano. En el maestro solo hay que tener una tabla con los datos asociado a cada uno de los dispositivos esclavos por su dirección.

Te lo respondo con facilidad.
Contrata a alguien.

Muchas respuestas me surgen a esta afirmación.

  1. no dices donde estaran los esclavos.
    100 esclavos i2C me huele a descartado.
    100 esclavos BT no se puede salvo con BT LTE y no estoy seguro con Arduino, basicamente YO no lo intentaría. BT no es de mi agrado. funciona pero con micros Arduino no es de mi preferencia.
    100 esclavos WIFI puede ser.
    100 esclavos RF puede ser.
    100 esclavos RS485 puede ser.

Estoy totalmente de acuerdo que no es un trabajo para novatos. Tal vez deberías describir el problema a solucionar y no la solución que diseñaste, de esa manera (tal vez) podríamos sugerirte una alternativa.
Saludos

si de echo una de mis soluciones era hacer 100 programas exactamente iguales pero solo cambiando el numero del wire.begin() por su posicion y haciendolo manualmente, pero el I2C tiene poco metros de comunicacion. asi que pense el opcion de @Surbyte con rs485.
ya que igual conteple WIFI y algun RF pero por ser cuestiones que se va a estar moviendo a localidades donde talvez no halla wifi, o alguna señal externa pueda llegar a afectar mi RF lo queria hacer por cable directamente e implementar circuitos antiruido para filtrar cualquier ruido no deseado.
pero literamente soy nuevo en la implementacion de programaciones modulares. por eso no sabia por donde empezar, ya que el arduino maestro se va a comunicar via bluetooth con un celular que le va a decir todo lo que tiene que hacer y este mismo va a mandar la instrucciones a cada arduino esclavo y este arduino esclavo va a guardar la informacion en su EEPROM y cada vez que se prenda leera sus datos y se podra cambiar cada vez que guste el usuario.
osea literal el arduino maestro solo servira como vinculo temporal entre el usuario y los demas arduino.
la verdad me gustaria aprender a usar este tipo de programacion porque muchas cosas ya son modulares (quitas una cosita y sigue funcionando, pones otro y se complementa).
o incluso si me podrian proporcionar algun tipo de microcontrolador que sea mas facil este tipo de cosas

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.