Table des matières:
- Étape 1: Configurez votre serveur
- Étape 2: Configurer le Pi et installer Darkice
- Étape 3: bouton de diffusion et signe à l'antenne
- Étape 4: bouton d'arrêt sécurisé et voyant d'activité
- Étape 5: Exécutez les scripts Python à partir du démarrage
- Étape 6: Construisez la boîte
- Étape 7: Installation
Vidéo: Boîte de diffusion radio à un bouton : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
J'ai construit une boîte pour le bar de mon ami qui a un Raspberry Pi à l'intérieur et en appuyant sur un bouton, il diffuse de l'audio vers un site Web à l'aide de Darkice et Icecast, tout en allumant simultanément un panneau « On-Air ». Je pensais que c'était quelque chose que les gens faisaient déjà, mais après une recherche approfondie, je n'ai rien trouvé et j'ai décidé de le découvrir par moi-même et de rendre ce Instructable.
J'ai utilisé un Raspberry Pi 3+ B mais pour autant que je sache, cela fonctionnerait sur n'importe quel Pi (peut-être que les numéros de broche GPIO varieraient, je ne peux pas en attester cependant). J'ai utilisé le package NOOBS pour le système d'exploitation et acheté une carte son super simple pour l'entrée. J'ai également ajouté un bouton d'arrêt sécurisé et une LED d'activité à la boîte pour protéger le Pi.
Tu auras besoin de:
Tarte aux framboises
Package NOOBS sur une carte SD
Interrupteur marche/arrêt (j'ai utilisé un gros bouton d'arrêt d'urgence rouge comme celui-ci, mais il peut s'agir de n'importe quel type d'interrupteur « clic »)
Bouton poussoir
1 DEL
Un panneau 'On-Air', j'ai fait le mien avec une matrice de LED
Fer à souder et petit connecteur (je viens de couper une bande d'un de ceux que j'avais autour)
Carte son (j'en ai utilisé une super simple comme celle-ci)
Étape 1: Configurez votre serveur
Pour la station de radio que nous utilisons, je n'ai pas fait cette partie car je n'avais pas accès au serveur et mon ami l'a fait, mais il existe un guide de configuration de base sur le site Web d'Icecast et j'ai réussi à obtenir cela fonctionne à partir du Pi au début juste pour voir comment ça se passe. Alternativement, vous pouvez obtenir un compte sur internet-radio.com et cela fonctionne avec Darkice.
Étape 2: Configurer le Pi et installer Darkice
Obtenez une carte SD avec le package NOOBS. Une fois que vous avez ouvert Raspbian et installé toutes les mises à jour, ouvrez une fenêtre de terminal et tapez:
sudo apt-get mise à jour
sudo apt-get install darkice
Darkice fait partie de Debian donc il s'installera automatiquement, cela prend quelques instants.
Une fois terminé à l'invite, tapez:
noirceur
Il donnera un message d'erreur et ne fonctionnera pas, mais ce n'est pas grave. Dans le message, il dira quelque chose comme:
Utilisation du fichier de configuration: /etc/darkice.cfg
Vous devez modifier ce fichier, donc à l'invite, tapez:
sudo nano /etc/darkice.cfg
Modifiez le fichier qui s'ouvre en utilisant les informations de cette page wiki. Radioreference, lorsque vous avez terminé, appuyez sur CTRL-X pour fermer, Y pour enregistrer et vous devriez revenir à l'invite du terminal. Il est toujours bon de redémarrer après avoir installé un nouveau programme, alors tapez:
redémarrer
et lorsque le Pi a redémarré, rouvrez une fenêtre de terminal. Maintenant, lorsque vous tapez "Darkice", il devrait s'exécuter sans aucun message d'erreur. Si vous allez sur https://YOURSERVERADDRESS:8000/ (8000 ou quel que soit le port auquel votre serveur icecast est affecté), vous devriez obtenir une page de statistiques indiquant que vous êtes connecté. Sinon, modifiez le fichier de configuration (la ligne d'entrée audio m'a posé quelques problèmes mais j'ai essayé toutes les options et j'ai finalement trouvé ma carte son). Une fois que Darkice fonctionne correctement, passez à l'étape suivante.
Étape 3: bouton de diffusion et signe à l'antenne
J'ai fait un tas de tutoriels différents pour cela car il n'y en avait pas de spécifique pour attribuer une action à un bouton en Python. Le plus gros problème auquel j'ai été confronté était de faire fonctionner Darkice en arrière-plan (et donc de ne pas geler le script Python lorsqu'il a commencé à s'exécuter), mais j'ai demandé à un ami codeur de venir m'aider et il a trouvé un moyen de le faire en écrivant des feuilles, quelque chose que j'ai ne comprends pas. Apparemment, il pourrait également être possible d'utiliser un '&' quelque part dans le code, mais je ne suis pas un codeur et ce que j'ai fonctionne, j'ai donc choisi de ne pas jouer avec. Une fois que tout fonctionnait, j'ai commencé à réduire tous les câbles de la maquette jusqu'à ce qu'il me reste la configuration suivante:
GPIO16 à un connecteur 3 points externe.
GPIO7 à la borne positive de la matrice de LED pour le signe ON-Air.
GPIO25 au click-switch.
L'autre côté du bouton-clic se fixe au connecteur à 3 points.
La borne négative de la matrice de LED se fixe également au connecteur à 3 points.
(Les autres composants sur le schéma sont expliqués à l'étape suivante).
Le script Python avec lequel nous nous sommes retrouvés est le suivant (veuillez noter qu'il s'agit d'un Instructable pour l'ensemble du projet, je n'en sais pas vraiment assez pour expliquer le code. Je l'ai reconstitué à partir de divers autres tutoriels pour différentes fonctions):
import timeimport os import RPi. GPIO as GPIO GPIO.setwarnings(False) GPIO.setmode(GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup(ledPin, GPIO. OUT) GPIO.setup(buttonPin, GPIO. IN, pull_up_down =GPIO. PUD_UP)
basculer = Faux
def start_darkice():
print('calling subprocess') #result = subprocess.call('sh screen -S darkice -d -m darkice') os.system('screen -S darkice -d -m darkice') print('resuming') def stop_darkice(): os.system('screen -X -S darkice quitter')
tant que vrai:
buttonState = GPIO.input(buttonPin) if buttonState == True: sinon toggle: toggle = True print('allumer darkice') start_darkice() #print ('BUTTON STATE TRUE') GPIO.output(ledPin, GPIO. HIGH)
autre:
if toggle: toggle = False print('stopping darkice') stop_darkice() #print ('BUTTON STATE FALSE') GPIO.output(ledPin, GPIO. LOW) time.sleep(1)
Le fichier py est joint à cet Instructible, vous pouvez simplement le télécharger et suivre l'étape 5 si vous le souhaitez.
Étape 4: bouton d'arrêt sécurisé et voyant d'activité
Juste pour la sécurité et pour prolonger la durée de vie du Pi, j'ai ajouté un bouton d'arrêt sécurisé et une LED d'activité externe pour que les gens sachent quand il est sûr de débrancher le boîtier. J'ai facilement trouvé des tutoriels pour les deux, mais j'ai remarqué que le Raspberry Pi 3 B+ a une broche GPIO affectée à la LED ACT alors que les modèles précédents ne le font pas et cela pourrait être problématique si vous avez un Pi plus ancien.
Reliez la borne positive de la LED à GPIO13 et la borne négative à GPIO26. Pour que la LED ACT fonctionne, vous devez modifier le fichier config.txt dans le répertoire BOOT. Vous pouvez le trouver dans le navigateur Raspbian ou avec:
sudo nano /usr/boot/config.txt
Lorsque vous modifiez le fichier, ajoutez simplement les lignes suivantes:
# Utiliser la LED externe comme LED SD ACT dtoverlay=pi3-act-led, gpio=19
Maintenant, la LED externe clignotera avec l'activité de la carte SD.
Connectez les bornes du commutateur poussoir aux GPIO3 et GPIO8. J'ai trouvé le code suivant à partir d'un tutoriel et cela fonctionne très bien:
import timefrom gpiozero import Button from subprocess import check_call from signal import pause
arrêt par défaut ():
check_call(['sudo', 'poweroff'])
shutdown_btn = Bouton(2, hold_time=1)
shutdown_btn.when_held = arrêt
pause()
heure.sommeil(1)
Ce fichier py est également joint pour que vous puissiez le télécharger si vous le souhaitez. Mon bouton doit être maintenu enfoncé pendant 1 seconde, si vous souhaitez modifier cela, modifiez la valeur 'hold-time='.
Étape 5: Exécutez les scripts Python à partir du démarrage
Encore une fois, il existe de nombreux tutoriels sur ce sujet, j'ai utilisé celui-ci de Dexter Industries et j'ai suivi la première étape en éditant le fichier rc.local.
sudo nano /etc/rc.local
Ici, vous devez ajouter le chemin de fichier complet à la fin du document, avec un "&" à la fin de chaque ligne. Vous devez ajouter une ligne pour chacun des fichiers:
sudo python /home/pi/YOURFILENAME, py &
sudo python /home/pi/YOURFILENAME2.py &
juste avant la ligne
sortie 0
Le '&' à la fin de chaque ligne est important pour assurer les boucles du programme.
Étape 6: Construisez la boîte
Cela dépend entièrement de vous. Il n'a vraiment besoin que de la taille du Pi, mais j'ai mis un compresseur dans ma configuration pour maintenir le flux radio à un niveau assez cohérent, de sorte que la boîte est un peu plus grande. Le mien a un trou sur le devant pour le signe On-Air et un pour le Big Red Button, en plus j'ai fait une petite carte d'instructions pour les DJ et l'ai incrustée sous le bouton. Sur le côté de la boîte, il y a un trou pour le bouton-poussoir, la LED ACT et l'entrée audio, ainsi que des instructions incrustées pour le personnel du bar sur la façon d'éteindre la boîte en toute sécurité.
Étape 7: Installation
Fixez tous les composants séparés dans votre boîte, en gardant à l'esprit qu'il est toujours bon de permettre une certaine circulation d'air autour du Pi pour éviter la surchauffe. Branchez les câbles audio de votre table de mixage, appuyez sur le bouton et profitez de la diffusion !
Conseillé:
Une application d'un bouton extensible avec retour de vibration : 7 étapes (avec photos)
Une application d'un bouton extensible avec retour de vibration : Dans ce tutoriel, nous allons d'abord vous montrer comment utiliser un Arduino Uno pour contrôler un moteur de vibration via un bouton étendu. La plupart des didacticiels sur les boutons-poussoirs impliquent le bouton de la maquette physique, alors que dans ce didacticiel, le bouton a été
Microcontrôleur AVR. Basculez les LED à l'aide d'un interrupteur à bouton-poussoir. Anti-rebond de bouton poussoir. : 4 étapes
Microcontrôleur AVR. Basculez les LED à l'aide d'un interrupteur à bouton-poussoir. Anti-rebond de bouton-poussoir. : Dans cette section, nous allons apprendre comment créer un code C de programme pour ATMega328PU pour basculer l'état des trois LED en fonction de l'entrée d'un interrupteur à bouton. En outre, nous avons exploré une solution au problème de « Switch Bounce ». Comme d'habitude, nous allons
La boîte Barbie : un étui camouflé/boîte boom pour votre lecteur MP3 : 4 étapes (avec photos)
La Barbie Box : un étui camouflé/boîte perche pour votre lecteur mp3 : il s'agit d'un étui de protection rembourré pour votre lecteur mp3 qui convertit également la prise casque en quart de pouce, peut servir de boîte perche en appuyant simplement sur un interrupteur, et déguise votre lecteur mp3 en un lecteur de cassette du début des années 90 ou un vol faible similaire i
Diffusion LED à colle chaude : 5 étapes (avec photos)
Diffusion LED à colle chaude : que ferais-je sans LED et sans colle chaude ? Ils font partie intégrante des neuf dixièmes de mes projets. Eh bien, pendant que je travaillais sur mon premier instructable, j'ai remarqué que les LED que j'avais collées à chaud sur les fils faisaient en quelque sorte briller la colle translucide
Afficher la boîte à lumière à partir d'une boîte en bois : 9 étapes (avec des images)
Boîte à lumière d'affichage à partir d'une boîte en bois : ma femme et moi avons offert à ma mère une sculpture en verre pour Noël. Quand ma mère l'a ouvert, mon frère a dit "RadBear (en fait, il a dit mon nom) pourrait te construire une boîte à lumière!". Il a dit cela parce qu'en tant que collectionneur de verre, j'ai