สารบัญ:
- ขั้นตอนที่ 1: ตั้งค่าเซิร์ฟเวอร์ของคุณ
- ขั้นตอนที่ 2: ตั้งค่า Pi และติดตั้ง Darkice
- ขั้นตอนที่ 3: ปุ่มสตรีมและสัญญาณออนแอร์
- ขั้นตอนที่ 4: ปุ่มปิดเครื่องอย่างปลอดภัยและ LED กิจกรรม
- ขั้นตอนที่ 5: ทำให้ Python Scripts รันจาก Boot
- ขั้นตอนที่ 6: สร้างกล่อง
- ขั้นตอนที่ 7: การติดตั้ง
วีดีโอ: กล่องสตรีมวิทยุแบบปุ่มเดียว: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ฉันสร้างกล่องสำหรับบาร์ของเพื่อนของฉันที่มี 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 กิจกรรม
เพื่อความปลอดภัยและเพื่อยืดอายุของ 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 เพื่อป้องกันความร้อนสูงเกินไปเสมอ ต่อสายสัญญาณเสียงจากมิกเซอร์ของคุณ กดปุ่มและเพลิดเพลินกับการแพร่ภาพ!
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-