İçindekiler:
- Adım 1: Sarf Malzemeleri
- Adım 2: Şematik ve Kablolama
- Adım 3: Veritabanı Tasarımı
- Adım 4: Raspberry Pi'nin Hazırlanması
- Adım 5: Veritabanımızı RPI'ye Yönlendirin
- 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
- Adım 10: Slimbox Hoparlörü Oluşturma Yolumda Yaşadığım Bazı Sorunlar…
Video: Slimbox - Akıllı Bluetooth Hoparlör!: 10 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Selam!
MCT Howest Kortrijk'teki okul projem için farklı sensörler, LCD ve RGB NeoPixel halkası dahil akıllı bir Bluetooth hoparlör cihazı yaptım. Her şey Raspberry Pi (Veritabanı, Web Sunucusu, Arka Uç) üzerinde çalışır.
Bu derste size bu projeyi 3 hafta içinde adım adım nasıl yaptığımı göstereceğim, böylece herhangi biriniz projemi yeniden yaratmak isterse, kolayca yapabilirsiniz!
Bu aynı zamanda ilk dersim, herhangi bir sorunuz varsa, mümkün olduğunca çabuk cevaplamaya çalışacağım!
GitHub'ım:
Adım 1: Sarf Malzemeleri
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ı:
Potansiyometre sensörü
Potansiyometre, sensörün sadece üst kısmı döndürülerek manuel olarak ayarlanabilen üç terminalli bir dirençtir. Üst parçanın konumu potansiyometrenin çıkış voltajını belirler.
LSM303 İvmeölçer + Pusula Koparma
LSM303 devre kartı, Adafruit tarafından üretilen, üç eksenli bir ivmeölçer ve bir manyetometre / pusula kombinasyonudur. Raspberry Pi'nin I2C arayüzü ile birlikte kullanılır.
Genel Bakış:
Veri sayfası:
MCP3008
Potansiyometremdeki verileri okumak için, SPI arabirimli 8 kanallı 10 bit analogdan dijitale dönüştürücü olan ve programlanması oldukça kolay olan bir MCP3008 kullandım.
Veri sayfası:
Hoparlör – 3” Çap – 8 Ohm 1 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ü NeoPixel halkası Arduino'ya bağlıdır ve orada çalışır, diğer tüm şeyler Raspberry Pi'de çalışır.
RGB NeoPiksel Yüzük
Bu, 12 RGB led ile doldurulmuş küçük bir halkadır (isterseniz daha fazla RGB ledli daha büyük halkalar 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.
Genel Bakış:
LCD Ekran 16x2
Sıcaklığımı, hacmimi ve IP adresimi yazdırmak için basit bir LCD Ekran kullandım.
Veri sayfası:
Raspberry Pi 3B+ ve 16GB SD Kart
Tüm projem, daha sonra talimatlarımda yapılandırmanıza yardımcı olacağım yapılandırılmış bir görüntü ile Raspberry Pi 3B+ cihazımda çalışıyor.
GPIO T-Part, 2 Breadboard ve çok sayıda jumperwire
Breadboard'lara ve jumperwire'lara ihtiyacım olan her şeyi bağlamak için GPIO T-parçasını kullandım, böylece daha fazla alana sahip oldum ve hangi pinin hangisi olduğu açık.
Adım 2: Şematik ve Kablolama
Şematiğim için Fritzing kullandım, bu, farklı görünümlerde gerçekten kolay bir şema oluşturmanıza izin veren kurabileceğiniz bir program.
Fritzing'i indirin:
Bu yüzden her şeyi doğru şekilde bağladığınızdan emin olun! Benim durumumda tellerin renkleri şematiktekiyle aynı değil.
Adım 3: Veritabanı Tasarımı
Bağlı 3 sensörden çok fazla veri topluyoruz, bu yüzden verileri ve sensörleri depolamak için bir veritabanına ihtiyacımız var. Daha sonra Raspberry Pi'deki veritabanını nasıl yapılandıracağımızı ve buna nasıl veri ekleyeceğinizi göreceğiz. Ama önce veritabanı tasarımı veya ERD (Varlık İlişki Şeması) yapılmalı ve benimki de 3NF ile normalleştirildi. Bu yüzden sensörleri başka bir masaya böldük ve ID'lerle çalışı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'nin Hazırlanması
Şimdi, yaptığımız projenin bazı temellerine sahibiz. Raspberry Pi ile başlayalım!
SD Kart yapılandırması
İlk olarak, resminizi koyabileceğiniz 16 GB'lık bir SD Karta ve SD karta bir başlangıç resmi yüklemek için bir programa ihtiyacınız var.
Yazılım:
Başlangıç resmi:
Yani bunlar indirildikten sonra:
- SD kartınızı bilgisayarınıza yerleştirin.
- Az önce indirdiğiniz Win32'yi açın.
- Az önce indirdiğiniz Raspbian görüntü dosyasını seçin.
- SD kartınızın konumuna 'yaz' seçeneğine tıklayın.
Bu, donanımınıza bağlı olarak biraz zaman alabilir. Bu yapıldıktan sonra, görüntüyü 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' adlı bir dosya oluşturun.
Artık SD kartı GÜVENLE bilgisayarınızdan çıkarabilir ve güç OLMADAN Raspberry Pi'ye takabilirsiniz. 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.
Şimdi Raspberry Pi'mizi kontrol etmek istiyoruz, bu da 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.
Raspi-yapılandırma
sudo raspi yapılandırması
Bu proje için gerçekten önemli olan arayüz bölümü, birçok farklı arayüzü etkinleştirmemiz gerekiyor, aşağıdaki tüm arayüzleri etkinleştirmeliyiz:
- Tek telli
- SPI
- I2C
- Seri
Artık raspi-config ile işimiz bittiğine göre internete bağlanmayı deneyelim.
Wi-Fi bağlantısı
Öncelikle aşağıdaki komutlar için root olmanız gerekiyor.
sudo -i
Kök olduğunuzda, aşağıdaki komutu kullanın. SSID, ağ adınızdır ve şifre açıkça şifredir.
wpa_passphrase "ssid" "parola" >> /etc/wpa_supplicant/wpa_supplicant.conf
Bir hata yapmanız durumunda, sadece o dosyayı 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
Güncelleştirme yükseltme
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
MariaDB Veritabanı
MariaDB veritabanı sunucusunu kurun:
sudo apt-get install mariadb-server
Apache2 Web sunucusu
Apache2 web sunucusunu kurun:
sudo apt apache2'yi kurun
piton
Python'u yükleyin:
güncelleme alternatifleri --install /usr/bin/python python /usr/bin/python2.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
- İstekler
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
- Ujson
- wsaccel
Hoparlör kitaplığı
Adafruit'ten hoparlör kitaplığını kurun:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Yeniden başlatma zamanı
sudo yeniden başlatma
Adım 5: Veritabanımızı RPI'ye Yönlendirin
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!
Bu yüzden önce veritabanımızı MySql tezgahında iletmeliyiz, bunu yaparken, tam veritabanı kodunuzu kopyalayın ve içindeki tüm 'görünür' kelimeleri silin. Bu kopyalandıktan sonra, macunu tekrar açalım, giriş yapın ve şunu yazın:
sudo mysql
ve şimdi mysql arayüzündesiniz, veritabanı kodunuzu buraya kopyalayın ve enter tuşuna basın.
Şimdi sadece bir kullanıcı oluşturmamız gerekiyor
'kullanıcı' TARAFINDAN TANIMLANAN KULLANICI 'kullanıcı' OLUŞTUR;
*.* ÜZERİNDEKİ TÜM AYRICALIKLARI 'kullanıcıya' VERİN;
Şimdi yeniden başlat.
Her şey şimdi kurulmalı, Pi ve MySql Workbench'inizle de bağlantı kurabilirsiniz, böylece tablolarınızdaki tüm verileri kontrol etmek daha kolay olur.
Adım 6: Bluetooth'u RPi'mizde Yapılandırma
Bir Bluetooth hoparlör oluşturuyoruz, bu, medyanın kaynağımızdan Raspberry Pi'ye gönderildiği anlamına geliyor ve bu oldukça kolay yapılabilir, hadi hemen konuya girelim!
Bluetooth bağlantısı için kaynağı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
açık
Bir eşleştirme aracısı kurun
ajan
varsayılan 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 Raspberry'mize tamamen bağlı ve Pi hoparlörde kaynak cihazınızdan medya oynatabilmeniz gerekir.
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 PyCharm kullandım, sadece PyCharm projenizin Raspberry Pi'nize bağlı olduğundan emin olmanız gerekiyor, bu, Kurulum yolunuzun ayarlarınızda ayarlandığı ve ihtiyacımız olan tüm paketleri yüklediğiniz anlamına gelir, zaten adım adım yapılmalıdır 4.
Kendi sınıflarımı kullandım ve bunların hepsi GitHub'a dahil edildi. Kaçırdıysanız diye link introda;)
Arka uç dosyamda iş parçacığı sınıfları kullandım, böylece her şey aynı anda çalışabilir ve birbirini kesmez. 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 oldukça kolay yapıldı, mümkün olduğunca önce mobil çalışmayı denedik, çoğu zaman bir mobil cihazdan Bluetooth ile bağlandığımız için mobil bir gösterge tablosundan 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!
Ve Javascript o kadar zor değildi, arka uç yollarımdan birkaç GET, tonlarca olay dinleyicisi ve bazı socketio yapıları ile çalıştı.
9. Adım: Vakamı Oluşturmak ve Hepsini Bir araya getirmek
İlk önce kasanın nasıl görünmesini istediğime dair bazı eskizlerle başladım, önemli olan bir şey, kasaya koyacak büyük bir devremiz olduğundan, her şeyin sığabileceği kadar büyük olması gerektiğiydi.
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.
Şarap şişeleri için bir kasadan 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, resimlerde de görebileceğiniz gibi: P) ve içine biraz çivi çaktım, bu gerçekten basit bir dava, ama bu oldukça havalı görünüyor ve mükemmel uyuyor.
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.
Adım 10: Slimbox Hoparlörü Oluşturma Yolumda Yaşadığım Bazı Sorunlar…
Bluetooth ve bluealsa hataları
Ne zaman müzik çalmak veya bluetooth ile bağlanmak istesem bluetooth ve bluealsa'dan hata alıyorum. Bu konuda biraz araştırma yaptım ve bu benim sorunumun çözümüydü. Bu nedenle, bir nedenden dolayı bluetooth'um yumuşak bloke edildi, bunun standart yumuşak bloke olup olmadığından emin değilim. Putty'nize aşağıdaki komutu yazarak olup olmadığını görebilirsiniz.
rfkill listesi
Bu nedenle, softblock ise, sadece şunu kullanın:
rfkill bluetooth engelini kaldır
Ve bundan sonra yeniden başlatmak isteyebilirsiniz, kaynağım:
Seri bağlantı sorunları
Bir başka büyük problemim de seviye değiştirici aracılığıyla Arduino'mla herhangi bir bağlantı kuramamamdı, bazı aramalardan sonra '/dev/ttyS0'ımın gittiğini ve bunun RPi'nizin bir güncellemesinden kaynaklanabileceğini öğrendim. Buna da bir çözüm bulundu
Seri konsolu raspi-config ile yeniden etkinleştirmeniz, yeniden başlatmanız ve ardından "console=serial0, 115200" bitini '/boot/cmdline.txt' dizininden manuel olarak kaldırmanız gerekir. /boot/config.txt' öğesini seçin ve yeniden başlatın. Bu, ttyS0 bağlantı noktanızın yanı sıra '/dev/serial0' yazılım bağlantısını da geri almalıdır.
Kaynak:
Önerilen:
Taşınabilir Bluetooth Hoparlör - MKBoom Kendin Yap Kiti: 5 Adım (Resimlerle)
Taşınabilir Bluetooth Hoparlör | MKBoom Kendin Yap Kiti: Herkese merhaba! Uzun bir aradan sonra başka bir hoparlör projesiyle geri dönmek çok güzel. Yapılarımın çoğu tamamlamak için epeyce araç gerektirdiğinden, bu sefer kolayca satın alabileceğiniz bir kit kullanarak taşınabilir bir hoparlör oluşturmaya karar verdim. düşündüm
Bluetooth Boombox'a Eski Hoparlör Dönüşümü: 8 Adım (Resimlerle)
Bluetooth Boombox'a Eski Hoparlör Dönüşümü: Herkese merhaba! Bu yapıda benimle birlikte çalıştığınız için çok teşekkür ederim! Ayrıntılara atlamadan önce, lütfen en alttaki yarışmada bu Eğitilebilir Yazıya oy vermeyi düşünün. Destek çok takdir ediliyor! Başladığımdan bu yana birkaç yıl geçti
Kablosuz Bisiklete Monte Bluetooth Hoparlör: 11 Adım (Resimlerle)
Kablosuz Bisiklete Monte Bluetooth Hoparlör: Merhaba! Bu Eğitilebilir Kitapta size kablosuz bisiklete monte Bluetooth hoparlörümü nasıl kurduğumu göstereceğim. Söylemeliyim ki, bu şu ana kadar en sevdiğim projelerden biri olabilir. Harika görünüyor, harika bir sesi var ve fütürist bir görünüme sahip! al
Bay Hoparlör - 3D Baskılı DSP Taşınabilir Hoparlör: 9 Adım (Resimlerle)
Sayın Konuşmacı - 3D Baskılı DSP Taşınabilir Hoparlör: Benim adım Simon Ashton ve yıllar içinde genellikle ahşaptan birçok hoparlör yaptım. Geçen yıl bir 3D yazıcı aldım ve bu yüzden 3D baskının sağladığı benzersiz tasarım özgürlüğünü örnekleyen bir şey yaratmak istedim. ile oynamaya başladım
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