FM-Receiver mit Raspberry PI

Habe einen FM-Receiver für eine Spezial-Aufgabe gebaut:

In meinen Auto habe ich leider keinen Anschluss für Audio-IN oder iPod o.ä. Darum bin ich für Handy / iPod / … Anschluss auf einen FM-Auto-Transmitter angewiesen.
Die meisten dieser Mini-Sender haben inzwischen einen FM-Receiver mit eingebaut um nach freien Kanälen zu scannen. Dieser Kanal wird dann angezeigt oder sogar angesagt und man muss „nur“ anschliessend das Auto-Radio auf diesen Kanal einstellen.
Schon kann man vom Handy/iPod/was auch immer seine Pdocasts oder Musik hören.
Wenn der Kanal nicht passt, geht das Spiel von vorne los.
Leider ist dies auf meiner Stammstrecke in die Arbeit der Fall, den optimalen freien Kanal habe ich noch nicht gefunden.

Darum : Mit einenm Raspi einen FM-Lückensucher gebaut.

1.) Einen FM-Empfänger besorgen, ich habe meinen, einen TEA5767,  hier via Amazon für ca 5 Euro gekauft.
2.) den FM-Empfänger gemäss dieser Anleitung an den PI angeschlossen
3.) Da ich gar kein Radio mit diesem Empfänger hören will, kann ich mir das Anlöten der Audio-Ausgänge sparen.
Jetzt sieht das also so aus:

Raspberry PI mit FM-Radio
Im Detail so:
FM-Receiver

4.) Für die Software habe ich die Raspberry-PI-SW von Dipto Pratyaksa von obigem Artikel auf github gecloned:

https://github.com/jogi-k/tea5767/tree/gap-scanner

Das ist ein eigener Branch namens gap-scanner, da ich den Web-Server nicht brauchte und er auf Anhieb auch nicht funktioniert hat.
Alle Vorbereitungen etc kann man obigem Artikel von Dipto Pratyaksa entnehmen.
Wenn sein Kommand-Zeilen-Radio mit

sudo python3 tea5767controller.py

funktioniert, kann anschliessend der Scanner mittels

sudo python3 tea5767gapscanner.py

aufgerufen werden.
Das zeigt auf der Console die gescannte Frequenz mit ermitteltem Empfangs-Level (0-15).
Die gleiche Information wird pro Scan-Durchlauf in ein File namens run_xx geschrieben, dort jedoch nur die Frequenz und mit einem Leer-Zeichen getrennt, der ermittelte Level.

Nun muss vorbereitend für das Script das erste Ergbnis-File umbenannt werden:
mv run_1 input

Mittels einer einfachen Schleife

#!/bin/bash

for i in run_*;  do
    join input $i > output
    mv output input
done


kann man die Werte aneinander-hängen und sie snschliessend in einem Editor oder Spreadsheet seiner Wahl genauer analysieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.