Tartalomjegyzék:

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
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

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

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
Videó: Bemutatkozik a Sony SRS-XG500 vezeték nélküli hangsugárzója 2024, November
Anonim
Hangulati hangszóró- Erőteljes hangszóró a hangulati zene lejátszásához a környezeti hőmérséklet alapján
Hangulati hangszóró- Erőteljes hangszóró a hangulati zene lejátszásához a környezeti hőmérséklet alapján

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

Vázlat és huzalozás
Vázlat és huzalozás
Vázlat és huzalozás
Vázlat és huzalozá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

Adatbázis tervezés
Adatbázis tervezés

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

Az adatbázis beállítása az RPi -hez!
Az adatbázis beállítása az RPi -hez!

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

Az ügyem felépítése és az összes összerakása
Az ügyem felépítése és az összes összerakása
Az ügyem felépítése és az összes összerakása
Az ügyem felépítése és az összes összerakása
Az ügyem felépítése és az összes összerakása
Az ügyem felépítése és az összes összerakása
Az ügyem felépítése és az összes összerakása
Az ügyem 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: