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 (SRD)
  • 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 odea pero del cual no somos conscientes

Instalación

Se puede hacer con la versión precompilada con
  • sudo apt install rtl-433
Compilando la versión
  • # 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   
    • sudo docker compose down
      • Para revertir: sudo docker compose up -d
    • 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
    • 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
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

MeshCore: los presets de la discordia

En la peninsula ibérica conviven varias configuraciones  para redes Meshcore. U nas  vienen ya son el firmware  predefinidas (Presets) en un...