Tartalomjegyzék:
- 1. lépés: Felszerelés
- 2. lépés: A Raspberry Pi beállítása
- 3. lépés: A példakód beállítása
- 4. lépés: Hozzon létre saját aláírású SSL -tanúsítványt
- 5. lépés: A hardver csatlakoztatása
- 6. lépés: Kiszolgáló oldali kód
- 7. lépés: Webhely kódja
- 8. lépés: Végül
Videó: Disco-pi: 8 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Ez az oktatóanyag bemutatja, hogyan kell Raspberry Pi -t használni egy színes LED -szalag vezérléséhez a webböngészőből lejátszott zene alapján.
Bemutatja, hogyan hozhat létre alapszintű webhelyet a Node.js használatával HTTPS protokollon keresztül, és hogyan használhatja a socket.io protokollt WSS (Secure Websocket) használatával.
A weboldal egyetlen oldallal rendelkezik, amely nagyon egyszerű elrendezésű. A weboldal egy legördülő listát tölt be a zenefájlokkal, amelyek a szerver nyilvános/audio mappájában találhatók. Ha kiválaszt egy opciót a listában, a zenei fájl lejátszása a weboldalon a HTML 5 audioelem használatával történik. A zenei fájl lejátszása közben a weboldal az AudioContext felületet használja a zene elemzéséhez, amelyet ezután biztonságos szerverkapcsolaton keresztül elküld a szervernek.
A Raspberry Pi rendszeren futó szerver a Node RPI WS281x natív könyvtárat használja (Jeremy Garff WS281X könyvtárát csomagolja) a WS2811 LED szalagon lévő LED -ek színének megváltoztatásához a websocketen keresztül küldött adatok alapján.
A példakód itt található: disco-pi
1. lépés: Felszerelés
- Raspberry Pi - Egy Raspberry Pi 2B -t használtam, amit lefektettem, de Raspberry Pi 3 kezdő készletet kaphat 100 CAD körül
- WS2811 LED szalag - ALITOVE 16,4ft 150 Pixel WS2811 -el játszottam. Ehhez jár egy vezérlő és egy tápegység körülbelül 45-50 CAD értékben
- Barrel Jack Connector - Vettem egyet a helyi elektronikai üzletemből, valami ilyesmit. Csak ellenőrizze, hogy megfelel -e a tápegységnek
- Jumper csatlakozók / huzal - Volt néhány női -férfi csatlakozó kábelem és néhány 22 -es nyomtávú tömör huzal
2. lépés: A Raspberry Pi beállítása
Operációs rendszer
Általában a legújabb Raspbian buildet használom. Töltse le a képet, és írja be az SD kártyára. Ha Windows számítógépet használ, akkor a Win32 Disk Imager segítségével írhatja be a képet az SD -kártyára.
Node.js
Telepítse a Node.js legújabb verzióját. Íráskor a 8.9.1 -et használom
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
Telepítse a git programot
sudo apt-get install git
3. lépés: A példakód beállítása
Klónozza a példakódot
1. Állítson be egy alapmappát a telepítéshez
cd /opt
sudo mkdir com.jonhaydock sudo chown pi: pi com.jonhaydockcd com.jonhaydock
2. Klónozza a példa git adattárat
git klón https://github.com/haydockjp/disco-pi.git"
vagy
git klón [email protected]: haydockjp/disco-pi.git
3. Telepítse a függőségeket
cd disco-pi
npm telepítés
Ez 2-3 percet vehet igénybe
4. lépés: Hozzon létre saját aláírású SSL -tanúsítványt
1. Hozzon létre privát kulcsfájlt
cd /opt/com.jonhaydock/disco-pi/certs
2048-ban
2. Hozzon létre CSR -t (tanúsítvány -aláírási kérelem)
openssl req -new -key disco-pi-key.pem -out disco-pi-csr.pem
Ezen a ponton a tanúsítványkéréshez szükséges információkat kell megadnia. Mivel ez egy önaláírt tanúsítvány, rajtad múlik, hogy milyen pontosan tölti ki az adatokat. Íme egy példa
Ország neve (2 betűből álló kód) [AU]: CA
Állam vagy tartomány neve (teljes név) [Néhány állam]: Brit Columbia Helységnév (pl. Város) : Vancouveri szervezet neve (pl. Cég) [Internet Widgits Pty Ltd]: Disco Pi szervezeti egység neve (pl. Szakasz) : Általános név (pl. Szerver FQDN vagy ÖN neve) : disco-pi E-mail cím : [email protected] Kihívási jelszó : Választható cégnév :
Ebben a példában csak nyomja meg a visszatér gombot, hogy üresen hagyja a kihívási jelszót
3. Generálja a tanúsítványt
openssl x509 -req -days 1095 -in disco-pi-csr.pem -ignkey disco-pi-key.pem -out disco-pi-cert.pem
4. A nagyobb biztonság érdekében létrehozunk egy Diffie Hellman Parameters fájlt is
openssl dhparam -out dh_2048.pem 2048
Ez 15-20 percet vehet igénybe
5. lépés: A hardver csatlakoztatása
A LED szalag táplálása
A LED szalag 12 volt feszültségű. A Raspberry Pi csak 3,3 vagy 5 voltos kimenetre képes, és nem képes a sok LED meghajtásához szükséges erősítők közelében sem.
Fontos, hogy ne csatlakoztassa a 12 voltos tápegységet a Raspberry Pi -hez.
A szalagom mindkét végén további tápkábeleket is csatlakoztatott a szalaghoz. Javaslom, hogy ragassza fel ezeket, hogy ne érintkezzenek más berendezéseivel.
A következő lépéseket saját felelősségére hajtsa végre. Nem vállalok felelősséget semmiért, ami elromolhat.
LED-csík
A LED szalagom három vezetékkel rendelkezik:
PIROS - +12 volt
FEKETE - Föld
ZÖLD - Adatok
MEGJEGYZÉS: van Din és Dout - Data In és Data Out. Győződjön meg arról, hogy a LED szalag Din feliratú végével dolgozik.
Győződjön meg arról, hogy a hordócsatlakozó nincs csatlakoztatva az áramforráshoz
1. Csatlakoztassa a piros vezetéket a LED szalagból a hordócsatlakozó + oldalához.
Fehér, 22 -es méretű bekötőhuzalt használtam.
Helyezze a vezetéket a hordócsatlakozó + nyílásába, és csavarja be a helyére.
Nyomja be a vezeték másik végét a LED aljzatába. Győződjön meg arról, hogy a piros vezetékkel csatlakozik.
2. Csatlakoztassa a fekete vezetéket a LED szalagból a hordócsatlakozó oldalához.
Fekete, 22 méteres bekötőhuzalt használtam.
Helyezze a vezetéket a hordócsatlakozó - nyílásába. Ezen a ponton szintén helyezze az egyik csatlakozó kábel dugaszoló végét (a képen barna vezeték) ugyanabba a lyukba, és csavarja be mindkettőt.
Nyomja a fekete vezeték másik végét a LED aljzatába.
Győződjön meg arról, hogy a fekete vezetékkel csatlakozik.
3. Csatlakoztassa a zöld vezetéket a LED szalagból
Vegye ki a femal -male csatlakozókábelek egyikét. A fotóimon ez a zöld vezeték.
Helyezze a dugót a LED -aljzatba a zöld vezetékkel.
Ez az adatkábel.
Raspberry Pi
1. Fogja meg a zöld csatlakozókábelt, és csatlakoztassa a Raspberry Pi GPIO -hoz.
Csatlakoztatnia kell a PCM_CLK -hoz (12. tű / GPIO 18)
2. Fogja meg a fekete csatlakozókábelt, és csatlakoztassa a Raspberry Pi GPIO -hoz.
Csatlakoztatnia kell az egyik aljzathoz. Javaslom, hogy használja a 14 -es tűt, de használhat 6 -os, 9 -es, 20 -as, 25 -ös, 30 -as, 34 -es vagy 39 -es tűt is.
MEGJEGYZÉS: ennek működéséhez a LED -es áramforrásnak és a Raspberry Pi -nek közös alapokkal kell rendelkeznie. Ne feledje, hogy a 12 Volt + (piros vezetéket) nem szabad a Raspberry Pi -hez csatlakoztatni.
LED teljesítmény
Nem szabad csatlakoztatnia a 12 voltos tápegységet a csőcsatlakozóhoz
A LED szalag összes LED -jének fehéren kell világítania
6. lépés: Kiszolgáló oldali kód
A szerver oldali kód futtatása
cd /opt/com.jonhaydock/disco-pi
sudo npm start
Ezzel elindítja a webszervert, és elkezdi figyelni a HTTPS és WSS kéréseket.
Az alapértelmezett port a 443, de ezt felülbírálhatja, ha beállít egy környezeti változót a kód elindítása előtt. Például
export DISCO_PI_PORT = 1443
A LED szalagom 150 LED -et tartalmaz. Ezeket hármas csoportokban ellenőrzik. Ez azt jelenti, hogy nem tudok minden LED -et külön -külön vezérelni, és elegendő információt kell küldenem az 50 vezérléséhez.
Ha a LED -ben több vagy kevesebb van, akkor felülbírálhatja a vezérelt LED -ek számát úgy, hogy megad egy paramétert az indításhoz. Például, ha csak 10 LED -et tud vezérelni
sudo npm start 10
A fő szerverkód az app.js fájlban található. Ez a fájl elindítja a HTTPS webszervert, és hozzáadja a socket.io fájlt is, hogy meghallgassa a websocket kéréseket ugyanazon a porton.
A webhely eléréséhez nyisson meg egy böngészőt a fő számítógépén (ezt csak a Chrome -ban teszteltem), és használja a Raspberry Pi IP -címét, pl.
10.0.1.2/
A Raspberry Pi parancssorból megtudhatja az IP -címét.
ifconfig
A webszerver bármilyen tartalmat kiszolgál a nyilvános mappa alatt. Alapértelmezés szerint az index.html oldal jelenik meg.
Egy API végpontja van - /api /audio. Ez a végpont megkeresi a nyilvános/audio mappa alatt található fájlokat, és visszaadja a listát. Például
["GYAKO.mp3", "Havanna (feat. Young Thug).mp3", "Queen_Bohemian_Rhapsody.mp3", "Set It All Free.mp3", "Ez az, amiért jöttél (feat. Rihanna).mp3"]
Zene opcióként való hozzáadásához másolja a fájlokat ebbe a mappába. Én személy szerint a Filezillát használom az ssh felett. A mappa, amelyhez fájlokat kíván hozzáadni, az /opt/com.jonhaydock/disco-pi/public/audio
7. lépés: Webhely kódja
Amikor meglátogatja a webhelyet, valami ilyesmit kell látnia.
Ha biztonsági figyelmeztetést lát, ez azért van, mert saját aláírású SSL-tanúsítványt használunk. Figyelmen kívül hagyhatja, vagy kivételként hozzáadhatja.
A fájlnév kiválasztásakor a HTML 5 audioelem forrása. fájlra lesz állítva. Ha kész, a zene elkezd játszani. A dal befejezése után a zene leáll.
Ha a Nincs lehetőséget választja, a zene leáll.
A zenei fájl lejátszása közben a weboldal az AudioContext felületet használja a zene elemzéséhez, amelyet ezután biztonságos szerverkapcsolaton keresztül elküld a szervernek.
Az üzenet az a típus, amelyet a kiszolgálón található socket.io beállított a "ws2811" figyelésére. 50 elemből álló tömböt tartalmaz, amelyek 0 és 255 között vannak.
"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}
A szerver a Node RPI WS281x natív könyvtárat használja (Jeremy Garff WS281X könyvtárát csomagolja) a WS2811 LED szalagon lévő LED -ek színének megváltoztatásához, a websocketen keresztül küldött adatok alapján.
8. lépés: Végül
Látnia kell, hogy a szalagon lévő LED -ek a zenével együtt színt váltanak, a weboldalon elvégzett gyors Fourier -transzformáció elemzés alapján.
Remélem, élvezni fogja ezt. Tudassa velem, mit csinál vele!
MEGJEGYZÉS: Ha bármilyen problémája van
Mivel ez a könyvtár és a beépített Raspberry Pi audioegység egyaránt használja a PWM -et, nem használhatók együtt.
Lehet, hogy feketelistára kell tennie a Broadcom audio kernel modult, ha létrehoz egy /etc/modprobe.d/snd-blacklist.conf fájlt
feketelista snd_bcm2835
Ha a hangeszköz továbbra is betöltődik a feketelista után, akkor az /etc /modules fájlban is megjegyzést kell tennie. Fej nélküli rendszerek esetén előfordulhat, hogy a hangot kényszeríteni kell a hdmi -n keresztül
Szerkessze a config.txt fájlt, és adja hozzá:
hdmi_force_hotplug = 1
hdmi_force_edid_audio = 1
A módosítás életbe léptetéséhez újra kell indítani
Ajánlott:
Hordozható Disco V2 -Hangvezérelt LED -ek: 11 lépés (képekkel)
Hordozható Disco V2 -Hangvezérelt LED -ek: Hosszú utat tettem meg az elektronikai úton, mióta elkészítettem az első hordozható diszkót. Az eredeti felépítésben feltörtem egy áramkört a prototípus táblán, és sikerült felépítenem egy ügyes, kis zsebdiszkót. Ezúttal saját PCB -t terveztem
Led Disco Box: 7 lépés (képekkel)
Led Disco Box: Hogyan készítsünk saját LED diszkó dobozt
Disco Desktop Organizer: 8 lépés (képekkel)
Disco Desktop Organizer: Anyagok: triplex, vastagság: 3 mm Hány falap függ attól, hogy mekkora a lézervágója … állítsa be a reszelőt a maximális méretű falemezen … talán több mint 1 lemezre van szüksége (ezt vegye figyelembe). 6 db vaku LED (7 színes vaku LED -et használtam)
Hangvezérelt LED -ek - Pocket Disco: 11 lépés (képekkel)
Hangvezérelt LED -ek - Pocket Disco: Készítsen saját zsebdiszkót néhány zenével vezérelt LED -del. Csak zenére vagy hangra van szüksége, és a LED -ek körbe fognak táncolni a hangra. Ez egy nagyon futtatható kis áramkör, és csak néhány összetevőre van szükség az elkészítéséhez. A fő b
Disco Drinks Coaster: 4 lépés (képekkel)
Disco Drinks Coaster: Bár az Egyesült Királyságban, Cambridge mellett élünk, a feleségem tragikusan rabja Las Vegas mindennek. Közel hat hónap telt el a legutóbbi látogatásunk óta, ő pedig erős fényeket és koktélokat keres. Kevés dolog tesz szebbé egy italt, mint egyesek