Hola,
efectivamente hice lo que me indicaste, aislar el código, que funcione y sobre esa base ire construyendo el resto de funciones, tenia programado todo incluso sin los sensores conectados y eso hacia que fallara, actualmente tengo:
- Conectado y funcionando DHT22
- Conectado y funcionando luxometro, ya se cuando es de día y de noche
- Conectado y funcionando el regulador de vueltas del motor.
- Conectado el modulo de radio RF24
Por otro lado tengo un:
- tiny85
- Modulo de radio RF24
Ahora mi idea es centrarme en la comunicaciones entre el master y los slaves, la premisa que tengo es:
- Leer la humedad cada cierto tiempo predefinir ido
- Si se comienza a regar leer cada menos tiempo.
- Cuando se termine de regar volver a timeout original
Para ello tengo 2 aproximaciones:
- El master en un bucle recorre la red de sensores y les solicita la lectura, en cada iteración debería escribir y leer datos.
- No puedo apagar los slaves porque estos no saben cuando se les va a requerir la información
- No tengo colisiones porque el master va uno a uno.
- Los slaves envian los datos cada x tiempo
- Si comienza a regar una zona, comunico que se cambie el tiempo de lectura, cuando finalice el riego lo mismo.
- Podría poner a dormir los slaves porque puedo saber cuando se debe enviar la próxima lectura
Para ello he visto las siguientes librerías http://tmrh20.github.io/RF24Mesh/
Me gusta mas la aproximación 2 porque podría poner a dormir a los slaves pero tengo unas dudas:
- Al ser mono thread Arduino, el master solo podría leer los datos de un solo clave.
- No tendría muchas colisiones?, tendría que implementar algún tipo de reintento en los slave?
- No seria un problema que 30 slaves emitieran al master simultáneamente vía radio?
- podría darse el caso que un sensor nunca puede enviar su información
Un saludo y gracias