विषयसूची:
- चरण 1: उपकरण
- चरण 2: रास्पबेरी पाई की स्थापना
- चरण 3: उदाहरण कोड सेट करना
- चरण 4: एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र बनाएं
- चरण 5: हार्डवेयर को जोड़ना
- चरण 6: सर्वर साइड कोड
- चरण 7: वेबसाइट कोड
- चरण 8: अंत में
वीडियो: डिस्को-पीआई: 8 कदम (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:23
यह निर्देशयोग्य दिखाता है कि वेब ब्राउज़र से बजाए जाने वाले संगीत के आधार पर रंगीन एलईडी पट्टी को नियंत्रित करने के लिए रास्पबेरी पाई का उपयोग कैसे किया जाता है।
यह दिखाता है कि HTTPS पर Node.js का उपयोग करके एक बुनियादी वेबसाइट कैसे बनाई जाती है और WSS (सिक्योर वेबसोकेट) पर socket.io का उपयोग किया जाता है।
वेबसाइट का एक ही पृष्ठ है जिसमें एक बहुत ही बुनियादी लेआउट है। वेबपेज संगीत फ़ाइलों के साथ एक ड्रॉप डाउन सूची को पॉप्युलेट करता है, जो सर्वर पर सार्वजनिक/ऑडियो फ़ोल्डर में स्थित होते हैं। सूची में एक विकल्प का चयन करने से HTML 5 ऑडियो तत्व का उपयोग करके वेबपेज में संगीत फ़ाइल चलती है। संगीत फ़ाइल चलाते समय, वेबपृष्ठ संगीत का विश्लेषण करने के लिए ऑडियोकॉन्टेक्स्ट इंटरफ़ेस का उपयोग करता है, जिसे बाद में एक सुरक्षित वेबसोकेट कनेक्शन पर सर्वर पर भेजा जाता है।
रास्पबेरी पाई पर चलने वाला सर्वर वेबसोकेट के माध्यम से भेजे गए डेटा के आधार पर WS2811 LED स्ट्रिप पर LED के रंग बदलने के लिए Node RPI WS281x नेटिव लाइब्रेरी (जेरेमी गारफ की WS281X लाइब्रेरी को लपेटकर) का उपयोग करता है।
उदाहरण कोड यहां पाया जा सकता है: डिस्को-पीआई
चरण 1: उपकरण
- रास्पबेरी पाई - मैंने एक रास्पबेरी पाई 2 बी का उपयोग किया था जिसे मैंने चारों ओर बिछाया था, लेकिन आप लगभग सीएडी 100 के लिए रास्पबेरी पाई 3 स्टार्टर किट प्राप्त कर सकते हैं
- WS2811 LED स्ट्रिप - मैं ALITOVE 16.4ft 150 पिक्सल WS2811 के साथ खेल रहा था। यह लगभग CAD 45-50. के लिए एक नियंत्रक और बिजली की आपूर्ति के साथ आता है
- बैरल जैक कनेक्टर - मैंने अपने स्थानीय इलेक्ट्रॉनिक्स की दुकान से एक खरीदा, कुछ इस तरह। बस सुनिश्चित करें कि आपकी बिजली आपूर्ति फिट बैठती है
- जम्पर कनेक्टर्स / वायर - मेरे पास कुछ फीमेल टू मेल कनेक्टर केबल और कुछ 22 गेज सॉलिड हुक अप वायर पड़े थे
चरण 2: रास्पबेरी पाई की स्थापना
ऑपरेटिंग सिस्टम
मैं आमतौर पर नवीनतम रास्पियन बिल्ड का उपयोग करता हूं। छवि डाउनलोड करें और इसे एसडी कार्ड में लिखें। यदि आप Windows कंप्यूटर का उपयोग कर रहे हैं, तो आप छवि को SD कार्ड में लिखने के लिए Win32 डिस्क इमेजर का उपयोग कर सकते हैं।
Node.js
Node.js का नवीनतम संस्करण स्थापित करें। लेखन के समय मैं 8.9.1. का उपयोग कर रहा हूँ
कर्ल-एसएल https://deb.nodesource.com/setup_8.x | सुडो-ई बैश -
sudo apt- नोडज स्थापित करें
गिट स्थापित करें
sudo apt-git स्थापित करें
चरण 3: उदाहरण कोड सेट करना
उदाहरण कोड क्लोन करें
1. में स्थापित करने के लिए एक आधार फ़ोल्डर सेट करें
सीडी / ऑप्ट
sudo mkdir com.jonhaydock sudo chown pi:pi com.jonhaydockcd com.jonhaydock
2. उदाहरण को क्लोन करें git रिपॉजिटरी
गिट क्लोन
या
git क्लोन [email protected]:haydockjp/disco-pi.git
3. निर्भरता स्थापित करें
सीडी डिस्को-पीआई
एनपीएम इंस्टॉल
इसमें 2-3 मिनट लग सकते हैं
चरण 4: एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र बनाएं
1. एक निजी कुंजी फ़ाइल बनाएँ
सीडी /ऑप्ट/com.jonhaydock/disco-pi/certs
ओपनएसएल जेनर्सा -आउट डिस्को-पीआई-की.पेम 2048
2. एक सीएसआर बनाएं (सर्टिफिकेट साइनिंग रिक्वेस्ट)
ओपनएसएल अनुरोध -नया -कुंजी डिस्को-पीआई-की.पेम -आउट डिस्को-पीआई-सीएसआर.पीईएम
इस बिंदु पर आपको प्रमाणपत्र अनुरोध के लिए कुछ जानकारी के लिए कहा जाएगा। चूंकि यह एक स्व-हस्ताक्षरित प्रमाणपत्र है, यह आप पर निर्भर करता है कि आप विवरण को कितनी सटीकता से भरते हैं। यहाँ एक उदाहरण है
देश का नाम (2 अक्षर कोड) [AU]:CA
राज्य या प्रांत का नाम (पूरा नाम) [कुछ-राज्य]: ब्रिटिश कोलंबिया इलाके का नाम (जैसे, शहर) : वैंकूवर संगठन का नाम (जैसे, कंपनी) [इंटरनेट विजेट्स प्राइवेट लिमिटेड]: डिस्को पाई संगठनात्मक इकाई का नाम (जैसे, अनुभाग) : सामान्य नाम (जैसे सर्वर FQDN या आपका नाम) : डिस्को-पीआई ईमेल पता :[email protected] एक चुनौती पासवर्ड : एक वैकल्पिक कंपनी का नाम :
इस उदाहरण में, चैलेंज पासवर्ड को खाली छोड़ने के लिए बस रिटर्न दबाएं
3. प्रमाण पत्र जनरेट करें
opensl x509 -req -days 1095 -in डिस्को-pi-csr.pem -signkey डिस्को-pi-key.pem -आउट डिस्को-pi-cert.pem
4. अतिरिक्त सुरक्षा के लिए हम एक डिफी हेलमैन पैरामीटर्स फ़ाइल भी बनाएंगे
opensl dhparam -out dh_2048.pem 2048
इसमें 15-20 मिनट लग सकते हैं
चरण 5: हार्डवेयर को जोड़ना
एलईडी पट्टी को शक्ति देना
एलईडी पट्टी 12 वोल्ट द्वारा संचालित है। रास्पबेरी पाई केवल 3.3v या 5v आउटपुट करने में सक्षम है और इतने सारे एल ई डी ड्राइव करने के लिए आवश्यक एएमपीएस के पास कहीं भी आउटपुट करने में सक्षम नहीं है।
रास्पबेरी पाई के लिए 12 वोल्ट बिजली की आपूर्ति को कनेक्ट नहीं करना महत्वपूर्ण है।
मेरी पट्टी में अतिरिक्त बिजली के तार भी थे जो दोनों छोर पर पट्टी से जुड़े थे। मेरा सुझाव है कि आप इन्हें टेप कर लें ताकि वे आपके किसी अन्य उपकरण से संपर्क न करें।
अगले चरणों को अपने जोखिम पर पूरा करें। मैं किसी भी चीज़ की ज़िम्मेदारी नहीं लेता जो गलत हो सकती है।
एलईडी स्ट्रिप
मेरी एलईडी पट्टी में तीन तार हैं:
लाल - +12 वोल्ट
काला - जमीन
हरा - डेटा
नोट: एक दिन और एक डाउट है - डेटा इन और डेटा आउट। सुनिश्चित करें कि आप दीन कहने वाली एलईडी पट्टी के अंत के साथ काम कर रहे हैं।
यह सुनिश्चित करना कि बैरल जैक बिजली की आपूर्ति से जुड़ा नहीं है
1. लाल तार को एलईडी पट्टी से बैरल जैक के + किनारे से कनेक्ट करें।
मैंने एक सफेद 22 गेज के हुक अप तार का इस्तेमाल किया।
तार को बैरल जैक में + स्लॉट में रखें और इसे जगह में पेंच करें।
तार के दूसरे छोर को एलईडी पर सॉकेट में दबाएं। सुनिश्चित करें कि आप लाल तार से जुड़ रहे हैं।
2. ब्लैक वायर को LED स्ट्रिप से - बैरल जैक के साइड से कनेक्ट करें।
मैंने एक काले 22 गेज के हुक अप तार का इस्तेमाल किया।
तार को बैरल जैक में - स्लॉट में रखें। इस बिंदु पर कनेक्टर केबल्स (फोटो में भूरे रंग के तार) में से एक के पुरुष छोर को एक ही छेद में रखें और उन दोनों को जगह में पेंच करें।
काले तार के दूसरे सिरे को एलईडी के सॉकेट में डालें।
सुनिश्चित करें कि आप काले तार से जुड़ रहे हैं।
3. एलईडी पट्टी से हरे तार को कनेक्ट करें
महिला से पुरुष कनेक्टर केबल में से एक को लें। मेरी तस्वीरों में यह हरे रंग का तार है।
पुरुष सिरे को हरे तार के साथ एलईडी सॉकेट में रखें।
यह डेटा केबल है।
रास्पबेरी पाई
1. ग्रीन कनेक्टर केबल लें और इसे रास्पबेरी पाई GPIO से कनेक्ट करें।
आपको इसे PCM_CLK (पिन 12 / GPIO 18) से कनेक्ट करना होगा
2. ब्लैक कनेक्टर केबल लें और इसे रास्पबेरी पाई GPIO से कनेक्ट करें।
आपको इसे किसी एक आधार से जोड़ने की आवश्यकता है। मेरा सुझाव है कि आप पिन 14 का उपयोग करें, लेकिन आप पिन 6, 9, 20, 25, 30, 34 या 39 का भी उपयोग कर सकते हैं।
नोट: इसके लिए एलईडी पावर स्रोत और रास्पबेरी पाई को काम करने के लिए एक सामान्य आधार होना चाहिए। यह भी ध्यान दें कि आपको 12 वोल्ट + (लाल तार) को रास्पबेरी पाई से नहीं जोड़ना चाहिए।
एलईडी पावर
आप अपनी 12 वोल्ट बिजली की आपूर्ति को बैरल जैक से कनेक्ट करने में सक्षम नहीं होना चाहिए
आपकी एलईडी पट्टी पर सभी एल ई डी अब सफेद होना चाहिए
चरण 6: सर्वर साइड कोड
सर्वर साइड कोड चलाना
सीडी /ऑप्ट/com.jonhaydock/disco-pi
सुडो एनपीएम स्टार्ट
यह वेब सर्वर शुरू करेगा और HTTPS और WSS अनुरोधों को सुनना शुरू कर देगा।
डिफ़ॉल्ट पोर्ट 443 है, लेकिन आप कोड शुरू करने से पहले एक पर्यावरण चर सेट करके इसे ओवरराइड कर सकते हैं। उदाहरण के लिए
निर्यात DISCO_PI_PORT=1443
मेरी एलईडी पट्टी में 150 एलईडी हैं। इन्हें तीन के समूहों में नियंत्रित किया जाता है। इसका मतलब है कि मैं प्रत्येक एलईडी को व्यक्तिगत रूप से नियंत्रित नहीं कर सकता, और मुझे 50 को नियंत्रित करने के लिए पर्याप्त जानकारी भेजने की आवश्यकता है।
यदि आपके एलईडी में कम या ज्यादा है, तो आप उन एल ई डी की संख्या को ओवरराइड कर सकते हैं जिन्हें आप स्टार्ट अप के लिए एक पैरामीटर में पास करके नियंत्रित कर रहे हैं। उदाहरण के लिए, यदि आप केवल 10 LED को नियंत्रित कर सकते हैं
सुडो एनपीएम प्रारंभ 10
मुख्य सर्वर कोड app.js फ़ाइल में पाया जा सकता है। यह फ़ाइल HTTPS वेब सर्वर को प्रारंभ करती है और उसी पोर्ट पर websocket अनुरोधों को सुनने के लिए socket.io पर भी जोड़ती है।
वेबसाइट तक पहुंचने के लिए, आपको अपने मुख्य कंप्यूटर पर एक वेब ब्राउज़र खोलना चाहिए (मैंने केवल क्रोम में इसका परीक्षण किया है) और रास्पबेरी पाई के आईपी पते का उपयोग करें, उदा।
10.0.1.2/
आप रास्पबेरी पाई कमांड लाइन से अपना आईपी पता पता कर सकते हैं।
ifconfig
वेबसर्वर सार्वजनिक फ़ोल्डर के तहत किसी भी सामग्री की सेवा करेगा। यह डिफ़ॉल्ट रूप से index.html पेज को प्रदर्शित करता है।
इसका एक एपीआई अंत बिंदु है - /api/audio. यह अंतिम बिंदु सार्वजनिक/ऑडियो फ़ोल्डर के अंतर्गत किसी भी फाइल की तलाश करता है और सूची देता है। उदाहरण के लिए
["GYAKO.mp3", "हवाना (करतब। यंग ठग)। mp3", "Queen_Bohemian_Rhapsody.mp3", "सेट इट ऑल फ्री.mp3", "दिस इज़ व्हाट यू केम फॉर (करतब। रिहाना)। mp3"]
एक विकल्प के रूप में संगीत जोड़ने के लिए, इस फ़ोल्डर में फ़ाइलों की प्रतिलिपि बनाएँ। मैं व्यक्तिगत रूप से एसएसएच पर फाइलज़िला का उपयोग करता हूं। जिस फ़ोल्डर में आप फ़ाइलें जोड़ना चाहते हैं वह है /opt/com.jonhaydock/disco-pi/public/audio
चरण 7: वेबसाइट कोड
जब आप वेबसाइट पर हिट करते हैं तो आपको कुछ इस तरह दिखना चाहिए।
यदि आपको कोई सुरक्षा चेतावनी दिखाई देती है, तो इसका कारण यह है कि हम स्व-हस्ताक्षरित SSL प्रमाणपत्र का उपयोग कर रहे हैं। आप इसे अनदेखा कर सकते हैं या इसे अपवाद के रूप में जोड़ सकते हैं।
फ़ाइल नाम चुनने पर, HTML 5 ऑडियो तत्व का स्रोत। उस फाइल पर सेट हो जाएगा। एक बार तैयार होने के बाद, संगीत बजना शुरू हो जाएगा। गाना खत्म होते ही म्यूजिक बंद हो जाएगा।
यदि आप कोई नहीं विकल्प चुनते हैं, तो संगीत बजना बंद हो जाएगा।
संगीत फ़ाइल चलाते समय, वेबपृष्ठ संगीत का विश्लेषण करने के लिए ऑडियोकॉन्टेक्स्ट इंटरफ़ेस का उपयोग करता है, जिसे बाद में एक सुरक्षित वेबसोकेट कनेक्शन पर सर्वर पर भेजा जाता है।
संदेश वह प्रकार है जिसे "ws2811" सुनने के लिए सर्वर पर socket.io स्थापित किया गया है। इसमें 50 तत्वों की एक सरणी होती है, जो 0 और 255 के बीच होती है।
"ws2811", {"0":251, "1":252, "2":241, "3":217, "4":193, "5":164, "6":148, "7":139, "8":110, "9":96, "10":81, "11":67, "12":72, "13":66, "14":60, "15":60, "16":63, "17":54, "18":37, "19":30, "20":31, "21":26, "22":13, "23":3, " 24":10, "25":7, "26":6, "27":0, "28":0, "29":0, "30":1, "31":8, "32":12, "33":3, "34":2, "35":2, "36":0, "37":0, "38":0, "39":0, "40":0, "41":0, "42":0, "43":0, "44":0, "45":0, "46":0, "47":0, "48":0, " 49":0}
वेबसोकेट के माध्यम से भेजे गए डेटा के आधार पर सर्वर WS2811 LED स्ट्रिप पर LED के रंग बदलने के लिए Node RPI WS281x नेटिव लाइब्रेरी (जेरेमी गारफ की WS281X लाइब्रेरी को लपेटते हुए) का उपयोग करता है।
चरण 8: अंत में
वेब पेज में किए गए फास्ट फूरियर ट्रांसफॉर्म विश्लेषण के आधार पर आपको संगीत के साथ स्ट्रिप चेंज कलर पर एल ई डी देखना चाहिए।
मुझे आशा है कि आप इसका आनंद लेंगे। मुझे बताएं कि आप इसके साथ क्या करते हैं!
नोट: यदि आपको कोई समस्या है
चूंकि यह लाइब्रेरी और ऑनबोर्ड रास्पबेरी पाई ऑडियो दोनों पीडब्लूएम का उपयोग करते हैं, उन्हें एक साथ उपयोग नहीं किया जा सकता है।
आपको /etc/modprobe.d/snd-blacklist.conf फ़ाइल बनाकर ब्रॉडकॉम ऑडियो कर्नेल मॉड्यूल को ब्लैकलिस्ट करने की आवश्यकता हो सकती है
ब्लैकलिस्ट snd_bcm2835
यदि ऑडियो डिवाइस ब्लैकलिस्ट करने के बाद भी लोड हो रहा है, तो आपको इसे /etc/modules फ़ाइल में टिप्पणी करने की भी आवश्यकता हो सकती है। हेडलेस सिस्टम पर आपको hdmi. के माध्यम से ऑडियो को बाध्य करने की आवश्यकता हो सकती है
config.txt संपादित करें और जोड़ें:
hdmi_force_hotplug=1
hdmi_force_edid_audio=1
इस परिवर्तन को प्रभावी करने के लिए एक रिबूट की आवश्यकता है
सिफारिश की:
3डी प्रिंट करने योग्य डिस्को हेलमेट!: 11 कदम (चित्रों के साथ)
3डी प्रिंट करने योग्य डिस्को हेलमेट !: क्लासिक डाफ्ट पंक 'थॉमस' हेलमेट से प्रेरित है। इस अद्भुत Arduino संचालित डिस्को हेलमेट के साथ कमरे को रोशन करें और अपने सभी दोस्तों से ईर्ष्या करें! इस प्रोजेक्ट को पूरा करने के लिए आपको एक 3D प्रिंटर और एक सोल्डरिंग आयरन की आवश्यकता होगी। यदि आप टी
पोर्टेबल डिस्को वी२-ध्वनि नियंत्रित एलईडी: ११ कदम (चित्रों के साथ)
पोर्टेबल डिस्को V2 -साउंड नियंत्रित एलईडी: जब से मैंने अपना पहला पोर्टेबल डिस्को बनाया है, तब से मैंने अपनी इलेक्ट्रॉनिक्स यात्रा के साथ एक लंबा सफर तय किया है। मूल निर्माण में मैंने प्रोटोटाइप बोर्ड पर एक सर्किट को एक साथ हैक किया और एक साफ, छोटा पॉकेट डिस्को बनाने में कामयाब रहा। इस बार मैंने अपना खुद का PCB डिज़ाइन किया है
एलईडी डिस्को बॉक्स: 7 कदम (चित्रों के साथ)
एलईडी डिस्को बॉक्स: अपना खुद का एलईडी डिस्को बॉक्स कैसे बनाएं
लाइट-अप डिस्को टेबल: 27 कदम (चित्रों के साथ)
लाइट-अप डिस्को टेबल: हर अपार्टमेंट को कमाल के फर्नीचर की जरूरत होती है, तो क्यों न अपना खुद का बनाया जाए? इस कॉफी टेबल में एलईडी स्ट्रिप्स हैं जो विभिन्न अनुकूलन पैटर्न और रंगों में प्रकाश डालती हैं। रोशनी को एक Arduino और एक छिपे हुए बटन द्वारा नियंत्रित किया जाता है, और पूरी चीज
डिस्को डेस्कटॉप आयोजक: 8 कदम (चित्रों के साथ)
डिस्को डेस्कटॉप आयोजक: सामग्री: ट्रिपलक्स, मोटाई: 3 मिमी कितनी लकड़ी की प्लेटें इस बात पर निर्भर करती हैं कि आपका लेज़रकटर कितना बड़ा है … फ़ाइल को अपने अधिकतम आकार की लकड़ी की प्लेट पर समायोजित करें … हो सकता है कि आपको 1 से अधिक प्लेट की आवश्यकता हो (इसे ध्यान में रखें)। 6 एक्स फ्लैश एलईडी (मैंने 7 रंगीन फ्लैश एलईडी का इस्तेमाल किया) एवा