Mundarija:

Bir tugmachali radio oqim qutisi: 7 qadam (rasmlar bilan)
Bir tugmachali radio oqim qutisi: 7 qadam (rasmlar bilan)

Video: Bir tugmachali radio oqim qutisi: 7 qadam (rasmlar bilan)

Video: Bir tugmachali radio oqim qutisi: 7 qadam (rasmlar bilan)
Video: 选民同情怜悯心提升川普民调究竟谁下的毒?如何做投票观察员而不被起诉战争动乱时期保命护身五大技能 Voters feel compassion for raising Trump polls . 2024, Iyun
Anonim
Bir tugmachali radio oqim qutisi
Bir tugmachali radio oqim qutisi

Men do'stimning bariga quti qurdim, uning ichida Raspberry Pi bor va bitta tugmani bosish bilan u Darkice va Icecast yordamida veb-saytga audio uzatadi, shu bilan birga "efirda" belgisini yoqadi. Men bu odamlar allaqachon qilayotgan ish deb o'yladim, lekin izlanishlardan so'ng men hech narsa topa olmadim va buni o'zim tushunishga qaror qildim.

Men Raspberry Pi 3+ B dan foydalanardim, lekin aytishim mumkinki, u har qanday Pi da ishlaydi (ehtimol GPIO pin raqamlari turlicha bo'lishi mumkin, lekin men buni tasdiqlay olmayman). Men OS uchun NOOBS paketidan foydalandim va kirish uchun juda oddiy ovoz kartasini sotib oldim. Men, shuningdek, Pi-ni himoya qilish uchun qutiga xavfsiz o'chirish tugmasi va faollik LEDini qo'shdim.

Sizga kerak bo'ladi:

Raspberry Pi

SD kartadagi NOOBS to'plami

Yoqish/o'chirish tugmasi (men katta qizil favqulodda to'xtatish tugmachasini ishlatardim, lekin bu har qanday "bosish" tugmasi bo'lishi mumkin)

Bosish tugmasi

1 LED

"Efirda" belgisi, men o'zimni LED qator bilan yaratdim

Lehimlash dazmollari va kichik ulagichlar paneli (men shunchaki yonimda bo'lgan chiziqlarni kesib tashladim)

Ovoz kartasi (men shunday oddiy ishlatardim)

1-qadam: Serverni sozlash

Biz foydalanayotgan haqiqiy radiostansiya uchun men bu qismni qilmadim, chunki menda serverga kirish imkoni yo'q edi va do'stim buni qildi, lekin Icecast veb-saytida sozlash bo'yicha asosiy ko'rsatma bor va men uni olishga muvaffaq bo'ldim. u qanday ketayotganini ko'rish uchun boshida Pi dan ishlaydi. Shu bilan bir qatorda, internet-radio.com saytida hisob qaydnomasini olishingiz mumkin va u Darkice bilan ishlaydi.

2-qadam: Pi-ni o'rnating va Darkice-ni o'rnating

NOOBS to'plami bilan SD -kartani oling. Raspbian -ni ochganingizdan va barcha yangilanishlarni o'rnatganingizdan so'ng, terminal oynasini oching va yozing:

sudo apt-get yangilanishi

sudo apt-get install darkice

Darkice Debian -ning bir qismidir, shuning uchun u avtomatik ravishda o'rnatiladi, bir necha daqiqa vaqt ketadi.

Buyruq satri tugagandan so'ng:

qorong'i

Bu xato xabari beradi va ishlamaydi, lekin bu yaxshi. Xabarda u shunday bir narsa aytiladi:

Konfiguratsiya faylidan foydalanish: /etc/darkice.cfg

Siz ushbu faylni tahrirlashingiz kerak, shuning uchun buyruq satrida:

sudo nano /etc/darkice.cfg

Ushbu wiki. Radioreference sahifasidagi ma'lumotlar yordamida ochiladigan faylni tahrir qiling, tugatgandan so'ng CTRL-X tugmachasini bosing, saqlash uchun Y tugmasini bosing va siz terminal so'roviga qaytishingiz kerak. Yangi dasturni o'rnatgandan so'ng, uni qayta ishga tushirish har doim yaxshi, shuning uchun quyidagilarni yozing:

qayta yuklash

va Pi qayta ishga tushirilganda, terminal oynasini qayta oching. Endi siz "Darkice" ni kiritganingizda, u hech qanday xato xabarisiz ishlashi kerak. Agar siz https:// YOURSERVERADDRESS: 8000/(8000 yoki icecast serveringiz qaysi portga tayinlangan bo'lsa) ga kirsangiz, siz ulanganligingiz haqida statistika sahifasini olishingiz kerak. Agar shunday bo'lmasa, konfiguratsiya faylini o'zgartiring (audio kirish liniyasi menga ba'zi muammolarni berdi, lekin men barcha variantlarni sinab ko'rdim va oxir -oqibat ovoz kartamni topdim). Darkice to'g'ri ishlagandan so'ng, keyingi bosqichga o'ting.

3-qadam: oqim tugmasi va efir belgisi

Oqim tugmasi va efir belgisi
Oqim tugmasi va efir belgisi

Men buning uchun juda ko'p turli xil darsliklar qildim, chunki Python -dagi tugmachalarga biron -bir harakatni tayinlash uchun aniq hech kim yo'q edi. Men duch kelgan eng katta muammo Darkice -ni orqa fonda ishlashga majburlash edi (va shu bilan Python skriptini ishga tushirishda muzlatib qo'ymadi), lekin men koder do'stimdan yordam so'rab keldim va u buni qanday qilib varaqlarni yozishni bildi. olmang. Ko'rinib turibdiki, bu kodning biron bir joyida "&" yordamida ham bo'lishi mumkin, lekin men kodlovchi emasman va menda nima bor, shuning uchun men u bilan aralashmaslikni tanladim. Men hamma narsani ishlay boshlagach, men non panelidagi barcha kabellarni o'chira boshladim va menda quyidagi sozlamalar qoldi:

GPIO16 tashqi 3 nuqtali ulagichga.

GPIO7 ON-Air belgisi uchun LED massivining musbat terminaliga.

GPIO25 tugmachasini bosing.

Klik tugmachasining boshqa tomoni 3 nuqtali ulagichga ulanadi.

LED massivining manfiy terminali ham 3 nuqtali ulagichga ulanadi.

(Diagrammadagi boshqa komponentlar keyingi bosqichda tushuntiriladi).

Biz tugatgan Python skripti quyidagicha (iltimos, bu butun loyiha uchun ko'rsatma, men kodni tushuntirish uchun etarli ma'lumotga ega emasman. Men uni turli funktsiyalar uchun boshqa darsliklardan to'pladim):

import vaqtini import qilish RPi. GPIO ni 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)

o'tish = noto'g'ri

def start_darkice ():

print ('subprocess chaqiruvi') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') chop etish ('qayta tiklanmoqda') def stop_darkice (): os.system ('ekran -X -S qorong'ilikdan chiqish')

rost bo'lsa:

buttonState = GPIO.input (buttonPin) if buttonState == True: agar o'zgartirilmasa: toggle = Haqiqiy chop etish ("qorong'ilikni yoqish") start_darkice () #print ('TUGMA STATE TRUE') GPIO.output (ledPin, GPIO. HIGH))

boshqa:

if toggle: toggle = Soxta bosib chiqarish ('qorong'ilikni to'xtatish') stop_darkice () #print ('TUGMASI STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)

Py fayli ushbu yo'riqnomaga biriktirilgan, agar xohlasangiz, uni yuklab olishingiz va 5 -qadamni bajarishingiz mumkin.

4 -qadam: Xavfsiz o'chirish tugmasi va faollik LED

Xavfsiz o'chirish tugmasi va faollik LED
Xavfsiz o'chirish tugmasi va faollik LED

Faqat xavfsizlik uchun va Pi xizmat qilish muddatini uzaytirish uchun men xavfsiz o'chirish tugmachasini va tashqi faollik LEDini qo'shdim, shunda odamlar qutini elektr tarmog'idan uzish qachon xavfsizligini bilishadi. Men ikkalasi uchun ham darsliklarni osonlik bilan topdim, lekin men Raspberry Pi 3 B+ ning ACT LEDli GPIO piniga ega ekanligini payqadim, oldingi modellarda esa yo'q va agar sizda eski Pi bo'lsa, bu muammo bo'lishi mumkin.

LEDning ijobiy terminalini GPIO13 ga, salbiyini esa GPIO26 ga ulang. ACT LEDining ishlashi uchun siz BOOT katalogidagi config.txt faylini tahrir qilishingiz kerak. Buni Raspbian brauzerida yoki quyidagicha topishingiz mumkin.

sudo nano /usr/boot/config.txt

Faylni tahrir qilayotganda quyidagi satrlarni qo'shing:

# Tashqi LEDni SD ACT LED dtoverlay = pi3-act-led, gpio = 19 sifatida ishlating

Endi tashqi LED SD -karta faolligi bilan miltillaydi.

Bosish tugmachalari terminallarini GPIO3 va GPIO8 ga ulang. Men darslikdan quyidagi kodni topdim va u yaxshi ishlaydi:

import vaqtidan gpiozero importi Subprocess import check_call dan signal import pauzasidan

def o'chirish ():

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

shutdown_btn = tugma (2, hold_time = 1)

shutdown_btn.when_held = o'chirish

pauza ()

uyqu (1)

Agar xohlasangiz, yuklab olish uchun bu py fayl ham biriktirilgan. Mening tugmachamni 1 soniya ushlab turish kerak, agar siz "hold-time =" qiymatini o'zgartirmoqchi bo'lsangiz.

5 -qadam: Python skriptlarini yuklashdan ishga tushiring

Shunga qaramay, bu mavzu bo'yicha juda ko'p darsliklar bor, men buni Dexter Industries -dan foydalanganman va rc.local faylini tahrir qilish orqali birinchi qadamni bajarganman.

sudo nano /etc/rc.local

Bu erda siz hujjatning oxiriga har bir satr oxirida "&" belgisi qo'yilgan to'liq fayl yo'lini qo'shishingiz kerak. Har bir fayl uchun bitta qator qo'shish kerak:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

chiziqdan oldin

chiqish 0

Har bir satr oxiridagi '&' belgisi dasturning aylanishini ta'minlash uchun muhimdir.

6 -qadam: qutini yarating

Qutini qurish
Qutini qurish
Qutini qurish
Qutini qurish
Qutini qurish
Qutini qurish

Bu butunlay sizga bog'liq. Bu, albatta, faqat Pi o'lchamiga to'g'ri keladi, lekin men radio oqimini ancha barqaror darajada ushlab turish uchun o'zim o'rnatgan kompressorni qo'ydim, shuning uchun quti biroz kattaroq. Menikining old tomonida Efirda va Katta Qizil tugmachada teshik bor, bundan tashqari men DJlar uchun kichik ko'rsatma kartasini tayyorladim va uni tugma ostiga qo'ydim. Qutining yon tomonida tugma, ACT LED va audio-kirish uchun teshik bor, shuningdek, bar xodimlariga qutini qanday qilib xavfsiz o'chirish bo'yicha ko'rsatma berilgan.

7 -qadam: O'rnatish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Barcha alohida komponentlarni qutingizga joylashtiring, shuni yodda tutingki, qizib ketishining oldini olish uchun Pi atrofida havo aylanishiga ruxsat berish har doim yaxshi. Mikserdan audio kabellarni ulang, tugmani bosing va efirdan zavqlaning!

Tavsiya: