สารบัญ:

กล่องสตรีมวิทยุแบบปุ่มเดียว: 7 ขั้นตอน (พร้อมรูปภาพ)
กล่องสตรีมวิทยุแบบปุ่มเดียว: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: กล่องสตรีมวิทยุแบบปุ่มเดียว: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: กล่องสตรีมวิทยุแบบปุ่มเดียว: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: แด๊ดดี้ทุบจอทีวี 43 นิ้วแตก❗️ เกิดอะไรขึ้น⁉️ 📺 2024, กันยายน
Anonim
กล่องสตรีมมิ่งวิทยุปุ่มเดียว
กล่องสตรีมมิ่งวิทยุปุ่มเดียว

ฉันสร้างกล่องสำหรับบาร์ของเพื่อนของฉันที่มี Raspberry Pi อยู่ข้างใน และด้วยการกดปุ่มเพียงปุ่มเดียว มันจะสตรีมเสียงไปยังเว็บไซต์โดยใช้ Darkice และ Icecast ในขณะที่จุดไฟสัญญาณ 'On-Air' พร้อมกัน ฉันคิดว่านี่เป็นสิ่งที่ผู้คนกำลังทำอยู่แล้ว แต่หลังจากการค้นหาอย่างละเอียด ฉันไม่พบอะไรเลยและตัดสินใจที่จะคิดออกเองและทำให้คำแนะนำนี้

ฉันใช้ Raspberry Pi 3+ B แต่เท่าที่ฉันสามารถบอกได้ว่ามันใช้ได้กับ Pi ใด ๆ (บางทีหมายเลขพิน GPIO จะแตกต่างกันไป แต่ฉันไม่สามารถยืนยันได้) ฉันใช้แพ็คเกจ NOOBS สำหรับระบบปฏิบัติการและซื้อการ์ดเสียงที่ใช้งานง่ายสุด ๆ สำหรับอินพุต ฉันยังเพิ่มปุ่มปิดเครื่องอย่างปลอดภัยและ LED กิจกรรมลงในกล่องเพื่อปกป้อง Pi

คุณจะต้องการ:

ราสเบอร์รี่ปี่

แพ็คเกจ NOOBS บนการ์ด SD

สวิตช์เปิด/ปิด (ฉันใช้ปุ่มหยุดฉุกเฉินสีแดงขนาดใหญ่แบบนี้ แต่อาจเป็นสวิตช์ 'คลิก' อะไรก็ได้)

ปุ่มกด

1 LED

ป้าย 'On-Air' ฉันทำขึ้นเองด้วย LED array

หัวแร้งและคอนเนคเตอร์บอร์ดขนาดเล็ก (ฉันเพิ่งตัดหนึ่งในสิ่งเหล่านี้ที่ฉันมี)

การ์ดเสียง (ฉันใช้อันที่ง่ายสุด ๆ แบบนี้)

ขั้นตอนที่ 1: ตั้งค่าเซิร์ฟเวอร์ของคุณ

สำหรับสถานีวิทยุจริงที่เราใช้อยู่ ฉันไม่ได้ทำส่วนนี้เพราะฉันไม่มีสิทธิ์เข้าถึงเซิร์ฟเวอร์และเพื่อนของฉันทำ แต่มีคู่มือการตั้งค่าพื้นฐานบนเว็บไซต์ Icecast และฉันก็ทำได้ มันทำงานจาก Pi ในตอนแรกเพื่อดูว่ามันไปอย่างไร หรือคุณสามารถรับบัญชีได้ที่ internet-radio.com และใช้งานได้กับ Darkice

ขั้นตอนที่ 2: ตั้งค่า Pi และติดตั้ง Darkice

รับการ์ด SD พร้อมแพ็คเกจ NOOBS เมื่อคุณเปิด Raspbian และติดตั้งการอัปเดตทั้งหมดแล้ว ให้เปิดหน้าต่าง Terminal แล้วพิมพ์:

sudo apt-get update

sudo apt-get ติดตั้ง darkice

Darkice เป็นส่วนหนึ่งของ Debian ดังนั้นมันจะติดตั้งโดยอัตโนมัติ ใช้เวลาสักครู่

เมื่อเสร็จสิ้นที่พรอมต์ประเภท:

darkice

มันจะให้ข้อความแสดงข้อผิดพลาดและไม่ทำงาน แต่ก็ไม่เป็นไร ในข้อความจะมีข้อความประมาณว่า

ใช้ไฟล์ปรับแต่ง: /etc/darkice.cfg

คุณต้องแก้ไขไฟล์นั้น ดังนั้นเมื่อพิมพ์ข้อความแจ้ง:

sudo nano /etc/darkice.cfg

แก้ไขไฟล์ที่เปิดขึ้นโดยใช้ข้อมูลในหน้า wiki. Radioreference นี้ เมื่อคุณทำเสร็จแล้ว ให้กด CTRL-X เพื่อปิด Y เพื่อบันทึก และคุณควรกลับไปที่พร้อมท์ Terminal เป็นการดีเสมอที่จะรีบูตหลังจากติดตั้งโปรแกรมใหม่ ดังนั้นให้พิมพ์:

รีบูต

และเมื่อ Pi รีสตาร์ทแล้ว ให้เปิดหน้าต่าง Terminal อีกครั้ง ตอนนี้เมื่อคุณพิมพ์ 'Darkice' มันควรจะทำงานโดยไม่มีข้อความแสดงข้อผิดพลาด หากคุณไปที่ https://YOURSERVERADDRESS:8000/ (8000 หรือพอร์ตใดก็ตามที่เซิร์ฟเวอร์ icecast ของคุณได้รับมอบหมาย) คุณควรได้รับหน้าสถิติที่แจ้งว่าคุณเชื่อมต่อแล้ว หากไม่ ให้ปรับแต่งไฟล์ปรับแต่ง (สายสัญญาณเสียงเข้าทำให้ฉันมีปัญหา แต่ฉันลองใช้ตัวเลือกทั้งหมดและในที่สุดก็พบการ์ดเสียงของฉัน) เมื่อ Darkice ทำงานอย่างถูกต้องแล้ว ให้ไปยังขั้นตอนถัดไป

ขั้นตอนที่ 3: ปุ่มสตรีมและสัญญาณออนแอร์

ปุ่มสตรีมและป้ายออนแอร์
ปุ่มสตรีมและป้ายออนแอร์

ฉันได้ทำแบบฝึกหัดต่างๆ มากมายสำหรับสิ่งนี้ เนื่องจากไม่มีบทเรียนเฉพาะสำหรับกำหนดการดำเนินการให้กับปุ่มใน Python ปัญหาที่ใหญ่ที่สุดที่ฉันพบคือการทำให้ Darkice ทำงานในพื้นหลัง (และไม่ทำให้สคริปต์ Python หยุดทำงานเมื่อเริ่มทำงาน) แต่ฉันขอให้เพื่อน coder มาช่วยและเขาก็คิดหาวิธีเขียนแผ่นงาน บางอย่างที่ฉัน ไม่ได้รับ เห็นได้ชัดว่ามันอาจเป็นไปได้โดยใช้ '&' ที่ใดที่หนึ่งในโค้ด แต่ฉันไม่ใช่ coder และสิ่งที่ฉันมีทำงานดังนั้นฉันจึงเลือกที่จะไม่ยุ่งกับมัน เมื่อฉันทำงานทุกอย่างได้แล้ว ฉันก็เริ่มแกะสายเคเบิลทั้งหมดออกจากเขียงหั่นขนมจนกระทั่งฉันเหลือการตั้งค่าต่อไปนี้:

GPIO16 กับขั้วต่อ 3 จุดภายนอก

GPIO7 ไปยังขั้วบวกของอาร์เรย์ LED สำหรับสัญญาณ ON-Air

GPIO25 ไปที่สวิตช์คลิก

อีกด้านของสวิตช์คลิกติดกับขั้วต่อ 3 จุด

ขั้วลบของอาร์เรย์ LED ยังยึดติดกับขั้วต่อ 3 จุด

(ส่วนประกอบอื่นๆ ในไดอะแกรมจะอธิบายในขั้นตอนต่อไป)

สคริปต์ Python ที่เราลงเอยด้วยมีดังนี้ (โปรดทราบว่านี่เป็นคำแนะนำสำหรับโครงการทั้งหมด ฉันไม่รู้มากพอที่จะอธิบายรหัสจริง ๆ ฉันรวมมันเข้าด้วยกันจากบทช่วยสอนอื่น ๆ สำหรับฟังก์ชั่นที่แตกต่างกัน):

นำเข้า timeimport os นำเข้า RPi. GPIO เป็น 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)

สลับ = เท็จ

def start_darkice():

print('calling subprocess') #result = subprocess.call('sh screen -S darkice -d -m darkice') os.system('screen -S darkice -d -m darkice') พิมพ์ ('resuming') def stop_darkice(): os.system('screen -X -S darkice เลิก')

ในขณะที่จริง:

buttonState = GPIO.input(buttonPin) ถ้า buttonState == True: ถ้าไม่สลับ: toggle = True print('turning on darkice') start_darkice() #print ('BUTTON STATE TRUE') GPIO.output(ledPin, GPIO. HIGH)

อื่น:

ถ้าสลับ: สลับ = พิมพ์เท็จ ('หยุด darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)

ไฟล์ py แนบมากับคำแนะนำนี้ คุณสามารถดาวน์โหลดและทำตามขั้นตอนที่ 5 ได้หากต้องการ

ขั้นตอนที่ 4: ปุ่มปิดเครื่องอย่างปลอดภัยและ LED กิจกรรม

ปุ่มปิดเครื่องอย่างปลอดภัยและ LED กิจกรรม
ปุ่มปิดเครื่องอย่างปลอดภัยและ LED กิจกรรม

เพื่อความปลอดภัยและเพื่อยืดอายุของ Pi I ได้เพิ่มปุ่มปิดเครื่องอย่างปลอดภัยและไฟ LED แสดงกิจกรรมภายนอก เพื่อให้ผู้คนทราบเมื่อถอดปลั๊กออกอย่างปลอดภัย ฉันพบบทช่วยสอนสำหรับทั้งสองสิ่งนี้ได้ง่าย แต่ฉันสังเกตเห็นว่า Raspberry Pi 3 B+ มี ACT LED ที่กำหนดพิน GPIO ในขณะที่รุ่นก่อนหน้าไม่พบและอาจมีปัญหาหากคุณมี Pi รุ่นเก่า

ต่อขั้วบวกของ LED เข้ากับ GPIO13 และขั้วลบกับ GPIO26 เพื่อให้ ACT LED ทำงานได้ คุณต้องแก้ไขไฟล์ config.txt ในไดเร็กทอรี BOOT คุณสามารถค้นหาได้ในเบราว์เซอร์ Raspbian หรือด้วย:

sudo nano /usr/boot/config.txt

เมื่อคุณแก้ไขไฟล์ ให้เพิ่มบรรทัดต่อไปนี้:

# ใช้ LED ภายนอกเป็น SD ACT LED dtoverlay=pi3-act-led, gpio=19

ตอนนี้ไฟ LED ภายนอกจะกะพริบพร้อมกับกิจกรรมการ์ด SD

ต่อขั้วสวิตช์กดเข้ากับ GPIO3 และ GPIO8 ฉันพบรหัสต่อไปนี้จากบทช่วยสอนและใช้งานได้ดี:

นำเข้าเวลาจากปุ่มนำเข้า gpiozero จากกระบวนการย่อย นำเข้า check_call จากสัญญาณนำเข้าหยุดชั่วคราว

def ปิด ():

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

shutdown_btn = ปุ่ม (2, hold_time = 1)

shutdown_btn.when_held = ปิดระบบ

หยุดชั่วคราว()

เวลานอน(1)

ไฟล์ py นี้ถูกแนบมาให้คุณดาวน์โหลดด้วยหากต้องการ ต้องกดปุ่มของฉันค้างไว้ 1 วินาที หากคุณต้องการเปลี่ยนค่านั้นให้เปลี่ยนค่า 'hold-time='

ขั้นตอนที่ 5: ทำให้ Python Scripts รันจาก Boot

อีกครั้ง มีบทช่วยสอนมากมายในหัวข้อนี้ ฉันใช้บทช่วยสอนนี้จาก Dexter Industries และทำตามขั้นตอนที่หนึ่งโดยแก้ไขไฟล์ rc.local

sudo nano /etc/rc.local

ในที่นี้ คุณต้องเพิ่มพาธไฟล์ที่สมบูรณ์ที่ส่วนท้ายของเอกสาร พร้อมด้วย '&' ที่ท้ายแต่ละบรรทัด คุณควรเพิ่มหนึ่งบรรทัดสำหรับแต่ละไฟล์:

sudo python /home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

ก่อนถึงเส้น

ทางออก 0

'&' ที่ส่วนท้ายของแต่ละบรรทัดมีความสำคัญเพื่อให้แน่ใจว่าโปรแกรมจะวนซ้ำ

ขั้นตอนที่ 6: สร้างกล่อง

สร้างกล่อง
สร้างกล่อง
สร้างกล่อง
สร้างกล่อง
สร้างกล่อง
สร้างกล่อง

ทั้งหมดนี้ขึ้นอยู่กับคุณ ต้องมีขนาดเท่ากับ Pi เท่านั้น แต่ฉันใส่คอมเพรสเซอร์ในการตั้งค่าของฉันเพื่อให้สตรีมวิทยุอยู่ในระดับที่ค่อนข้างสม่ำเสมอดังนั้นกล่องจึงใหญ่ขึ้นเล็กน้อย ของฉันมีรูที่ด้านหน้าสำหรับป้าย On-Air และอีกช่องสำหรับปุ่ม Big Red รวมถึงฉันทำการ์ดคำแนะนำเล็กน้อยสำหรับดีเจและฝังไว้ใต้ปุ่ม ด้านข้างกล่องมีรูสำหรับปุ่มกด ไฟ LED ACT และอินพุตเสียง พร้อมคำแนะนำฝังสำหรับเจ้าหน้าที่บาร์เกี่ยวกับวิธีการปิดกล่องอย่างปลอดภัย

ขั้นตอนที่ 7: การติดตั้ง

การติดตั้ง
การติดตั้ง
การติดตั้ง
การติดตั้ง
การติดตั้ง
การติดตั้ง
การติดตั้ง
การติดตั้ง

ติดตั้งส่วนประกอบที่แยกจากกันทั้งหมดลงในกล่องของคุณ โดยคำนึงว่าควรปล่อยให้อากาศไหลเวียนรอบๆ Pi เพื่อป้องกันความร้อนสูงเกินไปเสมอ ต่อสายสัญญาณเสียงจากมิกเซอร์ของคุณ กดปุ่มและเพลิดเพลินกับการแพร่ภาพ!

แนะนำ: