Mục lục:

Hộp phát sóng radio một nút: 7 bước (có hình ảnh)
Hộp phát sóng radio một nút: 7 bước (có hình ảnh)

Video: Hộp phát sóng radio một nút: 7 bước (có hình ảnh)

Video: Hộp phát sóng radio một nút: 7 bước (có hình ảnh)
Video: Dữ liệu được truyền qua không khí như thế nào? Giải thích siêu đơn giản 2024, Tháng Chín
Anonim
Hộp phát sóng radio một nút
Hộp phát sóng radio một nút

Tôi đã tạo một chiếc hộp cho quầy bar của bạn mình có Raspberry Pi bên trong và chỉ cần nhấn một nút, nó sẽ truyền âm thanh đến một trang web bằng Darkice và Icecast, đồng thời thắp sáng một dấu hiệu 'On-Air'. Tôi nghĩ rằng đây là điều mà mọi người đã làm nhưng sau khi tìm kiếm rộng rãi, tôi không tìm thấy gì cả và quyết định tự tìm hiểu và làm cho cuốn sách này có thể hướng dẫn được.

Tôi đã sử dụng Raspberry Pi 3+ B nhưng theo như tôi có thể nói thì nó sẽ hoạt động trên bất kỳ Pi nào (có lẽ số pin GPIO sẽ khác nhau, mặc dù vậy tôi không thể chứng thực điều đó). Tôi đã sử dụng gói NOOBS cho HĐH và mua một soundcard siêu đơn giản cho đầu vào. Tôi cũng đã thêm nút tắt an toàn và đèn LED hoạt động vào hộp để bảo vệ Pi.

Bạn sẽ cần:

Raspberry Pi

Gói NOOBS trên thẻ SD

Công tắc Bật / Tắt (Tôi đã sử dụng một nút dừng khẩn cấp lớn màu đỏ như thế này, nhưng nó có thể là bất kỳ loại công tắc 'nhấp' nào)

Nút ấn

1 đèn LED

Một biển báo 'Trực tuyến', tôi đã tự làm bằng một dãy đèn LED

Sắt hàn và bảng kết nối nhỏ (Tôi chỉ cắt một dải ra khỏi một trong những thứ này mà tôi có xung quanh)

Soundcard (Tôi đã sử dụng một cái siêu đơn giản như thế này)

Bước 1: Thiết lập máy chủ của bạn

Đối với đài phát thanh thực tế mà chúng tôi đang sử dụng, tôi đã không thực hiện phần này vì tôi không có quyền truy cập vào máy chủ và bạn của tôi đã làm điều đó, nhưng có một hướng dẫn thiết lập cơ bản trên trang web Icecast và tôi đã quản lý được nó hoạt động từ số Pi ban đầu chỉ để xem nó diễn ra như thế nào. Ngoài ra, bạn có thể có một tài khoản tại internet-radio.com và nó hoạt động với Darkice.

Bước 2: Thiết lập Pi và cài đặt Darkice

Nhận Thẻ SD với gói NOOBS. Khi bạn đã mở Raspbian và cài đặt tất cả các bản cập nhật, hãy mở cửa sổ Terminal và nhập:

sudo apt-get cập nhật

sudo apt-get install darkice

Darkice là một phần của Debian nên nó sẽ tự động cài đặt, mất vài phút.

Sau khi hoàn thành, hãy nhập lời nhắc:

viên đá đen

Nó sẽ đưa ra thông báo lỗi và không chạy, nhưng không sao. Trong tin nhắn, nó sẽ nói một cái gì đó như:

Sử dụng tệp cấu hình: /etc/darkice.cfg

Bạn cần chỉnh sửa tệp đó, vì vậy, hãy nhập lời nhắc:

sudo nano /etc/darkice.cfg

Chỉnh sửa tệp đang mở bằng cách sử dụng thông tin trên trang wiki. Radioreference này, khi bạn hoàn tất, hãy nhấn CTRL-X để đóng, Y để lưu và bạn nên quay lại lời nhắc Đầu cuối. Khởi động lại luôn tốt sau khi cài đặt một chương trình mới, vì vậy hãy nhập:

khởi động lại

và khi Pi đã khởi động lại, hãy mở lại cửa sổ Terminal. Bây giờ khi bạn gõ 'Darkice', nó sẽ chạy mà không có bất kỳ thông báo lỗi nào. Nếu bạn truy cập https:// YOURSERVERADDRESS: 8000 / (8000 hoặc bất kỳ cổng nào mà máy chủ icecast của bạn được chỉ định), bạn sẽ nhận được một trang thống kê cho biết bạn đã kết nối. Nếu không, hãy tinh chỉnh tệp cấu hình (dòng đầu vào âm thanh đã cho tôi một số vấn đề nhưng tôi đã thử tất cả các tùy chọn và cuối cùng tìm thấy thẻ âm thanh của mình). Khi Darkice đang hoạt động tốt, hãy chuyển sang bước tiếp theo.

Bước 3: Nút phát trực tiếp và Dấu hiệu trực tuyến

Nút phát trực tuyến và dấu hiệu trực tuyến
Nút phát trực tuyến và dấu hiệu trực tuyến

Tôi đã thực hiện một loạt các hướng dẫn khác nhau cho việc này vì không có hướng dẫn cụ thể nào để gán một hành động cho một nút trong Python. Vấn đề lớn nhất mà tôi phải đối mặt là khiến Darkice chạy trong nền (và do đó không đóng băng tập lệnh Python khi nó bắt đầu chạy) nhưng tôi đã nhờ một người bạn lập trình viên đến giúp và anh ấy đã tìm ra cách để viết sheet, điều mà tôi không nhận được. Rõ ràng là cũng có thể sử dụng '&' ở đâu đó trong mã nhưng tôi không phải là lập trình viên và những gì tôi có hoạt động nên tôi đã chọn không gây rối với nó. Khi tôi đã có mọi thứ hoạt động, tôi bắt đầu tuốt tất cả các cáp từ breadboard cho đến khi tôi còn lại thiết lập sau:

GPIO16 với đầu nối 3 điểm bên ngoài.

GPIO7 đến cực dương của dãy đèn LED cho dấu hiệu ON-Air.

GPIO25 vào nút chuyển.

Mặt còn lại của công tắc bấm gắn vào đầu nối 3 điểm.

Đầu cực âm của dãy đèn LED cũng gắn vào đầu nối 3 điểm.

(Các thành phần khác trên sơ đồ được giải thích trong bước tiếp theo).

Tập lệnh Python mà chúng tôi đã kết thúc như sau (xin lưu ý rằng đây là một Tập lệnh có thể hướng dẫn cho toàn bộ dự án, tôi thực sự không biết đủ để giải thích mã. Tôi đã ghép nó lại với nhau từ nhiều hướng dẫn khác cho các chức năng khác nhau):

nhập thời gian nhập hệ điều hành nhập RPi. GPIO dưới dạng GPIO GPIO.setwarnings (Sai) 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 = Sai

def start_darkice ():

print ('call subprocess') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('resuming') def stop_darkice (): os.system ('screen -X -S darkice thoát')

trong khi Đúng:

buttonState = GPIO.input (buttonPin) if buttonState == True: if not toggle: toggle = True print ('bật darkice') start_darkice () #print ('NÚT STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

khác:

if toggle: toggle = False print ('stop darkice') stop_darkice () #print ('NÚT STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)

Tệp py được đính kèm với Hướng dẫn này, bạn chỉ cần tải xuống và thực hiện theo Bước 5 nếu muốn.

Bước 4: Nút tắt an toàn và đèn LED hoạt động

Nút tắt an toàn và đèn LED hoạt động
Nút tắt an toàn và đèn LED hoạt động

Chỉ vì sự an toàn và để kéo dài tuổi thọ của Pi, tôi đã thêm nút tắt an toàn và đèn LED hoạt động bên ngoài để mọi người biết khi nào có thể rút phích cắm hộp an toàn. Tôi dễ dàng tìm thấy hướng dẫn cho cả hai điều này, nhưng tôi nhận thấy rằng Raspberry Pi 3 B + có chân GPIO được gán ACT LED trong khi các mẫu trước đó không có và điều đó có thể có vấn đề nếu bạn có Pi cũ hơn.

Gắn đầu cực dương của đèn LED vào GPIO13 và cực âm với GPIO26. Để đèn LED ACT hoạt động, bạn cần chỉnh sửa tệp config.txt trong thư mục BOOT. Bạn có thể tìm thấy điều này trong trình duyệt Raspbian hoặc bằng:

sudo nano /usr/boot/config.txt

Khi bạn đang chỉnh sửa tệp, chỉ cần thêm các dòng sau:

# Sử dụng đèn LED bên ngoài làm dtoverlay SD ACT LED = pi3-action-led, gpio = 19

Giờ đây, đèn LED bên ngoài sẽ nhấp nháy với hoạt động của thẻ SD.

Gắn các đầu cuối công tắc đẩy vào GPIO3 và GPIO8. Tôi đã tìm thấy mã sau từ một hướng dẫn và nó hoạt động tốt:

nhập thời gian từ gpiozero Nút nhập từ quy trình con nhập check_call từ tạm dừng nhập tín hiệu

def shutdown ():

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

shutdown_btn = Nút (2, hold_time = 1)

shutdown_btn.when_held = tắt máy

tạm ngừng()

time.sleep (1)

File py này cũng được đính kèm để bạn tải về nếu muốn. Nút của tôi phải được giữ trong 1 giây, nếu bạn muốn thay đổi, hãy thay đổi giá trị 'hold-time ='.

Bước 5: Làm cho tập lệnh Python chạy từ khởi động

Một lần nữa, có rất nhiều hướng dẫn về chủ đề này, tôi đã sử dụng hướng dẫn này từ Dexter Industries và làm theo bước một bằng cách chỉnh sửa tệp rc.local.

sudo nano /etc/rc.local

Tại đây, bạn cần thêm đường dẫn tệp hoàn chỉnh vào cuối tài liệu, hoàn thành bằng dấu '&' ở cuối mỗi dòng. Bạn nên thêm một dòng cho mỗi tệp:

sudo python / home / pi / YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

ngay trước dòng

thoát 0

Dấu '&' ở cuối mỗi dòng rất quan trọng để đảm bảo chương trình lặp lại.

Bước 6: Xây dựng hộp

Xây dựng hộp
Xây dựng hộp
Xây dựng hộp
Xây dựng hộp
Xây dựng hộp
Xây dựng hộp

Điều này là hoàn toàn tùy thuộc vào bạn. Nó thực sự chỉ cần bằng kích thước của Pi, nhưng tôi đã đặt một máy nén trong thiết lập của mình để giữ luồng radio ở mức khá nhất quán nên hộp lớn hơn một chút. Của tôi có một lỗ ở mặt trước cho ký hiệu On-Air và một lỗ cho Nút lớn màu đỏ, ngoài ra tôi đã tạo một thẻ hướng dẫn nhỏ cho các DJ và khảm nó bên dưới nút. Ở mặt bên của hộp có một lỗ cho nút ấn, đèn LED ACT và đầu vào âm thanh, cùng với hướng dẫn khảm cho nhân viên quầy bar về cách tắt hộp an toàn.

Bước 7: Cài đặt

Cài đặt
Cài đặt
Cài đặt
Cài đặt
Cài đặt
Cài đặt
Cài đặt
Cài đặt

Cố định tất cả các thành phần riêng biệt vào hộp của bạn, hãy nhớ rằng luôn tốt để cho phép một số không khí lưu thông xung quanh Pi để tránh quá nhiệt. Gắn cáp âm thanh từ máy trộn của bạn, nhấn nút và thưởng thức chương trình phát sóng!

Đề xuất: