Indholdsfortegnelse:
- Trin 1: Forbrugsvarer
- Trin 2: Skematisk og ledningsføring
- Trin 3: Databasedesign
- Trin 4: Konfigurer Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Trin 6: Konfiguration af Bluetooth på vores RPi
- Trin 7: Skrivning af den komplette backend
- Trin 8: Skrivning af frontend (HTML, CSS og JavaScript)
- Trin 9: Byg min sag og sammensæt det hele
Video: Humørhøjttaler- en kraftfuld højttaler til stemningsmusik, der skal afspilles baseret på omgivelsestemperaturen: 9 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Hej med dig!
Til mit skoleprojekt på MCT Howest Kortrijk lavede jeg en Mood Speaker, dette er en smart Bluetooth -højttalerenhed med forskellige sensorer, en LCD og WS2812b ledstrip inkluderet. Højttaleren afspiller baggrundsmusik baseret på temperaturen, men kan også bruges som en almindelig bluetooth højttaler. Alt kører på Raspberry Pi (Database, Webserver, Backend).
Så dette instruerbare er en trinvis proces med, hvordan jeg realiserede dette projekt på 3 uger. Så hvis du vil genskabe mit projekt, kan du følge vejledningen
Denne instruerbare er min første, jeg skrev, så hvis der er spørgsmål, vil jeg prøve at besvare dem så hurtigt som jeg kan!
Min GitHub:
Trin 1: Forbrugsvarer
Raspberry Pi 3B & 16 GB SD -kort
Hele mit projekt kører på min Raspberry Pi 3B med et konfigureret billede, som jeg vil forklare i et senere trin (trin 4: Opsætning af Raspberry Pi)
LCD -skærm 16x2
Jeg brugte en grundlæggende LCD -skærm til at udskrive min temperatur, lysstyrke og IP -adresse.
Datablad:
DS18B20 Temperatursensor
DS18B20 er en en-tråds sensor, der måler temperaturen, fremstillet af Maxim Integrated. Der er 2 slags DS18B20 -sensorer, kun komponenten (som jeg brugte) og den vandtætte version, som er meget større, men det var ikke det, jeg havde brug for til mit projekt, så jeg brugte kun komponenten. Sensoren kan måle temperaturen i et område fra -55 ° C til +125 ° C (-67 ° F til +257 ° F), og den har en nøjagtighed på 0,5 ° C fra -10 ° C til +85 ° C. Det har også en programmerbar opløsning fra 9 bit til 12 bit.
Datablad:
MCP3008
For at læse dataene fra min LDR og PIR-sensor brugte jeg en MCP3008, som er en 8-kanals 10 bit analog til digital konverter med SPI-interface og er ret let at programmere.
Datablad:
PIR bevægelsessensor
For at opdage, når der er nogen, der kommer ind og forlader mit værelse, brugte jeg en passiv infrarød sensor, fordi de er lette at bruge og er små.
Datablad:
LDR
Jeg brugte en fotoresistor eller LDR (lysdæmpende modstand eller lysafhængig modstand) til at registrere lysstyrken i rummet, det er i. Og også for at tænde min Ledstrip, når den er mørk.
Højttaler - 3”Diameter - 4 Ohm 3 Watt
Dette er den højttalerkegle, jeg valgte efter at have beregnet den spænding og ampere, den ville have brug for, og dette passede perfekt til mit Raspberry Pi -projekt, fremstillet af Adafruit.
Oversigt:
MAX98357 I2S klasse-D mono forstærker
Dette er forstærkeren, der følger med højttaleren, det er ikke kun en forstærker, det er også en I2S digital til analog konverter, så den er også perfekt til min højttaler og lydsystem.
Oversigt:
Datablad:
Arduino Uno
Arduino Uno er et open-source mikrokontrollerkort baseret på Microchip ATmega328P mikrokontroller, fremstillet af Arduino.cc. Uno -kortet har 14 digitale ben, 6 analoge ben og er fuldt programmerbart med Arduino IDE -softwaren
Oversigt:
Niveauskift
Dette er et lille bord, der tager sig af kommunikationen mellem Arduino Uno og Raspberry Pi og de forskellige spændinger, Arduino: 5V & Raspberry Pi: 3.3V. Dette er nødvendigt, fordi ledstrip er forbundet til Arduino og kører der, mens alle de andre ting kører på Raspberry Pi.
WS2812B - Ledstrip
Dette er en ledstrip med 60 RGB -lysdioder (du kan købe længere strimler med flere RGB -lysdioder, hvis du vil). Hvilket i mit tilfælde er forbundet til Arduino Uno, men også kan tilsluttes mange andre enheder og er virkelig enkel at bruge.
Datablad:
GPIO T-Part, 1 brødbræt og masser af jumperwires
For at forbinde alt, hvad jeg havde brug for brødbrætter og jumperwires, brugte jeg ikke GPIO T-delen, men du kan bruge det til tydeligt at vide, hvilken bakke der går hvor.
Trin 2: Skematisk og ledningsføring
For at lave min skematiske brugte jeg Fritzing, det er et program, du kan installere, som giver dig mulighed for at oprette en skematisk virkelig let i forskellige slags visninger. Jeg brugte brødbrættet og skematisk visning.
Download Fritzing:
Sørg for, at alt er tilsluttet korrekt. Jeg brugte farver for at gøre det lidt tydeligere at vide, hvor ledningerne skal forbindes. I mit tilfælde brugte jeg forskellige farver til ledningerne
Trin 3: Databasedesign
Vi indsamler en masse data fra de 3 sensorer (Temperatur fra DS18B20, Lysstyrke fra LDR og Status fra PIR-sensor). Så det er bedst at gemme alle disse data i en database. Jeg vil forklare i et senere trin, hvordan du konfigurerer databasen (trin 5: Forward Engineering Our Database til RPi!) Men først skal designet eller ERD (Entity Relationship Diagram) laves. Mine blev normaliseret med 3NF, derfor delte vi komponenterne og komponenternes historie i en anden tabel. Vi bruger musikdatabasen til at holde styr på de sange, der er blevet lyttet til.
Samlet set er dette et virkelig grundlæggende og let databasedesign at arbejde videre med.
Trin 4: Konfigurer Raspberry Pi
Så nu hvor vi har gjort nogle grundlæggende elementer i projektet. Lad os komme i gang med at konfigurere Raspberry Pi!
Del 1: Konfiguration af SD -kortet
1) Download den nødvendige software og filer
Du skal downloade 2 software og 1 OS, dvs. Raspbian til denne komplette proces. 1. software: Den første software er Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2. software: Anden software er SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Dette er Pi's vigtigste operativsystem.
www.raspberrypi.org/downloads/raspberry-pi-os/
Udpak alle filer til skrivebordet.
2) Hent SD -kortet og kortlæseren
Få et minimum 8 GB klasse 10 SD -kort med en kortlæser. Indsæt kortet i kortlæseren, og slut det til USB -porten.
3) Formater SD -kortet
Åbn SD -kortformatering, og vælg drevet.
Klik på formatet, og rediger ikke andre muligheder.
Når formateringen er fuldført, skal du klikke på OK.
4) Skriv operativsystemet på SD -kortet
Åbn win32diskimager.
Gennemse.img -filen i Raspbian OS, der blev hentet fra den downloadede fil.
Klik på Åbn, og klik derefter på Skriv.
Hvis der dukker en advarsel op, ignorer dem ved at klikke på OK. Vent til skrivningen er afsluttet, og det kan tage nogle minutter. Så vær tålmodig.
n
5) Når dette er gjort, er vi klar til at foretage nogle sidste justeringer, før vi sætter billedet i vores RPi.
Gå til dit SD -korts bibliotek, søg efter filen med navnet 'cmdline.txt', og åbn den.
Tilføj nu 'ip = 169.254.10.1' på den samme linje.
Gem filen.
Opret en fil med navnet 'ssh' uden udvidelse eller indhold. (Nemmeste måde er at oprette en txt -fil og fjerne.txt bagefter)
Nu hvor alt er installeret på SD -kortet, kan du SIKKERT skubbe det ud fra din computer og sætte det i Raspberry Pi UDEN at tilslutte strømmen. Når SD -kortet er sat i RPI'en, skal du slutte et LAN -kabel fra din computer til RPi LAN -porten, når dette er tilsluttet, kan du slutte strøm til RPi.
Del 2: Konfiguration af RPi
Kitt
Nu vil vi konfigurere vores Raspberry Pi, dette gøres gennem Putty.
Kittesoftware:
Når du har downloadet, skal du åbne Putty og indsætte IP '169.254.10.1' og Port '22' og forbindelsestype: SSH.
Nu kan vi endelig åbne vores kommandolinjegrænseflade og logge ind med starter -loginoplysningerne -> Bruger: pi & Adgangskode: hindbær. (Det anbefales at ændre det så hurtigt som muligt. Her er en vejledning til:
Raspi-konfiguration
Vi bliver nødt til at aktivere forskellige grænseflader, og for at gøre det skal vi først skrive følgende kode:
sudo raspi-config
De ting, vi skal aktivere, er i grænsefladesektionen. Vi skal aktivere følgende grænseflader:
- En-ledning
- Seriel
- I2C
- SPI
Det var alt, hvad vi skulle gøre med raspi-config
Tilføjelse af din WIFI
Først skal du være root for at følgende kommando skal blive root
sudo -i
Når du har rod, skal du bruge følgende kommando: (Erstat SSID med dit netværksnavn og adgangskode med dit netværkskodeord)
wpa_passphrase "ssid" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf
Hvis du gjorde noget forkert, kan du kontrollere, opdatere eller slette dette netværk ved blot at indtaste følgende kommando:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Så efter at vi kom ind i vores netværk, lad os gå ind i WPA -klientgrænsefladen
wpa_cli
Vælg din grænseflade
grænseflade wlan0
Genindlæs filen
omkonfigurere
Og endelig kan du se, om du har god forbindelse:
ip a
Del 3: Opdatering af RPi + -installationssoftwaren
Nu hvor vi har forbindelse til internettet, ville opdatering af de allerede installerede pakker være et smart træk, så lad os gøre det først, før vi installerer andre pakker.
sudo apt-get opdatering
sudo apt-get opgradering
Efter opdatering af RPi bliver vi nødt til at installere følgende software:
MariaDB Database
sudo apt-get install mariadb-server
Apache2 webserver
sudo apt installere apache2
Python
opdateringsalternativer-install/usr/bin/python python /usr/bin/python3.7 1 opdateringsalternativer --install/usr/bin/python python/usr/bin/python3 2
Python -pakke
Du bliver nødt til at installere alle disse pakker for at få backend til at fungere perfekt:
- Kolbe
- Kolbe-Cors
- Kolbe-MySql
- Kolbe-SocketIO
- PyMySQL -anmodninger
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Højttalerbibliotek
For at bruge højttaleren med forstærkeren bliver vi nødt til at installere et bibliotek til det
krølle -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
Nu hvor vi har installeret alt, hvad vi havde brug for, lad os lægge vores database, vi designede på vores Raspberry Pi!
For at oprette databasen skal vi forbinde MySql og RPi. Til det åbner vi MySQLWorkbench og opretter en ny forbindelse. Når du ser på billedet, skal du ændre for at ændre oplysningerne til dine.
Hvis du ikke har ændret noget endnu, kan du bruge det til SSH pi og hindbær, til MySQL mysql og mysql.
Når noget ikke er klart, kan du også følge denne vejledning:
For at eksportere din database skulle det være lettere at bruge PHPmyAdmin, fordi du kan få mange fejl ved at gøre det med MySql
Trin 6: Konfiguration af Bluetooth på vores RPi
Vi er ved at oprette en Mood -højttaler, som vi også kan bruge med vores egen musik, så det er lettere, når RPi er
forbundet til bluetooth fulgte jeg en vejledning til det, som du kan finde her:
scribles.net/streaming-bluetooth-audio-fr…
Jeg skrev alt hernede også til alle, der ønsker at genskabe det
Fjernelse af den allerede kørende bluealsa
sudo rm/var/run/bluealsa/*
Tilføj A2DP -profil Sink -rolle
sudo bluealsa -p a2dp -vask &
Åbn bluetooth -grænsefladen, og tænd din bluetooth
bluetoothctl tændt
Opret en parringsagent
agent på standardagent
Gør din RPi synlig
findes på
- Nu skal du søge efter RPi'en fra din bluetooth -enhed og oprette forbindelse til den.
- Bekræft parringen på begge enheder, skriv 'ja' i din kit.
- Godkend A2DP -service, skriv 'ja' igen.
- Når dette er gjort, kan vi stole på vores enhed, så vi ikke behøver at gå igennem alt dette, hver gang vi vil oprette forbindelse
tillid XX: XX: XX: XX: XX: XX (Din bluetooth mac -adresse fra vores kildeenhed)
Hvis du vil have, at din RPi bliver ved med at være synlig, er det dit eget valg, men jeg foretrækker at slukke den igen, så folk ikke kan prøve at oprette forbindelse til din boks
opdagelig off
Derefter kan vi forlade vores bluetooth -interface
Afslut
Og endelig vores audio routing: vores kildeenhed videresender til vores RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Nu er vores enhed forbundet til vores hindbær med bluetooth, og du skal kunne teste den ved at afspille alle medier, f.eks. Spotify osv.
Trin 7: Skrivning af den komplette backend
Så nu er opsætningen færdig, vi kan endelig begynde at skrive vores backend -program!
Jeg brugte Visual Studio Code til hele min backend, du skal bare sørge for, at dit Visual Studio -projekt er forbundet til din Raspberry Pi, det betyder, at dit LAN -kabel skal være forbundet til din RPi og for at oprette en SSH -forbindelse. (information om, hvordan du opretter en fjernforbindelse, kan findes her:
Jeg brugte mine egne klasser, og disse er også alle inkluderet i min GitHub.
I min backend -fil brugte jeg forskellige klasser, så alt kan bruges separat, og så min hovedkode ikke er et rod med alle de forskellige tråde. Jeg brugte trådning til at køre alle de forskellige klasser på én gang. Og i bunden har du alle ruterne, så vi nemt kan få data i vores frontend.
Trin 8: Skrivning af frontend (HTML, CSS og JavaScript)
Nu hvor backend er færdig, kan vi begynde at skrive hele front-end.
HTML og CSS var ret svært for mig, jeg gjorde mit bedste for at gøre det mobil først, fordi jeg kan oprette forbindelse til det med bluetooth for at ændre sangene med Spotify. Så det ville være lettere at styre fra et mobilt instrumentbræt
Du kan designe dit dashboard på enhver måde, du vil, jeg vil bare efterlade min kode og designe her, du kan gøre, hvad du vil!
Og Javascript var ikke lettere for mig, arbejdede med et par GET'er fra mine backend -ruter, masser af eventlyttere og nogle socketio -strukturer for at få data fra mine sensorer.
Trin 9: Byg min sag og sammensæt det hele
Jeg begyndte først at skitsere, hvordan jeg ville have, at sagen skulle se ud, noget vigtigt var, at den skulle være stor nok til, at alt kunne passe ind, da vi fik et stort kredsløb at sætte i sagen, men skulle forblive kompakte, så den ikke kunne ' tager ikke meget plads
Jeg har lavet sagen ud af træ, jeg synes, det er det letteste at arbejde med, når man ikke har så meget erfaring med at bygge sager, og man også har mange ting, man kan gøre med det.
Jeg startede fra en gammel planke, jeg havde liggende, og begyndte lige at save træet. Når jeg havde min grundkasse, var jeg bare nødt til at bore huller i den (meget på forsiden af sagen, som du kan se på billederne og sætte nogle søm i den, det er en virkelig grundlæggende sag, men det ser ret sejt ud og passer perfekt. Jeg besluttede også at male det hvidt for at få det til at se godt ud.
Og når sagen var færdig, var det tid til at sætte det hele sammen, som du kan se på det sidste billede! Det er lidt rod i kassen, men alt fungerer, og jeg havde ikke så meget mere plads, så jeg råder dig til måske at oprette en større sag, hvis du genskaber mit projekt.
Anbefalede:
Enkel, men kraftfuld statisk elektricitetsdetektor, der også kan registrere "spøgelser": 10 trin
Enkel, men kraftfuld statisk elektricitetsdetektor, der også kan registrere "spøgelser": Hej, dette er min første instruerbare, så lad mig vide om de fejl, jeg har begået i denne instruerbare. I denne instruks vil jeg lave et kredsløb, der kan registrere statisk elektricitet. En af dens skabere har hævdet, at han opdagede & quot
Gør enhver højttaler til en Bluetooth -højttaler: 4 trin
Gør enhver højttaler til en Bluetooth -højttaler: For flere år siden var det almindeligt, at bærbare højttalere havde et 3,5 mm stik og blev drevet af AA -batterier. Efter dagens standarder er det lidt forældet, især batteriet, da hver gadget i dag har et genopladeligt batteri. Lydstikket er st
Sådan samles en enkel og kraftfuld håndteringscontroller- Baseret på mikro: Bit: 10 trin (med billeder)
Sådan samles en enkel og kraftfuld håndtagskontroller- Baseret på Micro: Bit: Navnet på håndtaget er Handlebit. Formen er et håndtag, og det ser meget sejt ud! Nu kan vi lave en introduktion om Handlebit, lad os gå videre med det
Sådan bruges et par stykker træ til at samle sig til en sød og kraftfuld trærobotarm: 10 trin
Sådan bruges et par stykker træ til at samles i en sød og kraftig trærobotarm: Robotarmen hedder WoodenArm. Det ser meget sødt ud! Hvis du vil have flere detaljer om WoodenArm, kan du se www.lewansoul.com Nu kan vi lave en introduktion om WoodenArm, lad os komme videre
Hvad er der til frokost? Højttaler på en madkasse !: 3 trin
Hvad er der til frokost? Højttaler på en madkasse !: på denne instruktive vil jeg vise dig min hjemmelavede højttaler til guitar, mp3 -afspiller, VCD -afspiller osv. Jeg baserede mit arbejde på de tilgængelige dele, som jeg fandt på det berømte sted for elektronik her i Filippinerne, at vi kalder "Quiapo". du ca