Turinys:
- 1 žingsnis: reikmenys
- 2 žingsnis: schema ir laidai
- 3 žingsnis: duomenų bazės projektavimas
- 4 žingsnis: nustatykite „Raspberry Pi“
- Step 5: Setting Up the Database to the RPi
- 6 veiksmas: „Bluetooth“konfigūravimas mūsų RPi
- 7 veiksmas: parašykite visą vidinę programą
- 8 veiksmas: „Frontend“rašymas (HTML, CSS ir „JavaScript“)
- 9 žingsnis: sukurkite mano bylą ir viską sudėkite
Video: „Mood Speaker“- galingas garsiakalbis, leidžiantis groti nuotaikai, atsižvelgiant į aplinkos temperatūrą: 9 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Labas!
Savo mokyklos projektui MCT Howest Kortrijk aš sukūriau „Mood Speaker“, tai yra išmanusis „Bluetooth“garsiakalbių įrenginys su įvairiais jutikliais, LCD ir WS2812b LED juosta. Garsiakalbis leidžia foninę muziką pagal temperatūrą, tačiau taip pat gali būti naudojamas kaip įprastas „Bluetooth“garsiakalbis. Viskas veikia „Raspberry Pi“(duomenų bazė, interneto serveris, „Backend“).
Taigi šis nurodymas yra žingsnis po žingsnio, kaip aš supratau šį projektą per 3 savaites. Taigi, jei jūs, vaikinai, norite atkurti mano projektą, galite sekti vadovą
Ši pamokoma pamoka yra mano pirmoji, kurią parašiau, taigi, jei kyla kokių nors abejonių, pabandysiu kuo greičiau į jas atsakyti!
Mano „GitHub“:
1 žingsnis: reikmenys
Raspberry Pi 3B ir 16 GB SD kortelė
Visas mano projektas veikia mano „Raspberry Pi 3B“su sukonfigūruotu vaizdu, kurį paaiškinsiu vėliau (4 veiksmas: „Raspberry Pi“sąranka)
LCD ekranas 16x2
Temperatūrai, ryškumui ir IP adresui spausdinti naudojau paprastą LCD ekraną.
Duomenų lapas:
DS18B20 temperatūros jutiklis
„DS18B20“yra vieno laido jutiklis, matuojantis temperatūrą, pagamintas „Maxim Integrated“. Yra dviejų tipų DS18B20 jutikliai, tik komponentas (kurį naudojau) ir vandeniui atsparus variantas, kuris yra daug didesnis, bet tai ne tai, ko man reikėjo mano projektui, todėl naudojau tik komponentą. Jutiklis gali matuoti temperatūrą nuo -55 ° C iki +125 ° C (nuo -67 ° F iki +257 ° F) ir jo tikslumas yra 0,5 ° C nuo -10 ° C iki +85 ° C. Jis taip pat turi programuojamą skiriamąją gebą nuo 9 bitų iki 12 bitų.
Duomenų lapas:
MCP3008
Norėdami skaityti duomenis iš savo LDR ir PIR jutiklio, naudoju MCP3008, kuris yra 8 kanalų 10 bitų analoginis-skaitmeninis keitiklis su SPI sąsaja ir kurį gana lengva užprogramuoti.
Duomenų lapas:
PIR judesio jutiklis
Norėdami nustatyti, kada kažkas įeina ir išeina iš mano kambario, aš naudoju pasyvų infraraudonųjų spindulių jutiklį, nes juos lengva naudoti ir jie yra maži.
Duomenų lapas:
LDR
Aš naudoju fotorezistorių arba LDR (šviesos mažėjimo pasipriešinimą arba nuo šviesos priklausomą rezistorių), kad nustatyčiau kambario šviesumo lygį. Taip pat įjungiau savo „Ledstrip“, kai tamsu.
Garsiakalbis - 3 colių skersmuo - 4 omai 3 vatai
Tai yra garsiakalbio kūgis, kurį pasirinkau apskaičiuodamas tam reikalingą įtampą ir amperus, ir tai puikiai tiko mano Raspberry Pi projektui, kurį pagamino „Adafruit“.
Apžvalga:
MAX98357 I2S D klasės monofoninis stiprintuvas
Tai stiprintuvas, pateikiamas kartu su garsiakalbiu, ne tik stiprintuvas, bet ir I2S skaitmeninis -analoginis keitiklis, todėl jis taip pat puikiai tinka mano garsiakalbiui ir garso sistemai.
Apžvalga:
Duomenų lapas:
Arduino Uno
„Arduino Uno“yra atvirojo kodo mikrovaldiklio plokštė, pagrįsta „Microchip ATmega328P“mikrovaldikliu, kurį gamina „Arduino.cc“. „Uno“plokštė turi 14 skaitmeninių kaiščių, 6 analoginius kaiščius ir yra visiškai programuojama naudojant „Arduino IDE“programinę įrangą
Apžvalga:
Lygio perjungiklis
Tai maža plokštė, kuri rūpinasi ryšiu tarp „Arduino Uno“ir „Raspberry Pi“bei skirtingos įtampos, „Arduino“: 5 V ir „Raspberry Pi“: 3,3 V. To reikia, nes LED juosta yra prijungta prie „Arduino“ir veikia toliau, o visa kita - „Raspberry Pi“.
WS2812B - Ledstrip
Tai yra LED juostelė su 60 RGB lempučių (jei norite, galite nusipirkti ilgesnes juosteles su daugiau RGB lempučių). Kuris mano atveju yra prijungtas prie „Arduino Uno“, bet taip pat gali būti prijungtas prie daugelio kitų įrenginių ir yra tikrai paprastas naudoti.
Duomenų lapas:
GPIO T dalis, 1 duonos lenta ir daugybė jungiamųjų laidų
Norėdami prijungti viską, ko man reikia, lentas ir jungiamuosius laidus, aš nenaudojau GPIO T dalies, bet jūs galite ją naudoti, kad aiškiai žinotumėte, kuri šiukšliadėžė yra kur.
2 žingsnis: schema ir laidai
Norėdami sukurti savo schemą, aš naudoju „Fritzing“, tai programa, kurią galite įdiegti ir kuri leidžia jums sukurti schemą tikrai lengvai įvairiuose vaizduose. Aš naudoju duonos lentą ir scheminį vaizdą.
Atsisiųskite „Fritzing“:
Įsitikinkite, kad viskas tinkamai prijungta. Naudojau spalvas, kad būtų šiek tiek aiškiau žinoti, kur prijungti laidus. Mano atveju laidams naudojau skirtingas spalvas
3 žingsnis: duomenų bazės projektavimas
Mes renkame daug duomenų iš 3 jutiklių (temperatūra nuo DS18B20, ryškumas pagal LDR ir būsena iš PIR jutiklio). Taigi geriausia visus šiuos duomenis laikyti duomenų bazėje. Vėlesniame žingsnyje paaiškinsiu, kaip sukonfigūruoti duomenų bazę (5 žingsnis: persiųskite mūsų duomenų bazę į RPi!) Tačiau pirmiausia reikia sukurti dizainą arba ERD (objektų santykių diagrama). Mano buvo normalizuota naudojant 3NF, todėl komponentus ir komponentų istoriją padalijome į kitą lentelę. Mes naudojame muzikos duomenų bazę, kad galėtume sekti klausomas dainas.
Apskritai tai tikrai paprastas ir lengvas duomenų bazės dizainas, su kuriuo galima toliau dirbti.
4 žingsnis: nustatykite „Raspberry Pi“
Taigi dabar, kai mes atlikome keletą projekto pagrindų. Pradėkime nuo „Raspberry Pi“nustatymo!
1 dalis: SD kortelės konfigūravimas
1) Atsisiųskite reikalingą programinę įrangą ir failus
Norėdami užbaigti šį procesą, turite atsisiųsti 2 programinę įrangą ir 1 OS, ty Raspbian. 1 -oji programinė įranga: pirmoji programinė įranga yra „Win32 Disk Imager“.
sourceforge.net/projects/win32diskimager/
Antroji programinė įranga: antroji programinė įranga yra SD kortelės formatavimas.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Tai yra pagrindinė „Pi“operacinė sistema.
www.raspberrypi.org/downloads/raspberry-pi-os/
Ištraukite visus failus į darbalaukį.
2) Gaukite SD kortelę ir kortelių skaitytuvą
Įsigykite mažiausiai 8 GB 10 klasės SD kortelę su kortelių skaitytuvu. Įdėkite tą kortelę į kortelių skaitytuvą ir prijunkite prie USB prievado.
3) Formatuokite SD kortelę
Atidarykite „SD Card Formatter“ir pasirinkite diską.
Spustelėkite formatą ir nekeiskite jokių kitų parinkčių.
Kai formatavimas bus baigtas, spustelėkite Gerai.
4) Įrašykite OS į SD kortelę
Atidarykite win32diskimager.
Naršykite Raspbian OS.img failą, kuris buvo išgautas iš atsisiųsto failo.
Spustelėkite atidaryti, tada spustelėkite Rašyti.
Jei pasirodo įspėjimas, ignoruokite jį spustelėdami Gerai. Palaukite, kol rašymas bus baigtas, ir tai gali užtrukti kelias minutes. Taigi būkite kantrūs.
n
5) Kai tai bus padaryta, prieš dėdami vaizdą į RPi, esame pasirengę atlikti kai kuriuos galutinius pakeitimus.
Eikite į savo SD kortelės katalogą, suraskite failą pavadinimu „cmdline.txt“ir atidarykite.
Dabar toje pačioje eilutėje pridėkite „ip = 169.254.10.1“.
Išsaugokite failą.
Sukurkite failą pavadinimu „ssh“be plėtinio ar turinio. (Lengviausias būdas yra sukurti txt failą ir vėliau pašalinti.txt)
Dabar, kai viskas yra įdiegta SD kortelėje, galite SAUGIAI ją išstumti iš kompiuterio ir įdėti į „Raspberry Pi“, neprijungdami maitinimo. Įdėję SD kortelę į RPI, prijunkite LAN kabelį iš kompiuterio prie RPi LAN prievado, kai jis bus prijungtas, galėsite prijungti maitinimą prie RPi.
2 dalis: RPi konfigūravimas
Glaistas
Dabar norime sukonfigūruoti „Raspberry Pi“, tai daroma naudojant „Putty“.
Glaistymo programinė įranga:
Atsisiuntę atidarykite „Putty“ir įterpkite IP „169.254.10.1“ir „22“prievadą bei ryšio tipą: SSH.
Dabar pagaliau galime atidaryti savo komandinės eilutės sąsają ir prisijungti naudodami pradinę prisijungimo informaciją -> Vartotojas: pi & Slaptažodis: avietė. (Rekomenduojama jį pakeisti kuo greičiau. Štai vadovas, kaip tai padaryti:
Raspi-config
Turėsime įjungti skirtingas sąsajas ir tam pirmiausia turime įvesti šį kodą:
sudo raspi-config
Dalykai, kuriuos turime įgalinti, yra sąsajų skyriuje. Turime įgalinti šias sąsajas:
- Vieno laido
- Serijinis
- I2C
- SPI
Tai buvo viskas, ką mums reikėjo padaryti su raspi-config
Pridedamas WIFI
Pirmiausia turite būti root, kad ši komanda taptų root
sudo -i
Kai būsite root, naudokite šią komandą: (Pakeiskite SSID savo tinklo pavadinimu ir slaptažodžiu savo tinklo slaptažodžiu)
wpa_passphrase "ssid" "slaptažodis" >> /etc/wpa_supplicant/wpa_supplicant.conf
Jei padarėte kažką ne taip, galite patikrinti, atnaujinti arba ištrinti šį tinklą tiesiog įvesdami šią komandą:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Taigi, įėję į mūsų tinklą, įeikime į WPA kliento sąsają
wpa_cli
Pasirinkite savo sąsają
sąsaja wlan0
Iš naujo įkelti failą
perkonfigūruoti
Ir pagaliau galite pamatyti, ar esate gerai prisijungę:
ip a
3 dalis: RPi + diegimo programinės įrangos atnaujinimas
Dabar, kai esame prisijungę prie interneto, atnaujinti jau įdiegtus paketus būtų protingas žingsnis, todėl prieš diegdami kitus paketus pirmiausia tai padarysime.
sudo apt-get atnaujinimas
sudo apt-get atnaujinimas
Atnaujinę RPi turėsime įdiegti šią programinę įrangą:
„MariaDB“duomenų bazė
sudo apt-get install mariadb-server
„Apache2“žiniatinklio serveris
sudo apt įdiegti apache2
Python
update-alternatives-install/usr/bin/python python /usr/bin/python3.7 1 atnaujinimo alternatyvos-install/usr/bin/python python/usr/bin/python3 2
Python paketas
Turėsite įdiegti visus šiuos paketus, kad pagrindinė sistema veiktų puikiai:
- Kolba
- Kolbos-kamšteliai
- Kolba-MySql
- Kolba-lizdasIO
- „PyMySQL“užklausos
- „Python-socketio“
- RPi. GPIO
- Geventas
- Gevent-websocket
Pranešėjų biblioteka
Norėdami naudoti garsiakalbį su stiprintuvu, turėsime įdiegti jo biblioteką
garbanė -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
Dabar, kai jau įdiegėme viską, ko mums reikėjo, įdėkime savo sukurtą duomenų bazę į Raspberry Pi!
Norėdami sukurti duomenų bazę, turėsime prijungti „MySql“ir „RPi“. Tam atidarysime „MySQLWorkbench“ir užmezgsime naują ryšį. Žiūrėdami į paveikslėlį turėsite pakeisti, kad pakeistumėte informaciją į savo.
Jei dar nieko nepakeitėte, galite naudoti SSH pi ir avietes, MySQL mysql ir mysql.
Kai kažkas neaišku, taip pat galite vadovautis šia pamoka:
Eksportuoti savo duomenų bazę turėtų būti lengviau naudojant PHPmyAdmin, nes naudodami „MySql“galite gauti daug klaidų
6 veiksmas: „Bluetooth“konfigūravimas mūsų RPi
Mes kuriame „Mood“garsiakalbį, kurį taip pat galime naudoti su savo muzika, kad tai būtų lengviau, kai yra RPi
prisijungęs prie „Bluetooth“, aš vadovavausi jo pamoka, kurią galite rasti čia:
scribles.net/streaming-bluetooth-audio-fr…
Aš čia viską taip pat parašiau visiems, kurie nori tai atkurti
Jau veikiančios „bluealsa“pašalinimas
sudo rm/var/run/bluealsa/*
Pridėti A2DP profilio kriauklės vaidmenį
sudo bluealsa -p a2dp -kriauklė &
Atidarykite „Bluetooth“sąsają ir įjunkite „Bluetooth“
įjunkite „Bluetooth“
Nustatykite susiejimo agentą
agentas pagal numatytąjį agentą
Padarykite savo RPi atpažįstamą
galima atrasti
- Dabar iš „Bluetooth“įrenginio ieškokite RPi ir prisijunkite prie jo.
- Patvirtinkite abiejų įrenginių susiejimą, glaistai įveskite „taip“.
- Įgalinkite A2DP paslaugą, dar kartą įveskite „taip“.
- Kai tai bus padaryta, galime pasitikėti savo prietaisu, todėl mums nereikia to daryti kiekvieną kartą, kai norime prisijungti
pasitikėjimas XX: XX: XX: XX: XX: XX (jūsų „Bluetooth“„Mac“adresas iš mūsų šaltinio įrenginio)
Jei norite, kad jūsų RPi ir toliau būtų aptinkamas, tai yra jūsų pasirinkimas, bet aš norėčiau jį vėl išjungti, kad žmonės negalėtų bandyti prisijungti prie jūsų dėžutės
galima atrasti
Tada galime išeiti iš „Bluetooth“sąsajos
išeiti
Ir pagaliau mūsų garso nukreipimas: mūsų šaltinio įrenginys peradresuoja į mūsų RPi
„bluealsa-aplay“00: 00: 00: 00: 00: 00
Dabar mūsų įrenginys yra prijungtas prie „Raspberry“naudojant „Bluetooth“ir jūs turėtumėte galėti jį išbandyti paleisdami bet kokią laikmeną, pvz., „Spotify“ir kt.
7 veiksmas: parašykite visą vidinę programą
Taigi dabar sąranka baigta, pagaliau galime pradėti rašyti savo vidinę programą!
Visai savo vidinei sistemai naudojau „Visual Studio Code“, jums tiesiog reikia įsitikinti, kad „Visual Studio“projektas yra prijungtas prie jūsų „Raspberry Pi“, tai reiškia, kad jūsų LAN kabelis turi būti prijungtas prie jūsų RPi ir prisijungti prie SSH. (informaciją apie tai, kaip sukurti nuotolinį ryšį, rasite čia:
Aš naudoju savo pamokas ir visos jos yra įtrauktos į mano „GitHub“.
Savo vidiniame faile naudoju skirtingas klases, todėl viską galima naudoti atskirai ir kad mano pagrindinis kodas nebūtų netvarka su visomis skirtingomis gijomis. Aš naudoju sriegimą, kad paleisčiau visas skirtingas klases vienu metu. Apačioje rasite visus maršrutus, kad galėtume lengvai gauti duomenis savo priekinėje sistemoje.
8 veiksmas: „Frontend“rašymas (HTML, CSS ir „JavaScript“)
Dabar, kai užpakalinė dalis yra baigta, galime pradėti rašyti visą priekinę dalį.
HTML ir CSS man buvo gana sunku, aš padariau viską, kad pirmiausia taptų mobili, nes galiu prisijungti prie „Bluetooth“, kad pakeisčiau dainas naudodami „Spotify“. Taigi būtų lengviau valdyti iš mobiliojo prietaisų skydelio
Prietaisų skydelį galite suprojektuoti bet kokiu būdu, aš tiesiog palieku savo kodą ir dizainą čia, galite daryti viską, kas jums patinka!
Ir „Javascript“man nebuvo lengviau, dirbo su keliais GET iš mano galinių maršrutų, daugybės įvykių klausytojų ir kai kurių „Socketio“struktūrų, kad gaučiau duomenis iš mano jutiklių.
9 žingsnis: sukurkite mano bylą ir viską sudėkite
Pirmiausia pradėjau piešti, kaip norėčiau, kad korpusas atrodytų, kažkas svarbaus buvo tai, kad jis turėjo būti pakankamai didelis, kad viskas tilptų, nes mes turėjome didelę grandinę, kurią turėjome įdėti į dėklą, tačiau turėjome išlikti kompaktiški, kad taip nebūtų “. neužima daug vietos
Aš padariau dėklą iš medžio, manau, kad su juo lengviausia dirbti, kai neturite tiek daug patirties dėklų statyboje ir taip pat turite daug dalykų, kuriuos galite su juo padaryti.
Pradėjau nuo senos lentos, kurią buvau uždėjęs, ir tik pradėjau pjauti medieną. Kai turėjau savo pagrindinį dėklą, tiesiog turėjau jame išgręžti skyles (daug korpuso priekyje, kaip matote nuotraukose ir įkiškite keletą vinių, tai tikrai paprastas atvejis, bet atrodo gana šauniai) ir puikiai tinka. Nusprendžiau ir nudažyti balta spalva, kad atrodytų gerai.
Ir kai byla buvo baigta, atėjo laikas viską sujungti, kaip matote paskutinėje nuotraukoje! Dėžutėje yra tam tikra netvarka, tačiau viskas veikia ir aš neturėjau daug daugiau vietos, todėl patariu jums galbūt sukurti didesnį dėklą, jei atkuriate mano projektą.
Rekomenduojamas:
„Arduino Nano“- TSL45315 aplinkos šviesos jutiklio pamoka: 4 žingsniai
„Arduino Nano“- TSL45315 aplinkos šviesos jutiklio pamoka: TSL45315 yra skaitmeninis aplinkos šviesos jutiklis. Tai apytikslis žmogaus akių atsakas esant įvairioms apšvietimo sąlygoms. Įrenginiai turi tris pasirenkamus integracijos laikus ir suteikia tiesioginę 16 bitų liukso išvestį per I2C magistralės sąsają. Prietaisas kartu
Ponas garsiakalbis - 3D spausdintas DSP nešiojamasis garsiakalbis: 9 žingsniai (su paveikslėliais)
Pone garsiakalbis - 3D spausdintas DSP nešiojamasis garsiakalbis: Mano vardas yra Simonas Ashtonas ir per daugelį metų pastatiau daug garsiakalbių, dažniausiai iš medžio. Praėjusiais metais aš gavau 3D spausdintuvą, todėl norėjau sukurti kažką, kas parodytų unikalią dizaino laisvę, kurią leidžia 3D spausdinimas. Pradėjau žaisti su
Kaip groti dainą „Yamaha EZ-220“: 5 žingsniai
Kaip groti dainą „Yamaha EZ-220“: šie veiksmai padės jums paleisti dainą naudojant dainų knygą
Kaip groti muziką per gitaros stiprintuvą: 4 žingsniai
Kaip groti muziką per gitaros stiprintuvą: tai yra instrukcija, kuri parodys, kaip groti muziką per gitaros stiprintuvą
Groti Mp3 įrašus 70 metų senumo įrašų grotuve-be nuolatinių pakeitimų: 3 žingsniai
Paleiskite Mp3 įrašus 70 metų senumo įrašų grotuve-jokių nuolatinių pakeitimų: ką aš iš esmės padariau, tai yra sukurti monofoninį ryšį tarp pasirinkto MP3 ar medijos šaltinio, kompiuterio, kasetinio eskizo, radijo ir tiesioginio laidinio laido. garsiakalbiui per aligatoriaus spaustukus. Kaip visada, mokymo/demonstracinis vaizdo įrašas: PLEASEif