0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一键无线电流媒体盒教程

454398 来源:alpha007 作者:alpha007 2022-11-17 16:08 次阅读

我为朋友的酒吧内置了一个盒子,里面有一个Raspberry Pi,按下一个按钮就可以使用Darkice和Icecast将音频传输到网站,同时照明一个'直播'标志。我认为这是人们已经在做的事情,但经过广泛的搜索后我什么也没找到,并决定为自己弄清楚并制作这个Instructable。

我使用了Raspberry Pi 3+ B,但我尽我所能告诉它可以在任何Pi上工作(也许GPIO引脚号会有所不同,但我无法证明这一点)。我在操作系统中使用了NOOBS包,并为输入购买了一个超级简单的声卡。我还在盒子中添加了一个安全关闭按钮和活动LED来保护Pi。

您将需要:

Raspberry Pi

NOOBS包一张SD

开/关开关(我使用了一个像这样的大红色紧急停止按钮,但它可以是任何一种'点击'开关)

按钮

1个LED

一个'On-Air'标志,我自己制作了一个LED阵列

烙铁和小连接器板(我只是剪了一个条带我所拥有的其中一个)

声卡(我使用了这样的超简单)

步骤1:设置 - 你的服务器

对于我们正在使用的实际广播电台,我没有做这个部分,因为我没有访问服务器而且我的朋友做了,但有一个基本的在Icecast网站上设置指南,我设法从Pi开始工作,看它是怎么回事。或者你可以在internet-radio.com上获得一个帐户,它适用于Darkice。

第2步:设置Pi并安装Darkice

使用NOOBS包获取SD卡。一旦打开Raspbian并安装了所有更新,打开一个终端窗口并输入:

sudoapt-getupdate sudoapt-getinstalldarkice

Darkice是Debian的一部分,所以它会自动安装,需要一些瞬间。

在提示符完成后输入:

darkice

它会给出一条错误信息但没有运行,但没关系。在消息中它会说:

使用配置文件:/etc/darkice.cfg

您需要编辑该文件,因此在提示符下键入:

sudonano/etc/darkice.cfg

使用此wiki.Radioreference页面上的信息编辑打开的文件,完成后按CTRL-X关闭,Y保存,您应该返回终端提示。安装新程序后重新启动总是好的,所以输入:

reboot

当Pi重新启动时重新打开终端窗口。现在,当您键入“Darkice”时,它应该运行时没有任何错误消息。如果您转到https://YOURSERVERADDRESS:8000/(8000或您的icecast服务器分配给哪个端口),您应该会得到一个统计信息页面,说明您已连接。如果没有,调整配置文件(音频输入行给了我一些问题,但我尝试了所有选项,最终找到了我的声卡)。一旦Darkice正常运行,继续进行下一步。

步骤3:流按钮和播出标志

I为此做了一堆不同的教程,因为没有特定的教程为Python中的按钮分配动作。我遇到的最大问题是让Darkice在后台运行(因此在开始运行时不会冻结Python脚本)但我请求一位编码器的朋友来帮忙,他找到了一种方法来编写表单,我就是这样的不要。显然,也可以使用'&'代码中的某个地方,但我没有编码器和我的工作,所以我选择不搞乱它。一旦我完成所有工作,我就开始削减面包板上的所有电缆,直到我完成以下设置:

GPIO16到外部3点连接器。

GPIO7到用于ON-Air标志的LED阵列的正极端子

GPIO25到点击开关。

点击开关的另一端连接到3点连接器。

LED阵列的负极也连接到3点连接器。

(图中的其他组件将在下一步中说明) 。

我们最终得到的Python脚本如下(请注意这是整个项目的一个Instructable,我真的不太了解代码。我把它拼凑成各种其他的不同功能的教程):

importtime
importos
importRPi.GPIOasGPIO
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 defstart_darkice():
print('callingsubprocess')
#result=subprocess.call('shscreen-Sdarkice-d-mdarkice')
os.system('screen-Sdarkice-d-mdarkice')
print('resuming')

defstop_darkice():
os.system('screen-X-Sdarkicequit') whileTrue:
buttonState=GPIO.input(buttonPin)
ifbuttonState==True:
ifnottoggle:
toggle=True
print('turningondarkice')
start_darkice()
#print('BUTTONSTATETRUE')
GPIO.output(ledPin,GPIO.HIGH) else:
iftoggle:
toggle=False
print('stoppingdarkice')
stop_darkice()
#print('BUTTONSTATEFALSE')
GPIO.output(ledPin,GPIO.LOW)
time.sleep(1)

py文件附加到此Instructible,你可以如果您愿意,请下载并按照步骤5进行操作。

步骤4:安全关机按钮和活动指示灯

为了安全起见为了延长Pi的使用寿命,我添加了一个安全的关机按钮和一个外部活动LED,让人们知道什么时候可以安全地拔掉盒子。我很容易找到这两个教程,但我注意到Raspberry Pi 3 B +有一个ACT LED分配GPIO引脚,而早期型号没有,如果你有一个较旧的Pi可能会有问题。

将LED的正极连接到GPIO13,将负极连接到GPIO26。要使ACT LED工作,您需要编辑BOOT目录中的config.txt文件。您可以在Raspbian浏览器中找到它或使用:

sudonano/usr/boot/config.txt

编辑文件时,只需添加以下行:

#UseexternalLEDasSDACTLED
dtoverlay=pi3-act-led,gpio=19

现在外部LED将闪烁,具有SD卡活动。

将按钮开关端子连接到GPIO3和GPIO8。我在教程中找到了以下代码并且工作正常:

importtime
fromgpiozeroimportButton
fromsubprocessimportcheck_call
fromsignalimportpause defshutdown():
check_call(['sudo','poweroff']) shutdown_btn=Button(2,hold_time=1)
shutdown_btn.when_held=shutdown pause()
time.sleep(1)

此py文件也随附供您下载如果你想。我的按钮必须保持1秒钟,如果你想改变那个'hold-time ='值。

步骤5:让Python脚本从启动运行

同样,有很多关于这个主题的教程,我使用了Dexter Industries的这个教程,并按照第一步编辑了rc.local文件。

sudonano/etc/rc.local

在这里,您需要将完整的文件路径添加到文档的末尾,并附上“&”在每一行的末尾。你应该为每个文件添加一行:

sudopython/home/pi/YOURFILENAME,py& sudopython/home/pi/YOURFILENAME2.py&

就在行

exit0

'&'之前在每一行的末尾对于确保程序循环非常重要。

第6步:构建框

这完全取决于你。它实际上只需要是Pi的大小,但我在我的设置中放置一个压缩器,以使无线电流保持在相当一致的水平,因此盒子有点大。我的前面有一个用于播出标志的孔和一个用于大红色按钮的孔,另外我为DJ制作了一张小指令卡,并在按钮下方镶嵌了它。在盒子的侧面有一个按钮孔,ACT LED和音频输入,以及酒吧工作人员如何安全关闭盒子的镶嵌说明。

步骤7:安装

将所有单独的组件固定到您的盒子中,请注意,在Pi周围进行一些空气循环以防止过热总是好的。从调音台连接音频线,点击按钮,享受广播!

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 流媒体
    +关注

    关注

    1

    文章

    182

    浏览量

    16580
  • 无线电
    +关注

    关注

    58

    文章

    2070

    浏览量

    115100
收藏 人收藏

    评论

    相关推荐

    基于流媒体技术的手机视频播放系统的研究与实现

    【作者】:李露【来源】:《华南理工大学》2009年【摘要】:随着无线通信网络从2.5G向3G进化以及手机硬件技术不断的升级换代,多媒体应用和宽带网络服务成为可能,它们的结合体就是无线
    发表于 04-24 09:24

    方便快捷:PADS的一键快捷功能:一键灌铜,一键检查DRC

    倾情奉献给大家,非常实用的快捷功能一键灌铜: [hide] [/hide]一键检查连通性:[hide][/hide]一键检查安全间距::[hide] [/hide]一键清除Error标
    发表于 11-07 15:06

    一键还原系统

    老毛桃一键 V2.0.12.5更新说明: 1、细节完善及处理已知的问题2、更新GRUB模块,提高兼容性3、高级项“搜索”开放自定后缀,可搜索任何后缀的GHO还原4、些函数位置及变量调整5、完善1
    发表于 06-18 20:41

    完整系统解决方案可简化家庭及可携式串流媒体音频应用

    Android、Windows 和 OS X 操作系统的装置之间执行串流媒体传输。同时也支持常见网络无线电广播服务。解决方案供货情况TI 多功能串流媒体音频系统解决方案的所有组件,包括 TI Sitara
    发表于 03-03 10:44

    电信一键免流量软件电信一键免流软件app

    电信用户一键免流量上网软件款电信免费流量软件一键免流量app电信版加QQ1814806072电信2G3G4G都支持,支持免流开热点给电脑使用或者其他的设备使用,真正强大的免流,超稳定完全不跳点
    发表于 07-19 10:37

    什么是一键起飞?

    原子家的minifly,有谁搞懂了一键起飞呀?跪求
    发表于 07-11 04:35

    嵌入式Linux机顶流媒体播放器的设计流程是什么?

    、数字化、操作简单的基于计算机网络通讯技术和多媒体应用的网络化流媒体播放器已成为计算机、通信、消费电子产品领域(3C 产业-Computer、Communication、Consumer Electronics)技术发展的主要方向之
    发表于 08-22 06:56

    探讨无线流媒体监控系统的相关知识

    无线流媒体监控系统的相关技术有哪些?无线流媒体监控系统组网特点是什么?无线流媒体监控系统是有哪些
    发表于 05-25 06:52

    关于无线流媒体技术探讨,不看肯定后悔

    关于无线流媒体技术探讨,不看肯定后悔
    发表于 05-31 07:00

    什么是流媒体服务器?

    介绍下什么是流媒体服务器。  其实流媒体服务器从广义上来说,是属于视频服务器的种。它主要是将视频或者音频文件进行数据压缩,然后存储等,在远程监控及视频应用方面,
    发表于 06-30 09:28

    Stm32怎么一键下载

    文章目录前言一键下载一键下载原理硬件原理图跳帽与启动存储映射串口下载程序由来一键下载流程通过 USB 控制机器复位握手解读前言最近在又要折腾 stm32 了,所以翻出了脚落里的开发板,先复习下
    发表于 08-05 08:13

    怎样去编译个完整的流媒体服务系统呢

    流媒体技术在安防监控、网络电视、视频会议等应用领域都起着重要的作用,为人们的工作生活带来了便利。嵌入式流媒体服务器不同于传统的基于 PC 架构的流媒体服务器,嵌入式的流媒体服务器建立于
    发表于 12-14 08:18

    嵌入式Linux音频流媒体终端系统的设计资料分享

    种嵌入式Linux音频流媒体终端系统的设计与实现》由会员分享,可在线阅读,更多相关《种嵌入式Linux音频流媒体终端系统的设计与实现(2页珍藏版)》请在人人文库网上搜索。1、
    发表于 12-16 06:06

    无线流媒体通信性能瓶颈的仿真研究

    本文仿真研究Ad-hoc无线网络环境下MPEG-4流媒体的通信性能,在分析和探讨无线实时流媒体网络性能瓶颈以及各类图像帧的影响权值的基础上,提出一种性能改进方案---有选择地丢弃
    发表于 07-08 08:43 14次下载

    流媒体是什么?

    流媒体是什么?  流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解
    发表于 01-28 10:28 2405次阅读