Cuprins:
- Pasul 1: consumabile
- Pasul 2: Schemă și cablare
- Pasul 3: Proiectarea bazei de date
- Pasul 4: Configurați Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Pasul 6: Configurarea Bluetooth pe RPi-ul nostru
- Pasul 7: Scrierea Backend-ului complet
- Pasul 8: Scrierea frontendului (HTML, CSS și JavaScript)
- Pasul 9: Construiți-mi cazul și punând totul împreună
Video: Mood Speaker - un difuzor puternic pentru ca muzica Mood să fie redată pe baza temperaturii ambiante: 9 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Buna!
Pentru proiectul meu școlar de la MCT Howest Kortrijk, am realizat un difuzor Mood, acesta este un dispozitiv inteligent pentru difuzoare Bluetooth cu senzori diferiți, un LED și banda LED WS2812b inclusă. vorbitor. Totul rulează pe Raspberry Pi (bază de date, Webserver, Backend).
Deci, acest instructable este un proces pas cu pas al modului în care am realizat acest proiect în 3 săptămâni. Deci, dacă doriți să recreați proiectul meu, puteți urma ghidul
Acest lucru instructiv este primul meu pe care l-am scris așa că, dacă există întrebări, voi încerca să le răspund cât de repede pot!
GitHub-ul meu:
Pasul 1: consumabile
Card SD Raspberry Pi 3B și 16GB
Întregul meu proiect rulează pe Raspberry Pi 3B cu o imagine configurată, pe care o voi explica într-un pas ulterior (Pasul 4: Configurare Raspberry Pi)
Afișaj LCD 16x2
Am folosit un afișaj LCD de bază pentru a-mi imprima temperatura, luminozitatea și adresa IP.
Fișă tehnică:
Senzor de temperatură DS18B20
DS18B20 este un senzor cu un singur fir care măsoară temperatura, fabricat de Maxim Integrated. Există 2 tipuri de senzori DS18B20, doar componenta (pe care am folosit-o) și versiunea impermeabilă, care este mult mai mare, dar nu de asta aveam nevoie pentru proiectul meu, așa că am folosit doar componenta. Senzorul poate măsura temperatura într-un interval de la -55 ° C la + 125 ° C (-67 ° F la + 257 ° F) și are o precizie de 0,5 ° C de la -10 ° C la + 85 ° C. De asemenea, are o rezoluție programabilă de la 9 biți la 12 biți.
Foaie de date:
MCP3008
Pentru a citi datele din senzorul meu LDR și PIR, am folosit un MCP3008, care este un convertor analogic digital pe 8 biți pe 8 canale cu interfața SPI și este destul de ușor de programat.
Foaie de date:
Senzor de mișcare PIR
Pentru a detecta când cineva intră și iese din camera mea, am folosit un senzor infraroșu pasiv deoarece sunt ușor de utilizat și sunt mici.
Foaie de date:
LDR
Am folosit un fotorezistor sau LDR (rezistență la scădere a luminii sau rezistență dependentă de lumină) pentru a detecta nivelul de luminozitate al camerei sale. Și pentru a activa Ledstrip-ul meu atunci când este la întuneric.
Difuzor - 3”Diametru - 4 Ohm 3 Watt
Acesta este conul difuzor pe care l-am ales după calcularea tensiunii și a amperilor de care ar avea nevoie și acest lucru s-a potrivit perfect pentru proiectul meu Raspberry Pi, fabricat de Adafruit.
Prezentare generală:
MAX98357 Amplificator mono I2S Clasa-D
Acesta este amplificatorul care vine împreună cu difuzorul, nu numai că este un amplificator, ci și un convertor digital I2S în analog, deci este, de asemenea, o potrivire perfectă pentru difuzorul meu și sistemul audio.
Prezentare generală:
Fișă tehnică:
Arduino Uno
Arduino Uno este o placă de microcontroler open-source bazată pe microcontrolerul Microchip ATmega328P, fabricat de Arduino.cc. Placa Uno are 14 pini digitali, 6 pini analogici și este complet programabilă cu software-ul Arduino IDE
Prezentare generală:
Levelshifter
Aceasta este o placă mică care se ocupă de comunicarea dintre Arduino Uno și Raspberry Pi și diferitele tensiuni, Arduino: 5V și Raspberry Pi: 3,3V. Acest lucru este necesar, deoarece ledstrip-ul este conectat la Arduino și rulează acolo, în timp ce toate celelalte lucruri rulează pe Raspberry Pi.
WS2812B - Ledstrip
Aceasta este o bandă cu 60 de leduri RGB (puteți cumpăra benzi mai lungi cu mai multe led-uri RGB, dacă doriți). Care este în cazul meu conectat la Arduino Uno, dar poate fi conectat și la multe alte dispozitive și este foarte simplu de utilizat.
Fișă tehnică:
Partea T GPIO, 1 placă de panificatie și o mulțime de fire jumper
Pentru a conecta tot ce aveam nevoie de panouri și jumperwires, nu am folosit partea T GPIO, dar o puteți folosi pentru a ști clar ce coș merge unde.
Pasul 2: Schemă și cablare
Pentru realizarea schemei mele, am folosit Fritzing, este un program pe care îl puteți instala, care vă permite să creați o schemă foarte ușoară în diferite tipuri de vizualizări.
Descărcați Fritzing:
Asigurați-vă că totul este conectat corect. Am folosit culori pentru a face un pic mai clar să știu unde să conectez firele. În cazul meu am folosit diferite culori pentru fire
Pasul 3: Proiectarea bazei de date
Colectăm o mulțime de date de la cei 3 senzori (temperatura de la DS18B20, Luminozitatea de la LDR și Starea de la senzorul PIR). Deci, este mai bine să păstrați toate aceste date într-o bază de date. Voi explica într-un pas ulterior cum să configurați baza de date (Pasul 5: Transmiterea bazei noastre de date către RPi!) Dar mai întâi trebuie să se facă proiectarea sau ERD (Entity Relationship Diagram). Al meu a fost normalizat cu 3NF de aceea am împărțit componentele și istoricul componentelor într-un alt tabel. Folosim baza de date Muzică pentru a urmări melodiile care au fost ascultate.
În general, acesta este un proiect de bază foarte simplu și ușor de utilizat pentru a continua.
Pasul 4: Configurați Raspberry Pi
Deci, acum, că avem câteva elemente de bază ale proiectului realizat. Să începem cu configurarea Raspberry Pi!
Partea 1: Configurarea cardului SD
1) Descărcați software-ul și fișierele necesare
Trebuie să descărcați 2 software și 1 sistem de operare, adică Raspbian pentru acest proces complet. Primul software: primul software este Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
Al doilea software: Al doilea software este SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Acesta este sistemul de operare principal al Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Extrageți toate fișierele pe desktop.
2) Obțineți cardul SD și cititorul de carduri
Obțineți un card SD de clasa 10 de minimum 8 GB cu un cititor de carduri. Introduceți acel card în cititorul de carduri și conectați-l la portul USB.
3) Formatați cardul SD
Deschideți Formator card SD și selectați unitatea.
Faceți clic pe format și nu modificați alte opțiuni.
Când formatarea este finalizată, faceți clic pe OK.
4) Scrieți sistemul de operare pe cardul SD
Deschideți win32diskimager.
Răsfoiți fișierul.img al sistemului de operare Raspbian care a fost extras din fișierul descărcat.
Faceți clic pe Deschidere și apoi faceți clic pe Scrieți.
Dacă apare un avertisment, ignorați-le făcând clic pe OK. Așteptați finalizarea scrierii și poate dura câteva minute. Deci, aveți răbdare.
n
5) Odată ce ați făcut acest lucru, suntem gata să facem unele ajustări finale înainte de a introduce imaginea în RPi.
Accesați directorul cardului SD, căutați fișierul numit „cmdline.txt” și deschideți-l.
Acum adăugați „ip = 169.254.10.1” pe aceeași linie.
Salvați fișierul.
Creați un fișier numit „ssh” fără extensie sau conținut. (Cel mai simplu mod este să creați un fișier txt și să eliminați.txt după aceea)
Acum, că totul este instalat pe cardul SD, îl puteți scoate SIGUR, de pe computer și îl puteți pune în Raspberry Pi FĂRĂ conectarea alimentării. Odată ce cardul SD este în RPI, conectați un cablu LAN de la computer la portul RPi LAN, după ce acesta este conectat, puteți conecta alimentarea la RPi.
Partea 2: Configurarea RPi
Chit
Acum vrem să ne configurăm Raspberry Pi, acest lucru se face prin Putty.
Software Putty:
Odată descărcat, deschideți Putty și introduceți IP '169.254.10.1' și portul '22' și tipul de conexiune: SSH.
Acum putem deschide în cele din urmă interfața noastră de linie de comandă și să ne autentificăm cu informațiile de autentificare ale starterului -> Utilizator: pi & Parolă: zmeură. (Vă recomandăm să îl modificați cât mai repede posibil. Iată un ghid despre cum:
Raspi-config
Va trebui să activăm diferite interfețe și pentru a face acest lucru trebuie mai întâi să tastăm următorul cod:
sudo raspi-config
Lucrurile pe care trebuie să le activăm sunt în secțiunea de interfață. Trebuie să activăm următoarele interfețe:
- Un fir
- Serial
- I2C
- SPI
Asta era tot ce trebuia să facem cu raspi-config
Adăugarea WIFI
În primul rând, trebuie să fiți root pentru ca următoarea comandă să devină root
sudo -i
Odată ce sunteți root, utilizați următoarea comandă: (Înlocuiți SSID cu numele și parola rețelei cu parola rețelei)
wpa_passphrase "ssid" "parolă" >> /etc/wpa_supplicant/wpa_supplicant.conf
În cazul în care ați greșit ceva, puteți verifica, actualiza sau șterge această rețea introducând doar următoarea comandă:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Deci, după ce am intrat în rețeaua noastră, să intrăm în interfața client WPA
wpa_cli
Selectați interfața
interfață wlan0
Reîncărcați fișierul
reconfigura
Și în cele din urmă puteți vedea dacă sunteți conectat bine:
ip a
Partea 3: Actualizarea software-ului de instalare RPi +
Acum că suntem conectați la internet, actualizarea pachetelor deja instalate ar fi o mișcare inteligentă, așa că hai să facem asta mai întâi înainte de a instala alte pachete.
sudo apt-get update
sudo apt-get upgrade
După actualizarea RPi va trebui să instalăm următorul software:
Baza de date MariaDB
sudo apt-get install mariadb-server
Apache2 Webserver
sudo apt instalează 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
Pachet Python
Va trebui să instalați toate aceste pachete pentru ca backendul să funcționeze perfect:
- Balon
- Flask-Cors
- Flask-MySql
- Flask-SocketIO
- Cereri PyMySQL
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Biblioteca de difuzoare
Pentru utilizarea difuzorului cu amplificatorul va trebui să instalăm o bibliotecă pentru acesta
bucla -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
Acum, că am instalat tot ce aveam nevoie, să punem baza de date pe care am proiectat-o pe Raspberry Pi!
Pentru configurarea bazei de date va trebui să conectăm MySql și RPi. Pentru aceasta vom deschide MySQLWorkbench și vom face o nouă conexiune. Când priviți imaginea, va trebui să vă schimbați pentru a schimba informațiile la ale dvs.
Dacă nu ați schimbat încă nimic, puteți utiliza pentru SSH pi și zmeură, pentru MySQL mysql și mysql.
Când ceva nu este clar, puteți urma și acest tutorial:
Pentru a vă exporta baza de date ar trebui să fie mai ușor folosind PHPmyAdmin, deoarece puteți obține o mulțime de erori făcând acest lucru cu MySql
Pasul 6: Configurarea Bluetooth pe RPi-ul nostru
Creăm un difuzor Mood, pe care îl putem folosi și cu propria noastră muzică, astfel încât acest lucru să fie mai ușor când RPi este
conectat la bluetooth Am urmat un tutorial pentru acesta pe care îl puteți găsi aici:
scribles.net/streaming-bluetooth-audio-fr…
Am scris totul aici și pentru toți cei care vor să-l recreeze
Se elimină bluealsa care rulează deja
sudo rm / var / run / bluealsa / *
Adăugați profilul A2DP Rol de scufundare
sudo bluealsa -p a2dp-sink &
Deschideți interfața Bluetooth și porniți Bluetooth-ul
pornire bluetoothctl
Configurați un agent de împerechere
agent pe implicit-agent
Faceți RPi dvs. descoperibil
descoperibil pe
- Acum, de pe dispozitivul dvs. Bluetooth, căutați RPi și conectați-vă cu acesta.
- Confirmați asocierea pe ambele dispozitive, tastați „da” în chitul dvs.
- Autorizați serviciul A2DP, tastați din nou „da”.
- Odată ce acest lucru este făcut, putem avea încredere în dispozitivul nostru, deci nu trebuie să parcurgem toate acestea de fiecare dată când ne dorim să ne conectăm
încredere XX: XX: XX: XX: XX: XX (Adresa dvs. Mac Bluetooth de pe dispozitivul nostru sursă)
Dacă doriți ca RPi-ul dvs. să fie în continuare descoperit, aceasta este alegerea dvs., dar prefer să îl dezactivez din nou, astfel încât oamenii să nu poată încerca să se conecteze cu cutia dvs
descoperibil off
Apoi putem ieși din interfața noastră Bluetooth
Ieșire
Și în cele din urmă rutarea noastră audio: dispozitivul nostru sursă de redirecționare către RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Acum dispozitivul nostru este conectat la Raspberry cu Bluetooth și ar trebui să îl puteți testa jucând orice suport media, de exemplu Spotify etc.
Pasul 7: Scrierea Backend-ului complet
Așa că acum instalarea este terminată, putem începe în sfârșit să scriem programul nostru de backend!
Am folosit Visual Studio Code pentru întregul meu backend, trebuie doar să vă asigurați că proiectul dvs. Visual Studio este conectat la Raspberry Pi, acest lucru înseamnă că cablul LAN trebuie să fie conectat la RPi și să facă o conexiune SSH. (informații despre cum să creați o conexiune la distanță puteți găsi aici:
Mi-am folosit propriile clase și acestea sunt, de asemenea, toate incluse în GitHub.
În fișierul meu backend am folosit diferite clase, astfel încât totul să poată fi folosit separat și astfel încât codul meu principal să nu fie o mizerie cu toate firele diferite. Am folosit threading pentru a rula toate diferitele clase simultan. Și în partea de jos ați obținut toate rutele, astfel încât să putem obține cu ușurință date în frontend-ul nostru.
Pasul 8: Scrierea frontendului (HTML, CSS și JavaScript)
Acum că backend-ul este terminat, putem începe să scriem front-end-ul complet.
HTML și CSS a fost destul de greu pentru mine. Am făcut tot posibilul să-l fac mobil mai întâi, deoarece mă pot conecta la acesta cu Bluetooth pentru a schimba melodiile cu Spotify. Deci, ar fi mai ușor de controlat de pe un tablou de bord mobil
Puteți să vă proiectați tabloul de bord în orice mod doriți, voi lăsa codul meu și proiectez aici, puteți face orice doriți!
Și Javascript nu a fost mai ușor pentru mine, a lucrat cu câteva GET-uri de pe rutele mele backend, tone de ascultători de evenimente și câteva structuri socketio pentru a obține datele de la senzorii mei.
Pasul 9: Construiți-mi cazul și punând totul împreună
Mai întâi am început să schițez cum aș dori să arate cazul, ceva important era că trebuia să fie suficient de mare pentru ca totul să se potrivească, deoarece avem un circuit mare de pus în carcasă, dar trebuia să rămânem compact, astfel încât să nu nu ocupi mult spațiu
Am făcut carcasa din lemn, cred că este cel mai ușor să lucrezi atunci când nu ai atât de multă experiență în construcția de carcase și ai, de asemenea, o mulțime de lucruri pe care le poți face cu ea.
Am plecat de la o scândură veche pe care o așezam și tocmai am început să tăiem lemnul. Odată ce am avut carcasa de bază, a trebuit doar să găuresc în ea (multe pe partea din față a carcasei, așa cum puteți vedea pe imagini și ați pus niște unghii în ea, este o carcasă de bază, dar arată destul de cool și se potrivește perfect. De asemenea, am decis să-l pictez în alb pentru a arăta bine.
Și odată ce cazul a fost încheiat, a venit timpul să punem totul împreună, după cum puteți vedea în ultima poză! Este cam o mizerie în interiorul cutiei, dar totul funcționează și nu aveam mult mai mult spațiu, așa că vă sfătuiesc să creați un caz mai mare dacă vă recreați proiectul.
Recomandat:
Ventilator reglementat PWM pe baza temperaturii procesorului pentru Raspberry Pi: 4 pași (cu imagini)
Ventilator reglementat PWM bazat pe temperatura procesorului pentru Raspberry Pi: Multe cazuri pentru Raspberry Pi vin cu un mic ventilator de 5V pentru a ajuta la răcirea procesorului. Cu toate acestea, aceste ventilatoare sunt de obicei destul de zgomotoase și mulți oameni îl conectează la pinul 3V3 pentru a reduce zgomotul. Aceste ventilatoare sunt de obicei evaluate pentru 200mA, ceea ce este destul de h
4 circuite cu LED-uri reactive pentru muzică -- Cablu / difuzor MIC / AUX: 3 pași
4 circuite cu LED-uri reactive pentru muzică || Cablu / difuzor MIC / AUX: Acesta este un circuit care reacționează la muzica ambientală și luminează LED-urile cu ritmurile muzicii. Tranzistor unic2. Două tranzistoare3. Cablu AUX4. Speaker
Sabia cu laser UChip - „Fie ca forța să fie cu tine”: 6 pași
UChip Lightsaber - „Fie ca forța să fie cu tine”: Ai visat vreodată să fii un Jedi sau un Sith din universul Star Wars, care aruncă o sabie laser puternică pentru a-ți susține partea? Oricare ar fi răspunsul, iată-l: Cum se face o sabie laser DIY cu µChipFirst, permiteți-mi să precizez că intenționez să
Boombox puternic 2.1 portabil puternic: 8 pași
Puternic 2.1 Boombox portabil puternic: am decis să-mi fac propriul boombox, am creat carcasa din două carcase de difuzoare vechi Verificați videoclipul de mai sus pentru mostre de sunet. Acestea sunt componentele pe care le-am folosit: 18650 Titular: https://goo.gl/vrUC2AS modul: https://goo.gl/f3tkiUAmplifier 30W ht
Lumina reactivă pentru muzică -- Cum să faci lumină reactivă pentru muzică super simplă pentru a face desktop-ul grozav .: 5 pași (cu imagini)
Muzică lumină reactivă || Cum să facem muzică super simplă lumină reactivă pentru a face desktopul grozav. basul care este de fapt semnal audio de joasă frecvență. Este foarte simplu de construit. Vom