Съдържание:
- Стъпка 1: Настройте вашия сървър
- Стъпка 2: Настройте Pi и инсталирайте Darkice
- Стъпка 3: Бутон за предаване и Ефирен знак
- Стъпка 4: Бутон за безопасно изключване и светодиод за активност
- Стъпка 5: Накарайте скриптовете на Python да се изпълняват от зареждане
- Стъпка 6: Изградете кутията
- Стъпка 7: Инсталиране
Видео: Радио стрийминг кутия с един бутон: 7 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Изградих кутия за бара на моя приятел, който има Raspberry Pi вътре и с натискането на един бутон той предава аудио към уебсайт, използвайки Darkice и Icecast, като едновременно свети знак „On-Air“. Мислех, че това е нещо, което хората вече правят, но след задълбочено търсене не намерих нищо и реших да го разбера сам и да направя този Instructable.
Използвах Raspberry Pi 3+ B, но доколкото мога да кажа, че ще работи на всеки Pi (може би номерата на пиновете на GPIO ще варират, но не мога да потвърдя това). Използвах пакета NOOBS за операционната система и купих супер проста звукова карта за въвеждане. Също така добавих бутон за безопасно изключване и светодиод за активност към кутията, за да защитя Pi.
Ще имаш нужда:
Малина Пи
Пакет NOOBS на SD карта
Превключвател за включване/изключване (използвах голям червен бутон за аварийно спиране по този начин, но може да бъде всякакъв вид превключвател за щракване)
Натисни бутона
1 светодиод
Знак „В ефир“направих сам с LED масив
Поялник и малка съединителна платка (току-що отрязах една лента от тези, които имах наоколо)
Звукова карта (използвах супер проста такава)
Стъпка 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
Редактирайте файла, който се отваря, като използвате информацията в тази уики. Радиореферентната страница, когато приключите, натиснете CTRL-X, за да затворите, Y, за да запишете, и трябва да се върнете към подканата на терминала. Винаги е добре да рестартирате след инсталиране на нова програма, така че въведете:
рестартирайте
и когато Pi се рестартира, отворете отново терминален прозорец. Сега, когато въведете „Darkice“, той трябва да работи без никакви съобщения за грешка. Ако отидете на https:// YOURSERVERADDRESS: 8000/(8000 или на който и да е порт, към който е присвоен вашият сървър за лед -каст), трябва да получите страница със статистически данни, че сте свързани. Ако не, ощипнете конфигурационния файл (реда за въвеждане на аудио ми създаде някои проблеми, но опитах всички опции и в крайна сметка намерих звуковата си карта). След като Darkice работи правилно, преминете към следващата стъпка.
Стъпка 3: Бутон за предаване и Ефирен знак
Направих куп различни уроци за това, тъй като нямаше конкретен за присвояване на действие на бутон в Python. Най -големият проблем, с който се сблъсках, беше да накарам Darkice да работи във фонов режим (и по този начин да не замрази скрипта на Python, когато той започна да работи), но помолих приятел кодиращ да дойде да помогне и той измисли начин да го направи, пишейки листове, нещо, което аз не получавай. Очевидно е възможно да се използва и „&“някъде в кода, но аз не съм кодиращ и това, което имам, работи, затова избрах да не се забърквам с него. След като свърших всичко, започнах да свалям всички кабели от макета, докато останах със следната настройка:
GPIO16 към външен 3-точков конектор.
GPIO7 към положителния извод на LED масива за знака ON-Air.
GPIO25 към превключвателя с щракване.
Другата страна на превключвателя за щракване се прикрепя към 3-точков конектор.
Отрицателният извод на светодиодната решетка също се прикрепя към 3-точков конектор.
(Другите компоненти на диаграмата са обяснени в следващата стъпка).
Сценарият на Python, който получихме, е следният (моля, обърнете внимание, че това е инструкция за целия проект, всъщност не знам достатъчно, за да обясня кода. Събрах го заедно от различни други уроци за различни функции):
импортиране време импорт 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)
toggle = False
def start_darkice ():
print ('извикващ подпроцес') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('възобновяване') def stop_darkice (): os.system ('screen -X -S darkice quit')
докато е вярно:
buttonState = GPIO.input (buttonPin) if buttonState == True: ако не превключва: 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 LED присвоен GPIO щифт, докато по -ранните модели не го правят и това може да бъде проблематично, ако имате по -стар Pi.
Прикрепете положителния извод на светодиода към GPIO13 и отрицателния към GPIO26. За да работи светодиодът ACT, трябва да редактирате файла config.txt в директорията BOOT. Можете да намерите това в браузъра Raspbian или с:
sudo nano /usr/boot/config.txt
Когато редактирате файла, просто добавете следните редове:
# Използвайте външен светодиод като SD ACT LED dtoverlay = pi3-act-led, gpio = 19
Сега външният светодиод ще мига с активност на SD картата.
Прикрепете клемите на превключвателя към GPIO3 и GPIO8. Намерих следния код от урок и работи добре:
време за импортиране от gpiozero Бутон за импортиране от подпроцес импортиране check_call от пауза на импортиране на сигнал
def shutdown ():
check_call (['sudo', 'poweroff'])
shutdown_btn = Бутон (2, hold_time = 1)
shutdown_btn.when_held = изключване
пауза ()
time.sleep (1)
Този py файл също е прикачен за изтегляне, ако искате. Бутонът ми трябва да се задържи за 1 секунда, ако искате да промените тази промяна на стойността 'hold-time ='.
Стъпка 5: Накарайте скриптовете на Python да се изпълняват от зареждане
Отново има много уроци по тази тема, използвах този от 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 Button, плюс направих малка карта с инструкции за диджеите и я инкрустирах под бутона. Отстрани на кутията има дупка за бутона, ACT светодиода и аудио входа, плюс инкрустирани инструкции за персонала на бара как безопасно да изключат кутията.
Стъпка 7: Инсталиране
Поправете всички отделни компоненти в кутията си, като имате предвид, че винаги е добре да се позволи някаква циркулация на въздуха около Pi, за да се предотврати прегряване. Прикрепете аудио кабелите от вашия миксер, натиснете бутона и се насладете на излъчването!
Препоръчано:
Изградете вашия Интернет контролиран робот за видео стрийминг с Arduino и Raspberry Pi: 15 стъпки (със снимки)
Изградете вашия Интернет контролиран робот за видео стрийминг с Arduino и Raspberry Pi: Аз съм @RedPhantom (известен още като LiquidCrystalDisplay / Itay), 14-годишен ученик от Израел, който учи в прогимназията за разширени науки и математика Max Shein. Правя този проект, от който всеки да се учи и споделя! Може да имате
RGB клавиатура с един бутон: 6 стъпки (със снимки)
USB клавиатура с един бутон RGB: Чувствали ли сте някога нужда от малка, но функционална клавиатура с RGB подсветка, не по -голяма от размера на един ключ? Не? На кой му пука, все пак си направи такъв! Тази инструкция ще ви води през стъпките, от които се нуждаете, за да направите своя собствена, леко безполезна, на
Робот за стрийминг на видео с Raspberry Pi Wifi: 8 стъпки (със снимки)
Raspberry Pi Wifi контролиран робот за видео стрийминг: Някога мислили ли сте да създадете готин робот с камера върху него? Е, попаднали сте на правилното място, ще ви покажа стъпка по стъпка как да създадете този робот. С това можете да отидете на лов за призраци през нощта, като контролирате и виждате видео емисията на вашия
Малинов резервоар с уеб интерфейс и видео стрийминг: 8 стъпки (със снимки)
Малинов резервоар с уеб интерфейс и видео стрийминг: Ще видим как съм реализирал малък WiFi резервоар, способен за дистанционно уеб управление и видео стрийминг. Това е предназначено да бъде урок, който изисква основни познания за електронно и софтуерно програмиране. Поради тази причина избрах
Покажи светлинна кутия от дървена кутия: 9 стъпки (със снимки)
Покажи светлинна кутия от дървена кутия: Съпругата ми и аз подарихме на майка ми стъклена скулптура за Коледа. Когато майка ми го отвори, брат ми изпълни с " RadBear (добре, той всъщност каза името ми) може да ви построи светлинна кутия! &Quot;. Той каза това, защото като човек, който събира стъкло, аз