Innholdsfortegnelse:

Humørhøyttaler- en kraftfull høyttaler for humørmusikk som skal spilles basert på omgivelsestemperaturen: 9 trinn
Humørhøyttaler- en kraftfull høyttaler for humørmusikk som skal spilles basert på omgivelsestemperaturen: 9 trinn

Video: Humørhøyttaler- en kraftfull høyttaler for humørmusikk som skal spilles basert på omgivelsestemperaturen: 9 trinn

Video: Humørhøyttaler- en kraftfull høyttaler for humørmusikk som skal spilles basert på omgivelsestemperaturen: 9 trinn
Video: Romance Authors React to "Namjoon being adorable on vlive." 2024, Juli
Anonim
Humørhøyttaler- en kraftfull høyttaler for humørmusikk som skal spilles basert på omgivelsestemperaturen
Humørhøyttaler- en kraftfull høyttaler for humørmusikk som skal spilles basert på omgivelsestemperaturen

Hei der!

For mitt skoleprosjekt på MCT Howest Kortrijk, laget jeg en stemningshøyttaler, dette er en smart Bluetooth -høyttalerenhet med forskjellige sensorer, en LCD og WS2812b ledstrip inkludert. Høyttaleren spiller bakgrunnsmusikk basert på temperaturen, men kan også brukes som en vanlig bluetooth høyttaler. Alt kjører på Raspberry Pi (Database, Webserver, Backend).

Så dette instruerbare er en trinnvis prosess for hvordan jeg realiserte dette prosjektet på 3 uker. Så hvis du vil gjenskape prosjektet mitt, kan du følge veiledningen

Denne instruerbare er min første som jeg skrev, så hvis det er noen spørsmål, skal jeg prøve å svare så raskt jeg kan!

Min GitHub:

Trinn 1: Rekvisita

Raspberry Pi 3B & 16 GB SD -kort

Hele prosjektet mitt kjører på min Raspberry Pi 3B med et konfigurert bilde, som jeg vil forklare i et senere trinn (Trinn 4: Oppsett Raspberry Pi)

LCD -skjerm 16x2

Jeg brukte en grunnleggende LCD -skjerm for å skrive ut temperaturen, lysstyrken og IP -adressen min.

Datablad:

DS18B20 Temperatursensor

DS18B20 er en en-ledersensor som måler temperaturen, produsert av Maxim Integrated. Det er to typer DS18B20 -sensorer, bare komponenten (som jeg brukte) og den vanntette versjonen, som er mye større, men det var ikke det jeg trengte for prosjektet mitt, så jeg brukte bare komponenten. Sensoren kan måle temperaturen i området fra -55 ° C til +125 ° C (-67 ° F til +257 ° F), og den har en nøyaktighet på 0,5 ° C fra -10 ° C til +85 ° C. Den har også en programmerbar oppløsning fra 9 bits til 12 bits.

Dataark:

MCP3008

For å lese dataene fra min LDR og PIR-sensor brukte jeg en MCP3008, som er en 8-kanals 10-biters analog til digital omformer med SPI-grensesnittet og som er ganske enkel å programmere.

Dataark:

PIR bevegelsessensor

For å oppdage når det er noen som kommer inn og ut av rommet mitt, brukte jeg en passiv infrarød sensor fordi de er enkle å bruke og er små.

Datablad:

LDR

Jeg brukte en fotoresistor eller LDR (Light Decreasing Resistance, eller lysavhengig motstand) for å oppdage lysstyrken i rommet det er i. Og for også å slå på LED-stripen når den er mørk.

Høyttaler - 3”Diameter - 4 Ohm 3 Watt

Dette er høyttalerkeglen jeg valgte etter å ha beregnet spenningen og ampere den ville trenge, og dette passet perfekt for mitt Raspberry Pi -prosjekt, produsert av Adafruit.

Oversikt:

MAX98357 I2S klasse-D monoforsterker

Dette er forsterkeren som følger med høyttaleren, ikke bare er det en forsterker, det er også en I2S digital til analog omformer, så den passer også perfekt til høyttaleren og lydsystemet mitt.

Oversikt:

Dataark:

Arduino Uno

Arduino Uno er et mikrokort med åpen kildekode basert på Microchip ATmega328P mikrokontroller, produsert av Arduino.cc. Uno -kortet har 14 digitale pinner, 6 analoge pinner og er fullt programmerbart med Arduino IDE -programvaren

Oversikt:

Nivåskifter

Dette er et lite brett som tar seg av kommunikasjonen mellom Arduino Uno og Raspberry Pi og de forskjellige spenningene, Arduino: 5V & Raspberry Pi: 3.3V. Dette er nødvendig fordi ledstripen er koblet til Arduino og kjører der, mens alle de andre tingene kjører på Raspberry Pi.

WS2812B - Ledstrip

Dette er en ledstrip med 60 RGB lysdioder (du kan kjøpe lengre striper med flere RGB lysdioder, hvis du vil). Som i mitt tilfelle er koblet til Arduino Uno, men kan også kobles til mange andre enheter og er veldig enkel å bruke.

Dataark:

GPIO T-Part, 1 brødbrett og mange jumperwires

For å koble til alt jeg trengte brødbrett og jumperwires, brukte jeg ikke GPIO T-delen, men du kan bruke den til å tydelig vite hvilken skuff som går hvor.

Trinn 2: Skjematisk og ledninger

Skjematisk og ledninger
Skjematisk og ledninger
Skjematisk og ledninger
Skjematisk og ledninger

For å lage min skjematiske Jeg brukte Fritzing, det er et program du kan installere som lar deg lage en skjematisk veldig enkel i forskjellige typer visninger. Jeg brukte brødbrettet og skjematisk visning.

Last ned Fritzing:

Sørg for at alt er riktig tilkoblet. Jeg brukte farger for å gjøre det litt tydeligere å vite hvor jeg skulle koble ledningene. I mitt tilfelle brukte jeg forskjellige farger på ledningene

Trinn 3: Databasedesign

Databasedesign
Databasedesign

Vi samler inn mye data fra de 3 sensorene (Temperatur fra DS18B20, Lysstyrke fra LDR og Status fra PIR-sensor). Så det er best å beholde alle disse dataene i en database. Jeg vil forklare i et senere trinn hvordan du konfigurerer databasen (trinn 5: Forward Engineering Our Database til RPi!) Men først må designet eller ERD (Entity Relationship Diagram) lages. Min ble normalisert med 3NF, derfor delte vi komponentene og komponentenes historie i en annen tabell. Vi bruker musikkdatabasen til å holde oversikt over sangene som har blitt lyttet til.

Totalt sett er dette en veldig enkel og enkel databasedesign å jobbe videre med.

Trinn 4: Sett opp Raspberry Pi

Så nå som vi har gjort noen grunnleggende om prosjektet. La oss komme i gang med å sette opp Raspberry Pi!

Del 1: Konfigurering av SD -kortet

1) Last ned nødvendig programvare og filer

Du må laste ned 2 programvare og 1 operativsystem, dvs. Raspbian for denne komplette prosessen. 1. programvare: Den første programvaren er Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

Andre programvare: Andre programvare er SD Card Formatter.

www.sdcard.org/downloads/formatter_4/

Raspbian OS: Dette er hovedoperativsystemet til Pi.

www.raspberrypi.org/downloads/raspberry-pi-os/

Pakk ut alle filene til skrivebordet.

2) Få SD -kortet og kortleseren

Få et minimum 8 GB klasse 10 SD -kort med en kortleser. Sett kortet inn i kortleseren og koble det til USB -porten.

3) Formater SD -kortet

Åpne SD -kortformatering og velg stasjonen.

Klikk på formatet og ikke endre andre alternativer.

Når formateringen er fullført, klikker du på OK.

4) Skriv operativsystemet på SD -kortet

Åpne win32diskimager.

Bla gjennom.img -filen til Raspbian OS som ble hentet fra den nedlastede filen.

Klikk på Åpne og deretter på Skriv.

Hvis det dukker opp en advarsel, ignorer dem ved å klikke OK. Vent til skrivingen er fullført, og det kan ta noen minutter. Så vær tålmodig.

n

5) Når dette er gjort, er vi klare til å gjøre noen endelige justeringer før vi setter bildet inn i vår RPi.

Gå til SD -kortets katalog, søk etter filen som heter 'cmdline.txt' og åpne den.

Legg nå til 'ip = 169.254.10.1' på den samme linjen.

Lagre filen.

Lag en fil som heter 'ssh' uten utvidelse eller innhold. (Den enkleste måten er å lage en txt -fil og fjerne.txt etterpå)

Nå som alt er installert på SD -kortet, kan du trygt kaste det ut fra datamaskinen og sette det i Raspberry Pi UTEN å koble til strømmen. Når SD -kortet er satt inn i RPI -en, kobler du en LAN -kabel fra datamaskinen til RPi LAN -porten. Når dette er koblet til, kan du koble strømmen til RPi.

Del 2: Konfigurering av RPi

Kitt

Nå vil vi konfigurere Raspberry Pi, dette gjøres gjennom Putty.

Kittprogramvare:

Når du har lastet den ned, åpner du Putty og setter inn IP '169.254.10.1' og Port '22' og tilkoblingstype: SSH.

Nå kan vi endelig åpne kommandolinjegrensesnittet og logge inn med startpåloggingsinformasjonen -> Bruker: pi og passord: bringebær. (Det anbefales å endre det så raskt som mulig. Her er en veiledning for hvordan:

Raspi-konfigurasjon

Vi må aktivere forskjellige grensesnitt og for å gjøre det må vi først skrive følgende kode:

sudo raspi-config

Tingene vi må aktivere er i grensesnittdelen. Vi må aktivere følgende grensesnitt:

  • En-ledning
  • Seriell
  • I2C
  • SPI

Det var alt vi trengte å gjøre med raspi-config

Legger til WIFI

Først må du være root for at følgende kommando skal bli root

sudo -i

Når du er rot, bruker du følgende kommando: (Erstatt SSID med nettverksnavnet og passordet med nettverkspassordet)

wpa_passphrase "ssid" "passord" >> /etc/wpa_supplicant/wpa_supplicant.conf

Hvis du gjorde noe galt, kan du sjekke, oppdatere eller slette dette nettverket ved å bare skrive inn følgende kommando:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Så etter at vi kom inn i nettverket vårt, la oss gå inn i WPA -klientgrensesnittet

wpa_cli

Velg grensesnittet

grensesnitt wlan0

Last inn filen på nytt

omkonfigurere

Og til slutt kan du se om du er godt forbundet:

ip a

Del 3: Oppdatering av RPi + installasjonsprogramvare

Nå som vi er koblet til internett, ville oppdatering av de allerede installerte pakkene være et smart trekk, så la oss gjøre det først før du installerer andre pakker.

sudo apt-get oppdatering

sudo apt-get oppgradering

Etter oppdatering av RPi må vi installere følgende programvare:

MariaDB Database

sudo apt-get install mariadb-server

Apache2 webserver

sudo apt installere apache2

Python

oppdateringsalternativer-installer/usr/bin/python python /usr/bin/python3.7 1 oppdateringsalternativer-installer/usr/bin/python python/usr/bin/python3 2

Python -pakke

Du må installere alle disse pakkene for å få backend til å fungere perfekt:

  • Kolbe
  • Flask-Cors
  • Kolbe-MySql
  • Flask-SocketIO
  • PyMySQL -forespørsler
  • Python-socketio
  • RPi. GPIO
  • Gevent
  • Gevent-websocket

Høyttalerbibliotek

For å bruke høyttaleren med forsterkeren må vi installere et bibliotek for den

curl -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

Sette opp databasen til RPi!
Sette opp databasen til RPi!

Nå som vi har installert alt vi trengte, la oss sette vår database vi designet på vår Raspberry Pi!

For å sette opp databasen må vi koble til MySql og RPi. For det vil vi åpne MySQLWorkbench og opprette en ny tilkobling. Når du ser på bildet, må du endre for å endre informasjonen til din.

Hvis du ikke har endret noe ennå, kan du bruke det til SSH pi og bringebær, til MySQL mysql og mysql.

Når noe ikke er klart, kan du også følge denne opplæringen:

For å eksportere databasen din bør det være enklere å bruke PHPmyAdmin fordi du kan få mange feil ved å gjøre det med MySql

Trinn 6: Konfigurere Bluetooth på vår RPi

Vi lager en Mood -høyttaler, som vi også kan bruke med vår egen musikk, så dette er lettere når RPi er

koblet til bluetooth fulgte jeg en veiledning for det som du finner her:

scribles.net/streaming-bluetooth-audio-fr…

Jeg skrev alt ned her også for alle som vil gjenskape det

Fjerner den allerede kjørende bluealsa

sudo rm/var/run/bluealsa/*

Legg til A2DP -profil Sink -rolle

sudo bluealsa -p a2dp -vask &

Åpne bluetooth -grensesnittet og slå på bluetooth

bluetoothctl slått på

Sett opp en sammenkoblingsagent

agent på standardagent

Gjør RPi -en din synlig

oppdagelig på

  • Nå fra Bluetooth -enheten din, søk etter RPi og koble til den.
  • Bekreft sammenkoblingen på begge enhetene, skriv "ja" i kittet ditt.
  • Godkjenn A2DP -tjenesten, skriv "ja" igjen.
  • Når dette er gjort, kan vi stole på enheten vår, så vi trenger ikke å gå gjennom dette hver gang vi vil koble til

tillit XX: XX: XX: XX: XX: XX (din bluetooth mac -adresse fra vår kildeenhet)

Hvis du vil at RPi -en din skal fortsette å være synlig, er det ditt eget valg, men jeg foretrekker å slå den av igjen, slik at folk ikke kan prøve å koble til boksen din

oppdagbar av

Deretter kan vi gå ut av Bluetooth -grensesnittet

exit

Og til slutt vår lydruting: vår kildeenhet videresender til vår RPi

bluealsa-aplay 00: 00: 00: 00: 00: 00

Nå er enheten vår koblet til bringebæret vårt med bluetooth, og du bør kunne teste det ved å spille av alle medier, for eksempel Spotify, etc.

Trinn 7: Skrive den komplette backend

Så nå er oppsettet ferdig, vi kan endelig begynne å skrive backend -programmet vårt!

Jeg brukte Visual Studio Code for hele backend -en min. Du må bare sørge for at Visual Studio -prosjektet er koblet til Raspberry Pi, dette betyr at LAN -kabelen må være koblet til RPi -en din og for å opprette en SSH -tilkobling. (informasjon om hvordan du oppretter en ekstern tilkobling finner du her:

Jeg brukte mine egne klasser, og disse er også alle inkludert i GitHub.

I backend -filen min brukte jeg forskjellige klasser, så alt kan brukes separat og slik at hovedkoden min ikke er et rot med alle de forskjellige trådene. Jeg brukte tråden til å kjøre alle de forskjellige klassene samtidig. Og nederst har du alle rutene, slik at vi enkelt kan få data i frontendet.

Trinn 8: Skrive frontend (HTML, CSS og JavaScript)

Nå som backend er ferdig, kan vi begynne å skrive hele front-end.

HTML og CSS var ganske vanskelig for meg, jeg gjorde mitt beste for å gjøre den mobil først fordi jeg kan koble til den med bluetooth for å endre sangene med Spotify. Så det ville være lettere å kontrollere fra et mobilt dashbord

Du kan designe dashbordet ditt på hvilken som helst måte du vil. Jeg vil bare la koden og designet stå her, du kan gjøre hva du vil!

Og Javascript var ikke enklere for meg, jobbet med noen få GET -er fra backend -rutene mine, tonnevis med hendelseslyttere og noen socketio -strukturer for å få data fra sensorene mine.

Trinn 9: Bygg saken min og sett alt sammen

Å bygge saken min og sette alt sammen
Å bygge saken min og sette alt sammen
Å bygge saken min og sette alt sammen
Å bygge saken min og sette alt sammen
Å bygge saken min og sette alt sammen
Å bygge saken min og sette alt sammen
Å bygge saken min og sette alt sammen
Å bygge saken min og sette alt sammen

Jeg begynte først å skissere hvordan jeg ville at saken skulle se ut, noe viktig var at den måtte være stor nok til at alt skulle passe inn, siden vi fikk en stor krets å sette i saken, men måtte holde oss kompakte slik at den ikke gjorde det tar ikke mye plass

Jeg laget saken av tre, jeg tror den er lettest å jobbe med når du ikke har så mye erfaring med å bygge saker og du også har mange ting du kan gjøre med den.

Jeg startet fra en gammel planke jeg hadde liggende og begynte å sage veden. Når jeg hadde min grunnkasse, måtte jeg bare bore hull i den (mye på forsiden av saken, som du kan se på bildene og sette noen spiker i den, det er en veldig enkel sak, men det ser ganske kult ut og passet perfekt. Jeg bestemte meg også for å male den hvit for å få den til å se bra ut.

Og når saken var ferdig, var det på tide å sette alt sammen, som du kan se på det siste bildet! Det er litt rot i esken, men alt fungerer, og jeg hadde ikke så mye mer plass, så jeg råder deg til å lage en større sak hvis du gjenskaper prosjektet mitt.

Anbefalt: