viernes, 23 de febrero de 2018

Sensores de temperatura de 2 módulos ds18B20 y nRF24L01

Página principal

Sensor de temperatura
2 módulos
ds18B20
Arduino y nRF24L01

xsetaseta@gmail.com

Hasta ahora solo había utilizado el nRF24L01 como emisor en un módulo y receptor en otro módulo.
En este montaje el mismo módulo nRF24L01 hace de emisor y receptor, gestionándose automáticamente.
Para probar el cambio de emisor/receptor se me ocurrió hacer dos circuitos detectores de temperatura que emiten a una base de sensores.
Los sensores de temperatura solo responde a petición de la base de sensores.
El funcionamiento es el siguiente:
  • -La base de sensores emite una petición de temperatura a un sensor determinado (en este caso solo hay 2 sensores, se pueden implementar hasta 255).
  • -La base de sensores se pone en escucha esperando la respuesta del sensor.
  • -Todos los sensores escuchan la petición de la base, pero solo el numero de sensor al que ha llamado responde.
  • -El sensor al que ha preguntado se pone en modo emisión, y manda la temperatura a la base.
  • -La base escucha al sensor que emite la temperatura y nos lo manda a través del puerto serie.
La petición a cada sensor se hace cada 8 segundos aproximadamente.
Cada sensor lee la temperatura del ds18B20  cada 10  segundos aproximadamente.

La estructura de los datos es la siguiente:
Base de sensores


Emisor
Receptor
Petición
0 (Base sensores) 1/2
1 (temperatura)

Sensor




Emisor
Receptor
Respuesta
Dato1
Dato2
1/2
0 (Base sensores)
1 (temperatura)



Aunque según vemos en el programa se envían 7 datos, solo se utilizan 5.
Los otros dos se pueden emplear para control de errores u otros datos extras.




Esquema de la base de detectores. (Realizado con https://easyeda.com/ )

Circuito de la base de sensores.





Esquema de los módulos emisores. (Realizado con https://easyeda.com/ )

Sensor 1

Sensor2. Alimentado con una PowerBank y con un extensor del ds18B20

Para diferenciar el sensor 1 del sensor 2, utilizo un puente en el pin D3 del arduino, seleccionando Sensor1 a masa y Sensor2 a Vcc.

Datos proporcionados por la base de sensores.
__Base Sensores__
SENSOR_2   18.9 C
SENSOR_1   19.5 C
SENSOR_2   18.9 C
SENSOR_1   19.5 C
SENSOR_2   18.9 C
SENSOR_1   19.5 C
SENSOR_2   18.9 C
SENSOR_1   19.5 C

Todo el montaje está realizado para probar la comunicación entre los diferentes módulos nRF24L01.
En ningún momento se pensó en la autonomía de los módulos, pues siempre están activos 32mA.  (62 horas con una powerBank de 2000mAh)
El nRF24L01 se puede poner en reposo lo mismo que el arduino, pudiendo reducirse el consumo a 1mA, con lo cual aumentaría la autonomía a 80 días.
Pero para hacer esto deberíamos cambiar la concepción del circuito y del programa, pero esto es otra historia.


PROGRAMA

Hasta pronto.
Juan Galaz

No hay comentarios:

Publicar un comentario