Mündəricat:
- Addım 1: Təchizat
- Addım 2: Şematik və Kablolama
- Addım 3: Verilənlər Bazası Dizaynı
- Addım 4: Raspberry Pi qurun
- Step 5: Setting Up the Database to the RPi
- Addım 6: RPi -də Bluetooth -u konfiqurasiya edin
- Addım 7: Tam arxa plan yazmaq
- Addım 8: Frontend yazmaq (HTML, CSS və JavaScript)
- Addım 9: Davamı qurun və hamısını bir araya gətirin
Video: Mood Dinamik- Ətraf Mühitin İstiliyinə Bağlı Çalınacaq Mood Musiqisi üçün Güclü Dinamik: 9 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Salam!
MCT Howest Kortrijk məktəb proyektim üçün bir Mood Dinamik hazırladım, bu fərqli sensorlar, bir LCD və WS2812b led şeridi olan ağıllı bir Bluetooth dinamik cihazıdır. Dinamik temperaturdan asılı olaraq fon musiqisini çalır, ancaq adi bluetooth olaraq da istifadə edilə bilər. natiq Hər şey Raspberry Pi üzərində işləyir (Database, Webserver, Backend).
Bu təlimat, bu layihəni 3 həftədə necə həyata keçirdiyimi izah edən addım -addım bir prosesdir. Beləliklə, əgər uşaqlar mənim layihəmi yenidən yaratmaq istəyirsinizsə, bələdçini izləyə bilərsiniz
Bu təlimat mənim yazdığım ilk kitabdır, buna görə hər hansı bir problem varsa, bacardığım qədər tez cavab verməyə çalışacağam!
GitHub'ım:
Addım 1: Təchizat
Raspberry Pi 3B və 16GB SD Kart
Bütün layihəm Raspberry Pi 3B üzərində qurulmuş bir şəkil üzərində işləyir və bunu daha sonra izah edəcəyəm (Addım 4: Raspberry Pi qurmaq)
LCD ekran 16x2
İstilik, parlaqlıq və IP ünvanımı çap etmək üçün əsas bir LCD Ekrandan istifadə etdim.
Məlumat cədvəli:
DS18B20 Temperatur Sensoru
DS18B20, Maxim Integrated tərəfindən istehsal olunan temperaturu ölçən bir telli sensordur. 2 növ DS18B20 sensoru var, yalnız komponenti (istifadə etdiyim) və suya davamlı versiyası, daha böyükdür, amma bu, layihəm üçün ehtiyacım olmadığı üçün yalnız komponentdən istifadə etdim. Sensor temperaturu -55 ° C ilə +125 ° C (-67 ° F - +257 ° F) aralığında ölçə bilir və -10 ° C ilə +85 ° C arasında 0,5 ° C dəqiqliyə malikdir. 9 bitdən 12 bitə qədər proqramlaşdırıla bilən bir qətnaməyə malikdir.
Məlumat cədvəli:
MCP3008
LDR və PIR sensorumdan məlumatları oxumaq üçün SPI interfeysi olan rəqəmsal çeviriciyə 8 kanallı 10 bitlik bir MCP3008 istifadə etdim və proqramlaşdırmaq olduqca asandır.
Məlumat cədvəli:
PIR hərəkət sensoru
Otağıma kimin girib çıxdığını müəyyən etmək üçün istifadə etmək asan və kiçik olduğu üçün passiv infraqırmızı sensor istifadə etdim.
Məlumat cədvəli:
LDR
İçərisində olan otağın parlaqlıq səviyyəsini müəyyən etmək üçün fotorezistor və ya LDR (İşıq Azaldıcı Müqavimət və ya işığa bağlı rezistor) istifadə etdim.
Dinamik - 3ӂap - 4 Ohm 3 Vatt
Lazım olan Gərginlik və Amperləri hesabladıqdan sonra seçdiyim dinamik konusudur və bu, Adafruit tərəfindən istehsal olunan Raspberry Pi layihəmə mükəmməl uyğun gəlir.
Baxış:
MAX98357 I2S Class-D Mono Gücləndirici
Bu dinamiklə birlikdə gələn gücləndiricidir, təkcə gücləndirici deyil, həm də I2S -dən analoqa çeviricidir, buna görə dinamik və səs sistemimə mükəmməl uyğun gəlir.
Baxış:
Məlumat cədvəli:
Arduino Uno
Arduino Uno, Arduino.cc tərəfindən istehsal olunan Microchip ATmega328P mikro nəzarətçisinə əsaslanan açıq mənbəli mikrokontroller lövhəsidir. Uno lövhəsində 14 rəqəmsal pin, 6 analog pin var və Arduino IDE proqramı ilə tam proqramlaşdırıla bilər.
Baxış:
Səviyyə dəyişdirici
Bu, Arduino Uno ilə Raspberry Pi arasındakı əlaqəni və fərqli gərginliklər olan Arduino: 5V və Raspberry Pi: 3.3V -ə diqqət yetirən kiçik bir lövhədir. Lazımdır ki, led zolağı Arduino -ya bağlıdır və orada işləyir, digər şeylər isə Raspberry Pi üzərində işləyir.
WS2812B - Ledstrip
Bu 60 RGB ledli bir lentdir (istəsəniz daha çox RGB ledli daha uzun zolaqlar ala bilərsiniz). Mənim vəziyyətimdə Arduino Uno ilə əlaqəlidir, eyni zamanda bir çox digər cihaza da qoşula bilər və istifadəsi çox sadədir.
Məlumat cədvəli:
GPIO T-Part, 1 Breadboard və çoxlu keçid telləri
Çörək taxtasına və keçid tellərinə ehtiyacım olan hər şeyi birləşdirmək üçün GPIO T hissəsini istifadə etmədim, ancaq hansı zibil qutusunun hara getdiyini dəqiq bilmək üçün istifadə edə bilərsiniz.
Addım 2: Şematik və Kablolama
Fritzing -dən istifadə etdiyim sxemimi hazırlamaq üçün yükləyə biləcəyiniz bir proqramdır ki, bu da müxtəlif görünüşlərdə həqiqətən asan bir sxem yaratmağa imkan verir.
Fritzing'i yükləyin:
Hər şeyin düzgün bir şəkildə bağlandığından əmin olun. Telləri harada bağlayacağımı bir az daha aydın etmək üçün rənglərdən istifadə etdim. Mənim vəziyyətimdə tellər üçün fərqli rənglərdən istifadə etdim
Addım 3: Verilənlər Bazası Dizaynı
3 sensordan çoxlu məlumat toplayırıq (DS18B20-dən İstilik, LDR-dən Parlaqlıq və PIR-sensordan Status). Bütün bu məlumatları bir verilənlər bazasında saxlamaq ən yaxşısıdır. Verilənlər bazasını necə konfiqurasiya edəcəyinizi bir sonrakı addımda izah edəcəyəm (Addım 5: Veritabanımızı RPi -yə İrəli Mühəndisləşdirin!) Amma əvvəlcə dizayn və ya ERD (Varlıq Əlaqələri Şeması) hazırlanmalıdır. Mina 3NF ilə normallaşdırıldı, buna görə komponentləri və komponentlərin tarixini başqa bir cədvələ ayırdıq. Dinlənilən mahnıları izləmək üçün Musiqi verilənlər bazasından istifadə edirik.
Ümumiyyətlə, bu, gələcəkdə işləmək üçün həqiqətən əsas və asan bir verilənlər bazası dizaynıdır.
Addım 4: Raspberry Pi qurun
İndi layihənin bəzi əsaslarını hazırladıq. Raspberry Pi qurmağa başlayaq!
1 -ci hissə: SD kartı konfiqurasiya edin
1) Lazımi Proqram və Faylları Yükləyin
Bu tam proses üçün 2 proqram və 1 OS yəni Raspbian yükləməlisiniz.1 -ci proqram: İlk proqram Win32 Disk Imager -dir.
sourceforge.net/projects/win32diskimager/
2 -ci proqram: İkinci proqram SD Kart Formatlayıcıdır.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Bu Pi -nin əsas əməliyyat sistemidir.
www.raspberrypi.org/downloads/raspberry-pi-os/
Bütün faylları masaüstünə çıxarın.
2) SD Kartı və Kart Oxuyucusunu alın
Kart oxuyucusu olan minimum 8GB sinif 10 SD kartı alın. Bu kartı kart oxuyucusuna daxil edin və USB portuna qoşun.
3) SD kartı formatlaşdırın
SD Kart Formatterini açın və sürücünü seçin.
Formatı vurun və digər variantları dəyişdirməyin.
Formatlama tamamlandıqda OK düyməsini basın.
4) Əməliyyat sistemini SD Karta yazın
Win32diskimager açın.
Yüklənmiş fayldan çıxarılan Raspbian OS.img faylına baxın.
Aç düyməsini və sonra Yazı düyməsini basın.
Hər hansı bir xəbərdarlıq görünsə, OK düyməsini basaraq onları göz ardı edin. Yazının tamamlanmasını gözləyin və bir neçə dəqiqə çəkə bilər. Buna görə səbirli olun.
n
5) Bunu etdikdən sonra, görüntüyü RPi -yə qoymadan əvvəl bəzi son düzəlişlər etməyə hazırıq.
SD kartınızın qovluğuna gedin, 'cmdline.txt' adlı faylı axtarın və açın.
İndi eyni xəttə 'ip = 169.254.10.1' əlavə edin.
Faylı qeyd edin.
Uzatma və məzmun olmadan 'ssh' adlı bir fayl yaradın. (Ən asan yol txt faylı yaratmaq və sonra.txt faylını silməkdir)
İndi hər şey SD karta quraşdırıldıqdan sonra onu kompüterinizdən GÜVENLİKLƏ çıxara və gücü bağlamadan Raspberry Pi -yə qoya bilərsiniz. SD kart RPI -ə daxil olduqdan sonra, kompüterinizdən bir LAN kabelini RPi LAN portuna bağlayın, bu bağlandıqdan sonra gücü RPi -yə qoşa bilərsiniz.
2 -ci hissə: RPi -nin konfiqurasiyası
Macun
İndi Raspberry Pi -ni konfiqurasiya etmək istəyirik, bu Putty vasitəsilə edilir.
Putty proqramı:
Yüklədikdən sonra Putty proqramını açın və '169.254.10.1' IP və '22' Portunu və əlaqə növünü daxil edin: SSH.
İndi nəhayət əmr satırı interfeysimizi aça bilərik və başlanğıc giriş məlumatları -> İstifadəçi: pi və Şifrə: moruq. (Mümkün qədər tez dəyişdirməyi tövsiyə edir. İşdə bir bələdçi:
Raspi-konfiqurasiya
Fərqli interfeysləri işə salmalı və bunu etmək üçün əvvəlcə aşağıdakı kodu yazmalıyıq:
sudo raspi-config
Aktiv etməyimiz lazım olan şeylər interfeys bölməsindədir. Aşağıdakı interfeysləri işə salmalıyıq:
- Bir telli
- Serial
- I2C
- SPI
Bu, raspi-config ilə etməyimiz lazım olan hər şey idi
WIFI əlavə olunur
Əvvəlcə aşağıdakı əmrin kök olması üçün kök olmalısınız
sudo -i
Kökləndikdən sonra aşağıdakı əmri istifadə edin: (SSID -ni şəbəkə adınızla və şifrənizi şəbəkə parolunuzla əvəz edin)
wpa_passphrase "ssid" "parol" >> /etc/wpa_supplicant/wpa_supplicant.conf
Səhv bir şey etmisinizsə, aşağıdakı əmri daxil edərək bu şəbəkəni yoxlaya, yeniləyə və ya silə bilərsiniz:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Beləliklə, şəbəkəmizə daxil olduqdan sonra WPA müştəri interfeysinə daxil olaq
wpa_cli
İnterfeysinizi seçin
wlan0 interfeysi
Faylı yenidən yükləyin
yenidən qurmaq
Və nəhayət, yaxşı əlaqə qurduğunuzu görə bilərsiniz:
ip a
3 -cü hissə: RPi + quraşdırma proqramının yenilənməsi
İndi İnternetə qoşulduğumuz üçün, artıq quraşdırılmış paketləri yeniləmək ağıllı bir hərəkət olardı, buna görə digər paketləri quraşdırmadan əvvəl bunu edək.
sudo apt-get yeniləməsi
sudo apt-get yeniləmə
RPi -ni yenilədikdən sonra aşağıdakı proqramı quraşdırmalıyıq:
MariaDB verilənlər bazası
sudo apt-get mariadb-server quraşdırın
Apache2 veb server
sudo apt install apache2
Python
update-alternatives-install/usr/bin/python python /usr/bin/python3.7 1 yeniləmə alternativləri-install/usr/bin/python python/usr/bin/python3 2
Python paketi
Arxa planın mükəmməl işləməsi üçün bütün bu paketləri quraşdırmalısınız:
- Şüşə
- Flask-Cors
- Flask-MySql
- Şüşə-SocketIO
- PyMySQL İstəkləri
- Python yuvası
- RPi. GPIO
- Gevent
- Gevent-veb yuvası
Dinamik kitabxanası
Dinamikdən gücləndirici ilə istifadə etmək üçün bunun üçün kitabxana qurmalıyıq
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
Lazım olan hər şeyi qurduqdan sonra, hazırladığımız Veritabanını Raspberry Pi -yə yerləşdirək!
Verilənlər bazasını qurmaq üçün MySql və RPi -ni birləşdirməliyik. Bunun üçün MySQLWorkbench açacağıq və yeni bir əlaqə quracağıq. Şəkilə baxarkən məlumatı özünüzə çevirmək üçün dəyişdirməlisiniz.
Hələ bir şey dəyişdirməmisinizsə, SSH pi və moruq üçün, MySQL mysql və mysql üçün istifadə edə bilərsiniz.
Bir şey aydın deyilsə, bu təlimatı da izləyə bilərsiniz:
Verilənlər bazanızı ixrac etmək üçün PHPmyAdmin istifadə etmək daha asan olmalıdır, çünki MySql ilə bir çox səhv edə bilərsiniz.
Addım 6: RPi -də Bluetooth -u konfiqurasiya edin
Biz də öz musiqimizlə istifadə edə biləcəyimiz bir Mood dinamikini yaradırıq, buna görə də RPi olduqda bu daha asandır
bluetooth -a bağlı olaraq burada tapa biləcəyiniz bir təlimatı izlədim:
scribles.net/streaming-bluetooth-audio-fr…
Yenidən yaratmaq istəyənlər üçün hər şeyi burada yazdım
Artıq işləyən bluealsa çıxarılır
sudo rm/var/run/bluealsa/*
A2DP profili Sink rolunu əlavə edin
sudo bluealsa -p a2dp -sink &
Bluetooth interfeysini açın və bluetooth -u yandırın
bluetoothctl açılır
Bir eşleme agenti qurun
default-agent üzrə agent
RPi -nizi aşkar olun
aşkar edilə bilər
- İndi Bluetooth cihazınızdan RPi axtarın və onunla əlaqə qurun.
- Hər iki cihazda cütləşməni təsdiqləyin, macununuza 'yes' yazın.
- A2DP xidmətinə icazə verin, yenidən 'yes' yazın.
- Bunu etdikdən sonra cihazımıza etibar edə bilərik, buna görə də hər dəfə qoşulmaq istədiyimiz zaman bütün bunları keçmək məcburiyyətində deyilik
güvən XX: XX: XX: XX: XX: XX (Mənbə cihazımızdan bluetooth mac ünvanınız)
RPi -nin kəşf olunmağa davam etməsini istəyirsinizsə, bu sizin öz seçiminizdir, amma insanların qutunuzla əlaqə qurmağa çalışmaması üçün yenidən söndürməyi üstün tuturam
aşkar edilə bilər
Sonra bluetooth interfeysimizdən çıxa bilərik
çıxmaq
Və nəhayət, audio marşrutlaşdırma: mənbəy cihazımız RPi -yə yönləndirilir
bluealsa-aplay 00: 00: 00: 00: 00: 00
İndi cihazımız bluetooth ilə Raspberry -ə bağlıdır və Spotify, və s.
Addım 7: Tam arxa plan yazmaq
Beləliklə, indi quraşdırma tamamlandı, nəhayət arxa plan proqramımızı yazmağa başlaya bilərik!
Visual Studio Kodunu bütün arxa planım üçün istifadə etdim, sadəcə Visual Studio layihənizin Raspberry Pi ilə əlaqəli olduğundan əmin olmalısınız, bu, LAN kabelinizin RPi -yə qoşulması və SSH bağlantısı qurması deməkdir. (uzaqdan əlaqənin necə qurulacağına dair məlumatı burada tapa bilərsiniz:
Öz dərslərimi istifadə etdim və bunların hamısı GitHub -a daxil edildi.
Arxa sənədimdə fərqli siniflərdən istifadə etdim, buna görə hər şey ayrı -ayrılıqda istifadə oluna bilər və mənim əsas kodum bütün fərqli mövzularla qarışıqlıq yaratmasın. Bütün fərqli sinifləri bir anda işlətmək üçün iş parçacığı istifadə etdim. Və alt hissədə bütün marşrutlar var, beləliklə cəbhəmizdəki məlumatları asanlıqla əldə edə bilərik.
Addım 8: Frontend yazmaq (HTML, CSS və JavaScript)
İndi arxa plan bitdikdən sonra tam ön hissəni yazmağa başlaya bilərik.
HTML və CSS mənim üçün olduqca çətin idi, əvvəlcə mobil etmək üçün əlimdən gələni etdim, çünki mahnıları Spotify ilə dəyişdirmək üçün bluetooth ilə qoşula bilərəm. Buna görə mobil idarəetmə panelindən idarə etmək daha asan olardı
Tablosunuzu istədiyiniz tərzdə dizayn edə bilərsiniz, sadəcə kodumu və dizaynımı burada qoyacağam, istədiyinizi edə bilərsiniz!
Və Javascript mənim üçün daha asan deyildi, sensorlarımdan məlumat almaq üçün arxa marşrutlarımdan, bir çox hadisə dinləyicisindən və bəzi socketio strukturlarından bir neçə GET ilə işlədim.
Addım 9: Davamı qurun və hamısını bir araya gətirin
Əvvəlcə davanın necə görünməsini istədiyimi eskiz etməyə başladım, vacib bir şey, hər şeyin uyğunlaşması üçün kifayət qədər böyük olması idi, çünki qutuya qoymaq üçün böyük bir dövrəmiz var, amma yığılmaması üçün yığcam qalmalıyıq ' çox yer tutmayın
Çantanı taxtadan düzəltdim, düşünürəm ki, tikinti işlərində o qədər də təcrübəniz yoxdur və bununla da edə biləcəyiniz çox şeyiniz varsa, işləmək ən asandır.
Ətrafımda qoyduğum köhnə taxtadan başladım və odunu kəsməyə başladım. Əsas işimi götürdükdən sonra sadəcə deşiklər açmalı oldum (işin ön tərəfində çox şey var, şəkillərdə də gördüyünüz kimi içərisinə dırnaqlar da qoydunuz, bu həqiqətən də sadə bir haldır, amma olduqca sərin görünür və mükəmməl uyğun gəlir. Mən də gözəl görünməsi üçün ağ rəngə boyamağa qərar verdim.
Dava tamamlandıqdan sonra, son şəkildən də gördüyünüz kimi, hər şeyi bir yerə yığmağın vaxtı gəldi! Qutunun içərisində bir növ qarışıqlıq var, amma hər şey işləyir və daha çox yerim yox idi, buna görə də layihəmi yenidən yaratdığınız təqdirdə daha böyük bir hal yaratmağınızı məsləhət görürəm.
Tövsiyə:
Raspberry Pi üçün CPU İstiliyinə əsaslanan PWM Tənzimlənən Fan: 4 Addım (Şəkillərlə)
Raspberry Pi üçün CPU İstiliyinə əsaslanan PWM Tənzimlənən Fan: Raspberry Pi üçün bir çox hal, CPU -nun soyudulmasına kömək etmək üçün kiçik bir 5V fan ilə gəlir. Ancaq bu fanatlar ümumiyyətlə olduqca səs -küylüdür və bir çox insanlar səs -küyü azaltmaq üçün 3V3 pininə bağlayırlar. Bu fanatlar ümumiyyətlə 200 mA üçün qiymətləndirilir ki, bu da olduqca h
Micro üçün Bağlı Saksı: bit: 4 addım
Micro üçün Bağlı Saksı: bit: Bu çiçək qabı 3D çapdan hazırlanmışdır və içərisində mikrobit kartı vardır. Bu, torpağın nəm sensöründən (keçiricilik) məlumat alır. Torpağın nəminin və
IOT əsaslı otaq istiliyinə nəzarət: 5 addım
IOT Əsaslı Otaq İstiliyinə Nəzarət: Bu, IOT əsaslı otaq istiliyinə nəzarət layihəsində göstərişlidir. Xüsusiyyətlər: -1. Fanı avtomatik olaraq göstərilən otaq istiliyindən yuxarı açın. Fanı avtomatik olaraq göstərilən otaq istiliyinin altında söndürün. İstənilən vaxt əl ilə idarəetmə
UHF Bantında HDTV Kanallarının Qəbulu üçün Mis və Ağacdan Hazırlanan BIQUAD Bağlı Anten (KANALLAR 14-51): 7 addım
UHF Bantında HDTV Kanallarının Alınması üçün Mis və Ağacdan Hazırlanan BIQUAD Bağlı Anten (KANALLAR 14-51): Bazarda televiziya üçün müxtəlif antenalar mövcuddur. Kriteriyalara görə ən populyar olanlar: UDA-YAGIS, Dipole, Reflektorlu Dipol, Patch və Logaritmik antenalar. Şərtlərdən asılı olaraq, ötürücüyə olan məsafə
Uşaqlar üçün Bağlı Yataq Saatı: 12 addım
Uşaqlar üçün Bağlı Yataq Saatı: Bu təlimatlara əməl edərək, hərəkəti aktivləşdirən və tarixi, vaxtı və günün müvafiq hadisəsini göstərən bir saat qura biləcəksiniz. Gecə rejimini yuxu vaxtı gəldikdə və uşaqlar oyandıqda nə olduğunu tez xatırlaya biləcəklər