Оглавление:
- Шаг 1. Настройте свой сервер
- Шаг 2: Настройте Pi и установите Darkice
- Шаг 3. Кнопка трансляции и знак в эфире
- Шаг 4: кнопка безопасного выключения и индикатор активности
- Шаг 5. Запустите скрипты Python из загрузки
- Шаг 6: соберите коробку
- Шаг 7: Установка
Видео: Однокнопочный радиопоток: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Я построил коробку для бара моего друга, внутри которого находится Raspberry Pi, и одним нажатием кнопки он передает звук на веб-сайт с помощью Darkice и Icecast, одновременно зажигая знак «В эфире». Я думал, что это то, чем люди уже занимались, но после долгих поисков я ничего не нашел и решил разобраться в этом для себя и сделать это Руководство.
Я использовал Raspberry Pi 3+ B, но, насколько я могу судить, он будет работать на любом Pi (возможно, номера контактов GPIO будут отличаться, хотя я не могу этого подтвердить). Я использовал пакет NOOBS для ОС и купил супер простую звуковую карту для входа. Я также добавил в коробку кнопку безопасного выключения и индикатор активности, чтобы защитить Pi.
Тебе понадобится:
Raspberry Pi
Пакет NOOBS на SD-карте
Переключатель включения / выключения (я использовал большую красную кнопку аварийного останова вроде этой, но это может быть любой тип переключателя со щелчком)
Нажать кнопку
1 светодиод
Вывеску «В эфире» я сделал сам с помощью светодиодной матрицы.
Паяльник и небольшая соединительная плата (я просто отрезал полоску от одной из них, которая у меня была)
Звуковая карта (я использовал такую супер-простую)
Шаг 1. Настройте свой сервер
Что касается самой радиостанции, которую мы используем, я не делал эту часть, так как у меня не было доступа к серверу, и мой друг сделал это, но на веб-сайте Icecast есть базовое руководство по настройке, и мне удалось получить вначале он работал с Pi, просто чтобы посмотреть, как оно пойдет. В качестве альтернативы вы можете получить учетную запись на internet-radio.com, и она будет работать с Darkice.
Шаг 2: Настройте Pi и установите Darkice
Получите SD-карту с пакетом NOOBS. После того, как вы открыли Raspbian и установили все обновления, откройте окно терминала и введите:
sudo apt-get update
sudo apt-get install darkice
Darkice является частью Debian, поэтому он установится автоматически, это займет несколько минут.
Как только он будет завершен, введите подсказку:
Darkice
Он выдаст сообщение об ошибке и не запустится, но это нормально. В сообщении будет сказано что-то вроде:
Использование файла конфигурации: /etc/darkice.cfg
Вам нужно отредактировать этот файл, поэтому в командной строке введите:
sudo nano /etc/darkice.cfg
Отредактируйте открывшийся файл, используя информацию на этой странице wiki. Radioreference, когда вы закончите, нажмите CTRL-X, чтобы закрыть, Y, чтобы сохранить, и вы должны вернуться в окно терминала. Всегда полезно перезагрузиться после установки новой программы, поэтому введите:
перезагружать
и когда Pi перезагрузится, снова откройте окно терминала. Теперь, когда вы набираете «Darkice», он должен работать без сообщений об ошибках. Если вы перейдете по адресу https:// YOURSERVERADDRESS: 8000 / (8000 или любой другой порт, к которому назначен ваш сервер icecast), вы должны получить страницу статистики, сообщающую, что вы подключены. Если нет, настройте файл конфигурации (строка аудиовхода вызвала у меня некоторые проблемы, но я перепробовал все варианты и в конце концов нашел свою звуковую карту). Как только Darkice заработает правильно, переходите к следующему шагу.
Шаг 3. Кнопка трансляции и знак в эфире
Я сделал кучу разных руководств по этому поводу, так как в Python не было конкретного для назначения действия кнопке. Самой большой проблемой, с которой я столкнулся, было заставить Darkice работать в фоновом режиме (и, таким образом, не замораживать скрипт Python, когда он начал работать), но я попросил друга-программиста прийти и помочь, и он придумал, как это сделать, записывая листы, что я не получить. По-видимому, это также можно было бы использовать где-нибудь в коде, используя '&', но я не кодировщик, и то, что у меня есть, работает, поэтому я решил не связываться с этим. Как только у меня все заработало, я начал сокращать все кабели от макета, пока не остался со следующей настройкой:
GPIO16 к внешнему 3-точечному разъему.
GPIO7 к положительному выводу светодиодной матрицы для знака ON-Air.
GPIO25 к переключателю.
Другая сторона переключателя присоединяется к трехточечному разъему.
Отрицательный вывод светодиодной матрицы также подключается к трехточечному разъему.
(Другие компоненты на схеме объяснены на следующем шаге).
Скрипт Python, с которым мы закончили, выглядит следующим образом (обратите внимание, что это инструкция для всего проекта, я действительно не знаю достаточно, чтобы объяснить код. Я собрал его из различных других руководств для разных функций):
import timeimport os import RPi. GPIO as 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 = Ложь
def start_darkice ():
print ('вызывающий подпроцесс') #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 ('экран -X -S darkice выйти')
в то время как True:
buttonState = GPIO.input (buttonPin) if buttonState == True: если не toggle: toggle = True print ('включение darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)
еще:
if toggle: toggle = False print ('остановка darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)
Py-файл прикреплен к этому Instructible, вы можете просто загрузить его и, если хотите, выполнить шаг 5.
Шаг 4: кнопка безопасного выключения и индикатор активности
Просто для безопасности и для продления срока службы Pi я добавил кнопку безопасного выключения и светодиодный индикатор внешней активности, чтобы люди знали, когда можно безопасно отключить коробку. Я легко нашел учебные пособия для обоих из них, но я заметил, что Raspberry Pi 3 B + имеет светодиод ACT, назначенный для вывода GPIO, в то время как более ранние модели этого не делают, и это может быть проблематичным, если у вас более старый Pi.
Подключите положительный вывод светодиода к GPIO13, а отрицательный к GPIO26. Чтобы светодиод ACT работал, вам необходимо отредактировать файл config.txt в каталоге BOOT. Вы можете найти это в браузере Raspbian или с помощью:
судо нано /usr/boot/config.txt
Когда вы редактируете файл, просто добавьте следующие строки:
# Использовать внешний светодиод как SD ACT LED dtoverlay = pi3-act-led, gpio = 19
Теперь внешний светодиод будет мигать при активности SD-карты.
Подключите клеммы кнопочного переключателя к GPIO3 и GPIO8. Я нашел следующий код из учебника, и он отлично работает:
import timefrom gpiozero import Button from subprocess import check_call from signal import pause
def shutdown ():
check_call (['sudo', 'poweroff'])
shutdown_btn = Кнопка (2, hold_time = 1)
shutdown_btn.when_held = выключение
Пауза()
время сна (1)
Этот файл py также прилагается для загрузки, если вы хотите. Моя кнопка должна удерживаться в течение 1 секунды, если вы хотите изменить это изменение значения 'hold-time ='.
Шаг 5. Запустите скрипты Python из загрузки
Опять же, есть много руководств по этой теме, я использовал это от Dexter Industries и выполнил первый шаг, отредактировав файл rc.local.
sudo nano /etc/rc.local
Здесь вам нужно добавить полный путь к файлу в конец документа с символом '&' в конце каждой строки. Вы должны добавить по одной строке для каждого файла:
sudo python / home / pi / ИМЯ ФАЙЛА, py &
sudo python /home/pi/YOURFILENAME2.py &
прямо перед линией
выход 0
Знак «&» в конце каждой строки важен для обеспечения цикла программы.
Шаг 6: соберите коробку
Это полностью зависит от вас. На самом деле он должен быть только размером с Pi, но я включил компрессор в свою настройку, чтобы поддерживать стабильный уровень радиопотока, поэтому коробка немного больше. У меня есть отверстие спереди для вывески «В эфире» и одно для Большой красной кнопки, плюс я сделал небольшую карточку с инструкциями для ди-джеев и вложил ее под кнопкой. На боковой стороне коробки есть отверстие для кнопки, светодиода ACT и аудиовхода, а также инструкции для персонала бара о том, как безопасно выключить коробку.
Шаг 7: Установка
Закрепите все отдельные компоненты в коробке, помня, что всегда хорошо, чтобы вокруг Pi была циркуляция воздуха, чтобы предотвратить перегрев. Подключите аудиокабели к микшеру, нажмите кнопку и наслаждайтесь трансляцией!
Рекомендуемые:
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)
Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Как разобрать компьютер с помощью простых шагов и изображений: 13 шагов (с изображениями)
Как разобрать компьютер с помощью простых шагов и изображений: это инструкция о том, как разобрать компьютер. Большинство основных компонентов имеют модульную конструкцию и легко снимаются. Однако важно, чтобы вы были организованы по этому поводу. Это поможет уберечь вас от потери деталей, а также при повторной сборке
Проектирование печатной платы с помощью простых и легких шагов: 30 шагов (с изображениями)
Проектирование печатных плат с помощью простых и легких шагов: ПРИВЕТ, ДРУЗЬЯ Это очень полезное и легкое руководство для тех, кто хочет изучить дизайн печатных плат. Давайте начнем