+
Skip to content

lfamorim/diigurguli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

diigurguli

Transmisor de Boletín Náutico para Guna Yala

Este proyecto experimental utiliza un HackRF One para transmitir boletines meteorológicos náuticos sintetizados vía FM de banda estrecha (NB-FM) para veleros en Guna Yala, Panamá. El sistema obtiene datos meteorológicos actuales de la API OpenWeatherMap, convierte el texto a voz utilizando la API ElevenLabs, y transmite el boletín en el canal 16 marítimo (156,800 MHz) a través del HackRF One.

Nota: Este es un proyecto experimental/prueba y no debe ser usado para transmisiones reales sin los permisos correspondientes.

Requisitos

Hardware

  • HackRF One
  • Antena adecuada para la frecuencia de transmisión
  • Computadora Mac con macOS

Software

  • macOS (probado en macOS Sonoma/Ventura)
  • Homebrew
  • Python 3
  • Dependencias: jq, sox, hackrf, curl, numpy

Instalación

1. Instalar Homebrew (si aún no está instalado)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Instalar dependencias vía Homebrew

brew install hackrf sox jq python3

3. Instalar dependencias Python

pip3 install numpy

4. Instalar drivers HackRF (si aún no están instalados)

brew install libusb
brew install --HEAD hackrf

5. Verificar la instalación del HackRF

hackrf_info

Si el dispositivo es detectado correctamente, verás información sobre tu HackRF One.

Configuración

El proyecto ahora utiliza un archivo .env para almacenar todas las claves de API y configuraciones confidenciales. Un archivo .gitignore también fue configurado para evitar que tus claves sean enviadas a repositorios públicos.

Configurando el archivo .env

Edita el archivo .env en la raíz del proyecto y configura tus claves de API y otros parámetros:

# ElevenLabs API (main.sh)
ELEVENLABS_API_KEY="tu_clave_api_elevenlabs"
ELEVENLABS_VOICE_ID="id_de_la_voz_elegida"

# OpenWeatherMap API (weather.sh)
OPENWEATHERMAP_API_KEY="tu_clave_api_openweathermap"
OPENWEATHERMAP_LAT="9.574"  # Latitud de Guna Yala
OPENWEATHERMAP_LON="-78.789"  # Longitud de Guna Yala
OPENWEATHERMAP_UNITS="metric"  # Métrico o imperial

# Transmisión HackRF (main.sh)
HF_FREQ=156800000  # 156,800 MHz (canal 16 marítimo)
HF_GAIN=30  # dB 0-47
HF_SLEEP=10  # Segundos entre transmisiones
HF_DEV=3000  # Desviación FM ±2,5 kHz
HF_AUDIO_RATE=48000  # Hz (salida de sox)
HF_IQ_RATE=2400000  # Hz (TX HackRF: ≥2 MHz)

Importante:

  • El archivo .env ya está incluido en el .gitignore para evitar la exposición accidental de tus claves.
  • Los scripts fueron actualizados para leer estas variables automáticamente.

Uso

  1. Asegúrate de que el HackRF One esté conectado a la computadora

  2. Ejecuta el script principal:

chmod +x main.sh weather.sh  # Hace los scripts ejecutables (sólo la primera vez)
./main.sh

El script:

  1. Buscará los datos meteorológicos actuales vía API
  2. Generará un mensaje de voz con esos datos
  3. Convertirá el audio a un formato adecuado
  4. Modulará la señal en FM
  5. Transmitirá la señal a través del HackRF One
  6. Repetirá la transmisión en el intervalo configurado

Para interrumpir la transmisión, presiona Ctrl+C.

Resolución de Problemas

Permisos del HackRF

Si encuentras errores de permisos:

sudo pkill hackrf_transfer  # Termina cualquier proceso HackRF en ejecución

Si aún tienes problemas:

sudo hackrf_info  # Verifica si el problema es de permisos

Error "hackrf_transfer not found"

echo $PATH  # Verifica si la ruta a hackrf_transfer está en el PATH
which hackrf_transfer  # Encuentra la ruta del ejecutable

Problemas con las APIs

Verifica si las claves de API son válidas y si tienen créditos/solicitudes disponibles.

Notas Importantes

  • Regulación: Asegúrate de que la frecuencia y potencia utilizadas estén de acuerdo con las regulaciones locales (ANATEL en Brasil, FCC en los EE.UU.).

  • Interferencia: Evita frecuencias utilizadas por servicios esenciales o de emergencia.

  • Licencia: Dependiendo del uso y frecuencia, puedes necesitar una licencia de radioaficionado.

Personalización

Para modificar el contenido del mensaje meteorológico, edita el archivo weather.sh. La salida de este script es utilizada como entrada para la API de síntesis de voz.

About

Transmisor de Boletín Náutico para Guna Yala

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载