Obsah:
- Krok 1: Spotřební materiál
- Krok 2: Schéma a zapojení
- Krok 3: Návrh databáze
- Krok 4: Nastavení Raspberry Pi
- Step 5: Setting Up the 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
Video: Reproduktor nálady- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty: 9 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Zdravím!
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, včetně LED a WS2812b ledstrip. Reproduktor přehrává hudbu na pozadí podle teploty, ale může být také použit jako běžný bluetooth mluvčí. Vše běží na Raspberry Pi (databáze, webový server, backend).
Tento návod je tedy krok za krokem, jak jsem tento projekt realizoval za 3 týdny. Pokud tedy chcete znovu vytvořit můj projekt, můžete postupovat podle průvodce
Tento instruktáž je můj první, který jsem napsal, takže pokud existují nějaké queastions, pokusím se na ně odpovědět co nejrychleji!
Můj GitHub:
Krok 1: Spotřební materiál
Karta SD Raspberry Pi 3B a 16 GB
Celý můj projekt běží na mém Raspberry Pi 3B s nakonfigurovaným obrazem, který vysvětlím v pozdějším kroku (Krok 4: Nastavení Raspberry Pi)
LCD displej 16x2
K tisku teploty, jasu a IP adresy jsem použil základní LCD displej.
Datasheet:
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:
MCP3008
Ke čtení dat z mého LDR a PIR senzoru 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:
PIR pohybový senzor
Abych zjistil, že do mého pokoje někdo vstupuje a odchází, použil jsem pasivní infračervený senzor, protože se snadno používá a je malý.
Datasheet:
LDR
Použil jsem fotorezistor nebo LDR (odpor snižující světlo nebo rezistor závislý na světle), abych zjistil úroveň jasu místnosti, ve které se nachází. A také zapnout svůj Ledstrip, když je tma.
Reproduktor - průměr 3 palce - 4 ohmy, 3 watty
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 ledstrip je připojen k Arduinu a běží tam, zatímco všechny ostatní věci běží na Raspberry Pi.
WS2812B - Ledstrip
Jedná se o pás s 60 RGB LED diodami (pokud chcete, můžete si koupit delší pásy 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é.
Datasheet:
GPIO T-Part, 1 Breadboard a spousta propojovacích drátů
Abych připojil vše, co jsem potřeboval, prkénka a propojovací vodiče, nepoužil jsem T-část GPIO, ale můžete ji použít, abyste jasně věděli, který koš kam jde.
Krok 2: Schéma a zapojení
K vytvoření schématu jsem použil Fritzing, je to program, který si můžete nainstalovat a který vám umožní vytvořit schéma opravdu snadné v různých typech pohledů. Použil jsem prkénko a schematické zobrazení.
Stáhněte si Fritzing:
Ujistěte se, že je vše správně připojeno. Použil jsem barvy, aby bylo trochu jasnější vědět, kam připojit vodiče. V mém případě jsem použil různé barvy na dráty
Krok 3: Návrh databáze
Shromažďujeme mnoho dat ze 3 senzorů (teplota z DS18B20, jas z LDR a stav ze senzoru PIR). Proto je nejlepší uchovávat všechna tato data v databázi. V pozdějším kroku vysvětlím, jak konfigurovat databázi (Krok 5: Forward Engineering Our Database to the RPi!) Nejprve však musíte vytvořit návrh nebo ERD (Entity Relationship Diagram). Můj byl normalizován pomocí 3NF, proto jsme rozdělili komponenty a historii komponent do jiné tabulky. Databázi hudby používáme ke sledování poslouchaných skladeb.
Celkově je to opravdu základní a snadný návrh databáze, s nímž lze dále pracovat.
Krok 4: Nastavení Raspberry Pi
Takže teď, když máme hotové nějaké základy projektu. Začněme s nastavením Raspberry Pi!
Část 1: Konfigurace karty SD
1) Stáhněte si požadovaný software a soubory
Pro tento kompletní proces musíte stáhnout 2 software a 1 OS, tj. Raspbian. 1. software: První software je Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2. software: Druhý software je SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Toto je hlavní operační systém Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Extrahujte všechny soubory na plochu.
2) Získejte kartu SD a čtečku karet
Získejte minimálně 8 GB SD kartu třídy 10 se čtečkou karet. Vložte tuto kartu do čtečky karet a zapojte ji do portu USB.
3) Naformátujte kartu SD
Otevřete formátovač karty SD a vyberte jednotku.
Klikněte na formát a neměňte žádné další možnosti.
Po dokončení formátování klikněte na OK.
4) Napište OS na SD kartu
Otevřete win32diskimager.
Procházejte soubor.img systému Raspbian OS, který byl extrahován ze staženého souboru.
Klikněte na otevřít a poté klikněte na Napsat.
Pokud se objeví nějaké varování, ignorujte je kliknutím na OK. Počkejte na dokončení zápisu a může to trvat několik minut. Buďte tedy trpěliví.
n
5) Jakmile to bude hotové, jsme připraveni provést poslední úpravy před vložením obrázku 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. (Nejjednodušší je vytvořit soubor txt a poté odstranit.txt)
Nyní, když je na SD kartu nainstalováno vše, ji můžete BEZPEČNĚ vysunout z počítače a vložit do Raspberry Pi BEZ připojení 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í.
Část 2: Konfigurace RPi
Tmel
Nyní chceme nakonfigurovat 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. (Doporučuje se to co nejrychleji změnit. Zde je návod, jak:
Raspi-config
Budeme muset povolit různá rozhraní a k tomu musíme nejprve zadat následující kód:
sudo raspi-config
Věci, které musíme povolit, jsou v sekci propojení. Musíme povolit následující rozhraní:
- Jednodrátové
- Seriál
- I2C
- SPI
To bylo vše, co jsme potřebovali udělat s raspi-config
Přidání WIFI
Nejprve musíte být root, aby se z následujícího příkazu stal root
sudo -i
Jakmile jste root, použijte následující příkaz: (Nahraďte SSID názvem vaší sítě a heslem síťovým heslem)
wpa_passphrase "ssid" "heslo" >> /etc/wpa_supplicant/wpa_supplicant.conf
V případě, že jste udělali něco špatně, můžete tuto síť zkontrolovat, aktualizovat nebo odstranit zadáním následujícího příkazu:
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
Část 3: Aktualizace instalačního softwaru RPi +
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
Po aktualizaci RPi budeme muset nainstalovat následující software:
Databáze MariaDB
sudo apt-get install mariadb-server
Webový server Apache2
sudo apt nainstalovat apache2
Krajta
update-alternatives --install/usr/bin/python python /usr/bin/python3.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
- Požadavky PyMySQL
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Knihovna reproduktorů
Pro použití reproduktoru se zesilovačem pro něj budeme muset nainstalovat knihovnu
stočit -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
Nyní, když jsme nainstalovali vše, co jsme potřebovali, vložíme naši databázi, kterou jsme navrhli, na náš Raspberry Pi!
Pro nastavení databáze budeme muset propojit MySql a RPi. Za tímto účelem otevřeme MySQLWorkbench a vytvoříme nové připojení. Při pohledu na obrázek budete muset změnit, abyste změnili informace na vaše.
Pokud jste ještě nic nezměnili, můžete použít pro SSH pi a raspberry, pro MySQL mysql a mysql.
Pokud vám něco není jasné, můžete také použít tento návod:
Export databáze by měl být jednodušší pomocí PHPmyAdmin, protože při MySql můžete získat spoustu chyb
Krok 6: Konfigurace Bluetooth na našich RPi
Vytváříme reproduktor Mood, který můžeme také použít s vlastní hudbou, takže je to jednodušší, když je RPi
připojený k bluetooth Sledoval jsem jeho návod, který najdete zde:
scribles.net/streaming-bluetooth-audio-fr…
Napsal jsem zde také vše pro všechny, kteří to chtějí znovu vytvořit
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
zapnutí bluetoothctl
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í připojeno k naší Raspberry s bluetooth a měli byste být schopni jej vyzkoušet přehráváním jakéhokoli média, například Spotify atd.
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 kód Visual Studio pro celý svůj backend, stačí se ujistit, že je váš projekt Visual Studio připojen k vašemu Raspberry Pi, to znamená, že váš LAN kabel musí být připojen k vašemu RPi a k vytvoření SSH připojení. (informace o tom, jak vytvořit vzdálené připojení, najdete zde:
Použil jsem vlastní třídy a ty jsou také zahrnuty v mém GitHubu.
V mém backendovém souboru jsem použil různé třídy, takže vše lze použít samostatně a aby můj hlavní kód nebyl nepořádek se všemi různými vlákny. Pomocí vláken jsem spustil všechny různé třídy najednou. 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 a CSS pro mě byly docela těžké. Udělal jsem maximum, aby byl nejprve mobilní, protože se k němu mohu připojit pomocí bluetooth a měnit skladby pomocí Spotify. Ovládání by tedy bylo jednodušší 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 pro mě nebyl jednodušší, pracoval s několika GET z mých backendových tras, spoustou posluchačů událostí a některými strukturami socketio, abych získal data z mých senzorů.
Krok 9: Sestavení mého případu a dát to dohromady
Nejprve jsem začal skicovat, jak chci, aby kufr vypadal, důležité bylo, že musí být dostatečně velký, aby se do něj vše vešlo, protože jsme dostali velký obvod, který jsme do kufru mohli vložit, ale museli jsme zůstat kompaktní, aby nevypadal. ' nezabere moc místa
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 ze starého prkna, které jsem měl kolem, a začal jsem ř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, a do něj vložit nějaké hřebíky, je to opravdu základní pouzdro, ale vypadá docela cool a perfektně sedí. Také jsem se rozhodl namalovat ji bíle, aby dobře vypadala.
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.
Doporučuje:
Jak vyrobit stereofonní rádio Ford Audiophile pro přehrávání souborů MP3 .: 7 kroků
Jak vytvořit stereofonní rádio Ford Audiophile pro přehrávání souborů MP3: Tento návod vám poskytne několik důležitých podrobností o tom, jak splnit požadavky na kompatibilitu MP3 CD-R u Ford Audiophile (a pravděpodobně Mach 300, Shaker 500 a Shaker 1000 ) tovární stereo, takže můžete vypalovat a užívat si soubory MP3 na disku CD
Regulovaný ventilátor PWM na základě teploty CPU pro Raspberry Pi: 4 kroky (s obrázky)
Regulovaný ventilátor PWM na základě teploty CPU pro Raspberry Pi: Mnoho případů pro Raspberry Pi je vybaveno malým 5V ventilátorem, který pomáhá chladit CPU. Tito fanoušci jsou však obvykle velmi hluční a mnoho lidí jej připojuje ke kolíku 3V3, aby snížilo hluk. Tyto ventilátory jsou obvykle dimenzovány na 200 mA, což je docela h
Alba se značkami NFC pro automatické přehrávání hudby Spotify na Chromecastu: 5 kroků
Alba se značkami NFC pro automatické přehrávání hudby Spotify na Chromecastu: Tento projekt začal myšlenkou vytvořit koláž alba mých nejhranějších umělců na Spotify. Po nějakém hraní s Spotify API v Pythonu jsem si řekl, že by bylo hezké propojit tyto obaly alb s jejich URI Spotify a začít hrát
Mluvící Arduino - Přehrávání MP3 pomocí Arduina bez jakéhokoli modulu - Přehrávání souborů MP3 z Arduina pomocí PCM: 6 kroků
Mluvící Arduino | Přehrávání MP3 pomocí Arduina bez jakéhokoli modulu | Přehrávání souboru MP3 z Arduina pomocí PCM: V tomto návodu se naučíme, jak přehrávat soubor mp3 s arduino bez použití jakéhokoli zvukového modulu, zde použijeme knihovnu PCM pro Arduino, která přehrává 16 bitů PCM s frekvencí 8 kHZ, takže to zvládneme
Monitor teploty na základě IoT: 6 kroků
Monitor teploty založený na IoT: Ahoj přátelé, toto je můj první návod. Tento návod vás naučí, jak připojit Arduino a Raspberry Pi a Raspberry Pi k platformě Adafruit a Thingspeak. V tomto pokynu lze teplotu sledovat na palubní desce Adafruit