Hacer que las redes de sensores de malla sean energéticamente eficientes

GUIÓN:

Digamos que tiene una red de malla de sensores que miden algo como la temperatura ambiente. Los nodos están fuera del alcance de la estación base; sin embargo, resulta que hay un nodo intermedio lo suficientemente cerca que puede transmitir sus mensajes a la base. Estos sensores toman muestras de la temperatura, por ejemplo, cada 30 minutos (sin embargo, no están sincronizados), por lo que, idealmente, para conservar energía, nos gustaría ponerlos en un estado de energía más bajo el resto del tiempo. El problema es que, si ese nodo intermedio no está encendido, el resto de los mensajes de los nodos se perderán o tendrán que permanecer encendidos hasta que el nodo intermedio se encienda para mostrar la temperatura, momento en el que podría transmitir los mensajes de otros sensores. si reenvían su mensaje antes de que se vuelva a dormir.

PREGUNTA:

¿Hay alguna forma en que un nodo pueda enviar una baliza que excite un componente, sintonizado a una cierta frecuencia, en los otros sensores (¿sería esto una antena sintonizada?) conectado a una línea de interrupción de activación. Esto permitiría que un sensor fuera de rango active el sensor intermedio.

Respuestas (2)

Así es como lo haría...

La estación base envía un mensaje a intervalos regulares. El mensaje es algo así como: Dame todos tus datos y te enviaré el siguiente mensaje en N minutos.

Una vez que todo está en funcionamiento, cada nodo sabe cuándo va a aparecer el siguiente mensaje y, por lo tanto, puede dormir hasta entonces. Idealmente, el nodo se despertaría justo antes de enviar el mensaje y permanecería despierto hasta que todos los nodos hayan respondido.

Por supuesto, esto genera algunos problemas, especialmente si un nodo no ha recibido el primer mensaje de la estación base. Entonces funciona así... Cuando un nodo se enciende, siempre está encendido, esperando ese primer mensaje. Una vez que recibe un mensaje, puede ir a dormir hasta el próximo mensaje. Si se activa y no recibe un mensaje, permanecerá encendido hasta que lo haga. De esta forma, siempre se sincronizará con la estación base.

Otro problema es que el reloj en la estación base y el reloj en el nodo se desviarán. El nodo necesita predecir eso y despertarse un poco antes. Qué tan temprano depende de qué tan sofisticado quieras ser. Puede hacer que se despierte una cantidad fija (como 1 minuto) antes. O puede hacer que el nodo mida la desviación entre los dos relojes y calcule la cantidad adecuada. Comenzaría con una cantidad fija simple.

Y solo para hacer las cosas más sólidas, cuando un nodo devuelve la temperatura actual, también debe devolver el estado actual del nodo (nivel de batería, etc.), así como el tiempo que ha estado esperando un mensaje. De esta forma, la estación base puede detectar problemas de RF con diferentes nodos para que puedan solucionarse.

Tendría que experimentar, pero podría tener sentido cambiar la tasa de mensajes de 30 minutos a 15 o incluso 5 minutos. Debe equilibrar el mayor consumo de energía de la tasa de sondeo más frecuente frente al consumo de energía de un nodo que espera 30 minutos completos esperando su primer mensaje.

+1 Según tengo entendido, el sueño está cronometrado, así es como los buscapersonas pueden funcionar tanto tiempo en una sola celda AA.
También deberá agregar algún tipo de algoritmo de retroceso para que cuando la estación base diga "Dame todos tus datos", todos tus nodos no respondan exactamente al mismo tiempo.
@Kellenjb Sí, pero eso es parte del protocolo de red de malla. Solo me estaba molestando con la parte sobre el ahorro de energía y la activación. Supongo que debería haber sido un poco más claro.
@DavidKessner Tiene una gran respuesta, solo quería agregar ese bit para asegurarse de que estaba claro.

El problema de buscar actividad en una sola frecuencia es que puede haber otras personas que usen la misma banda que usted y podrían despertarlo mucho. Entonces, para evitar esto, debe tener algún tipo de preámbulo que el receptor pueda verificar para ver si coincide con lo que espera. La mejor opción que conozco para hacer esto es el CC430 que incluye WOR incorporado .

TI también tiene un documento que explica cómo se puede usar el CC430 en una red de malla .