Acabo de realizar un proyecto en el que tengo unos 20 arduinos nano, cada uno de ellos con un RFID rc522, conectados mediante RS485 a una raspberry pi, la cual tiene una base de datos SQL.
Los arduinos leen el UID de la tarjeta, la mandan al la raspberry, que consulta si existe ese UID en la base de datos y luego mandan el OK o el KO al terminal de nuevo.
Cuando hay pocas personas pasando las tarjetas no hay problemas ya que desde que se pasa la tarjeta hasta que da el OK o KO pasan unos pocos milisegundos
Pero en las "horas punta" en las que muchísimas personas pasan sus tarjetas en cada arduino ese tiempo puede demorar casi 1 segundo, o incluso no obtener respuesta.
He comprobado que la velocidad de cada consulta es de milisegundos, asi que ese no es el cuello de botella.
La velocidad que tengo es de 9600 baudios, y no se si subirla por si me pudiera crear mas conflictos.
la distancia entre cada terminal es de unos 10 metros.
Haciendo mas pruebas descarto que el problema sea de la raspberry, ya que manda las instrucciones al instante.
Creo que es mas problema de software de los arduinos.
Abro hilo en software.
Hola @subzero69 porque no pones el código de un esclavo y del master. Usa estiquetas.
De ese modo podemos ver que detiene la comunicación fluida.
Seguramente estas usando delay() en algun punto. Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>
RS485 está orientado a ambientes industriales con mucho ruido.
En teoria podrías superar cientos de metros pero deberías comentar qué cable tienes puesto, sección, material, si está apantallado y qué tipo de apantallado tiene, etc. y qué tipo de ambiente es, si existe mucho ruido por factores de potencia bajo (p.e. máquinas de corte, muchos motores, fuentes de alimentación, etc que son dados a vajar el PF y generar mucho ruido). Tampoco has indicado cuánto son esos pocos milisegundos ni defines el protocolo (si lo envias en claro, cuántos caracteres, ...)
Sea como fuere 9600 baudios son aprox 1k caracteres por segundo. Yo probaría subir mucho más la velocidad como te han dicho.
Saludos.