Obsah:

Reproduktor nálady- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty: 9 kroků
Reproduktor nálady- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty: 9 kroků

Video: Reproduktor nálady- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty: 9 kroků

Video: Reproduktor nálady- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty: 9 kroků
Video: Jak vybrat bezdrátový reproduktor | Nákupní rádce 2024, Červenec
Anonim
Mood Speaker- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty
Mood Speaker- výkonný reproduktor pro přehrávání náladové hudby na základě okolní teploty

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í

Schéma a zapojení
Schéma a zapojení
Schéma a zapojení
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

Návrh databáze
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

Nastavení databáze na RPi!
Nastavení databáze na 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

Sestavení mého případu a dát to dohromady
Sestavení mého případu a dát to dohromady
Sestavení mého případu a dát to dohromady
Sestavení mého případu a dát to dohromady
Sestavení mého případu a dát to dohromady
Sestavení mého případu a dát to dohromady
Sestavení mého případu a dát to dohromady
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: