Sensor de temperatura
2 módulos
ds18B20
Arduino y nRF24L01
xsetaseta@gmail.com
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:
Cada sensor lee la temperatura del ds18B20 cada 10 segundos aproximadamente.
La estructura de los datos es la siguiente:
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.
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.
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