Un progetto per fare monitoraggio del segnale radio. Idee chiave:

  • economia. deve essere possibile fare rilevazioni anche con strumenti molto semplici.

  • versatilità. lo strumento si deve adattare ad esigenze diverse

  • possibilità di aggregazione. deve essere possibile condividere infrastruttura tra "situazioni" diverse.

Nel progetto viene usata una parte centralizzata che raccoglie statistiche inviate da sonde. Le sonde sono dei computer che hanno un ricevitore (vedi sotto) e un’autenticazione per poter inviare dati al server centrale.

La parte centralizzata non è strettamente necessaria, ma "alleggerisce" le sonde, che dunque richiederanno una configurazione più semplice. Esse infatti non dovranno mantenere un database, né richiederanno l’apertura di porte.

HW Ricevitori

Possono essere usati due tipi di ricevitori: rtl-sdr e scheda audio.

sdr

La SDR ha vari vantaggi:

  • può monitorare più stazioni con una sola sonda. Questo è utile anche per "isolare" i disturbi generali dai disturbi di un segnale specifico.

  • può decodificare l’RDS (usando redsea)

  • rileva la potenza radio oltre alla chiarezza del segnale demodulato

Essa tuttavia è più costosa, e la sua misurazione è meno realistica, per gli usi reali, di quella basata su scheda audio.

Se si dispone di una rtl-sdr v3 o equivalente, si possono monitorare le onde medie/onde corte.

scheda audio + ricevitore radio

L’alternativa infatti è l’uso di una scheda audio a cui collegare una radio FM. La "qualità" sarà poi determinata con un’euristica che cerca di individuare l’SNR.

SW ricevitori

dati aggiuntivi

Ogni sonda può fornire dei dati sugli audio campionati. Nel caso di sonde basate su scheda audio, sarebbe anche possibile avere a disposizione uno streaming continuo (attualmente non implementato).

Tuttavia l’assunzione di base è che queste sonde abbiano bisogno di una configurazione di rete minimale, dunque è escluso il port forwarding. Non sembra nemmeno il caso di inviare tutti questi dati al server centrale, per minimizzare l’utilizzo di banda.

Una strategia possibile è quindi quella di esporre un Tor Onion Service che mostra i dati raccolti dalla singola sonda.

SW aggregatore

prometheus. scelto perche' e' possibile usare solo quello e fa tutto quello che ci serve: raccolta, pushgateway, interfaccia web.

con grafana verrebbe piu' bello, ma ok

prometheus ha alcune rules configurate per motivi di efficienza; altre invece sono configurate per rendere possibili alcuni tipi di interrogazione. O meglio, le metriche sull’SNR diventano sensate solo con un certo tipo di processamento. Infatti le sonde effettuano campionamenti relativamente frequenti ma, sul singolo campionamento, molto imprecisi. L’utilizzo di aggregazione su periodi lunghi rende il tutto molto più preciso.

TODO: link rules prometheus

Prometheus gestisce facilmente l’invio di dati con molti tag. Questi sono molto importanti per gestire sonde differenti su un singolo server. Lo schema di base proposto associa ad ogni dato:

  • il nome della sonda che l’ha raccolto (instance)

  • il nome della stazione su cui il dato è raccolto

  • la frequenza ricevuta

ma è possibile aggiungerne di nuovi. Così potremmo organizzare i dati per gruppi, per luogo di raccolta, ecc.

Viceversa in fase di visualizzazione potremmo voler filtrare i dati in base a questi gruppi, in modo da non vedere i dati raccolti su radio o luoghi che non ci interessano.

autenticazione

nginx con basic auth. L’interfaccia web e il dominio di push hanno due domini separati, con diversa autenticazione.

Ogni sonda ha un suo user:password