Instalando ISM en una Raspberry Pi

En entradas anteriores se ha analizado como instalar y configurar diversos receptores específicos en una Raspberry Pi con un SDR USB:

Ahora vamos a acometer la instalación de un receptor de ISM (Banda de aplicaciones industriales) en concreto usaremos rtl_433 que pese al nombre es un receptor genérico para todas las bandas de frecuencias de ISM en  UHF:
  • 433,92 MHz
  • 868 MHz
  • 315 MHz
  • 345 MHz 
  • 915 MHz
Por otra parte  es capaz de decodificar mas de 300 protocolos distintos, entre ellos:
En las bandas ISM tambien operan
Todo un mundo de transmisiones de radiofrecuencia que nos rodea pero del cual no somos conscientes

Instalación

Se puede instalar directamente con la versión precompilada con el comando
  • sudo apt install rtl-433
Aunque también podemos descargar el fuente y compilarla
  • # Actualizar software
  • sudo apt-get update
    • Si da error comentar la linea
      • sudo nano /etc/apt/sources.list.d/debian.list
      • sudo nano /etc/apt/sources.list
      • # deb http://httpredir.debian.org/debian bullseye-backports main
  • sudo apt-get install git libtool libusb-1.0-0-dev librtlsdr-dev rtl-sdr build-essential autoconf cmake pkg-config
  • # Crear directorio de trabajo
  • mkdir ~/rtl_433_install
  • cd ~/rtl_433_install
  • # Clonar y compilar 
  • git clone https://github.com/merbanan/rtl_433.git 
  • cd rtl_433 
  • mkdir build 
  • cd build 
  • cmake ../ pero mejor cmake -DENABLE_SOAPYSDR=ON ../
  • make 
  • sudo make install
Pruebas
  • Parar si hay algun servicio activo o algun docker que compita por la RTL-SDR/USB
    • sudo systemctl stop xxxxxx.service  
    • Para visualizar los dockers
      • sudo docker ps 
    • sudo docker compose down
      • Para revertir: sudo docker compose up -d
    • sudo docker stop docker-node-sdr-1
    • sudo docker stop ultrafeeder
      • para revertir: sudo docker start ultrafeeder
  • Comprobar que nadie usa el RTl-SDr/USB
    • sudo pkill -f auto_rx.py 
    • sudo fuser -v /dev/bus/usb/*/* 
      • USER        PID ACCESS COMMAND                             
      • /dev/bus/usb/001/005:  root      11756 F...m rtl_ais  
    •  sudo kill 11756
  • Limpiar
    • sudo killall -9 rtl_sdr rtl_fm rtl_power rtl_tcp 2>/dev/null             
  • lanzamiento normal
    • rtl_433 
  • lanzamiento con help
    • rtl_433 -h
  • lanzamiento con verbose (explicacion)
    • rtl_433 -v
  • comprobacion de pulsos 
    • rtl_433 -A
  • Aumentando la ganancia (  [-g <gain>] default: auto)
    • rtl_433 -g 40  
  • Hacer que trabaje en 868 (-f Receive frequency(s) default: 433920000 Hz)
    • rtl_433 -f 868M  
  • pulsos, ganancia y frecuencia
    • rtl_433 -f 868M -g 40 -A
  • Arranques que funcionan
    • rtl_433 -f 433.92M -s 2M 
    • rtl_433 -f 433.92M -s 2.3M 
    • rtl_433 -f 868.3M -s 2.3M 
  • Probar
    • rtl_433 -v -Y autolevel -M level -M noise
  • versión
    • rtl_433 -V                                     
      • rtl_433 version 25.12-73-g00d1c709 branch master at 202604211319 inputs file rtl_tcp RTL-SDR with TLS            
  • Para que se localice el comando sin necesidad de ./src/rtl_433
    • sudo cp ~/rtl_433_install/rtl_433/build/src/rtl_433 /usr/local/bin/
  • Modificar el fichero de configuración rtl_433.conf (Por ahora no ha hecho falta)
  • Crear un servicio (Hasta que no funcione recibiendo datos no se hace)
    • sudo nano /etc/systemd/system/rtl_433.service
      • [Unit]
      • Description=Servicio de rtl_433 para decodificación ISM
      • After=multi-user.target
      • [Service]
      • # Ejecuta rtl_433 con la configuración que probamos que funciona
      • ExecStart=/usr/local/bin/rtl_433 -f 433.92M -g 40 -F json
      • # Reiniciar automáticamente si falla
      • Restart=always
      • RestartSec=5
      • User=pi-star
      • Group=pi-star
      • [Install]
      • WantedBy=multi-user.target
    • sudo systemctl daemon-reload
    • sudo systemctl enable rtl_433.service
    • sudo systemctl start rtl_433.service
  • Comprobar ue funciona el servicio
    • sudo systemctl status rtl_433.service
    • sudo systemctl status rtl_433.service --no-pager -l  
  • Comprobar que capta alguna cosa
    • sudo journalctl -u rtl_433.service -f    
 rtl_433 -f 433.92M -s 2M (Tambien admite 2.3M)

Algunas capturas

315M
  • Normal
    • (Ninguna)
  • rtl_433 -f 315M -v -Y autolevel -M level -M noise
    • (Ninguna)
345M
  • Normal
    • (Ninguna)
  • rtl_433 -f 345M -v -Y autolevel -M level -M noise
    • (Ninguna)
433MHz

rtl_433 -f 433.92M -s 2.3M 
  • model: Bresser-3CH  Id: nnn Channel: 1  Battery: 1  Temperature: 73.70 F Humidity: 47 %  Integrity : CHECKSUM
    • Protocolo [52]  Bresser Thermo-/Hygro-Sensor 3CH
    • Comentario: termómetro e higrómetro inalámbrico
  • model: Hyundai-WS  House Code: nnn Channel   : 1 Battery   : 0 Temperature: 41.80 C Button: 0
    • Protocolo: [108]  Hyundai WS SENZOR Remote Temperature Sensor
    • Comentario: termómetro inalámbrico
  • model: Nexus-TH     House Code: n Channel: 1  Battery: 0   Temperature: 21.20 C Humidity  : 56 % 
    • Protocolo: [19]  Nexus, FreeTec NC-7345, NX-3980, Solight TE82S, TFA 30.3209 temperature/humidity sensor
    • Comentario: termómetro e higrómetro inalámbrico
  • model: DSC-Security id: nnnnnnnn closed: 1  event: 0  tamper: 0 Battery: 1  xactivity: 0 xtamper1: 0 xtamper2: 0 exception: 0 esn: hhhhhh status: 195  status_hex: hh  Integrity : CRC
    • Protocolo: [148]  DSC Security Contact (WS4945)
    • Comentario: es un componente de una alarma inalámbrica.
  • model: Microchip-HCS200  id:hhhhhhh Battery: 0 Button: 2  Learn mode: 0 Repeat: 0    encrypted : hhhhhhhh
    • Protocolo: [218]  Microchip HCS200/HCS300 KeeLoq Hopping Encoder based remotes (FSK)
    • Comentario: mando a distancia
  • model: Springfield-Soil SID: nn Channel: 1 Battery: 1 Transmit:AUTO Temperature:0.0C  Moisture: 0% Button: 0 Integrity : CHECKSUM
    • Protocolo:  [53]  Springfield Temperature and Soil Moisture
    • Comentario: sensor de humedad inalámbrico de suelo para jardinería
  • model: Ford-CarRemote device-id: nnnnnn data: nnn
    • Protocolo: [93]  Ford Car Key
    • Comentario: Mando de un automovil
  • model: Hideki-Temperature  Rolling Code: 14 Channel: 3  Battery: 1 Temperature: 18.8 C Integrity : CRC
    • Protocolo: [42]  HIDEKI TS04 Temperature, Humidity, Wind and Rain Sensor
    • Comentario: sensor de temperatura
rtl_433 -v -Y autolevel -M level -M noise
  • model: inFactory-TH ID: 29 Channel: 1   Battery: 0  Button: 0 Temperature: 69.60 F     Humidity: 66 %  Integrity : CRC Modulation: ASK Freq: 434.0 MHz RSSI: -33.1 dB     SNR: 9.0 dB  Noise: -42.1 dB [Auto Level] Current signal level -35.9 dB, estimated noise -39.8 dB
    • Protocolo: [91]  inFactory, nor-tec, FreeTec NC-3982-913 temperature humidity sensor
    • Comentario: sensor de temperatura y humedad
  • model: Toyota  type: TPMS id: xxxxxxx status: 128 pressure_PSI: 36.250   temperature_C: 27 C Integrity: CRC Modulation: FSK Freq1: 433.9 MHz Freq2: 433.9 MHz RSSI: -37.4 dB  SNR: 4.8 dB   Noise     : -42.1 dB
    • Protocolo:  [110]  PMV-107J (Toyota) TPMS
    • Comentario: Presión neumáticos (un sensor por cada neumático)
  • model: Renault type: TPMS id : xxxxxx flags: 36  pressure_kPa: 191.2 kPa   temperature_C: 19 CIntegrity: CRC Modulation: FSK  Freq1: 434.0 MHz Freq2: 433.9 MHz RSSI: -36.1 dB     SNR: 6.0 dB  Noise: -42.1 dB
    • Protocolo:  [90]  Renault TPMS
    • Comentario: Presión neumáticos (un sensor por cada neumático)
  • model: Hyundai-VDO  type : TPMS id: xxxxxxxx state: 32  flags: 0  repetition: 10 pressure: 243 kPa  temp: 22 C   maybe_battery: 15 Integrity : CRC Modulation: FSK Freq1: 434.0 MHz     Freq2     : 433.9 MHz RSSI: -37.4 dB     SNR : 4.8 dB  Noise: -42.1 dB
    • Protocolo:   [186]  Hyundai TPMS (VDO)
    • Comentario: Presión neumáticos (un sensor por cada neumático)
  • model: LaCrosse-TX141THBv2  Sensor ID : a9 Channel: 1 Battery: 1 Temperature: 108.30 C Humidity: 74 %  Test? : No   Integrity : CRC Modulation: ASK Freq: 433.9 MHz RSSI: -4.4 dB  SNR: 37.7 dB Noise: -42.1 dB
    • PROTOCOLO: [08]  LaCrosse TX Temperature / Humidity Sensor
    • Comentario: termómetro e higrómetro inalámbrico
  • model: FT-004B Temperature: 19.3 C Modulation: ASK  Freq: 433.9 MHz RSSI: -37.4 dB     SNR: 4.8 dB  Noise: -42.1 dB
    • PROTOCOLO: [92]  FT-004-B Temperature Sensor
    • Comentario: termómetro  inalámbrico (Fine Offset O SIMILAR)
868.3M
  • rtl_433 -f 868.3M -s 2.3M 
    • (Ninguna)
  • rtl_433 -f 868M -v -Y autolevel -M level -M noise
rtl_433 version 25.02 (2025-02-19) inputs file rtl_tcp RTL-SDR SoapySDR
New defaults active, use "-Y classic -s 250k" if you need the old defaults
[Protocols] Registered 238 out of 275 device decoding protocols [ 1-4 8 10-12 15-17 19-23 25-26 29-36 38-47 49-60 63 67-71 73-85 87-100 102-105 108-116 119-122 124-128 130-149 151-161 163-168 170-175 177-197 199 201-215 217-232 234-241 243-244 246-247 249-259 261-269
[Input] The internals of input handling changed, read about and report problems on PR #1978
[SDR] Found 1 device(s)
[SDR] trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
[SDR] Using device 0: Realtek, RTL2838UHIDIR, SN: 00000001, "Generic RTL2832U OEM"
Exact sample rate is: 1000000.026491 Hz
[R82XX] PLL not locked!
[SDR] Sample rate set to 1000000 S/s.
[Input] Bit detection level set to 0.0 (Auto).
[SDR] Tuner gain set to Auto.
[Input] Reading samples in async mode...
[SDR] Tuned to 868.000MHz.
Allocating 15 zero-copy buffers
[Auto Level] Estimated noise level is -17.6 dB, adjusting minimum detection level to -14.6 dB
[Baseband] low pass filter for 1000000 Hz at cutoff 200000 Hz, 5.0 us
[Auto Level] Estimated noise level is -19.9 dB, adjusting minimum detection level to -16.9 dB
[Auto Level] Estimated noise level is -21.8 dB, adjusting minimum detection level to -18.8 dB
[Auto Level] Estimated noise level is -23.5 dB, adjusting minimum detection level to -20.5 dB
[Auto Level] Estimated noise level is -24.5 dB, adjusting minimum detection level to -21.5 dB
[Auto Level] Estimated noise level is -25.7 dB, adjusting minimum detection level to -22.7 dB
[Auto Level] Estimated noise level is -27.7 dB, adjusting minimum detection level to -24.7 dB
[Auto Level] Estimated noise level is -29.4 dB, adjusting minimum detection level to -26.4 dB
[Auto Level] Estimated noise level is -30.6 dB, adjusting minimum detection level to -27.6 dB
[Auto Level] Estimated noise level is -31.7 dB, adjusting minimum detection level to -28.7 dB
[Auto Level] Estimated noise level is -32.8 dB, adjusting minimum detection level to -29.8 dB
[Auto Level] Estimated noise level is -33.8 dB, adjusting minimum detection level to -30.8 dB

Capturas

  • model: Fineoffset-WH65B ID: xxx Battery: 1  Temperature: 18.5 C  Humidity: 90 % Wind direction: 76 Wind speed: 0.7 m/s  Gust speed: 1.0 m/s Rainfall: 3905.3 mm    UV: 2   UV Index: 0 Light: 0.0 lux      Integrity: CRC Modulation: FSK  Freq1: 868.2 MHz Freq2 : 868.3 MHz RSSI : -0.2 dB  SNR: 42.0 dB Noise: -42.1 dB [Auto Level] Current noise level -35.2 dB, estimated noise -35.3 dB
    • PROTOCOLO:  [78]  Fine Offset Electronics, WH25, WH32, WH32B, WN32B, WH24, WH65B, HP1000, Misol WS2320 
    • Comentario: Estacion meteorológica completa Fine Offset
  • model: Fineoffset-WH32B   ID: 62 Battery   : 1    Temperature: 19.5 C       Humidity  : 76 % Pressure  : 1015.6 hPa   Integrity : CRC Modulation: FSK          Freq1     : 868.3 MHz     Freq2     : 868.4 MHz RSSI      : -15.7 dB     SNR: 19.4 dB       Noise     : -35.2 dB
    • Protocolo:    [78]  Fine Offset Electronics, WH25, WH32, WH32B, WN32B, WH24, WH65B, HP1000, Misol WS2320 
    • Comentario
  • model: Bresser-3CH  Id : 169 Channel   : 1            Battery   : 1   Temperature: 68.30 F Humidity  : 74 %         Integrity : CHECKSUM Modulation: ASK Freq: 867.8 MHz RSSI      : -24.2 dB     SNR       : 18.0 dB       Noise: -42.1 dB
    • Protocolo [52]  Bresser Thermo-/Hygro-Sensor 3CH
    • Comentario: termómetro e higrómetro inalámbrico
  • model : LaCrosse-TX141THBv2  Sensor ID : xx Channel: 1   Battery: 1  Temperature: 108.30 C Humidity: 74 %   Test? : No   Integrity : CRC Modulation: ASK  Freq : 868.3 MHz RSSI: -0.3 dB   SNR: 41.9 dB       Noise : -42.1 dB [Auto Level] Estimated noise level is -32.6 dB, adjusting minimum detect
    • PROTOCOLO: [08]  LaCrosse TX Temperature / Humidity Sensor
    • Comentario: termómetro e higrómetro inalámbrico
  • model     : Marlec-Solar Raw data  : 2544cdabffff820e280c803f                Integrity : CRC
    •  [188]  Marlec Solar iBoost+ sensors
    • Es un dispositivo de telemetria asoociado a paneles solares o baterias
A este apartado le hemos dedicado un poco mas de atención por las redes Meshcore y Meshtastic que pueden trabajar en esta banda

915M (No es una banda europea, no debería haber nadie)
  • Normal
    • (Ninguna)
  •  rtl_433 -f 915M -v -Y autolevel -M level -M noise
    • (Ninguna)

Diagnosticos complementarios
  • Instalar
    • sudo apt-get update
    • sudo apt-get install rtl-sdr
  • Ejecutar
    • rtl_power -f 430M:440M:10k -i 30 spec.csv
  • Visualizar 
    • En la raspberry PI
      • cat spec.csv
    • Pasarlo al PC y usar algun software como una hoja de calculo (Excel)


Conclusiones

Parte de las funciones de un  Flipper Zero son estas que estamos viendo de recibir y decodificar señales ISM en 433 y 866


Referencias


Advertencia importante

Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.

© 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.

No hay comentarios:

Publicar un comentario

Fuentes lineales vs Fuentes conmutadas

Hay dos tipos de alimentación eléctricas de baja tensión, las baterias o las fuente de alimentación.  Las baterias no generan ningún tipo de...