Tartalomjegyzék:
- 1. lépés: Kellékek
- 2. lépés: Vázlat és kábelezés
- 3. lépés: Adatbázis tervezése
- 4. lépés: A Raspberry Pi beállítása
- Step 5: Setting Up the Database to the RPi
- 6. lépés: A Bluetooth konfigurálása az RPi -n
- 7. lépés: A teljes háttérprogram írása
- 8. lépés: A kezelőfelület írása (HTML, CSS és JavaScript)
- 9. lépés: Az ügy felépítése és az összes összerakása
Videó: Hangulatos hangszóró- Erőteljes hangszóró a hangulati zene lejátszásához a környezeti hőmérséklet alapján: 9 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Halihó!
Az MCT Howest Kortrijk -i iskolai projektemhez készítettem egy hangulati hangszórót, ez egy intelligens Bluetooth hangszóró, különböző érzékelőkkel, LCD -vel és WS2812b ledszalaggal. A hangszóró a háttér alapján zenét játszik le, de rendszeres Bluetooth -ként is használható hangszóró. Minden a Raspberry Pi -n fut (Database, Webserver, Backend).
Tehát ez az oktatható lépésről lépésre mutatja be, hogyan valósítottam meg ezt a projektet 3 hét alatt. Tehát, ha szeretné újra létrehozni a projektemet, kövesse az útmutatót
Ez az oktatható az első, amit írtam, így ha vannak várakozásaim, megpróbálok a lehető leggyorsabban válaszolni rájuk!
Saját GitHub:
1. lépés: Kellékek
Raspberry Pi 3B és 16 GB SD kártya
Az egész projektem a Raspberry Pi 3B -n fut, konfigurált képpel, amelyet egy későbbi lépésben elmagyarázok (4. lépés: A Raspberry Pi beállítása)
LCD kijelző 16x2
Alapértelmezett LCD kijelzőt használtam a hőmérséklet, a fényerő és az IP -cím nyomtatásához.
Adatlap:
DS18B20 hőmérséklet érzékelő
A DS18B20 egy egyvezetékes érzékelő, amely méri a hőmérsékletet, a Maxim Integrated gyártmánya. Kétféle DS18B20 érzékelő létezik, csak a komponens (amit használtam) és a vízálló verzió, ami sokkal nagyobb, de nem erre volt szükségem a projektemhez, ezért csak az alkatrészt használtam. Az érzékelő -55 ° C és +125 ° C (-67 ° F és +257 ° F) közötti tartományban képes mérni a hőmérsékletet, és -10 ° C és +85 ° C között 0,5 ° C pontossággal rendelkezik. Ezenkívül programozható felbontással rendelkezik, 9 bitről 12 bitre.
Adatlap:
MCP3008
Az LDR- és PIR-érzékelőm adatainak olvasásához egy MCP3008-at használtam, amely egy 8 csatornás 10 bites analóg-digitális átalakító SPI interfésszel, és nagyon könnyen programozható.
Adatlap:
PIR mozgásérzékelő
Passzív infravörös érzékelőt használtam annak észlelésére, hogy valaki belép -e a szobámba, vagy elhagyja azt, mert könnyen használhatóak és kicsik.
Adatlap:
LDR
Fényellenállást vagy LDR-t (fénycsökkentő ellenállás vagy fényfüggő ellenállás) használtam a helyiség fényerejének érzékelésére. És bekapcsolni a LED szalagot, amikor sötétedik.
Hangszóró - 3”átmérő - 4 Ohm 3 Watt
Ezt a hangszórókúpot választottam a szükséges feszültség és amper kiszámítása után, és ez tökéletesen illeszkedett az Adafruit által gyártott Raspberry Pi projektemhez.
Áttekintés:
MAX98357 I2S D osztályú monóerősítő
Ez az erősítő, amely a hangszóróhoz tartozik, nemcsak erősítő, hanem I2S digitális -analóg átalakító is, így tökéletesen illeszkedik a hangszóróhoz és az audiorendszerhez.
Áttekintés:
Adatlap:
Arduino Uno
Az Arduino Uno egy nyílt forráskódú mikrovezérlő kártya, amely az Arduino.cc által gyártott Microchip ATmega328P mikrokontrollerre épül. Az Uno kártya 14 digitális tűvel, 6 analóg tűvel rendelkezik, és teljesen programozható az Arduino IDE szoftverrel
Áttekintés:
Szintváltó
Ez egy kis tábla, amely gondoskodik az Arduino Uno és a Raspberry Pi közötti kommunikációról, valamint a különböző feszültségekről, Arduino: 5V és Raspberry Pi: 3.3V. Erre azért van szükség, mert a ledszalag csatlakozik az Arduino -hoz, és ott fut tovább, míg az összes többi dolog a Raspberry Pi -n fut.
WS2812B - Ledstrip
Ez egy LED szalag, 60 RGB LED -del (ha kívánja, hosszabb csíkokat is vásárolhat több RGB leddel). Ami esetemben az Arduino Uno -hoz van csatlakoztatva, de sok más eszközhöz is csatlakoztatható, és nagyon egyszerű a használata.
Adatlap:
GPIO T-alkatrész, 1 kenyérlap és sok jumperhuzal
Ahhoz, hogy mindent összekapcsolhassak, amire szükségem volt a deszkákhoz és az áthidaló vezetékekhez, nem a GPIO T-alkatrészt használtam, de ezzel egyértelműen tudhatja, hogy melyik tároló hova megy.
2. lépés: Vázlat és kábelezés
A sematikám elkészítéséhez a Fritzing programot használtam, ez egy olyan program, amelyet telepíthet, és amely lehetővé teszi egy nagyon egyszerű vázlat létrehozását különböző nézetekben. A panelt és a sematikus nézetet használtam.
A Fritzing letöltése:
Győződjön meg arról, hogy minden megfelelően van csatlakoztatva. Színeket használtam, hogy egy kicsit világosabb legyen a vezetékek csatlakoztatásának helye. Esetemben különböző színeket használtam a vezetékekhez
3. lépés: Adatbázis tervezése
Sok adatot gyűjtünk a 3 érzékelőből (hőmérséklet a DS18B20-tól, fényerő az LDR-től és az állapot a PIR-érzékelőtől). Ezért a legjobb, ha ezeket az adatokat egy adatbázisban tárolja. Egy későbbi lépésben elmagyarázom, hogyan kell konfigurálni az adatbázist (5. lépés: Adatbázisunk továbbfejlesztése az RPi -hez!) De először a tervezést vagy az ERD -t (Entity Relationship Diagram) kell elkészíteni. Az enyémet 3NF -el normalizáltuk, ezért osztottuk fel az összetevőket és az összetevők előzményeit egy másik táblázatra. A Zene adatbázis segítségével nyomon követhetjük a hallgatott dalokat.
Összességében ez egy igazán egyszerű és egyszerű adatbázis -tervezés, amellyel tovább lehet dolgozni.
4. lépés: A Raspberry Pi beállítása
Tehát most, hogy elkészült a projekt néhány alapja. Kezdjük a Raspberry Pi beállításával!
1. rész: Az SD -kártya konfigurálása
1) Töltse le a szükséges szoftvereket és fájlokat
Ehhez a teljes folyamathoz 2 szoftvert és 1 operációs rendszert, azaz Raspbian -t kell letöltenie. 1. szoftver: Az első szoftver a Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2. szoftver: A második szoftver az SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Ez a Pi fő operációs rendszere.
www.raspberrypi.org/downloads/raspberry-pi-os/
Bontsa ki az összes fájlt az asztalra.
2) Szerezze be az SD -kártyát és a kártyaolvasót
Szerezzen be legalább 8 GB -os, 10 -es osztályú SD -kártyát kártyaolvasóval. Helyezze be a kártyát a kártyaolvasóba, és csatlakoztassa az USB -porthoz.
3) Formázza meg az SD kártyát
Nyissa meg az SD -kártya formázót, és válassza ki a meghajtót.
Kattintson a formátumra, és ne változtasson más beállításokon.
A formázás befejezése után kattintson az OK gombra.
4) Írja be az operációs rendszert az SD -kártyára
Nyissa meg a win32diskimager programot.
Böngésszen a Raspbian OS.img fájljában, amelyet a letöltött fájlból vontak ki.
Kattintson a Megnyitás, majd az Írás gombra.
Ha bármilyen figyelmeztetés megjelenik, akkor hagyja figyelmen kívül az OK gombra kattintva. Várja meg, amíg az írás befejeződik, és eltarthat néhány percig. Legyen tehát türelmes.
n
5) Ha ez megtörtént, készen állunk néhány végső beállításra, mielőtt a képet az RPi -be helyezzük.
Lépjen az SD -kártya könyvtárába, keresse meg a "cmdline.txt" nevű fájlt, és nyissa meg.
Most adja hozzá az 'ip = 169.254.10.1' szót ugyanahhoz a sorhoz.
Mentse a fájlt.
Hozzon létre egy "ssh" nevű fájlt kiterjesztés vagy tartalom nélkül. (A legegyszerűbb módszer egy txt fájl létrehozása, majd a.txt eltávolítása)
Most, hogy minden telepítve van az SD -kártyára, BIZTONSAN kiveheti azt a számítógépről, és behelyezheti a Raspberry Pi -be a tápellátás csatlakoztatása nélkül. Ha az SD -kártya be van helyezve az RPI -be, csatlakoztasson egy LAN -kábelt a számítógépről az RPi LAN -porthoz, miután csatlakoztatta, csatlakoztathatja az RPi tápellátását.
2. rész: Az RPi konfigurálása
Gitt
Most szeretnénk konfigurálni a Raspberry Pi -t, ez a Putty segítségével történik.
Putty szoftver:
A letöltés után nyissa meg a Putty alkalmazást, és illessze be a „169.254.10.1” és a „22” portot, valamint a csatlakozástípust: SSH.
Most végre megnyithatjuk a parancssori felületünket, és bejelentkezhetünk a kezdő bejelentkezési adatokkal -> Felhasználó: pi & Jelszó: málna. (Javasoljuk, hogy a lehető leggyorsabban módosítsa. Íme egy útmutató, hogyan:
Raspi-config
A különböző interfészeket engedélyeznünk kell, és ehhez először be kell írnunk a következő kódot:
sudo raspi-config
Az engedélyezéshez szükséges dolgok az interfész részben találhatók. A következő interfészeket kell engedélyeznünk:
- Egyvezetékes
- Sorozatszám
- I2C
- SPI
Ennyi volt a dolgunk a raspi-config-tal
WIFI hozzáadása
Először rootnak kell lennie ahhoz, hogy a következő parancs root legyen
sudo -i
Ha root, akkor használja a következő parancsot: (Cserélje le az SSID -t a hálózat nevével és jelszavával a hálózati jelszóval)
wpa_passphrase "ssid" "jelszó" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ha valamit rosszul csinált, ellenőrizheti, frissítheti vagy törölheti ezt a hálózatot a következő parancs megadásával:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Tehát miután belépünk a hálózatunkba, lépjünk be a WPA kliens felületre
wpa_cli
Válassza ki a kezelőfelületet
wlan0 interfész
Töltse be újra a fájlt
konfigurálja újra
És végül láthatja, hogy jól kapcsolódik -e:
ip a
3. rész: Az RPi + telepítő szoftver frissítése
Most, hogy csatlakoztunk az internethez, a már telepített csomagok frissítése okos lépés lenne, ezért először tegyük ezt meg, mielőtt más csomagokat telepítenénk.
sudo apt-get update
sudo apt-get upgrade
Az RPi frissítése után a következő szoftvert kell telepítenünk:
MariaDB adatbázis
sudo apt-get install mariadb-server
Apache2 webszerver
sudo apt install apache2
Piton
update-alternatives --install/usr/bin/python python /usr/bin/python3.7 1 update-alternatives --install/usr/bin/python python/usr/bin/python3 2
Python csomag
A háttérrendszer tökéletes működéséhez telepítenie kell ezeket a csomagokat:
- Lombik
- Lombik-Cors
- Lombik-MySql
- Flask-SocketIO
- PyMySQL kérések
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Hangszóró könyvtár
A hangszóró erősítővel történő használatához telepítenünk kell egy könyvtárat
curl -sS > | bash
Step 4: Reboot
After everything has been installed we will have to reboot the pi to make sure everything works correctly
sudo reboot
Step 5: Setting Up the Database to the RPi
Most, hogy mindent telepítettünk, amire szükségünk volt, tegyük a Raspberry Pi -re az általunk tervezett adatbázist!
Az adatbázis beállításához össze kell kapcsolnunk a MySql -t és az RPi -t. Ehhez megnyitjuk a MySQLWorkbench -t, és új kapcsolatot hozunk létre. Amikor megnézi a képet, módosítania kell, hogy az adatokat a sajátjára módosítsa.
Ha még nem változtatott semmit, használhatja az SSH pi és a málna, a MySQL mysql és a mysql számára.
Ha valami nem világos, kövesse ezt az oktatóanyagot is:
Az adatbázis exportálásához egyszerűbbnek kell lennie a PHPmyAdmin használatával, mert sok hibát kaphat a MySql használatával
6. lépés: A Bluetooth konfigurálása az RPi -n
Készítünk egy Mood hangszórót, amelyet saját zenéinkkel is használhatunk, így ez könnyebb, ha az RPi van
Bluetooth -hoz kapcsolódva követtem egy oktatóanyagot, amelyet itt találsz:
scribles.net/streaming-bluetooth-audio-fr…
Mindent leírtam itt is mindenkinek, aki szeretné újra létrehozni
A már futó bluealsa eltávolítása
sudo rm/var/run/bluealsa/*
A2DP profil Sink szerepkör hozzáadása
sudo bluealsa -p a2dp -mosogató &
Nyissa meg a Bluetooth interfészt, és kapcsolja be a Bluetooth funkciót
bluetoothctl bekapcsolva
Állítson be egy párosító ügynököt
ügynök az alapértelmezett ügynökön
Tegye felfedezhetővé RPi -jét
felfedezhető
- Most a Bluetooth -eszközről keresse meg az RPi -t, és csatlakozzon hozzá.
- Erősítse meg a párosítást mindkét eszközön, írja be az „igen” -t a gittbe.
- Engedélyezze az A2DP szolgáltatást, írja be ismét az „igen” szót.
- Ha ez megtörtént, bízhatunk eszközünkben, így nem kell mindezt végigjárnunk minden alkalommal, amikor csatlakozni akarunk
bizalom XX: XX: XX: XX: XX: XX (az Ön bluetooth -os mac -címe a forráseszközünkről)
Ha azt szeretné, hogy az RPi továbbra is felfedezhető legyen, az a saját döntése, de inkább kikapcsolom, hogy az emberek ne próbálhassanak csatlakozni a dobozához
felfedezhető
Ezután kiléphetünk a bluetooth felületről
kijárat
És végül a hangirányításunk: forráseszközünk továbbítja az RPi -hez
bluealsa-aplay 00: 00: 00: 00: 00: 00
Most eszközünk bluetooth -on csatlakozik a Raspberry -hez, és képesnek kell lennie arra, hogy tesztelje azt bármilyen média lejátszásával, például Spotify stb.
7. lépés: A teljes háttérprogram írása
Tehát most a beállítás befejeződött, végre elkezdhetjük írni a háttérprogramunkat!
A Visual Studio Code -ot használtam a teljes háttérmunkámhoz, csak meg kell győződnie arról, hogy a Visual Studio projekt csatlakozik a Raspberry Pi -hez, ez azt jelenti, hogy a LAN -kábelt csatlakoztatni kell az RPi -hez, és SSH -kapcsolatot kell létrehozni. (a távoli kapcsolat létrehozásával kapcsolatos információk itt találhatók:
Saját osztályokat használtam, és ezek is szerepelnek a GitHubomban.
A háttérfájlomban különböző osztályokat használtam, így mindent külön lehet használni, és így a fő kódom nem zavarja az összes különböző szálat. A szálazással futtattam az összes különböző osztályt egyszerre. És alul megtalálta az összes útvonalat, így könnyen beszerezhetjük az adatokat a kezelőfelületünkre.
8. lépés: A kezelőfelület írása (HTML, CSS és JavaScript)
Most, hogy elkészült a háttér, elkezdhetjük a teljes kezelőfelület írását.
A HTML és a CSS elég nehéz volt számomra, mindent megtettem, hogy először mobil legyen, mert bluetooth -on csatlakozhatok hozzá, hogy a Spotify segítségével megváltoztassam a dalokat. Így könnyebb lenne irányítani a mobil műszerfalról
A műszerfalat bármilyen módon megtervezheti, csak itt hagyom a kódomat és a dizájnomat, bármit megtehet, amit csak akar!
És a Javascript sem volt egyszerűbb számomra, dolgozott néhány GET -el a háttérprogramomból, rengeteg eseményhallgatóval és néhány socketio -struktúrával, hogy lekérjem az adatokat az érzékelőimről.
9. lépés: Az ügy felépítése és az összes összerakása
Először elkezdtem rajzolni, hogyan szeretném kinézni a tokot, fontos volt, hogy elég nagynak kell lennie ahhoz, hogy minden beleférjen, mivel nagy áramkört kaptunk a tokba, de kompaktnak kellett maradnunk, hogy ne ne foglaljon sok helyet
A tokot fából készítettem, azt hiszem, akkor a legkönnyebb vele dolgozni, ha nincs annyi tapasztalatod a tokok építésében, és sok dolgod is van vele.
Egy régi deszkából indultam, amit lefektettem, és elkezdtem fűrészelni a fát. Miután megvolt az alap tokom, csak lyukakat kellett fúrni benne (sokat a tok elején, ahogy a képeken is látszik, és néhány szöget belerakni, ez tényleg alap tok, de nagyon jól néz ki és tökéletesen illeszkedik. Én is úgy döntöttem, hogy fehérre festem, hogy jól nézzen ki.
És miután az ügy elkészült, ideje volt mindent összeszedni, amint az az utolsó képen is látszik! Kicsit rendetlenség van a doboz belsejében, de minden működik, és nem volt sokkal több helyem, ezért azt tanácsolom, hogy készítsen egy nagyobb esetet, ha újrateremti a projektemet.
Ajánlott:
Hangulati lámpa (Rodrigo Jimenez 20052): 3 lépés
Hangulati lámpa (Rodrigo Jimenez 20052): Link a videóhoz és a youtube -hoz: https://youtu.be/H4ghI6UAJw8
Hangulati lámpa Diego Castillo 20764: 4 lépés
Hangulati lámpa Diego Castillo 20764: " Hangulatlámpa " La lampara de sentimientos es capas de funcionar en 2 modos: Manual y Automático.En modo Manual los colores podrán ser regulados a través de 3 potenciómetros y en modo Automático lo que determinara el color de tu lampara, será
4 Zene reaktív LED áramkörök -- MIC/AUX kábel/hangszóró: 3 lépés
4 Zene reaktív LED áramkörök || MIC/AUX kábel/hangszóró: Ez az áramkör reagál a hangulatos zenére, és a zene ütemével világít a LED-eknek. Itt négy különböző módot mutatok be, amelyekkel zenei reaktív LED-áramkört hozhat létre: -1. Egy tranzisztor2. Két tranzisztor 3. AUX kábel 4. Hangszóró
Albumok NFC -címkékkel a Spotify zene automatikus lejátszásához Chromecaston: 5 lépés
Albumok NFC -címkékkel a Spotify zene automatikus lejátszásához a Chromecaston: Ez a projekt azzal a gondolattal indult, hogy albumkollázst készítek a legtöbbet játszott előadóimról a Spotify -on. Miután játszottam a Spotify API -val Pythonban, úgy gondoltam, jó lenne ezeket az albumborítókat összekapcsolni a Spotify URI -jukkal, és elkezdeni játszani a
Bluetooth hangszóró zene vizualizátorral: 10 lépés (képekkel)
Bluetooth hangszóró zenei vizualizátorral: Ebben az oktatóanyagban megmutatom, hogyan építhetem fel ezt a Bluetooth hangszórót, amelynek tetején egy zenelejátszó található. Nagyon jól néz ki, és fantasztikusabbá teszi a dal hallgatási pillanatát. Eldöntheti, hogy bekapcsolja -e a megjelenítőt, vagy sem