Isi kandungan:

Kotak Penstriman Radio Satu Butang: 7 Langkah (dengan Gambar)
Kotak Penstriman Radio Satu Butang: 7 Langkah (dengan Gambar)

Video: Kotak Penstriman Radio Satu Butang: 7 Langkah (dengan Gambar)

Video: Kotak Penstriman Radio Satu Butang: 7 Langkah (dengan Gambar)
Video: Transgender Dari Filipina Umroh | Tetapi Dia tetaplah seorang Pria #vidioviral #shorts #umrah 2024, November
Anonim
Kotak Penstriman Radio Satu Butang
Kotak Penstriman Radio Satu Butang

Saya membina kotak untuk bar rakan saya yang mempunyai Raspberry Pi di dalam dan dengan menekan satu butang ia mengalirkan audio ke laman web menggunakan Darkice dan Icecast, sambil menyalakan tanda 'On-Air'. Saya fikir ini adalah sesuatu yang telah dilakukan oleh orang lain tetapi setelah melakukan pencarian yang mendalam, saya tidak menemui apa-apa dan memutuskan untuk mengetahui sendiri dan menjadikan ini diajar.

Saya menggunakan Raspberry Pi 3+ B tetapi sejauh yang saya tahu ia akan berfungsi pada Pi mana pun (mungkin nombor pin GPIO berbeza, saya tidak dapat membuktikannya). Saya menggunakan pakej NOOBS untuk OS dan membeli kad suara super sederhana untuk input. Saya juga menambahkan butang tutup selamat dan LED aktiviti ke kotak untuk melindungi Pi.

Anda perlu:

Pai raspberi

Pakej NOOBS pada kad SD

Suis hidup / mati (saya menggunakan butang berhenti kecemasan merah besar seperti ini, tetapi ia boleh menjadi suis 'klik' apa pun)

Tekan butang

1 LED

Tanda 'On-Air', saya membuat sendiri dengan array LED

Pateri solder dan papan penyambung kecil (saya hanya memotong sehelai salah satu yang saya ada)

Soundcard (saya menggunakan yang super sederhana seperti ini)

Langkah 1: Sediakan Pelayan Anda

Untuk stesen radio yang sebenarnya kami gunakan, saya tidak melakukan bahagian ini kerana saya tidak mempunyai akses ke pelayan dan rakan saya melakukannya, tetapi ada panduan penyediaan asas di laman web Icecast dan saya berjaya mendapatkannya ia berfungsi dari Pi pada awalnya untuk melihat bagaimana kelanjutannya. Sebagai alternatif anda boleh mendapatkan akaun di internet-radio.com dan ia berfungsi dengan Darkice.

Langkah 2: Sediakan Pi dan Pasang Darkice

Dapatkan Kad SD dengan pakej NOOBS. Setelah anda membuka Raspbian dan memasang semua kemas kini, buka tetingkap Terminal dan taip:

sudo apt-get kemas kini

sudo apt-get install darkice

Darkice adalah sebahagian daripada Debian sehingga akan dipasang secara automatik, memerlukan beberapa saat.

Setelah selesai pada jenis prompt:

kegelapan

Ini akan memberikan mesej ralat dan tidak dijalankan, tetapi tidak mengapa. Dalam mesej itu akan tertera seperti:

Menggunakan fail konfigurasi: /etc/darkice.cfg

Anda perlu mengedit fail itu, jadi pada jenis permintaan:

sudo nano /etc/darkice.cfg

Edit fail yang dibuka menggunakan maklumat di halaman wiki. Radioreference ini, setelah selesai tekan CTRL-X untuk menutup, Y untuk menyimpan dan anda harus kembali ke permintaan Terminal. Selalu baik untuk reboot setelah memasang program baru jadi ketik:

but semula

dan apabila Pi telah dimulakan semula, buka semula tetingkap Terminal. Sekarang apabila anda menaip 'Darkice' ia akan berjalan tanpa sebarang mesej ralat. Sekiranya anda pergi ke https:// PERDAMAIAN SENDIRI: 8000 / (8000 atau mana sahaja port yang dilayan oleh pelayan icecast anda) anda harus mendapatkan halaman statistik yang mengatakan bahawa anda tersambung. Sekiranya tidak, ubah fail konfigurasi (baris input audio memberi saya beberapa masalah tetapi saya mencuba semua pilihan dan akhirnya menemui kad suara saya). Setelah Darkice berjalan dengan betul, teruskan ke langkah seterusnya.

Langkah 3: Tombol Aliran dan Tanda Udara

Tombol Aliran dan Tanda Udara
Tombol Aliran dan Tanda Udara

Saya melakukan banyak tutorial untuk ini kerana tidak ada yang khusus untuk memberikan tindakan pada butang di Python. Masalah terbesar yang saya hadapi ialah Darkice berjalan di latar belakang (dan dengan itu tidak membekukan skrip Python ketika mula berjalan) tetapi saya meminta rakan pengekod untuk datang dan membantu dan dia mencari cara untuk melakukannya dengan menulis helaian, sesuatu yang saya jangan sampai. Rupa-rupanya juga mungkin menggunakan '&' di suatu tempat dalam kod tetapi saya bukan pengekod dan apa yang saya ada berfungsi jadi saya memilih untuk tidak mengacaukannya. Setelah semuanya berfungsi, saya mula memasukkan semua kabel dari papan roti sehingga saya dibiarkan dengan persediaan berikut:

GPIO16 ke penyambung 3 titik luaran.

GPIO7 ke terminal positif array LED untuk tanda ON-Air.

GPIO25 ke suis klik.

Bahagian lain dari suis klik melekat pada penyambung 3 titik.

Terminal negatif array LED juga melekat pada penyambung 3 titik.

(Komponen lain pada rajah dijelaskan pada langkah seterusnya).

Skrip Python yang kami buat adalah seperti berikut (harap maklum bahawa ini adalah Instructable untuk keseluruhan projek, saya tidak cukup tahu untuk menjelaskan kodnya. Saya menyusunnya bersama dari pelbagai tutorial lain untuk fungsi yang berbeza):

import timeimport os import RPi. GPIO sebagai 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)

toggle = Salah

def start_darkice ():

print ('calling subprocess') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') cetak ('menyambung semula') def stop_darkice (): os.system ('skrin -X -S darkice berhenti')

Walaupun Betul:

buttonState = GPIO.input (buttonPin) if buttonState == True: if not toggle: toggle = True print ('menghidupkan darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

lain:

if toggle: toggle = Cetakan palsu ('stop darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) masa. tidur (1)

Fail py dilampirkan pada Instructible ini, anda boleh memuat turunnya dan ikuti Langkah 5 jika anda mahu.

Langkah 4: Butang Penutupan Selamat dan LED Aktiviti

Butang Tutup dan LED Aktiviti Selamat
Butang Tutup dan LED Aktiviti Selamat

Hanya untuk keselamatan dan memanjangkan umur Pi, saya menambah butang tutup selamat dan LED aktiviti luaran supaya orang tahu bila selamat mencabut kotak. Saya dengan mudah menjumpai tutorial untuk kedua-duanya, tetapi saya menyedari bahawa Raspberry Pi 3 B + mempunyai pin GPIO yang ditugaskan ACT LED sementara model sebelumnya tidak dan itu boleh menjadi masalah jika anda mempunyai Pi yang lebih tua.

Pasang terminal positif LED ke GPIO13 dan negatif ke GPIO26. Agar ACT LED berfungsi, anda perlu mengedit file config.txt di direktori BOOT. Anda boleh mendapatkannya di penyemak imbas Raspbian atau dengan:

sudo nano /usr/boot/config.txt

Semasa anda mengedit fail, cukup tambahkan baris berikut:

# Gunakan LED luaran sebagai SD ACT LED dtoverlay = pi3-act-led, gpio = 19

Kini LED luaran akan berkelip dengan aktiviti kad SD.

Pasang terminal suis tekan ke GPIO3 dan GPIO8. Saya dapati kod berikut dari tutorial dan berfungsi dengan baik:

masa import dari gpiozero import Butang dari subproses import check_call dari isyarat import jeda

penutupan def ():

check_call (['sudo', 'poweroff']))

shutdown_btn = Butang (2, hold_time = 1)

shutdown_btn.when_held = penutupan

jeda ()

masa. tidur (1)

Fail py ini juga dilampirkan untuk anda muat turun jika anda mahu. Butang saya harus ditahan selama 1 saat, jika anda ingin mengubahnya mengubah nilai 'hold-time ='.

Langkah 5: Jadikan Skrip Python Dijalankan Dari Boot

Sekali lagi, terdapat banyak tutorial mengenai perkara ini, saya menggunakan ini dari Dexter Industries dan mengikuti langkah pertama dengan menyunting fail rc.local.

sudo nano /etc/rc.local

Di sini anda perlu menambahkan jalur fail lengkap di hujung dokumen, lengkap dengan '&' di hujung setiap baris. Anda harus menambahkan satu baris untuk setiap fail:

sudo python / rumah / pi / NAMA ANDA, py &

sudo python /home/pi/YOURFILENAME2.py &

tepat sebelum talian

keluar 0

Huruf '&' di hujung setiap baris penting untuk memastikan gelung program.

Langkah 6: Bina Kotak

Bina Kotak
Bina Kotak
Bina Kotak
Bina Kotak
Bina Kotak
Bina Kotak

Ini terpulang kepada anda. Ia hanya perlu ukuran Pi, tetapi saya meletakkan pemampat dalam persediaan saya untuk memastikan aliran radio berada pada tahap yang cukup konsisten sehingga kotaknya sedikit lebih besar. Tambang saya mempunyai lubang di bahagian depan untuk tanda On-Air dan satu untuk Big Red Button, ditambah saya membuat sedikit kad arahan untuk DJ dan meletakkannya di bawah butang. Di sisi kotak terdapat lubang untuk menekan butang, ACT LED dan input audio, serta arahan bertulis untuk kakitangan bar mengenai cara menutup kotak dengan selamat.

Langkah 7: Pemasangan

Pemasangan
Pemasangan
Pemasangan
Pemasangan
Pemasangan
Pemasangan
Pemasangan
Pemasangan

Perbaiki semua komponen yang berasingan ke dalam kotak anda, ingat bahawa selalu baik untuk membiarkan peredaran udara di sekitar Pi untuk mengelakkan terlalu panas. Pasang kabel audio dari pengadun anda, tekan butang dan nikmati penyiaran!

Disyorkan: