INHOUDSOPGAWE:
- Stap 1: Voorrade
- Stap 2: Skematiese en bedrading
- Stap 3: Databasisontwerp
- Stap 4: Stel Raspberry Pi op
- Step 5: Setting Up the Database to the RPi
- Stap 6: Bluetooth instel op ons RPi
- Stap 7: Skryf die volledige backend
- Stap 8: Skryf die frontend (HTML, CSS en JavaScript)
- Stap 9: Bou my saak en plaas dit alles saam
Video: Mood Speaker- 'n kragtige luidspreker vir bui-musiek wat gespeel moet word op grond van die omgewingstemperatuur: 9 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Haai daar!
Vir my skoolprojek by MCT Howest Kortrijk, het ek 'n Mood Speaker gemaak, dit is 'n slim Bluetooth -luidsprekerapparaat met verskillende sensors, 'n LCD en WS2812b ledstrip ingesluit. Die luidspreker speel agtergrondmusiek op grond van die temperatuur, maar kan ook as gewone bluetooth gebruik word spreker. Alles werk op die Raspberry Pi (databasis, webbediener, backend).
Hierdie instruksies is dus 'n stap -vir -stap proses van hoe ek hierdie projek binne 3 weke gerealiseer het. As u my projek wil herskep, kan u die gids volg
Hierdie instruksie is my eerste een wat ek geskryf het, so as ek vrae het, sal ek probeer om dit so vinnig as moontlik te beantwoord!
My GitHub:
Stap 1: Voorrade
Framboos Pi 3B en 16 GB SD -kaart
My hele projek loop op my Raspberry Pi 3B met 'n gekonfigureerde beeld, wat ek in 'n latere stap sal verduidelik (Stap 4: Stel Raspberry Pi op)
LCD -skerm 16x2
Ek het 'n basiese LCD -skerm gebruik om my temperatuur, helderheid en IP -adres af te druk.
Gegevensblad:
DS18B20 Temperatuursensor
Die DS18B20 is 'n enkeldraadsensor wat die temperatuur meet, vervaardig deur Maxim Integrated. Daar is 2 soorte DS18B20 -sensors, slegs die komponent (wat ek gebruik het) en die waterdigte weergawe, wat baie groter is, maar dit is nie wat ek nodig gehad het vir my projek nie, so ek het slegs die komponent gebruik. Die sensor kan die temperatuur in 'n reeks van -55 ° C tot +125 ° C (-67 ° F tot +257 ° F) meet, en dit het 'n akkuraatheid van 0,5 ° C van -10 ° C tot +85 ° C. Dit het ook 'n programmeerbare resolusie van 9 bis tot 12 bis.
Gegevensblad:
MCP3008
Om die data van my LDR en PIR-sensor te lees, gebruik ek 'n MCP3008, 'n 8-kanaals 10-bis analoog na digitale omskakelaar met die SPI-koppelvlak en redelik maklik om te programmeer.
Gegevensblad:
PIR bewegingsensor
Om te sien wanneer iemand my kamer binnegaan en verlaat, het ek 'n passiewe infrarooi sensor gebruik omdat dit maklik is om te gebruik en klein is.
Gegevensblad:
LDR
Ek het 'n fotoresistor of LDR (Light Decreasing Resistance, of ligafhanklike weerstand) gebruik om die helderheid van die kamer waar te neem, op te spoor. En om my Ledstrip ook aan te skakel as dit donker is.
Luidspreker - 3”Diameter - 4 Ohm 3 Watt
Dit is die luidsprekerkegel wat ek gekies het na die berekening van die spanning en ampère wat dit sou benodig, en dit pas perfek by my Raspberry Pi -projek, vervaardig deur Adafruit.
Oorsig:
MAX98357 I2S Klas-D mono versterker
Dit is die versterker wat by die luidspreker kom, nie net 'n versterker nie, dit is ook 'n I2S digitaal na analoog -omskakelaar, dus dit pas ook perfek by my luidspreker en klankstelsel.
Oorsig:
Gegevensblad:
Arduino Uno
Die Arduino Uno is 'n oopbron-mikrobeheerderbord gebaseer op die Microchip ATmega328P-mikrobeheerder, vervaardig deur Arduino.cc. Die Uno -bord het 14 digitale penne, 6 analoog penne en is volledig programmeerbaar met die Arduino IDE -sagteware
Oorsig:
Vlakveranderaar
Dit is 'n klein bordjie wat sorg vir die kommunikasie tussen die Arduino Uno en die Raspberry Pi en die verskillende spannings, Arduino: 5V en Raspberry Pi: 3.3V. Dit is nodig omdat die ledstrip aan die Arduino gekoppel is en daar loop, terwyl al die ander dinge op die Raspberry Pi werk.
WS2812B - Ledstrip
Dit is 'n ledstrip met 60 RGB -leds (u kan langer stroke met meer RGB -leds koop as u wil). Dit is in my geval gekoppel aan die Arduino Uno, maar kan ook aan baie ander toestelle gekoppel word en is baie eenvoudig om te gebruik.
Gegevensblad:
GPIO T-Part, 1 broodbord en baie jumperwires
Ek het nie die GPIO T-onderdeel gebruik om alles wat ek broodborde en jumperwires nodig het aan te sluit nie, maar u kan dit gebruik om duidelik te weet watter bak waarheen gaan.
Stap 2: Skematiese en bedrading
Vir die maak van my skematiese gebruik ek Fritzing, dit is 'n program wat u kan installeer waarmee u 'n baie eenvoudige skema kan maak in verskillende soorte kyke. Ek het die broodbord en die skematiese aansig gebruik.
Laai Fritzing af:
Maak seker dat alles korrek verbind is. Ek het kleure gebruik om dit 'n bietjie duideliker te maak om te weet waar ek die drade moet koppel. In my geval het ek verskillende kleure vir die drade gebruik
Stap 3: Databasisontwerp
Ons versamel baie data van die 3 sensors (temperatuur van DS18B20, helderheid van LDR en status van PIR-sensor). Dit is dus die beste om al hierdie data in 'n databasis te stoor. Ek sal in 'n latere stap verduidelik hoe om die databasis op te stel (Stap 5: Stuur Engineering Our Database aan die RPi!) Maar eers moet die ontwerp of ERD (Entity Relationship Diagram) gemaak word. Myne is genormaliseer met 3NF, daarom het ons die komponente en die geskiedenis van die komponente in 'n ander tabel verdeel. Ons gebruik die Musiek -databasis om die liedjies waarna geluister is, by te hou.
In die algemeen is dit 'n basiese en maklike databasisontwerp waarmee u verder kan werk.
Stap 4: Stel Raspberry Pi op
Nou dat ons 'n paar basiese beginsels van die projek gedoen het. Kom ons begin met die opstel van die Raspberry Pi!
Deel 1: Die opstel van die SD -kaart
1) Laai die nodige sagteware en lêers af
U moet 2 sagteware en 1 bedryfstelsel, dit wil sê Raspbian, aflaai vir hierdie volledige proses. 1ste sagteware: Die eerste sagteware is Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2de sagteware: Tweede sagteware is SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Dit is die belangrikste bedryfstelsel van die Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Pak alle lêers uit na die lessenaar.
2) Kry die SD -kaart en die kaartleser
Kry 'n minimum 8GB klas 10 SD -kaart met 'n kaartleser. Steek die kaart in die kaartleser en steek dit in die USB -poort.
3) Formateer die SD -kaart
Maak die SD -kaartformater oop en kies die skyf.
Klik op die formaat en verander geen ander opsies nie.
As die opmaak voltooi is, klik op OK.
4) Skryf die bedryfstelsel op die SD -kaart
Maak win32diskimager oop.
Blaai deur die.img -lêer van Raspbian OS wat uit die afgelaaide lêer gehaal is.
Klik op oop en klik dan op Skryf.
As daar 'n waarskuwing verskyn, ignoreer dit deur op OK te klik. Wag totdat die skryfwerk voltooi is, en dit kan 'n paar minute neem. Wees dus geduldig.
n
5) Sodra dit klaar is, is ons gereed om 'n paar finale aanpassings aan te bring voordat ons die beeld in ons RPi plaas.
Gaan na die gids van u SD -kaart, soek die lêer met die naam 'cmdline.txt' en maak dit oop.
Voeg nou 'ip = 169.254.10.1' op dieselfde reël by.
Stoor die lêer.
Skep 'n lêer met die naam 'ssh' sonder uitbreiding of inhoud. (Maklikste manier is om 'n txt -lêer te skep en die.txt daarna te verwyder)
Noudat alles op die SD -kaart geïnstalleer is, kan u dit VEILIG van u rekenaar verwyder en in die Raspberry Pi sit sonder om die krag aan te sluit. Sodra die SD -kaart in die RPI is, koppel 'n LAN -kabel van u rekenaar aan die RPi LAN -poort, sodra dit gekoppel is, kan u die krag aan die RPi koppel.
Deel 2: Die opstel van die RPi
Stopverf
Nou wil ons ons Raspberry Pi instel, dit word gedoen via Putty.
Putty sagteware:
Sodra dit afgelaai is, maak Putty oop en plaas die IP '169.254.10.1' en poort '22' en verbindingstipe: SSH.
Nou kan ons uiteindelik ons opdragreël -koppelvlak oopmaak en aanmeld met die aanmeldinligting -> Gebruiker: pi en wagwoord: framboos. (Dit word aanbeveel om dit so vinnig as moontlik te verander. Hier is 'n gids:
Raspi-konfig
Ons sal verskillende koppelvlakke moet aktiveer en om dit te kan doen, moet ons eers die volgende kode tik:
sudo raspi-config
Die dinge wat ons moet aktiveer, is in die koppelvlakafdeling. Ons moet die volgende koppelvlakke aktiveer:
- Eendraad
- Reeks
- I2C
- SPI
Dit was alles wat ons met raspi-config moes doen
Voeg u WIFI by
Eerstens moet u wortel wees vir die volgende opdrag om wortel te word
sudo -i
Sodra u root is, gebruik die volgende opdrag: (Vervang SSID met u netwerknaam en wagwoord met u netwerkwagwoord)
wpa_passphrase "ssid" "wagwoord" >> /etc/wpa_supplicant/wpa_supplicant.conf
As u iets verkeerd gedoen het, kan u hierdie netwerk kontroleer, opdateer of verwyder deur net die volgende opdrag in te voer:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Dus, nadat ons ons netwerk binnegekom het, laat ons die WPA -kliënt -koppelvlak betree
wpa_cli
Kies u koppelvlak
koppelvlak wlan0
Herlaai die lêer
herkonfigureer
En uiteindelik kan u sien of u goed verbind is:
ip a
Deel 3: Opdatering van die RPi + installeringsagteware
Noudat ons aan die internet gekoppel is, is die opdatering van die reeds geïnstalleerde pakkette 'n slim stap, dus laat ons dit eers doen voordat ons ander pakkette installeer.
sudo apt-get update
sudo apt-get upgrade
Na die opdatering van die RPi, sal ons die volgende sagteware moet installeer:
MariaDB -databasis
sudo apt-get install mariadb-bediener
Apache2 webbediener
sudo apt installeer apache2
Python
update-alternatiewe-install/usr/bin/python python /usr/bin/python3.7 1 update-alternatiewe-install/usr/bin/python python/usr/bin/python3 2
Python pakket
U sal al hierdie pakkette moet installeer om die backend perfek te laat werk:
- Fles
- Fles-Kors
- Fles-MySql
- Fles-SocketIO
- PyMySQL -versoeke
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Spreker biblioteek
Om die luidspreker met die versterker te gebruik, moet ons 'n biblioteek daarvoor installeer
krul -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
Noudat ons alles wat ons nodig het geïnstalleer het, laat ons ons databasis op ons Raspberry Pi sit!
Vir die opstel van die databasis sal ons MySql en RPi moet koppel. Hiervoor sal ons MySQLWorkbench oopmaak en 'n nuwe verbinding maak. As u na die prent kyk, moet u verander om die inligting na u s'n te verander.
As u nog niks verander het nie, kan u dit gebruik vir SSH pi en framboos, vir MySQL mysql en mysql.
As iets nie duidelik is nie, kan u hierdie tutoriaal ook volg:
Om u databasis uit te voer, behoort dit makliker te wees om PHPmyAdmin te gebruik, want u kan baie foute ondervind met MySql
Stap 6: Bluetooth instel op ons RPi
Ons skep 'n Mood -luidspreker wat ons ook met ons eie musiek kan gebruik, sodat dit makliker is as die RPi is
gekoppel aan bluetooth, het ek 'n handleiding gevolg wat u hier kan vind:
scribles.net/streaming-bluetooth-audio-fr…
Ek het ook alles hier neergeskryf vir almal wat dit wil herskep
Die verwydering van die reeds uitgevoerde bluealsa
sudo rm/var/run/bluealsa/*
Voeg A2DP -profiel Sinkrol by
sudo bluealsa -p a2dp -wasbak &
Maak die bluetooth -koppelvlak oop en skakel u bluetooth aan
bluetoothctl aan
Stel 'n paringsagent op
agent op verstekagent
Maak u RPi ontdekbaar
ontdekbaar op
- Soek nou vanaf u bluetooth -toestel na die RPi en maak daarmee verbinding.
- Bevestig die koppeling op albei toestelle, tik 'ja' in u stopverf.
- Magtig A2DP -diens, tik weer 'ja'.
- Sodra dit klaar is, kan ons ons toestel vertrou, sodat ons nie hierdeur hoef te gaan elke keer as ons wil koppel nie
vertrou XX: XX: XX: XX: XX: XX (u bluetooth -mac -adres van ons bronapparaat)
As u wil hê dat u RPi aanhoubaar is, is dit u eie keuse, maar ek verkies om dit weer uit te skakel sodat mense nie met u boks kan skakel nie
ontdekbaar af
Dan kan ons ons bluetooth -koppelvlak verlaat
uitgang
En uiteindelik ons klankroetering: ons bronapparaat stuur na ons RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Nou is ons toestel verbind met ons framboos met bluetooth, en u moet dit kan toets deur enige media te speel, byvoorbeeld Spotify, ens.
Stap 7: Skryf die volledige backend
So nadat die opstelling klaar is, kan ons uiteindelik ons backend -program begin skryf!
Ek het Visual Studio Code vir my hele backend gebruik; u hoef net seker te maak dat u Visual Studio -projek aan u Raspberry Pi gekoppel is, dit beteken dat u LAN -kabel aan u RPi gekoppel moet word en 'n SSH -verbinding moet maak. (inligting oor hoe om 'n afstandverbinding te skep, kan hier gevind word:
Ek het my eie klasse gebruik, en dit is ook almal ingesluit in my GitHub.
In my backend -lêer het ek verskillende klasse gebruik, sodat alles afsonderlik gebruik kan word en dat my hoofkode nie 'n gemors met al die verskillende drade is nie. Ek het threading gebruik om al die verskillende klasse gelyktydig uit te voer. En onderaan het u al die roetes gekry, sodat ons maklik data in ons voorkant kan kry.
Stap 8: Skryf die frontend (HTML, CSS en JavaScript)
Noudat die agterkant klaar is, kan ons die volledige voorkant begin skryf.
HTML en CSS was vir my redelik moeilik. Ek het my bes gedoen om dit eers mobiel te maak, want ek kan dit met bluetooth verbind om die liedjies met Spotify te verander. Dit sou dus makliker wees om dit vanaf 'n mobiele paneelbord te beheer
U kan u dashboard ontwerp op elke manier wat u wil; ek laat my kode en ontwerp hier agter; u kan doen wat u wil!
En Javascript was nie vir my makliker nie; ek het gewerk met 'n paar GET's van my backend -roetes, tonne gebeurtenisluisteraars en 'n paar socketio -strukture om die data van my sensors af te haal.
Stap 9: Bou my saak en plaas dit alles saam
Ek het eers begin skets hoe ek die saak wil laat lyk; iets belangrik was dat dit groot genoeg moes wees om alles in te pas, want ons het 'n groot kring om in die tas te sit, maar ons moes kompak bly sodat dit nie kon nie. neem baie ruimte in beslag
Ek het die kas van hout gemaak, ek dink dit is die maklikste om mee te werk as u nie soveel ervaring het met die bou van kaste nie, en u het ook baie dinge waarmee u dit kan doen.
Ek het begin met 'n ou plank wat ek gaan lê het, en ek het net die hout begin saag. Sodra ek my basiese omhulsel gehad het, moes ek net gate daarin boor (baie aan die voorkant van die omhulsel, soos u op die foto's kan sien en 'n paar spykers daarin moet sit, dit is regtig 'n basiese omhulsel, maar dit lyk baie gaaf en pas perfek. Ek het ook besluit om dit wit te verf om dit goed te laat lyk.
En sodra die saak klaar was, was dit tyd om alles bymekaar te maak, soos u op die laaste foto kan sien! Dit is 'n bietjie gemors in die boks, maar alles werk en ek het nie veel meer ruimte nie, so ek raai u aan om miskien 'n groter saak te skep as u my projek herskep.
Aanbeveel:
Die minute -timer op grond van die PIC16F88 MCU: 4 stappe
Die minute -timer Op grond van die PIC16F88 MCU: Kom ons kyk na die eenvoudige beginnerprojek van die minute timer. Die kern van die projek is die 8-bis PIC16F88 MCU. Die tyd word op die 7-segment skerm vertoon en die timer word gebruik met 6 knoppies. Die toestel word aangedryf deur die 9 volt -kolfblad
Alles wat u moet weet vir die bou van 'n DRONE met FPV: 13 stappe
Alles wat u moet weet vir die bou van 'n DRONE met FPV: Dit kan dus moeilik en moeilik wees om 'n hommeltuig te bou, dit is baie duur of wettig; dit is 'n reis wat u binnekom en ontwikkel. Ek gaan jou leer wat jy nodig het, ek gaan nie alles dek wat daar op die mark is nie, maar net alles
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek
Die herstel van 'n ou luidspreker: 'n selfgids vir die verbetering van u huisstereo: 7 stappe
Die herstel van 'n ou luidspreker: 'n selfgids vir die verbetering van u huisstereo: wil u 'n nuwe paar luidsprekers by die huis hê, maar kan u dit nie bekostig om honderde dollars te spandeer nie? Waarom dan nie 'n ou luidspreker self vir so min as $ 30 herstel nie? !? Die vervanging van 'n luidsprekerbestuurder is 'n maklike proses, of jy nou 'n luidspreker het
Motorradio wat in deure gespeel word sonder battery: 4 stappe
Motorradio wat in deure gespeel word sonder battery: dit is hoe u 'n motorradio in deure kan gebruik sonder 'n battery, maar 'n kragtoevoer van 'n rekenaar is maklik om te doen, maar ek is ((((((nie verantwoordelik vir skade wat u aangerig het nie) )))))))))))))