Obsah:
- Krok 1: Spotrebný materiál
- Krok 2: Schéma a zapojenie
- Krok 3: Návrh databázy
- Krok 4: Príprava Raspberry Pi
- Krok 5: Postúpte inžinierstvo našej databázy do RPi
- Krok 6: Konfigurácia Bluetooth na našich RPi
- Krok 7: Napísanie kompletného backendu
- Krok 8: Písanie frontendu (HTML, CSS a JavaScript)
- Krok 9: Zostavenie môjho prípadu a jeho spojenie
- Krok 10: Niektoré problémy, s ktorými som sa stretol pri vytváraní reproduktora Slimbox…
Video: Slimbox - inteligentný reproduktor Bluetooth!: 10 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Hej vy tam!
Pre môj školský projekt na MCT Howest Kortrijk som vyrobil inteligentné zariadenie s reproduktorom Bluetooth s rôznymi senzormi, vrátane krúžku LCD a RGB NeoPixel. Všetko beží na Raspberry Pi (databáza, webový server, backend).
V tomto návode vám teda ukážem, ako som tento projekt vypracoval za 3 týždne, krok za krokom, takže ak niekto z vás chce môj projekt znova vytvoriť, ľahko to urobíte!
Toto je tiež môj prvý pokyn, ak máte nejaké otázky, pokúsim sa ich zodpovedať čo najskôr!
Môj GitHub:
Krok 1: Spotrebný materiál
Snímač teploty DS18B20
DS18B20 je jednovodičový senzor na meranie teploty, ktorý vyrába spoločnosť Maxim Integrated. Existujú 2 druhy senzorov DS18B20, iba komponent (ktorý som použil) a vodotesná verzia, ktorá je oveľa väčšia, ale to nie je to, čo som pre svoj projekt potreboval, takže som použil iba komponent. Senzor môže merať teplotu v rozsahu -55 ° C až +125 ° C (-67 ° F až +257 ° F) a má presnosť 0,5 ° C od -10 ° C do +85 ° C. Má tiež programovateľné rozlíšenie od 9 bitov do 12 bitov.
Dátový list:
Senzor potenciometra
Potenciometer je rezistor s tromi svorkami, ktorý je ručne nastaviteľný otáčaním hornej časti snímača. Poloha hornej časti určuje výstupné napätie potenciometra.
Akcelerometer LSM303 + kompas
Odlamovacia doska LSM303 je kombináciou trojosového akcelerometra a magnetometra / kompasu, vyrobeného spoločnosťou Adafruit. Používa sa s rozhraním I2C Raspberry Pi.
Prehľad:
Dátový list:
MCP3008
Na čítanie údajov z môjho potenciometra som použil MCP3008, čo je 8 -kanálový 10 -bitový analógovo -digitálny prevodník s rozhraním SPI a programovanie je veľmi jednoduché.
Dátový list:
Reproduktor - priemer 3 palce - 8 ohmov, 1 watt
Toto je reproduktorový kužeľ, ktorý som si vybral po výpočte napätia a ampérov, ktoré bude potrebovať, a to sa perfektne hodilo pre môj projekt Raspberry Pi, vyrábaný spoločnosťou Adafruit.
Prehľad:
MAX98357 I2S Mono zosilňovač triedy D
Toto je zosilňovač, ktorý je súčasťou reproduktora, nie je to len zosilňovač, ale je to tiež prevodník digitálneho signálu na analógový I2S, takže je tiež perfektne vhodný pre môj reproduktor a zvukový systém.
Prehľad:
Dátový list:
Arduino Uno
Arduino Uno je doska mikrokontroléra s otvoreným zdrojovým kódom založená na mikrokontroléri Microchip ATmega328P, ktorý vyrába spoločnosť Arduino.cc. Doska Uno má 14 digitálnych pinov, 6 analógových pinov a je plne programovateľná pomocou softvéru Arduino IDE
Prehľad:
Posunovač úrovní
Jedná sa o malú dosku, ktorá sa stará o komunikáciu medzi Arduino Uno a Raspberry Pi a rôznymi napätiami, Arduino: 5V a Raspberry Pi: 3,3V. Je to potrebné, pretože krúžok NeoPixel je pripojený k Arduinu a beží tam, zatiaľ čo všetky ostatné položky bežia na Raspberry Pi.
RGB NeoPixel prsteň
Jedná sa o malý krúžok naplnený 12 RGB LED diódami (ak chcete, môžete si kúpiť väčšie prstene s viacerými RGB LED diódami). Čo je v mojom prípade pripojené k Arduino Uno, ale dá sa pripojiť aj k mnohým ďalším zariadeniam a použitie je skutočne jednoduché.
Prehľad:
LCD displej 16x2
Na vytlačenie teploty, objemu a adresy IP som použil základný LCD displej.
Dátový list:
Karta Raspberry Pi 3B+ a 16 GB SD
Celý môj projekt beží na mojom Raspberry Pi 3B+ s nakonfigurovaným obrázkom, ktorý vám pomôžem nakonfigurovať neskôr v mojom návode.
GPIO T-Part, 2 Breadboards a veľa prepojovacích drôtov
Aby som prepojil všetko, čo som potreboval, dosky a prepojovacie mostíky, použil som T-časť GPIO, aby som mal viac miesta a bolo jasné, ktorý pin je ktorý.
Krok 2: Schéma a zapojenie
Pre svoju schému som použil Fritzing, je to program, ktorý si môžete nainštalovať a ktorý vám umožní vytvoriť schému skutočne jednoducho v rôznych druhoch zobrazení.
Stiahnite si Fritzing:
Zaistite teda, aby ste všetko prepojili správnym spôsobom! V mojom prípade farby vodičov nie sú rovnaké ako na schéme.
Krok 3: Návrh databázy
Zhromažďujeme veľa údajov z 3 pripojených senzorov, takže na uloženie údajov a senzorov potrebujeme databázu. Neskôr uvidíme, ako nakonfigurovať databázu na Raspberry Pi a ako do nej pridať údaje. Najprv však musí byť vytvorený návrh databázy alebo ERD (Entity Relationship Diagram) a môj bol tiež normalizovaný pomocou 3NF. Preto sme senzory rozdelili do ďalšej tabuľky a pracujeme s ID.
Celkovo je to skutočne základný a ľahký návrh databázy, s ktorým je možné ďalej pracovať.
Krok 4: Príprava Raspberry Pi
Takže teraz, keď máme hotové niektoré základy projektu. Začnime s Raspberry Pi!
Konfigurácia karty SD
Najprv potrebujete 16 GB kartu SD, na ktorú môžete vložiť svoj obrázok, a program na odoslanie úvodného obrázku na kartu SD.
Softvér:
Začať obrázok:
Keď sa teda stiahnu tieto:
- Vložte kartu SD do počítača.
- Otvorte Win32, ktorý ste práve stiahli.
- Vyberte súbor s obrázkom Raspbian, ktorý ste si tiež stiahli.
- Kliknite na „zapísať“do umiestnenia vašej karty SD.
V závislosti od hardvéru to môže chvíľu trvať. Akonáhle to bude hotové, sme pripravení vykonať posledné úpravy pred vložením obrázku do nášho RPi.
- Prejdite do adresára svojej karty SD, vyhľadajte súbor s názvom „cmdline.txt“a otvorte ho.
- Teraz na ten istý riadok pridajte „ip = 169.254.10.1“.
- Uložte súbor.
- Vytvorte súbor s názvom „ssh“bez prípony alebo obsahu.
Teraz môžete BEZPEČNE vysunúť kartu SD z počítača a vložiť ju do Raspberry Pi BEZ napájania. Akonáhle je karta SD zapojená do RPI, pripojte kábel LAN z počítača k portu LAN RPi. Po pripojení môžete k RPi pripojiť napájanie.
Teraz chceme ovládať náš Raspberry Pi, to sa deje prostredníctvom Putty.
Software pre tmely:
Po stiahnutí otvorte Putty a vložte IP „169.254.10.1“a port „22“a typ pripojenia: SSH. Teraz môžeme konečne otvoriť naše rozhranie príkazového riadku a prihlásiť sa pomocou prihlasovacích údajov štartéra -> Používateľ: pi & Heslo: malina.
Raspi-config
sudo raspi-config
Čo je pre tento projekt skutočne dôležité, je časť rozhrania, musíme povoliť veľa rôznych rozhraní, povoliť všetky nasledujúce rozhrania:
- Jednodrátové
- SPI
- I2C
- Sériové
Teraz, keď sme skončili s raspi-config, skúsme vytvoriť pripojenie k internetu.
Wi-Fi pripojenie
Najprv musíte byť root pre nasledujúce príkazy
sudo -i
Akonáhle ste root, použite nasledujúci príkaz. SSID je názov vašej siete a heslo je zrejme heslo.
wpa_passphrase "ssid" "heslo" >> /etc/wpa_supplicant/wpa_supplicant.conf
V prípade, že ste urobili chybu, môžete túto sieť skontrolovať, aktualizovať alebo vymazať zadaním tohto súboru:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Potom, čo sme vstúpili do našej siete, vstúpime do klientskeho rozhrania WPA
wpa_cli
Vyberte svoje rozhranie
rozhranie wlan0
Znova načítajte súbor
prekonfigurovať
A nakoniec môžete vidieť, či ste dobre spojení:
ip a
Aktualizácia a inovácia
Teraz, keď sme pripojení k internetu, by aktualizácia už nainštalovaných balíkov bola múdra akcia, urobme to teda pred inštaláciou ďalších balíkov.
sudo apt-get aktualizácia
sudo apt-get upgrade
Databáza MariaDB
Nainštalujte databázový server MariaDB:
sudo apt-get install mariadb-server
Webový server Apache2
Nainštalujte si webový server Apache2:
sudo apt nainštalovať apache2
Python
Nainštalujte Python:
update-alternatives --install/usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install/usr/bin/python python/usr/bin/python3 2
Balík Python
Aby perfektne fungovalo backend, budete musieť nainštalovať všetky tieto balíky:
- Banka
- Flask-Cors
- Flask-MySql
- Flask-SocketIO
- PyMySQL
- Žiadosti
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
- Ujson
- Wsaccel
Knižnica reproduktorov
Nainštalujte si knižnicu reproduktorov z Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Čas na reštart
sudo reštart
Krok 5: Postúpte inžinierstvo našej databázy do RPi
Teraz, keď sme nainštalovali všetko, čo sme potrebovali, vložme databázu, ktorú sme navrhli, na náš Raspberry Pi!
Najprv teda musíme preposlať našu databázu na pracovný stôl MySql, pričom skopírujeme celý kód databázy a odstránime z nej všetky „viditeľné“slová. Akonáhle je to skopírované, znova otvorte tmel, prihláste sa a zadajte:
sudo mysql
a teraz ste v rozhraní mysql, skopírujte do neho kód svojej databázy a stlačte kláves Enter.
Teraz stačí vytvoriť používateľa
VYTVORIŤ UŽÍVATEĽA „užívateľ“IDENTIFIKOVANÝ „užívateľom“;
UDELIŤ VŠETKY VÝHODY NA *. * „Používateľovi“;
Teraz reštartujte.
Teraz by malo byť všetko nastavené, môžete sa tiež spojiť s pracovným stolíkom Pi a MySql, takže je jednoduchšie kontrolovať všetky údaje vo vašich tabuľkách.
Krok 6: Konfigurácia Bluetooth na našich RPi
Vytvárame reproduktor Bluetooth, takže to znamená, že médiá sa odosielajú z nášho zdroja na Raspberry Pi a dá sa to celkom jednoducho, poďme na to!
Môj zdroj pre pripojenie bluetooth:
Odstránenie už spustenej bluealsy
sudo rm/var/run/bluealsa/*
Pridať rolu umývadla v profile A2DP
sudo bluealsa -p a2dp -sink &
Otvorte rozhranie Bluetooth a zapnite ho
bluetoothctl
zapnutie
Nastavte agenta párovania
agent na
default-agent
Urobte svoje RPi objaviteľnými
objaviteľné na
- Teraz zo svojho zariadenia bluetooth vyhľadajte RPi a spojte sa s ním.
- Potvrďte párovanie na oboch zariadeniach, do tmelu zadajte „áno“.
- Autorizujte službu A2DP, zadajte znova „áno“.
- Keď to bude hotové, môžeme svojmu zariadeniu dôverovať, takže to nebudeme musieť absolvovať vždy, keď sa budeme chcieť pripojiť
dôverujte XX: XX: XX: XX: XX: XX (Vaša bluetooth mac adresa z nášho zdrojového zariadenia)
Ak chcete, aby boli vaše RPi stále objaviteľné, je to vaša vlastná voľba, ale radšej ho vypnem, aby sa ľudia nemohli pokúsiť spojiť s vašim boxom
zistiteľné vypnuté
Potom môžeme opustiť naše rozhranie bluetooth
východ
A nakoniec naše smerovanie zvuku: naše zdrojové zariadenie presmerováva na naše RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Teraz je naše zariadenie plne prepojené s naším Raspberry a na reproduktore Pi by ste mali mať možnosť prehrávať médiá zo svojho zdrojového zariadenia.
Krok 7: Napísanie kompletného backendu
Takže teraz je nastavenie dokončené, môžeme konečne začať písať náš backendový program!
Použil som PyCharm pre celý svoj backend, stačí sa uistiť, že váš projekt PyCharm je pripojený k vášmu Raspberry Pi, to znamená, že vo vašich nastaveniach je nastavená cesta nasadenia a nainštalovali ste všetky potrebné balíčky, ktoré by už mali byť vykonané v kroku. 4.
Použil som svoje vlastné triedy a všetky sú tiež zahrnuté v mojom GitHub. Link je v úvode, ak ste ho zmeškali;)
V mojom backendovom súbore som použil triedy závitov, takže všetko môže bežať súčasne a nebude sa to navzájom prerušovať. A v spodnej časti máte všetky trasy, aby sme mohli ľahko získať údaje v našom klientskom rozhraní.
Krok 8: Písanie frontendu (HTML, CSS a JavaScript)
Teraz, keď je backend hotový, môžeme začať písať celý front-end.
HTML & CSS sa robilo celkom jednoducho, pokúsili sme sa najskôr pracovať s mobilným telefónom, pretože pretože sa väčšinou pripájame k Bluetooth z mobilného zariadenia, bolo by jednoduchšie ho ovládať z mobilného palubného panela.
Palubný panel si môžete navrhnúť akýmkoľvek spôsobom chcete, ja tu nechám svoj kód a dizajn, môžete si robiť, čo sa vám páči!
A Javascript nebol taký ťažký, pracoval s niekoľkými GET z mojich backendových trás, tonami poslucháčov udalostí a niektorými štruktúrami socketio.
Krok 9: Zostavenie môjho prípadu a jeho spojenie
Najprv som začal s niekoľkými náčrtkami, ako som chcel, aby prípad vyzeral. Dôležité bolo, že musí byť dostatočne veľký, aby sa doň všetko zmestilo, pretože sme dostali veľký obvod, ktorý bolo možné vložiť do puzdra.
Skriňu som vyrobil z dreva, myslím si, že sa s ňou najľahšie pracuje, keď nemáte toľko skúseností so stavebnicami a máte tiež veľa vecí, ktoré s ňou môžete robiť.
Začal som z puzdra na fľaše na víno a práve som začal píliť drevo. Keď som mal svoje základné puzdro, musel som doň jednoducho vyvŕtať otvory (veľa na prednej strane puzdra, ako môžete vidieť na obrázkoch: P) a vložiť do neho niekoľko klincov, je to skutočne základný prípad, ale vyzerá celkom cool a perfektne sedí.
A keď bol prípad hotový, bolo načase dať to všetko dohromady, ako vidíte na poslednom obrázku! Vnútri krabice je trochu neporiadok, ale všetko funguje a nemal som toľko priestoru, preto vám radím, aby ste vytvorili väčší prípad, ak rekonštruujete môj projekt.
Krok 10: Niektoré problémy, s ktorými som sa stretol pri vytváraní reproduktora Slimbox…
Chyby Bluetooth a bluealsa
Zakaždým, keď som si chcel pustiť hudbu alebo sa pripojiť k bluetooth, zobrazili sa mi chyby z bluetooth a bluealsa. Urobil som na to prieskum a toto bolo riešenie môjho problému. Takže z nejakého dôvodu bol môj bluetooth softblokovaný, nie som si istý, či je to štandardné mäkké blokovanie. Ak to chcete zistiť, zadajte do Putty nasledujúci príkaz.
rfkill zoznam
Ak je teda softblokovaný, použite toto:
rfkill odblokovať bluetooth
A potom možno budete chcieť reštartovať, môj zdroj:
Problémy so sériovým pripojením
Ďalším veľkým problémom, ktorý som mal, bolo to, že som nemohol vytvoriť žiadne spojenie so svojim Arduino prostredníctvom posunovača úrovní, po nejakom hľadaní som zistil, že môj '/dev/ttyS0' bol preč a môže to byť kvôli aktualizácii vášho RPi. Aj na to sa našlo riešenie
Budete musieť znova povoliť sériovú konzolu pomocou raspi-config, reštartovať počítač a potom ručne odstrániť bit „console = serial0, 115200“z súboru /boot/cmdline.txt'. Potvrďte, že „enable_uart = 1“je v /boot/config.txt 'a znova reštartujte. To by malo dostať späť váš port ttyS0, ako aj mäkký odkaz'/dev/serial0 'na neho.
Zdroj:
Odporúča:
Prenosný reproduktor Bluetooth - Sada MKBoom pre domácich majstrov: 5 krokov (s obrázkami)
Prenosný reproduktor Bluetooth | Sada pre domácich majstrov MKBoom: Ahoj všetci! Je dobré byť späť s ďalším projektom reproduktorov po dlhej prestávke. Pretože väčšina mojich zostáv vyžaduje na dokončenie niekoľko nástrojov, tentokrát som sa rozhodol postaviť prenosný reproduktor pomocou súpravy, ktorú si môžete ľahko kúpiť. Myslel som si to
Reproduktor nálady- výkonný reproduktor na prehrávanie hudby nálady na základe teploty okolia: 9 krokov
Reproduktor nálady- výkonný reproduktor na prehrávanie hudby nálady na základe teploty okolia: Dobrý deň! Pre môj školský projekt v MCT Howest Kortrijk som vyrobil reproduktor nálady, ktorý je inteligentným reproduktorom Bluetooth s rôznymi senzormi, LCD a WS2812b LED pásik je súčasťou dodávky. Reproduktor prehráva hudbu na pozadí podľa teploty, ale môže
Pán reproduktor - prenosný reproduktor DSP s 3D tlačou: 9 krokov (s obrázkami)
Pán reproduktor - prenosný reproduktor DSP s 3D tlačou: Volám sa Simon Ashton a za tie roky som postavil veľa reproduktorov, zvyčajne z dreva. Minulý rok som dostal 3D tlačiareň, a tak som chcel vytvoriť niečo, čo je príkladom jedinečnej slobody dizajnu, ktorú 3D tlač umožňuje. Začal som hrať s
Ako previesť akýkoľvek REPRODUKTOR na BLUETOOTH REPRODUKTOR: 5 krokov
Ako previesť akýkoľvek reproduktor na reproduktor BLUETOOTH SPEAKER: Ak máte starý systém domáceho kina ako ja, vo vašom systéme chýba veľmi obľúbená možnosť pripojenia s názvom Bluetooth. Bez tohto zariadenia musíte čeliť drôtenému chaosu normálneho pripojenia AUX a samozrejme, ak
Premeňte akýkoľvek reproduktor na reproduktor Bluetooth: 4 kroky
Premeňte akýkoľvek reproduktor na reproduktor Bluetooth: Pred niekoľkými rokmi bolo bežné, že prenosné reproduktory mali 3,5 mm konektor a boli napájané batériami AA. Podľa dnešných štandardov je to trochu zastaraná najmä batéria, pretože každý prístroj v dnešnej dobe má nabíjateľnú batériu. Zvukový konektor je