İçindekiler:
- Adım 1: Sarf Malzemeleri
- Adım 2: Şematik ve Kablolama
- Adım 3: Veritabanı Tasarımı
- Adım 4: Raspberry Pi'yi Kurun
- Step 5: Setting Up the Database to the RPi
- Adım 6: Bluetooth'u RPi'mizde Yapılandırma
- 7. Adım: Komple Arka Uç Yazma
- Adım 8: Ön Uç Yazma (HTML, CSS ve JavaScript)
- 9. Adım: Vakamı Oluşturmak ve Hepsini Bir araya getirmek
Video: Mood Speaker - Ortam Sıcaklığına Göre Mood Müziğinin Çalınması için Güçlü Bir Hoparlör: 9 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Selam!
MCT Howest Kortrijk'teki okul projem için Mood Speaker yaptım. konuşmacı. Her şey Raspberry Pi (Veritabanı, Web Sunucusu, Arka Uç) üzerinde çalışır.
Dolayısıyla bu talimat, bu projeyi 3 hafta içinde nasıl gerçekleştirdiğimin adım adım bir sürecidir. Projemi yeniden oluşturmak istiyorsanız kılavuzu takip edebilirsiniz.
Bu talimat benim ilk yazdığımdır, bu yüzden herhangi bir soru varsa, elimden geldiğince çabuk cevaplamaya çalışacağım!
GitHub'ım:
Adım 1: Sarf Malzemeleri
Raspberry Pi 3B & 16GB SD Kart
Tüm projem, daha sonraki bir adımda açıklayacağım yapılandırılmış bir görüntü ile Raspberry Pi 3B'mde çalışıyor (Adım 4: Raspberry Pi Kurulumu)
LCD Ekran 16x2
Sıcaklığımı, parlaklığımı ve IP adresimi yazdırmak için basit bir LCD Ekran kullandım.
Veri sayfası:
DS18B20 Sıcaklık Sensörü
DS18B20, Maxim Integrated tarafından üretilen, sıcaklığı ölçen tek kablolu bir sensördür. 2 çeşit DS18B20 sensörü vardır, sadece bileşen (Ben bunu kullandım) ve çok daha büyük olan su geçirmez versiyon, ancak projem için ihtiyacım olan bu değildi, bu yüzden sadece bileşeni kullandım. Sensör, sıcaklığı -55°C ila +125°C (-67°F ila +257°F) aralığında ölçebilir ve -10°C ila +85°C arasında 0.5°C hassasiyete sahiptir. Ayrıca 9 bitten 12 bite kadar programlanabilir bir çözünürlüğe sahiptir.
Veri sayfası:
MCP3008
LDR ve PIR sensörümden gelen verileri okumak için, SPI arayüzlü 8 kanallı 10 bit analogdan dijitale dönüştürücü olan ve programlanması oldukça kolay olan bir MCP3008 kullandım.
Veri sayfası:
PIR hareket sensörü
Odama giren ve çıkan biri olduğunu algılamak için pasif kızılötesi sensör kullandım çünkü kullanımı kolay ve küçükler.
Veri sayfası:
LDR
İçinde bulunduğu odanın parlaklık seviyesini algılamak için bir fotodirenç veya LDR (Işık Azaltma Direnci veya ışığa bağlı direnç) kullandım. Ayrıca karanlık olduğunda Ledstrip'imi açmak için.
Hoparlör – 3” Çap – 4 Ohm 3 Watt
Bu, ihtiyaç duyacağı Voltaj ve Amper değerlerini hesapladıktan sonra seçtiğim hoparlör konisi ve Adafruit tarafından üretilen Raspberry Pi projem için mükemmel bir seçimdi.
Genel Bakış:
MAX98357 I2S D Sınıfı Mono Amplifikatör
Bu, hoparlörle birlikte gelen amplifikatördür, yalnızca bir amplifikatör değil, aynı zamanda bir I2S dijitalden analoğa dönüştürücüdür, bu nedenle hoparlörüm ve ses sistemim için de mükemmel bir seçimdir.
Genel Bakış:
Veri sayfası:
Arduino Uno'su
Arduino Uno, Arduino.cc tarafından üretilen Microchip ATmega328P mikrodenetleyicisine dayalı açık kaynaklı bir mikro denetleyici kartıdır. Uno kartında 14 Dijital pin, 6 analog pin bulunur ve Arduino IDE yazılımı ile tamamen programlanabilir
Genel Bakış:
seviye değiştirici
Bu, Arduino Uno ve Raspberry Pi arasındaki iletişimi ve farklı voltajlar olan Arduino: 5V ve Raspberry Pi: 3.3V ile ilgilenen küçük bir karttır. Bu gereklidir, çünkü led şerit Arduino'ya bağlanır ve orada çalışır, diğer tüm şeyler Raspberry Pi'de çalışır.
WS2812B - Led şerit
Bu, 60 RGB ledli bir led şerittir (isterseniz daha fazla RGB ledli daha uzun şeritler satın alabilirsiniz). Bu benim durumumda Arduino Uno'ya bağlı, ancak diğer birçok cihaza da bağlanabilir ve kullanımı gerçekten basittir.
Veri sayfası:
GPIO T-Part, 1 Breadboard ve çok sayıda jumperwire
Breadboard'lara ve atlama tellerine ihtiyacım olan her şeyi bağlamak için GPIO T-parçasını kullanmadım ama hangi kutunun nereye gittiğini açıkça bilmek için kullanabilirsiniz.
Adım 2: Şematik ve Kablolama
Şemamı yapmak için Fritzing kullandım, yükleyebileceğiniz ve farklı görünümlerde gerçekten kolay bir şema oluşturmanıza izin veren bir program. Breadboard ve şematik görünümü kullandım.
Fritzing'i indirin:
Her şeyin doğru şekilde bağlandığından emin olun. Kabloları nereye bağlayacağımı bilmeyi biraz daha net hale getirmek için renkleri kullandım. Benim durumumda teller için farklı renkler kullandım
Adım 3: Veritabanı Tasarımı
3 sensörden çok fazla veri topluyoruz (DS18B20'den Sıcaklık, LDR'den Parlaklık ve PIR sensöründen Durum). Bu yüzden tüm bu verileri bir veritabanında tutmak en iyisidir. Veritabanının nasıl yapılandırılacağını daha sonraki bir adımda anlatacağım (Adım 5: Veritabanımızı RPi'ye Yönlendirin!) Ama önce tasarımın veya ERD'nin (Varlık İlişki Şeması) yapılması gerekiyor. Benimki 3NF ile normalleştirildi, bu yüzden bileşenleri ve bileşenlerin geçmişini başka bir tabloya ayırdık. Dinlenen şarkıların kaydını tutmak için Müzik veritabanını kullanıyoruz.
Genel olarak bu, daha fazla çalışmak için gerçekten basit ve kolay bir veritabanı tasarımıdır.
Adım 4: Raspberry Pi'yi Kurun
Şimdi, yaptığımız projenin bazı temellerine sahibiz. Raspberry Pi'yi kurmaya başlayalım!
Bölüm 1: SD Kartı Yapılandırma
1) Gerekli Yazılım ve Dosyaları İndirin
Bu tam işlem için 2 yazılım ve 1 OS yani Raspbian indirmeniz gerekiyor. 1. yazılım: İlk yazılım Win32 Disk Imager'dır.
sourceforge.net/projects/win32diskiimager/
2. yazılım: İkinci yazılım SD Kart Formatlayıcıdır.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Bu, Pi'nin Ana işletim sistemidir.
www.raspberrypi.org/downloads/raspberry-pi-os/
Tüm dosyaları masaüstüne çıkarın.
2) SD Kartı ve Kart Okuyucuyu Alın
Kart okuyuculu minimum 8 GB sınıf 10 SD kart alın. Bu kartı kart okuyucuya takın ve bunu USB bağlantı noktasına takın.
3) SD Kartı Biçimlendirin
SD Kart Formatlayıcı'yı açın ve sürücüyü seçin.
Biçime tıklayın ve diğer seçenekleri değiştirmeyin.
Biçimlendirme tamamlandığında, Tamam'a tıklayın.
4) İşletim Sistemini SD Karta yazın
win32diskiimager'ı açın.
İndirilen dosyadan çıkarılan Raspbian OS'nin.img dosyasına göz atın.
Aç'a ve ardından Yaz'a tıklayın.
Herhangi bir uyarı açılırsa, Tamam'ı tıklatarak bunları yoksayın. Yazmanın tamamlanmasını bekleyin ve birkaç dakika sürebilir. Bu yüzden sabırlı ol.
n
5) Bu yapıldıktan sonra, resmi RPi'mize koymadan önce bazı son ayarlamalar yapmaya hazırız.
SD kartınızın dizinine gidin, 'cmdline.txt' adlı dosyayı arayın ve açın.
Şimdi aynı satıra 'ip=169.254.10.1' ekleyin.
Dosya 'yı kaydet.
Uzantısı veya içeriği olmayan 'ssh' adında bir dosya oluşturun.(en kolay yol, bir txt dosyası oluşturmak ve daha sonra.txt'yi kaldırmaktır)
Artık her şey SD karta yüklendiğine göre, onu bilgisayarınızdan GÜVENLE çıkarabilir ve gücü bağlamadan Raspberry Pi'ye koyabilirsiniz. SD kart RPI'ye takıldığında, bilgisayarınızdan bir LAN kablosunu RPi LAN bağlantı noktasına bağlayın, bu bağlandığında gücü RPi'ye bağlayabilirsiniz.
Bölüm 2: RPi'yi Yapılandırma
Macun
Şimdi Raspberry Pi'mizi yapılandırmak istiyoruz, bu Putty üzerinden yapılıyor.
Putty yazılımı:
İndirdikten sonra Putty'yi açın ve IP '169.254.10.1' ve Port '22' ve bağlantı tipini ekleyin: SSH.
Artık nihayet komut satırı arayüzümüzü açabilir ve başlangıç oturum açma bilgileri -> Kullanıcı: pi & Şifre: ahududu ile giriş yapabiliriz. (Mümkün olduğunca çabuk değiştirmenizi tavsiye ederiz. İşte nasıl yapılacağına dair bir rehber:
Raspi-yapılandırma
Farklı arayüzleri etkinleştirmemiz gerekecek ve bunu yapmak için önce aşağıdaki kodu yazmalıyız:
sudo raspi yapılandırması
Etkinleştirmemiz gereken şeyler arayüz bölümündedir. Aşağıdaki arayüzleri etkinleştirmemiz gerekiyor:
- Tek telli
- Seri
- I2C
- SPI
Raspi-config ile yapmamız gereken her şey buydu.
WIFI'nızı ekleme
İlk olarak, aşağıdaki komutun root olması için root olmanız gerekir.
sudo -i
Kök olduğunuzda, aşağıdaki komutu kullanın: (SSID'yi ağ adınızla ve şifrenizi ağ şifrenizle değiştirin)
wpa_passphrase "ssid" "parola" >> /etc/wpa_supplicant/wpa_supplicant.conf
Yanlış bir şey yaptıysanız, aşağıdaki komutu girerek bu ağı kontrol edebilir, güncelleyebilir veya silebilirsiniz:
nano /etc/wpa_supplicant/wpa_supplicant.conf
O halde ağımıza girdikten sonra WPA istemci arayüzüne girelim.
wpa_cli
Arayüzünüzü seçin
arayüz wlan0
Dosyayı yeniden yükle
yeniden yapılandırmak
Ve nihayet, iyi bir şekilde bağlı olup olmadığınızı görebilirsiniz:
ip bir
Bölüm 3: RPi + yükleme yazılımının güncellenmesi
Artık internete bağlı olduğumuza göre, kurulu paketleri güncellemek akıllıca bir hareket olacaktır, o yüzden diğer paketleri kurmadan önce bunu yapalım.
sudo apt-get güncellemesi
sudo apt-get yükseltme
RPi'yi güncelledikten sonra aşağıdaki yazılımı yüklememiz gerekecek:
MariaDB Veritabanı
sudo apt-get install mariadb-server
Apache2 Web sunucusu
sudo apt apache2'yi kurun
piton
güncelleme alternatifleri --install /usr/bin/python python /usr/bin/python3.7 1 güncelleme alternatifleri --install /usr/bin/python python /usr/bin/python3 2
Python paketi
Arka ucun kusursuz çalışması için tüm bu paketleri kurmanız gerekecek:
- şişe
- Şişe-Kors
- Flask-MySql
- Şişe-SoketIO
- PyMySQL İstekleri
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Hoparlör kitaplığı
Hoparlörü amplifikatör ile kullanmak için bunun için bir kütüphane kurmamız gerekecek.
kıvrılma -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
Artık ihtiyacımız olan her şeyi yüklediğimize göre, Raspberry Pi'mizin üzerine tasarladığımız Veritabanımızı koyalım!
Veritabanını kurmak için MySql ve RPi'yi bağlamamız gerekecek. Bunun için MySQLWorkbench'i açıp yeni bir bağlantı yapacağız. Resme bakarken, bilgileri sizinkiyle değiştirmek için değiştirmeniz gerekecektir.
Henüz hiçbir şeyi değiştirmediyseniz, MySQL mysql ve mysql için SSH pi ve ahududu için kullanabilirsiniz.
Bir şey net olmadığında, bu öğreticiyi de takip edebilirsiniz:
Veritabanınızı dışa aktarmak için PHPmyAdmin'i kullanmak daha kolay olmalı çünkü MySql ile bunu yaparken birçok hata alabilirsiniz.
Adım 6: Bluetooth'u RPi'mizde Yapılandırma
Kendi müziğimizle de kullanabileceğimiz bir Mood hoparlörü oluşturuyoruz, böylece RPi olduğunda bu daha kolay.
bluetooth'a bağlı olarak burada bulabileceğiniz bir öğreticiyi takip ettim:
scribles.net/streaming-bluetooth-audio-fr…
Yeniden yaratmak isteyenler için her şeyi buraya da yazdım.
Halihazırda çalışan bluealsa'yı kaldırmak
sudo rm /var/run/bluealsa/*
A2DP profili ekleyin Havuz rolü
sudo bluealsa -p a2dp-sink &
Bluetooth arayüzünü açın ve bluetooth'unuzu açın
bluetoothctl güç açık
Bir eşleştirme aracısı kurun
varsayılan aracı üzerinde aracı
RPI'nizi keşfedilebilir yapın
keşfedilebilir
- Şimdi bluetooth cihazınızdan RPI'yi arayın ve ona bağlanın.
- Her iki cihazda da eşleştirmeyi onaylayın, macununuza 'evet' yazın.
- A2DP servisini yetkilendirin, tekrar 'evet' yazın.
- Bu yapıldıktan sonra, cihazımıza güvenebiliriz, bu yüzden her bağlanmak istediğimizde tüm bunlardan geçmek zorunda değiliz.
güven XX:XX:XX:XX:XX:XX (Kaynak cihazımızdan bluetooth mac adresiniz)
RPI'nızın keşfedilebilir olmaya devam etmesini istiyorsanız, bu sizin seçiminizdir, ancak insanların kutunuzla bağlantı kurmaya çalışmaması için tekrar kapatmayı tercih ederim
keşfedilebilir kapalı
Ardından bluetooth arayüzümüzden çıkabiliriz
çıkış
Ve son olarak ses yönlendirmemiz: RPi'mize yönlendirme yapan kaynak cihazımız
bluealsa-aplay 00:00:00:00:00:00
Artık cihazımız Ahududu'muza bluetooth ile bağlı ve Spotify vb. herhangi bir medyayı oynatarak test edebilmelisiniz.
7. Adım: Komple Arka Uç Yazma
Şimdi kurulum tamamlandı, nihayet arka uç programımızı yazmaya başlayabiliriz!
Tüm arka ucum için Visual Studio Code kullandım, Visual Studio projenizin Raspberry Pi'nize bağlı olduğundan emin olmanız yeterlidir, bu, LAN kablonuzun RPi'nize bağlı olması ve bir SSH bağlantısı kurması gerektiği anlamına gelir. (Uzak bağlantının nasıl oluşturulacağı hakkında bilgi burada bulunabilir:
Kendi sınıflarımı kullandım ve bunların hepsi GitHub'a dahil edildi.
Arka uç dosyamda farklı sınıflar kullandım, böylece her şey ayrı ayrı kullanılabilir ve böylece ana kodum tüm farklı iş parçacıklarını karıştırmaz. Tüm farklı sınıfları aynı anda çalıştırmak için iş parçacığı kullandım. Ve en altta tüm rotaları aldınız, böylece ön ucumuzda kolayca veri alabiliriz.
Adım 8: Ön Uç Yazma (HTML, CSS ve JavaScript)
Artık arka uç bittiğine göre, tam ön ucu yazmaya başlayabiliriz.
HTML ve CSS benim için oldukça zordu, ilk önce mobil hale getirmek için elimden geleni yaptım çünkü Spotify ile şarkı değiştirmek için bluetooth ile bağlanabiliyorum. Böylece bir mobil kontrol panelinden kontrol etmek daha kolay olurdu
Kontrol panelinizi istediğiniz şekilde tasarlayabilirsiniz, ben sadece kodumu ve tasarımımı buraya bırakacağım, istediğinizi yapabilirsiniz!
Javascript benim için daha kolay değildi, arka uç yollarımdan birkaç GET, tonlarca olay dinleyicisi ve sensörlerimden verileri almak için bazı socketio yapıları ile çalıştı.
9. Adım: Vakamı Oluşturmak ve Hepsini Bir araya getirmek
Önce kasanın nasıl görünmesini istediğimi çizmeye başladım, önemli olan şey her şeyin sığabileceği kadar büyük olmasıydı, çünkü kasaya koyacak büyük bir devremiz var ama olmaması için kompakt kalmamız gerekiyordu. çok yer kaplamaz
Kasayı tahtadan yaptım, kasa inşa etme konusunda bu kadar deneyiminiz olmadığında ve bununla yapabileceğiniz birçok şeyiniz olduğunda çalışmanın en kolay olduğunu düşünüyorum.
Etrafa serdiğim eski bir tahtadan başladım ve ahşabı kesmeye başladım. Temel davamı aldıktan sonra, sadece delikler açmak zorunda kaldım (kasanın ön tarafında çok fazla, resimlerde görebileceğiniz gibi ve içine biraz çivi koydum, bu gerçekten basit bir dava, ama oldukça havalı görünüyor ve mükemmel uyuyor. Ayrıca iyi görünmesi için beyaza boyamaya karar verdim.
Ve dava bittiğinde, son resimde de görebileceğiniz gibi, hepsini bir araya getirme zamanı geldi! Kutunun içi biraz karışık, ama her şey çalışıyor ve o kadar fazla alanım yoktu, bu yüzden projemi yeniden yaratıyorsanız daha büyük bir dava oluşturmanızı tavsiye ederim.
Önerilen:
Bir Arduino'yu Kitaplık Olmadan Kayan Bir Metin Görüntülemek İçin Başka Bir Arduino Kullanarak Programlamak: 5 Adım
Bir Arduino'yu Kitaplık Olmadan Kayan Bir Metni Görüntülemek için Başka Bir Arduino Kullanarak Programlama: Sony Spresense veya Arduino Uno o kadar pahalı değil ve çok fazla güç gerektirmez. Ancak projenizin güç, alan ve hatta bütçe kısıtlaması varsa Arduino Pro Mini kullanmayı düşünebilirsiniz. Arduino Pro Micro'nun aksine, Arduino Pro Mi
Raspberry Pi için CPU Sıcaklığına Göre PWM Ayarlı Fan: 4 Adım (Resimli)
Raspberry Pi için CPU Sıcaklığına Dayalı PWM Ayarlı Fan: Raspberry Pi için birçok kasa, CPU'yu soğutmaya yardımcı olmak için küçük bir 5V fan ile birlikte gelir. Ancak, bu fanlar genellikle oldukça gürültülüdür ve çoğu kişi gürültüyü azaltmak için 3V3 pinine takar. Bu fanlar genellikle 200mA için derecelendirilmiştir ki bu oldukça h
Herhangi Bir HOPARLÖR BLUETOOTH HOPARLÖR'e Nasıl Dönüştürülür: 5 Adım
Herhangi Bir HOPARLÖR BLUETOOTH HOPARLÖRE Nasıl Dönüştürülür: Benim gibi eski bir ev sinema sisteminiz varsa, sisteminizde Bluetooth adı verilen çok popüler bir bağlantı seçeneğinin eksik olduğunu gördünüz. Bu tesis olmadan, normal AUX bağlantısının kablo karmaşasıyla yüzleşmek zorunda kalırsınız ve tabii ki
Ölü Bir Blender/Matkap Motorundan Güçlü Bir 48V DC Motor Yapın: 3 Adım
Ölü Bir Blender/Matkap Motorundan Güçlü Bir 48V DC Motor Yapın: Merhaba!Bu talimatta, ölü bir Blender/matkap makinesi motorunun (Evrensel motor) 10.000 RPM'ye kadar çok güçlü bir kalıcı mıknatıslı DC motora nasıl dönüştürüleceğini öğreneceksiniz ve iyi bir tork değeri. Not: Bu yöntem yalnızca aşağıdaki durumlarda geçerlidir:
Bilgisayarınızı Bir Programa Göre Kapatın, Yeniden Başlatın veya Hazırda Beklet: 6 Adım
Bilgisayarınızı Bir Programa Göre Kapatın, Yeniden Başlatın veya Hazırda Beklet: Bu talimatta, bilgisayarınızı bir programa göre nasıl kapatacağınızı, yeniden başlatacağınızı veya hazırda bekleteceğinizi göstereceğim.Daha eski bir işletim sistemi kullanıyorsanız sondaki bildirime bakın. Windows XP'den daha