İçindekiler:
- Adım 1: Sunucunuzu Kurun
- Adım 2: Pi'yi kurun ve Darkice'i kurun
- 3. Adım: Yayın Düğmesi ve Canlı Yayın İşareti
- Adım 4: Güvenli Kapatma Düğmesi ve Etkinlik LED'i
- Adım 5: Python Komut Dosyalarının Önyüklemeden Çalıştırılmasını Sağlayın
- Adım 6: Kutuyu Oluşturun
- 7. Adım: Kurulum
Video: Tek Tuşla Radyo Akış Kutusu: 7 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Arkadaşımın barı için içinde Raspberry Pi olan bir kutu yaptım ve tek bir düğmeye basarak Darkice ve Icecast kullanarak bir web sitesine ses akışı sağlarken aynı anda bir 'Canlı Yayın' işaretini yakıyor. Bunun insanların zaten yaptığı bir şey olduğunu düşündüm ama kapsamlı aramadan sonra hiçbir şey bulamadım ve kendim bulmaya ve bunu Eğitilebilir hale getirmeye karar verdim.
Raspberry Pi 3+ B kullandım ama bildiğim kadarıyla herhangi bir Pi'de işe yarayacağını söyleyebilirim (belki GPIO pin numaraları değişebilir, ancak bunu doğrulayamam). İşletim sistemi için NOOBS paketini kullandım ve giriş için süper basit bir ses kartı satın aldım. Ayrıca Pi'yi korumak için kutuya güvenli bir kapatma düğmesi ve etkinlik LED'i ekledim.
İhtiyacın olacak:
Ahududu Pi
SD kartta NOOBS paketi
Açma/Kapama düğmesi (Bunun gibi büyük bir kırmızı acil durdurma düğmesi kullandım, ancak herhangi bir 'tıklama' düğmesi olabilir)
Butona basınız
1 LED
Bir 'Canlı' işareti, bir LED dizisiyle kendim yaptım
Havya ve küçük bağlantı kartı (Etrafımdakilerden birinden bir şerit kestim)
Ses kartı (Bunun gibi süper basit bir tane kullandım)
Adım 1: Sunucunuzu Kurun
Kullandığımız gerçek radyo istasyonu için sunucuya erişimim olmadığı için bu kısmı yapmadım ve arkadaşım yaptı, ancak Icecast web sitesinde temel bir kurulum kılavuzu var ve almayı başardım nasıl gittiğini görmek için başlangıçta Pi'den çalışıyor. Alternatif olarak internet-radio.com adresinden bir hesap alabilirsiniz ve Darkice ile çalışır.
Adım 2: Pi'yi kurun ve Darkice'i kurun
NOOBS paketi ile bir SD Kart edinin. Raspbian'ı açıp tüm güncellemeleri yükledikten sonra bir Terminal penceresi açın ve şunu yazın:
sudo apt-get güncellemesi
sudo apt-get yükleme darkice
Darkice, Debian'ın bir parçasıdır, bu nedenle otomatik olarak yüklenir, birkaç dakika sürer.
İstem türünde bittiğinde:
karanlık
Bir hata mesajı verecek ve çalışmayacak, ama sorun değil. Mesajda şöyle bir şey söyleyecek:
Yapılandırma dosyasını kullanma: /etc/darkice.cfg
Bu dosyayı düzenlemeniz gerekir, bu nedenle istemde şunu yazın:
sudo nano /etc/darkice.cfg
Bu wiki'deki bilgileri kullanarak açılan dosyayı düzenleyin. Radyoreferans sayfasında işiniz bittiğinde kapatmak için CTRL-X'e, kaydetmek için Y'ye basın ve Terminal istemine dönmelisiniz. Yeni bir program yükledikten sonra yeniden başlatmak her zaman iyidir, bu nedenle şunu yazın:
yeniden başlat
ve Pi yeniden başladığında bir Terminal penceresini yeniden açın. Şimdi 'Darkice' yazdığınızda, herhangi bir hata mesajı olmadan çalışması gerekir. https://SUNUCU ADRESİNİZ:8000/ (8000 veya icecast sunucunuz hangi porta atanmışsa) adresine giderseniz, bağlı olduğunuzu belirten bir istatistik sayfası almalısınız. Değilse, yapılandırma dosyasını değiştirin (ses giriş satırı bana bazı sorunlar verdi ama tüm seçenekleri denedim ve sonunda ses kartımı buldum). Darkice düzgün çalıştığında bir sonraki adıma geçin.
3. Adım: Yayın Düğmesi ve Canlı Yayın İşareti
Python'da bir düğmeye bir eylem atamak için özel bir ders olmadığından bunun için bir sürü farklı öğretici yaptım. Karşılaştığım en büyük sorun Darkice'in arka planda çalışmasını sağlamaktı (ve böylece çalışmaya başladığında Python betiğini dondurmamak) ama bir kodlayıcı arkadaşımın gelip yardım etmesini istedim ve o bunu sayfalar yazmanın bir yolunu buldu. alma. Görünüşe göre kodun bir yerinde '&' kullanmak da mümkün olabilir ama ben kodlayıcı değilim ve sahip olduğum şey çalışıyor, bu yüzden onunla uğraşmamayı seçtim. Her şeyi çalıştırdıktan sonra, aşağıdaki kurulumla kalana kadar tüm kabloları breadboard'dan kesmeye başladım:
GPIO16'dan harici bir 3 noktalı konektöre.
GPIO7'yi ON-Air işareti için LED dizisinin pozitif terminaline bağlayın.
GPIO25'i tıklama anahtarına.
Tıklama anahtarının diğer tarafı 3 noktalı konektöre takılır.
LED dizisinin negatif terminali de 3 noktalı konektöre bağlanır.
(Şemadaki diğer bileşenler bir sonraki adımda açıklanmıştır).
Sonunda bulduğumuz Python betiği aşağıdaki gibidir (lütfen bunun tüm proje için bir Instructable olduğunu unutmayın, kodu açıklamak için gerçekten yeterince bilgim yok. Farklı işlevler için çeşitli diğer öğreticilerden bir araya getirdim):
timeimport işletim sistemini içe aktar RPi. GPIO'yu GPIO olarak içe aktar 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)
geçiş = Yanlış
def start_darkice():
print('alt işlemi çağırma') #result = subprocess.call('sh screen -S darkice -d -m darkice') os.system('screen -S darkice -d -m darkice') print('devam ediyor') def stop_darkice(): os.system('screen -X -S darkice çıkış')
Doğru iken:
buttonState = GPIO.input(buttonPin) ise buttonState == True: toggle değilse: toggle = True print('karanlığı açmak') start_darkice() #print ('BUTTON STATE TRUE') GPIO.output(ledPin, GPIO. HIGH)
Başka:
if toggle: toggle = False print('stopping darkice') stop_darkice() #print ('BUTTON STATE FALSE') GPIO.output(ledPin, GPIO. LOW) time.sleep(1)
Py dosyası bu Eğitilebilir Dosyaya eklenmiştir, sadece indirebilir ve isterseniz Adım 5'i takip edebilirsiniz.
Adım 4: Güvenli Kapatma Düğmesi ve Etkinlik LED'i
Sadece güvenlik ve Pi'nin ömrünü uzatmak için, insanların kutuyu fişten çekmenin ne zaman güvenli olduğunu bilmeleri için güvenli bir kapatma düğmesi ve harici bir etkinlik LED'i ekledim. Bunların her ikisi için de öğreticiler buldum, ancak Raspberry Pi 3 B+'nın ACT LED'e atanmış bir GPIO pinine sahip olduğunu fark ettim, ancak önceki modellerde yok ve daha eski bir Pi'niz varsa bu sorunlu olabilir.
LED'in artı ucunu GPIO13'e ve eksi ucunu GPIO26'ya takın. ACT LED'inin çalışması için BOOT dizinindeki config.txt dosyasını düzenlemeniz gerekir. Bunu Raspbian tarayıcısında veya aşağıdakilerle bulabilirsiniz:
sudo nano /usr/boot/config.txt
Dosyayı düzenlerken aşağıdaki satırları eklemeniz yeterlidir:
# SD ACT LED'i olarak harici LED kullanın dtoverlay=pi3-act-led, gpio=19
Artık harici LED, SD kart etkinliği ile titreyecektir.
Basmalı anahtar terminallerini GPIO3 ve GPIO8'e takın. Bir öğreticiden aşağıdaki kodu buldum ve iyi çalışıyor:
gpiozero'dan içe aktarma zamanı içe aktarma Alt süreçten düğme içe aktarma check_call sinyal içe aktarma duraklatma
def kapatma():
check_call(['sudo', 'güç kapalı'])
kapatma_btn = Düğme(2, hold_time=1)
kapatma_btn. When_held = kapatma
Duraklat()
zaman.uyku(1)
Bu py dosyası da isterseniz indirebilmeniz için eklenmiştir. 'Hold-time=' değerini değiştirmek istiyorsanız, düğmem 1 saniye tutulmalıdır.
Adım 5: Python Komut Dosyalarının Önyüklemeden Çalıştırılmasını Sağlayın
Yine bu konuda bir çok ders var, bunu Dexter Industries'den kullandım ve rc.local dosyasını düzenleyerek birinci adımı takip ettim.
sudo nano /etc/rc.local
Burada, her satırın sonunda bir '&' ile tamamlanan dosya yolunun tamamını belgenin sonuna eklemeniz gerekir. Dosyaların her biri için bir satır eklemelisiniz:
sudo python /home/pi/YOURFILENAME, py &
sudo python /home/pi/YOURFILENAME2.py &
çizgiden hemen önce
0 çıkışı
Program döngülerini sağlamak için her satırın sonundaki '&' önemlidir.
Adım 6: Kutuyu Oluşturun
Bu tamamen size kalmış. Gerçekten sadece Pi boyutunda olması gerekiyor, ancak radyo akışını oldukça tutarlı bir seviyede tutmak için kurulumuma bir kompresör koydum, böylece kutu biraz daha büyük. Benimkinin önünde Yayın işareti için bir delik ve Büyük Kırmızı Düğme için bir delik var, ayrıca DJ'ler için küçük bir talimat kartı yaptım ve düğmenin altına yerleştirdim. Kutunun yan tarafında basma düğmesi, ACT LED'i ve ses girişi için bir delik ve ayrıca bar personeli için kutunun güvenli bir şekilde nasıl kapatılacağına dair gömülü talimatlar vardır.
7. Adım: Kurulum
Aşırı ısınmayı önlemek için Pi'nin etrafında bir miktar hava sirkülasyonu sağlamanın her zaman iyi olduğunu akılda tutarak, tüm ayrı bileşenleri kutunuza sabitleyin. Mikserinizden gelen ses kablolarını takın, düğmeye basın ve yayının keyfini çıkarın!
Önerilen:
Arduino ve Raspberry Pi ile İnternet Kontrollü Video Akış Robotunuzu Oluşturun: 15 Adım (Resimlerle)
Arduino ve Raspberry Pi ile İnternet Kontrollü Video Akış Robotunuzu Yapın: Ben @RedPhantom (aka LiquidCrystalDisplay / Itay), İsrail'den Max Shein Junior High School for Advanced Science and Mathematics'de öğrenim gören 14 yaşında bir öğrenciyim. Bu projeyi herkesin öğrenmesi ve paylaşması için yapıyorum
Tek İstasyonlu Radyo: 6 Adım
One Station Radio: Bunu neden yaptığımla ilgili küçük bir giriş. Patronlarımdan biri gerçek bir ustadır ve kelimenin tam anlamıyla istediği her şeyi kaynaklayabilir. Ve çalışırken en sevdiği radyo istasyonunu dinlemeyi sever. Bunu yapmak için FM kayıt özellikli eski bir stereo sistemi kullanıyor
PIC16F1847 ve AR1010 Tabanlı FM Radyo Müzik Kutusu: 5 Adım
PIC16F1847 ve AR1010 Tabanlı FM Radyo Müzik Kutusu: Bu benim ilk Eğitilebilir gönderiim. Ebay'den aldığım bu ucuz AR1010 FM Radyo alıcı modülünü ve MICROCHIP'ten bir PIC16F1847 Mikrodenetleyiciyi kullanarak bir Dijital FM Radyo kutusu yaptım. Neden PIC'ler? Arduino'yu neden kullanmıyorsunuz? Çünkü bende bir sürü
Acil Durum Güç Bankası - DIY Araç Kutusu Solar: Radyo+ Şarj Cihazı+ Acil Durum için Işık!: 4 Adım
Acil Durum Güç Bankası - Kendin Yap Araç Kutusu Solar: Radyo+ Şarj Cihazı+ Acil Durum için Işık!: Ekle 28 Mart 2015: Alet kutumu acil durumlar için yaptım ve şimdi şehrim çamura gömüldüğü için kullanıyorum. Tecrübe olarak telefon şarj etmek ve radyo dinlemek için hizmet ettiğimi söyleyebilirim. Eski bir alet çantası mı? eski bir bilgisayar hoparlörü? kullanılmayan 12 voltluk bir pil mi? Yapabilirsiniz
RDS (Radyo Metni), BT Kontrol ve Şarj Tabanlı FM Radyo: 5 Adım
RDS (Radyo Metni), BT Kontrol ve Şarj Tabanlı FM Radyo: Bonjour, Bu benim ikinci "Eğitilebilir Öğelerim". Çok kullanışlı olmayan şeyler yapmayı sevdiğim için, işte son projem: Bluetooth ve Android APP aracılığıyla izlenebilen bir şarj tabanıBu nedenle ben