İçindekiler:

Tek Tuşla Radyo Akış Kutusu: 7 Adım (Resimlerle)
Tek Tuşla Radyo Akış Kutusu: 7 Adım (Resimlerle)

Video: Tek Tuşla Radyo Akış Kutusu: 7 Adım (Resimlerle)

Video: Tek Tuşla Radyo Akış Kutusu: 7 Adım (Resimlerle)
Video: Hatay..! Sen benim..🤍 2024, Kasım
Anonim
Tek tuşla Radyo Akış Kutusu
Tek tuşla Radyo Akış Kutusu

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

Akış Düğmesi ve Canlı Yayın İşareti
Akış 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

Güvenli Kapatma Düğmesi ve Etkinlik LED'i
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

Kutuyu İnşa Et
Kutuyu İnşa Et
Kutuyu İnşa Et
Kutuyu İnşa Et
Kutuyu İnşa Et
Kutuyu İnşa Et

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

Kurulum
Kurulum
Kurulum
Kurulum
Kurulum
Kurulum
Kurulum
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: