Das Raspberry Pi kann so ziemlich für jede denkbare Anwendung verwendet werden – so auch als Sender einer Radiostation. Dabei können Frequenzen von 1Mhz bis 250Mhz verwendet werden, also auch die üblichen Radiofrequenzen zwischen 88 und 108Mhz.
Je nach Lage und Antenne kann das Signal dabei bis zu 100 Meter übertragen werden.
In diesem Tutorial zeige ich, was man dafür benötigt und wie man die Radio-Sendestation auf dem Raspberry Pi einrichtet.
Zubehör
Folgendes Zubehör habe ich verwendet:
- Raspberry Pi 3
- USB Soundkarte
- Jumper Kabel (je nach Anwendung ggf. eine stärkere Antenne)
Achtung: In Deutschland wird eine Lizenz zum Betreiben von Rundfunksendern benötigt. Details dazu findest du auf der Seite der Bundesnetzagentur. Dieses Tutorial soll lediglich die technische Umsetzung zeigen.
Software
Als Grundlage dient die Bibliothek piFM. Mit dieser ist es möglich GPIO 4 (Pin 7) des Raspberry’s als Sender zu „missbrauchen“. Dabei muss eine Antenne (entweder eine richtige Antenne oder ein einfacher Draht) daran verbunden sein.
Als erstes Laden wir also die Software und kompilieren sie.
git clone https://github.com/rm-hull/pifm && cd pifm make
Hast du nun die Antenne an Pin 7 (der 4. Pin von oben auf der inneren Seite) verbunden, kannst du bereits loslegen. Dazu muss piFM als Root gestartet werden und eine Datei angegeben werden (.wav Format), die abgespielt werden soll. Außerdem kann optimal die Sendefrequenz angegeben werden (Standard 103.3Mhz) und die Audio Sampling Rate (in Hz).
Ein Beispielaufruf wäre folgender:
sudo ./pifm sounds/star-wars.wav 103.3 22050 stereo
Wenn du nun auf deinem Radio diese Frequenz suchst, solltest du die Star Wars Melodie hören und das vorherige Rauschen sollte stoppen. Am Ende des Lieds wird wieder vom Anfang gespielt.
Außerdem kann die Bibliothek auch problemlos in Python eingebunden werden:
1 2 |
import PiFM PiFm.play_sound("path/sound.wav") |
Live sprechen
Interessanter als nur Musik abzuspielen, ist wahrscheinlich die Möglichkeit auch live sprechen zu können. Das ist relativ einfach mit arecord
möglich. Dazu muss nur ein Mikrofon über die USB Soundkarte angeschlossen sein.
Hierbei starten wir eine Aufzeichnung und übergeben sie direkt als Input für piFM per Pipeline:
arecord -f S16_LE -r 22050 -twav -D plughw:0,0 - | sudo ./pifm -
Diese Parameter von arecord
haben bei mir am besten funktioniert. Sollte bei dir nur ein schlechter Ton ankommen, müsstest du die Parameter ggf. anpassen. Anstelle von plughw:0,0
kann es auch plughw:1,0
sein. Dazu rufst du am besten
amixer
auf. Die angeschlossenen Audiogeräte sollten angezeigt werden.
Beim Testen fiel mir auf, dass kein Signal mehr gesendet wurde, nachdem ich mittel aplay
meine Aufzeichnung anhören wollte. Das selbe kann auch passieren, wenn die Standard-Audioeinstellungen verändert wurden (/etc/modprobe.d/alsa-base.conf
). In diesem Fall sollten die Einstellungen zurück gesetzt werden (falls verändert) und neu gestartet werden. Sollte das Problem weiter bestehen hilft auch ein sudo apt-get update && sudo apt-get upgrade
bzw. ein neues Raspbian Image. Aber wie gesagt, meist reicht ein Neustart allein bereits aus.
37 Kommentare
pi@raspberrypi:~ $ sudo ./pifm sounds/star-wars.wav 80.0 22050 stereo
sudo: ./pifm: Kommando nicht gefunden
schon so einiges versucht,. auch sudo chmod +x pifm
funktioniert nicht
Du scheinst im falschen Verzeichnis zu sein. Lass dir alle Dateien mal per
ls
anzeigen. Hat das kompilieren denn geklappt?alert(“ Denkt ans Klima!“)
wie und wo mach ich das mit 1s ? kompilieren, ja,. keine ahnung :/
Ich verstehe nicht was du meinst.
ls
gibst du in der Konsole an, mitcd ordnername
wechselst du das Verzeichnis (Google: Linux Verzeichnis wechseln). Und falls das Kompilieren einen Fehler ausgeschmissen haben sollte, wird es dir auch in der Konsole angezeigt.ls mit kleinem L nicht (eins)s
Hallo,
kann ich / bzw. wie kann ich damit Internetradiosender weitersenden?
Theoretisch ja. Wie es rechtlich aussieht, weiß ich nicht. Du müsstest jedenfalls den Stream als Audio Input Quelle verwenden. Eventuell auch interessant ist dieses Tutorial: Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
Kurze Frage: Der RasberryPi 3 Modell B hat doch einen Audioausgang. Kann ich da auch direkt nen Mikro anschließen?
Der Pi hat nur einen Audio Output (Lautsprecher, Kopfhörer, ..) aber keinen Audio Input.
muss es denn eine Soundkarte sein oder reicht ein USB-Mikrofon?
Ich kann nix empfangen über das radio obwohl das Programm läuft und die Antenne steckt ????
Genau das selber problem habe ich leider auch.
Läuft alles, ausser die wiedergabe bzw. man hört am Empfänger leider nix.
Als gerät wird einer 3er benutzt, am Pin steckt ein Draht.
Hilfe wäre toll
THX
Hab alles verbunden und mehrere Empfangsgeräte ausprobiert. Klappt nicht.
Ich habe auch das Problem mit dem 3er mit dem zero funktioniert es
Kann man auch anderen GPIO nutzen ? wenn ja , wie stelt man das ein ?
Nein, siehe Repo Seite: no other accessible pins can be used
Danke für antwort. Habe so vermutet , weil es um GPCLK0 pin handelt , und der einfach als antennenausgang genutzt wird. Dann muss der 1wire bus auf anderen pin ausweichen 😉
bei mir kommt das hier
pi@raspberrypi:~/pifm $ ./pifm sounds/star-wars.wav 103.3 22050 stereo
can’t open /dev/mem
Mit sudo probiert?
Hallo Felix,
ich habe den Befehl: sudo ./pifm sounds/star-wars.wav 103.3 22050 stereo ausgeführt. Es kommt vom System keine Fehlermeldung aber auch keine Meldung, dass Musik abgespielt wird. Leider kann ich über die angegebene Frequenz nichts empfangen. Woran liegt der Fehler?
Danke + Grüße Robert
Hallo,
ich habe die verschiedensten Aleitungen, welche ich hier im Netz finden kontte, unter anderem auch diese, ausprobiert und keinen Erfolg gehabt.
Er nimmt die Befehle zwar an, also ich bekomme keine Fehlermeldungen, aber ich habe das gefühl er führt sie nicht aus, denn es ist kein Ergebniss zu spüren.
Hat hier jemand vielleicht eine detaillierte Anleitung für mich, die ich noch auch noch ausprobieren kann?
Ich bin mitlerweile Ratlos und weiß nicht mehr weiter.
Vielen Dank schonmal
Ist das legal?
nein!
blödsinn
wenn ich so was wie in diesem thread lese, komme ich aus dm kopfschütteln nicht raus.
ich persönlich bin einfach nicht bereit, anleitungen in der praxis zu folgen, deren sinn ich von vorne bis hinten nicht verstehe.
das einfachste unix/linux kommando ‚ls‘ als ‚1s‘ am prompt einzuhacken, ist ungefähr so kompetent, als wenn ich auto fahren möchte und den zündschlüssel als ohrreiniger intepretiere.
dieser thread ist so wie hier zum lernen alles andere als geeignet.
auch so etwas wirklich tolles wie ein raspi o.ä. braucht eine minimale menge von verstand als voraussetzung.
Hallo, ich stimme da mal Pit Blogg voll zu, zum anderen machen sich alle strafbar die so was nachbauen und wenns hart kommt und ein Funkdienst der Polizei (liegt mit 75-87Mhz gleich daneben) oder so gestört wird und daraus Schäden entstehen dann kommt der welcher das Tutorial geschrieben hat, wegen Anstiftung zu einer Straftat (nicht Vergehen, ja Straftat da ist man dann vorbestraft) gleich mit dran. Also wenn man keine Funklizenz hat und sowieso keine Ahnung unbedingt Finger weg lassen, auch den Nachbarn zuliebe die vielleicht (wenns denn geht) auf ihren Lieblingsradiosendern nur Knistern hören.
Erzählt nicht so einen Quatsch, wenn ihr keine Ahnung habt. Das Verwenden von FM-Transmittern ist vollkommen legal, wenn das in Frequenzbereichen von 87,5 und 108 Megahertz erfolgt und der Sender eine Leistung von 50nW nicht überschreitet (was beim RaspPi garantiert eingehalten wird).
@Mitschnacker
Erst mal, ich bin mit deiner Aussage konform. Aber lehne dich nicht so weit aus dem Fenster.
Hier sind definitiv Sachen strafbar. Falsche Sendeleistung, Falsche Frequenz usw.
Was für eine Leistung der Pi abgibt ist ausserdem fast irrelevant. Es kommt darauf was für einen Gewinn die angeschlossene Antenne macht. Sendeleistung + Antenne = >50nw = Problem
Ein kleiner Draht als Antenne wird definitiv nicht das Problem sein. Aber ich habe auch KEINE Ahnung was an Leistung überhaupt ausgestrahlt wird.
Nächste Problem ist das verrutschen der Frequenz. Sobald du aus dem Radio-UKW-Bereich rausgehst, sind wir wieder bei nicht erlaubt.
Also kurz gesagt:
JA, das hier ist LEGAL!
Es kommt aber drauf na wie riesig die Antenne ist die ihr anschließt und die Frequenz.
Bitte niemals ausserhalb 87.5 bis 108.0 MHz arbeieten
Hallo,
an Micha und Mitschnacker, so einfach ist es nun auch nicht.
Der Ausgang vom Raspi macht mindestens 70mW (z. B. für LEDs) das ist nun mal das über 1000 fache der zugelassenen Leistung für freie UKW-Transmitter. Wenn es nun zufällig bei dem Stück Draht einen ganzen Teiler der Wellenlänge (schon mal was von Lambda gehört?) trifft und die Stehwelle niedrig ist, dann können da meinen Abschätzungen zufolge, einige Milliwatts an Senderabstrahlung bei rauskommen (100fache des erlaubten).
Desweitern ist bei Geräten wie ihr sie beschreibt (> 50nW Sendeleistung) durch eine Baumusterprüfung nachzuweisen dass das eben so ist, oder wenn man eine Lizenz hat, durch Messgeräte, alles andere ist definitiv verboten.
Ich weiß nicht woher ihr Eure Kenntnisse habt, ich jedenfalls bin ausgebildeter Elektroniker (Meisterprüfung) und hab mal für eine deutsche Funklizenz Klasse E intensiv gelernt.
Deshalb nochmal der Rat an alle Nachbauer, nicht machen.
Hallo,
hab mich vor lauter Eile in den Faktoren geirrt, Ausgang Raspi 1 000 000 fache (70mW zu 50nW), Abstrahlung 100 000 fache. Na wenn das nicht mal eine ganz schöne Menge ist.
Hallo,
um nicht allen den Spaß an sowas zu verderben hier mein Tipp was man da machen kann. Dann spielt auch die Art (Länge, Durchmesser und Form) einer Antenne keine Rolle da es sie nicht gibt.
Man kann das Signal direkt in einen Receiver leiten, vom Ausgangspin nach Masse einen 100 Ohm Wiederstand und Poti mit ca. 1kOhm parallel. Am Abgriff des Potis einen ca. 50pF Kondensator (zur Gleichspannungsentkopplung) einbauen, an die andere Seite des Kondensators kommt der Innenleiter eines Koaxialkabels dessen Schirm so nah als möglich am Innenleiter endet. Das andere Ende dieser Antennenleitung an den Receiver anschließen. Dann gleiche Frequenzen einstellen und den Poti langsam aufdrehen, müsste gehen, wenn am Raspi was brauchbares rauskommt.
Übernehme aber definitiv keine Verantwortung, vor allem für Schäden am Receiver.
Abstrahlung gibt es hier nicht, wenn das ganze mit Verbindungen kleiner ca. 2cm aufgebaut wird.
Hallo,
hab eine bedeutende Kleinigkeit vergessen, den Schirm des Koaxialkabels natürlich mit der Masse des Raspi verbinden.
Hallo !
Ich habe das gleiche problem wie dominic (der erste kommentar) und komme nicht drauf wie ich das verzeichnis wecheseln kann oder was das richtige ist ich bräuchte schnell Hilfe !
danke im voraus !!
Habe die Software wie beschrieben installiert.
Lässt sich auch aufrufen . Am Pin 7 wird kein Signal erzeugt.
Sind noch Vorarbeiten notwendig ? Konfigurieren der AusgangsPins ?
Habe mit RASPI 2 , Raspi 3+ und RASPI4 probiert.
Ohne Erfolg.
Kann mir jemand weiterhelfen ?
Habe Software mit: git clone https://github.com/rm-hull/pifm.git
auf Raspi copiert.
Anschliessend make ausgeführt.
Danach ein Test.py erstellt mit dem Inhalt:
import PiFm
PiFm.play_sound(„sounds/star-wars.wav“)
hab auch schon andere Installationen probiert.
Meiner Meinung nach muss doch der Ausgangsport als Ausgang definiert werden.
hat noch jemand eine Idee ?
Hey ich habe einen Rasperry pi 4 bei mir funktioniert es nicht. Liegt das am Rasperry 4 oder gibt es auch andere Fehler. LG
An Alle,bei denen es nicht funktioniert (hauptsächlich an die Generation „Ich mach das,dann funktioniert das sofort und nachdenken will ich nicht“):
Habt ihr die „star-wars.wav“ Datei denn im sounds Ordner? Das ist im Tutorial nur ein Beispiel!!!!