Página principal
Arduino
Sensores comerciales de temperatura.
Después de mi anterior artículo para
recibir la señal de los sensores meteorológicos
rec433.html ,
y con la espina clavada de no saber como era el modo de chequear
errores, me puse a mirar por internet.
El que busca encuentra, y estaba cerca, estaba dentro de los
repositorio de Debian 11, era el programa
rtl_433.
Utilizando el receptor de televisión
Realtek Semiconductor
Corp. RTL2838 DVB-T , se podía recibir un montón de emisores
comerciales de estaciones meteorológicas.
Era un filón, es muy buena la documentación que explicaba el
protocolo, ahora puedo realizar el programa arduino que detecta
errores.
En Debian 11, si queréis bajar las fuentes desde los repositorios,
para compilar o ver sus ficheros, tendréis que dar estas
ordenes.
apt-get build-dep rtl-433
apt-get source rtl-433
cd rtl-433-20.11
dpkg-buildpackage -uc -b
seta@debian11:~$
rtl_433
rtl_433 version unknown
inputs file rtl_tcp RTL-SDR SoapySDR
Use -h for usage help and see
https://triq.org/ for documentation.
Trying conf file at "rtl_433.conf"...
Trying conf file at
"/home/seta/.config/rtl_433/rtl_433.conf"...
Trying conf file at
"/usr/local/etc/rtl_433/rtl_433.conf"...
Trying conf file at
"/etc/rtl_433/rtl_433.conf"...
Registered 145 out of 175 device
decoding protocols [ 1-4 8 11-12 15-17 19-21 23 25-26
29-36 38-60 63 67-71 73-100 102-105 108-116 119 121
124-128 130-149 151-161 163-168 170-175 ]
Detached kernel driver
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000 S/s.
Tuner gain set to Auto.
Tuned to 433.920MHz.
Allocating 15 zero-copy buffers
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time :
2022-12-07 20:06:47
model :
TFA-Pool
Id : 203
Channel :
1
Battery :
1
Temperature: 9.9
C Integrity
: CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
time :
2022-12-07 20:06:47
model :
TFA-Pool
Id : 203
Channel :
1
Battery :
1
Temperature: 9.9
C Integrity :
CHECKSUM |
|
time :
2022-12-07 20:57:57
model :
AlectoV1-Temperature
House Code: 51
Channel :
3
Battery :
1
Temperature: 20.90 C
Humidity : 49
%
Integrity : CHECKSUM
|
|
time :
2022-12-07 20:51:57
model : Prologue-TH
subtype :
5
id : 144
Channel :
2
Battery :
1
Temperature: 20.10 C
Humidity : 20
%
Button : 1
|
|
time :
2022-12-07
20:17:19
brand : OS
model :
Oregon-v1
SID : 9
Channel :
3
Battery : 1
Temperature: 10.7
C Integrity :
CHECKSUM
|
|
time :
2022-12-07 20:07:46
model :
Hideki-Temperature
Rolling Code: 11
Channel :
1
Battery :
1
Temperature: 9.4
C Integrity :
CRC
|
|
time :
2022-12-07 20:17:39
model :
Hideki-TS04 Rolling Code: 0
Channel :
2
Battery :
1
Temperature: 19.4
C Humidity :
30
%
Integrity : CRC
|
|
time :
2022-12-07 21:07:10
model : Prologue-TH
subtype :
5
id : 141
Channel :
1
Battery :
1
Temperature: 20.50 C
Humidity : 16
%
Button : 0
|
|
|
|
Para mi modelo
TFA-Pool , el test de
errores se hace mediante suma,
CHECKSUM.
TFA
pool temperature sensor.
10 24 bits frames
CCCCIIII IIIITTTT
TTTTTTTT DDBF
- C: checksum, sum of nibbles - 1
- I: device id (changing only after
reset)
- T: temperature
- D: channel number
- B: battery status
- F: first transmission
|
Es fácil de programar, y en mi caso si los datos son correctos se
manda
CHECKSUM=1 .
Espero que os haya gustado este artículo, y os recomiendo que
probéis las señales recibidas en vuestra casa.
Lo curios del tema, es que también se reciben señales de los
sensores de ciertos coches.
model :
Renault
type :
TPMS
id : 330fb5
flags :
36
pressure_kPa: 251.2 kPa temperature_C: 11
C
mic : CRC
model :
Toyota
type :
TPMS
id : f13c3038
status :
128
pressure_PSI: 34.500
temperature_C: 10.000
mic : CRC
model :
Citroen
type :
TPMS
state :
c2
id : 0f330778
flags :
12
repeat :
3
Pressure : 233 kPa
Temperature: 15
C maybe_battery:
51
mic : CHECKSUM
model :
Nexus-T House Code: 158
Channel :
1
Battery :
1
Temperature: 8.60 C
En este
archivo
os muestro las señales recibidas en mi casa.
En el programa del arduino he colocado un sensor de presión, por lo
que si solo queréis ver los datos del sensor, debéis anular el
código correspondiente al BMP180, es comentar 3 líneas.
PROGRAMA
Saludos.
Juan Galaz
Bibliografía:
https://github.com/merbanan/rtl_433
https://triq.org/rtl_433/
rec433.html