Obsah:
- Krok 1: Spotřební materiál
- Krok 2: Schéma a zapojení
- Krok 3: Návrh databáze
- Krok 4: Příprava Raspberry Pi
- Krok 5: Forward Engineering Our Database to the RPi
- Krok 6: Konfigurace Bluetooth na našich RPi
- Krok 7: Napište kompletní backend
- Krok 8: Psaní frontendu (HTML, CSS a JavaScript)
- Krok 9: Sestavení mého případu a dát to dohromady
- Krok 10: Některé problémy, které jsem měl na cestě k vytvoření reproduktoru Slimbox…
Video: Slimbox - chytrý reproduktor Bluetooth!: 10 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Zdravím!
Pro svůj školní projekt na MCT Howest Kortrijk jsem vyrobil chytré Bluetooth reproduktorové zařízení s různými senzory, včetně LCD a RGB NeoPixel kroužku. Vše běží na Raspberry Pi (databáze, webový server, backend).
V tomto návodu vám tedy ukážu, jak jsem tento projekt vytvořil za 3 týdny, krok za krokem, takže pokud někdo z vás chce můj projekt znovu vytvořit, můžete to snadno udělat!
Toto je také můj první pokyn, pokud máte nějaké otázky, pokusím se je zodpovědět co nejrychleji!
Můj GitHub:
Krok 1: Spotřební materiál
Snímač teploty DS18B20
DS18B20 je jednovodičový senzor měřící teplotu, vyráběný společností Maxim Integrated. Existují 2 druhy senzorů DS18B20, pouze komponenta (kterou jsem použil) a vodotěsná verze, která je mnohem větší, ale to není to, co jsem pro svůj projekt potřeboval, takže jsem použil pouze komponentu. Senzor může měřit teplotu v rozsahu -55 ° C až +125 ° C (-67 ° F až +257 ° F) a má přesnost 0,5 ° C od -10 ° C do +85 ° C. Má také programovatelné rozlišení od 9 bitů do 12 bitů.
Datasheet:
Senzor potenciometru
Potenciometr je rezistor se třemi vývody, který lze ručně nastavit pouhým otáčením horní části snímače. Poloha horní části určuje výstupní napětí potenciometru.
Akcelerometr LSM303 + kompas
Odlamovací deska LSM303 je kombinací trojosého akcelerometru a magnetometru / kompasu, vyrobeného společností Adafruit. Používá se s rozhraním I2C Raspberry Pi.
Přehled:
Datasheet:
MCP3008
Ke čtení dat z mého potenciometru jsem použil MCP3008, což je 8kanálový 10bitový analogově digitální převodník s rozhraním SPI a programování je docela snadné.
Datasheet:
Reproduktor - průměr 3 palce - 8 ohmů, 1 watt
Toto je kužel reproduktoru, který jsem si vybral po výpočtu napětí a ampér, které by potřeboval, a to se perfektně hodilo pro můj projekt Raspberry Pi, vyráběný společností Adafruit.
Přehled:
MAX98357 I2S Mono zesilovač třídy D
Toto je zesilovač, který je dodáván s reproduktorem, nejen že je to zesilovač, ale je to také převodník digitálního signálu na analogový I2S, takže se také perfektně hodí pro můj reproduktor a audio systém.
Přehled:
Datasheet:
Arduino Uno
Arduino Uno je deska s mikrokontrolérem s otevřeným zdrojovým kódem založená na mikrokontroléru Microchip ATmega328P, vyráběném společností Arduino.cc. Deska Uno má 14 digitálních pinů, 6 analogových pinů a je plně programovatelná pomocí softwaru Arduino IDE
Přehled:
Posuvník úrovně
Jedná se o malou desku, která se stará o komunikaci mezi Arduino Uno a Raspberry Pi a různými napětími, Arduino: 5V a Raspberry Pi: 3,3V. To je potřeba, protože prsten NeoPixel je připojen k Arduinu a běží tam, zatímco všechny ostatní věci běží na Raspberry Pi.
RGB NeoPixel prsten
Jedná se o malý prsten naplněný 12 RGB LED diodami (pokud chcete, můžete si koupit větší prsteny s více RGB LED diodami). Který je v mém případě připojen k Arduino Uno, ale může být také připojen k mnoha dalším zařízením a jeho použití je opravdu jednoduché.
Přehled:
LCD displej 16x2
K tisku teploty, objemu a adresy IP jsem použil základní LCD displej.
Datasheet:
Karta Raspberry Pi 3B+ a 16 GB SD
Celý můj projekt běží na mém Raspberry Pi 3B+ s nakonfigurovaným obrazem, který vám pomůžu nakonfigurovat později v mém instructable.
GPIO T-Part, 2 prkénka a spousta propojovacích drátů
Abych připojil vše, co jsem potřeboval, prkénka a propojovací vodiče, použil jsem T-část GPIO, abych měl více místa a bylo jasné, který pin je který.
Krok 2: Schéma a zapojení
Pro mé schéma jsem použil Fritzing, je to program, který můžete nainstalovat a který vám umožní vytvořit schéma opravdu snadné v různých druzích zobrazení.
Stáhněte si Fritzing:
Ujistěte se tedy, že vše připojujete správným způsobem! V mém případě nejsou barvy vodičů stejné jako na schématu.
Krok 3: Návrh databáze
Shromažďujeme mnoho dat ze 3 připojených senzorů, takže potřebujeme databázi, do které data a senzory uložíme. Později se podíváme, jak konfigurovat databázi na Raspberry Pi a jak do ní přidávat data. Nejprve však musí být vytvořen návrh databáze nebo ERD (Entity Relationship Diagram) a můj byl také normalizován pomocí 3NF. Proto jsme senzory rozdělili do jiné tabulky a pracujeme s ID.
Celkově je to opravdu základní a snadný návrh databáze, s nímž lze dále pracovat.
Krok 4: Příprava Raspberry Pi
Takže teď, když máme hotové nějaké základy projektu. Začněme s Raspberry Pi!
Konfigurace karty SD
Nejprve potřebujete 16 GB SD kartu, na kterou můžete vložit svůj obrázek, a program pro nahrání úvodního obrázku na SD kartu.
Software:
Úvodní obrázek:
Jakmile jsou tedy staženy:
- Vložte kartu SD do počítače.
- Otevřete Win32, který jste právě stáhli.
- Vyberte soubor obrázku Raspbian, který jste také právě stáhli.
- Klikněte na 'zapsat' do umístění vaší SD karty.
V závislosti na vašem hardwaru to může nějakou dobu trvat. Jakmile to bude hotové, jsme připraveni provést poslední úpravy, než vložíme obrázek do našeho RPi.
- Přejděte do adresáře karty SD, vyhledejte soubor s názvem „cmdline.txt“a otevřete jej.
- Nyní přidejte 'ip = 169.254.10.1' na stejný řádek.
- Uložte soubor.
- Vytvořte soubor s názvem 'ssh' bez přípony nebo obsahu.
Nyní můžete BEZPEČNĚ vysunout kartu SD z počítače a vložit ji do Raspberry Pi BEZ napájení. Jakmile je karta SD v RPI, připojte kabel LAN z počítače k portu LAN RPi, jakmile je připojen, můžete k RPi připojit napájení.
Nyní chceme ovládat náš Raspberry Pi, to se provádí pomocí Putty.
Software pro tmely:
Po stažení otevřete Putty a vložte IP '169.254.10.1' a Port '22' a typ připojení: SSH. Nyní můžeme konečně otevřít naše rozhraní příkazového řádku a přihlásit se pomocí přihlašovacích údajů startéru -> Uživatel: pi & Heslo: malina.
Raspi-config
sudo raspi-config
Co je pro tento projekt opravdu důležité, je sekce rozhraní, musíme povolit mnoho různých rozhraní, povolit všechna následující rozhraní:
- Jednodrátové
- SPI
- I2C
- Seriál
Nyní, když jsme hotovi s raspi-config, zkusme vytvořit připojení k internetu.
Wi-Fi připojení
Nejprve musíte být root pro následující příkazy
sudo -i
Jakmile jste root, použijte následující příkaz. SSID je název vaší sítě a heslo je samozřejmě heslo.
wpa_passphrase "ssid" "heslo" >> /etc/wpa_supplicant/wpa_supplicant.conf
V případě, že jste udělali chybu, můžete tuto síť zkontrolovat, aktualizovat nebo odstranit pouhým zadáním tohoto souboru:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Poté, co jsme vstoupili do naší sítě, vstupme do klientského rozhraní WPA
wpa_cli
Vyberte své rozhraní
rozhraní wlan0
Znovu načtěte soubor
přenastavit
A nakonec můžete zjistit, zda jste dobře připojeni:
ip a
Aktualizovat a upgradovat
Nyní, když jsme připojeni k internetu, by aktualizace již nainstalovaných balíčků byla chytrým krokem, takže to uděláme nejprve před instalací dalších balíčků.
sudo apt-get update
sudo apt-get upgrade
Databáze MariaDB
Nainstalujte databázový server MariaDB:
sudo apt-get install mariadb-server
Webový server Apache2
Nainstalujte si webový server Apache2:
sudo apt nainstalovat apache2
Krajta
Nainstalujte 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íček Python
Budete muset nainstalovat všechny tyto balíčky, aby backend fungoval perfektně:
- Baňka
- Baňky-Cors
- Flask-MySql
- Flask-SocketIO
- PyMySQL
- Žádosti
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
- Ujson
- Wsaccel
Knihovna reproduktorů
Nainstalujte si knihovnu reproduktorů z Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Čas restartovat
sudo restart
Krok 5: Forward Engineering Our Database to the RPi
Nyní, když jsme nainstalovali vše, co jsme potřebovali, vložíme naši databázi, kterou jsme navrhli, na náš Raspberry Pi!
Nejprve tedy musíme přeposlat naši databázi na pracovní stůl MySql a přitom zkopírovat celý kód databáze a odstranit z ní všechna „viditelná“slova. Jakmile je to zkopírováno, znovu otevřete tmel, přihlaste se a zadejte:
sudo mysql
a nyní jste v rozhraní mysql, zkopírujte do něj kód své databáze a stiskněte Enter.
Nyní stačí vytvořit uživatele
VYTVOŘIT UŽIVATELE „uživatele“IDENTIFIKOVANÉ „uživatelem“;
UDĚLIT VŠECHNY PRIVILEGY NA *. * TO 'uživateli';
Nyní restartujte.
Nyní by tedy mělo být vše nastaveno, můžete také navázat spojení se svým pracovním stolem Pi a MySql, takže je snazší zkontrolovat všechna data ve vašich tabulkách.
Krok 6: Konfigurace Bluetooth na našich RPi
Vytváříme reproduktor Bluetooth, takže to znamená, že média jsou odesílána z našeho zdroje na Raspberry Pi a to lze udělat docela snadno, pojďme se do toho pustit!
Můj zdroj pro připojení bluetooth:
Odstranění již spuštěné bluealsy
sudo rm/var/run/bluealsa/*
Přidat roli A2DP profil Potopit
sudo bluealsa -p a2dp -sink &
Otevřete rozhraní bluetooth a zapněte bluetooth
bluetoothctl
zapnutí
Nastavte agenta párování
agent na
default-agent
Zajistěte, aby byly vaše RPi zjistitelné
zjistitelné na
- Nyní ze svého bluetooth zařízení vyhledejte RPi a spojte se s ním.
- Potvrďte párování na obou zařízeních, do tmelu zadejte „ano“.
- Autorizujte službu A2DP, zadejte znovu „ano“.
- Jakmile to bude hotové, můžeme svému zařízení důvěřovat, takže tím nebudeme muset procházet pokaždé, když se budeme chtít připojit
trust XX: XX: XX: XX: XX: XX (Vaše bluetooth mac adresa z našeho zdrojového zařízení)
Pokud chcete, aby byly vaše RPi stále objevitelné, je to vaše vlastní volba, ale já to raději znovu vypnu, aby se lidé nemohli pokusit spojit s vaším boxem
zjistitelné vypnuto
Poté můžeme opustit naše bluetooth rozhraní
výstup
A nakonec naše směrování zvuku: naše zdrojové zařízení předává do našeho RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Nyní je naše zařízení plně připojeno k naší Raspberry a měli byste být schopni přehrávat média ze svého zdrojového zařízení na reproduktoru Pi.
Krok 7: Napište kompletní backend
Nyní je nastavení dokončeno, můžeme konečně začít psát náš backendový program!
Použil jsem PyCharm pro celý svůj backend, stačí se ujistit, že je váš projekt PyCharm připojen k vašemu Raspberry Pi, to znamená, že vaše cesta nasazení je nastavena ve vašem nastavení a nainstalovali jste všechny potřebné balíčky, které by již měly být provedeny v kroku 4.
Použil jsem vlastní třídy a ty jsou také zahrnuty v mém GitHubu. Odkaz je v úvodu pro případ, že jste ho zmeškali;)
V mém backendovém souboru jsem použil třídy závitů, takže vše může běžet současně a nebude se navzájem rušit. A ve spodní části máte všechny trasy, abychom mohli snadno získat data do našeho frontendu.
Krok 8: Psaní frontendu (HTML, CSS a JavaScript)
Nyní, když je backend hotový, můžeme začít psát celý front-end.
HTML & CSS bylo provedeno docela snadno, zkusili jsme nejprve pracovat s mobilem, protože většinu času jsme se připojili k Bluetooth z mobilního zařízení, bylo by snazší ovládání z mobilního palubního panelu.
Řídicí panel si můžete navrhnout jakýmkoli způsobem, já zde nechám svůj kód a design, můžete si dělat, co chcete!
A Javascript nebyl tak těžký, pracoval s několika GET z mých backendových tras, spoustou posluchačů událostí a některými strukturami socketio.
Krok 9: Sestavení mého případu a dát to dohromady
Nejprve jsem začal s několika náčrtky, jak jsem chtěl, aby kufr vypadal, důležité bylo, že musí být dostatečně velký, aby se do něj všechno vešlo, protože jsme dostali velký obvod, který do kufru vložíme.
Pouzdro jsem vyrobil ze dřeva, myslím, že se s ním nejsnadněji pracuje, když nemáte tolik zkušeností se stavebnicemi a navíc máte spoustu věcí, které s ním můžete dělat.
Začal jsem z pouzdra na lahve vína a právě jsem začal řezat dřevo. Jakmile jsem měl své základní pouzdro, musel jsem do něj jednoduše vyvrtat otvory (hodně na přední straně pouzdra, jak vidíte na obrázcích: P) a vložit do něj nějaké hřebíky, je to opravdu základní pouzdro, ale vypadá skvěle a perfektně sedí.
A jakmile byl případ hotový, bylo načase dát to všechno dohromady, jak vidíte na posledním obrázku! Uvnitř krabice je docela nepořádek, ale všechno funguje a já jsem neměl tolik prostoru, takže vám radím, abyste vytvořili větší případ, pokud znovu vytváříte můj projekt.
Krok 10: Některé problémy, které jsem měl na cestě k vytvoření reproduktoru Slimbox…
Chyby Bluetooth a bluealsa
Pokaždé, když jsem chtěl přehrávat hudbu nebo se připojit k bluetooth, zobrazily se mi chyby z bluetooth a bluealsa. Udělal jsem na to nějaký průzkum a toto bylo řešení mého problému. Takže z nějakého důvodu byl můj bluetooth softblokovaný, nejsem si jistý, jestli je to standardní soft-block. Můžete zjistit, zda tomu tak je, zadáním následujícího příkazu do svého tmelu.
rfkill seznam
Pokud je tedy softblokovaný, použijte toto:
rfkill odblokovat bluetooth
A možná budete chtít restartovat poté, můj zdroj:
Problémy se sériovým připojením
Takže dalším velkým problémem, který jsem měl, bylo to, že jsem nemohl vytvořit žádné spojení se svým Arduinem prostřednictvím posunovače úrovní, po nějakém hledání jsem zjistil, že můj '/dev/ttyS0' byl pryč, a to může být kvůli aktualizaci vašeho RPi. Také našel řešení na to
Budete muset znovu povolit sériovou konzolu pomocí raspi-config, restartovat a poté ručně odebrat bit "console = serial0, 115200" z '/boot/cmdline.txt'. Ověřte, že "enable_uart = 1" je v' /boot/config.txt 'a restartujte znovu. To by mělo dostat zpět váš port ttyS0 a také'/dev/serial0 'na něj odkaz.
Zdroj:
Doporučuje:
Přenosný reproduktor Bluetooth - Sada MKBoom pro kutily: 5 kroků (s obrázky)
Přenosný reproduktor Bluetooth | MKBoom DIY Kit: Ahoj všichni! Je dobré být po dlouhé přestávce zpět s dalším projektem reproduktorů. Protože většina mých sestav vyžaduje k dokončení poměrně málo nástrojů, tentokrát jsem se rozhodl postavit přenosný reproduktor pomocí sady, kterou si můžete snadno zakoupit. Myslela jsem si to
Kissing the Frog V2.0 - Bluetooth reproduktor se zadním klaksonem, plně tisknutelný: 5 kroků (s obrázky)
Kissing the Frog V2.0 - Bluetooth reproduktor s funkcí zadního rohu plně vytisknutelný: Úvod Dovolte mi začít malým pozadím. Co je to tedy reproduktor se zadním nabitým klaksonem? Představte si to jako obrácený megafon nebo gramofon. Megafon (v podstatě reproduktor s předním klaksonem) používá akustický klakson ke zvýšení celkové účinnosti
Reproduktor nálady- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty: 9 kroků
Mood Speaker- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty: Ahoj! Pro svůj školní projekt na MCT Howest Kortrijk jsem vyrobil reproduktor Mood Speaker, který je chytrým reproduktorovým zařízením Bluetooth s různými senzory, LCD a WS2812b ledstrip v ceně. Reproduktor přehrává hudbu na pozadí podle teploty, ale může
Jak převést jakýkoli REPRODUKTOR na BLUETOOTH REPRODUKTOR: 5 kroků
Jak převést jakýkoli REPRODUKTOR na BLUETOOTH REPRODUKTOR: Pokud máte starý systém domácího kina jako já, našli jste ve svém systému velmi oblíbenou možnost připojení s názvem Bluetooth. Bez tohoto zařízení musíte čelit drátěnému nepořádku normálního připojení AUX a samozřejmě, pokud
Proměňte jakýkoli reproduktor na reproduktor Bluetooth: 4 kroky
Proměňte jakýkoli reproduktor na reproduktor Bluetooth: Před několika lety bylo běžné, že přenosné reproduktory měly 3,5 mm konektor a byly napájeny bateriemi AA. Podle dnešních standardů je to trochu zastaralá zejména baterie, protože každý gadget v dnešní době má dobíjecí baterii. Zvukový konektor je