2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
Raspberry Pi Motosiklet Panosu
Howest Kortrijk'te Multimedya ve İletişim teknolojisi öğrencisi olarak kendi IoT projemi yapmak zorunda kaldım. Bu, ilk yılda izlenen tüm modülleri tek bir büyük projede birleştirecektir. Boş zamanlarımda motosikletime çok bindiğim için MCT'de edindiğim becerileri motosikletim için bir şeyler inşa etmek için kullanmaya karar verdim: Akıllı bir gösterge paneli.
MotoDash, sürücüye performanslarını takip etme yeteneği veren fanatik motosikletçiler için tasarlanmış bir Raspberry Pi destekli gösterge panelidir.
Bu panonun özellikleri nelerdir?
Geçerli eğim açısını görüntüleme
Mevcut ivmeyi görüntüleme
Yağ sıcaklığını izleme yeteneği
Karanlıkta sürerken otomatik olarak karanlık temaya geç
Sürüşlerinizin verilerini günlüğe kaydedin ve kendi istatistiklerinizi görüntüleyin
Gereçler
Ana bilgi işlem birimi:
Raspberry Pi Bu, sistemin ana denetleyicisidir
Elektronik:
RPI için motosiklet 12V-5VMain güç kaynağı için USB şarj cihazı
4 Pin Sigortalı Röle 12VS, RPi'nin güç devresini açmak/kapatmak için anahtar
Jumper kablolu ekmek tahtası (isteğe bağlı)Test ve prototipleme için
Bir dizi direnç
0,2 mm telin farklı renkleri
Breakout Pi plusBu, tüm bileşenlerinizi lehimleyebileceğiniz bir prototip panosudur. Doğrudan Raspberry Pi'nin üzerine oturacak şekilde yapılmıştır, bu nedenle projenin boyutları minimumda kalır.
Sensörler ve modüller:
Su geçirmez DS18B20 1 Telli Sıcaklık sensörüYağ sıcaklık sensörü
TFT SPI ekranı (veya ihtiyaçlarınıza uyan diğer herhangi bir lcd ekran)
RGB LED'i
kasa:
Plastik kutu
Raspberry Pi kutuları
Aletler:
Havya ve lehim
2.5 mm vidalar ve ara parçalar
Su geçirmez kablo konektörleri
Süper yapıştırıcı
…
Adım 1: Prototipleme
prototiplemeprototipleme
Her şeyi kalıcı hale getirmeden önce projeyi bir breadboard üzerinde bir araya getireceğiz. Hata yapmayacağınızdan kesinlikle eminseniz bu adım atlanabilir. Elektrik/breadboard şeması aşağıdaki PDF'de bulunabilir. Devreyi tam olarak anlatıldığı gibi bir araya getirin. RPi'deki 5V pinini değil, yalnızca 3.3V pinini kullandığınızdan emin olun. Ayrıca ahududu Pi'yi açmadan önce devrenizi iki kez kontrol edin. Şort olmadığından emin olun!
Adım 2: Raspberry Pi'yi Hazırlama
Raspberry Pi'nin Hazırlanması
Öncelikle Raspberry Pi'yi kuracağız. Raspberry Pi, kendi işletim sistemini çalıştırabilen mini bir bilgisayardır. Bu proje için sensör verilerinin işlenmesinden, web sitesinin barındırılmasından, arka uç ve veritabanının çalıştırılmasından, …
1. Özel Raspbian Image yükleyin
Sağlanan görüntü, bu projeyi hızlı bir şekilde başlatmak için gereken yazılım paketlerini zaten içeriyor:
Web sitesi ön ucu için Apache
Veritabanı için MariaDB
Veritabanını işlemek için PhpMyAdmin
Sorunları önlemek için özel izinler
Özel görüntü buradan indirilebilir.
Görüntüleri yüklemek için bir öğretici burada bulunabilir:
Image yüklendikten sonra Raspberry Pi'yi ethernet kablosu ile bilgisayarınıza bağlayın. Artık 169.254.10.1 IP adresinden bağlanmak için bir SSH istemcisi kullanabilirsiniz.
passwd komutunu kullanarak hemen yeni bir parola belirlemek iyi bir uygulamadır.
2. Kablosuz AP'yi yapılandırma
Proje bittiğinde wifi üzerinden RPi'ye bağlanabilmek istiyoruz, bu yüzden onu bir kablosuz AP'ye çevirelim. Bunun için bir öğretici burada bulunabilir.
Bu öğreticiyi yalnızca 7. adıma kadar izlemeniz gerekir. İnternet bağlantısını köprülememiz gerekmediğinden, bağımsız bir ağ oluşturmamız gerektiğinden 8. Adım gerekli değildir.
3. Arayüzleri etkinleştirme
Raspi-config'e girin
sudo raspi yapılandırması
Arabirim seçeneklerine gidin ve 1 kablolu, SPI ve I2C'yi etkinleştirin ve Pi'yi yeniden başlatın
3. Ekran için sürücülerin ayarlanması
Ekranı başlatma
/etc/modules dosyasını düzenleyin
sudo nano /etc/modüller
Aşağıdaki 2 satırı ekleyin
spi-bcm2835fbtft_device
Şimdi /etc/modprobe.d/fbtft.conf dosyasını düzenleyin
Pi'yi yeniden başlatın. Ekranın arka ışığının yandığını görürseniz, her şey yolunda gitti. Bu, Pi her başlatıldığında ekranı başlatacak, ancak şimdi yalnızca siyah bir ekran görüntüleyecektir. Pi'nin içeriğini ekrana getirmek için ana ekranın içeriğini küçük LCD'ye kopyalamamız gerekiyor. Bunun için 'fbcp' adlı bir servis kullanacağız.
fbcp hizmetini yükleme
sudo apt-get install cmake
git klonu
cd rpi-fbcp
mkdir inşa
cd oluşturma/
cmake..
Yapmak
sudo kurulum fbcp /usr/local/bin/fbcp
Şimdi servisi kurduk. Ancak Pi başsız kullandığımız için içerik kopyalamak için uygun bir ekran yok. Pi'yi ekran içeriğini çıkarmaya zorlamak için /boot/config.txt dosyasını düzenleyin
sudo nano /boot/config.txt
Bu dosyaya aşağıdaki satırları bulun ve yorumunu kaldırın veya ekleyin:
hdmi_force_hotplug=1
hdmi_cvt=640 480 60 0 0 0 0
display_rotate=0
hdmi_group=2
hdmi_mode=87
RPi'yi yeniden başlatın ve konsola fbcp yazarak fbcp hizmetini test edin. Şimdi ekranın içeriğini LCD'de görmelisiniz.
Başlangıçta fbcp'yi çalıştırma
/etc/rc.local dosyasını düzenleyin ve ip adresi ile çıkış satırı arasına aşağıdaki satırı ekleyin
fbcp&
Şimdi, RPI her açıldığında ekran açılmalıdır.
3. Adım: Veritabanı
Veri tabanı
Sensör verilerini günlüğe kaydetmek ve saklamak için 4 tablo içeren kendi veritabanımı tasarladım. EER diyagramı yukarıdaki resimde gösterilmiştir.
1. Cihazlar
Bu tablo her sensörü içerir. Sensör adını, tanımını ve ölçüm birimini açıklar. Bu tablonun tablo eylemleriyle bire-çok ilişkisi vardır, benim durumumda olduğu gibi, ivme sensörü farklı görevleri gerçekleştirebilir.
2. Eylemler
Bu tablo, farklı sensörler için eylemleri saklar. Bir eylem her zaman belirli bir sensöre bağlıdır. Örneğin: 'TEMP' eylemi, sıcaklığı ölçen cihaza bağlıdır. Bu, 1 telli sıcaklık sensörü olacaktır.
3. Tarih
Bu tablo tüm sensör günlüklerini içerir. Her günlüğün bir eylem kimliği, bir değeri, bir zaman damgası ve bir gezinti kimliği vardır
4. Sürüşler
Bu tablo farklı sürüşleri saklar. Kullanıcı her yeni sürüşe başladığında bu tabloya yeni bir giriş yapılır.
Bu veritabanını Raspberry Pi'nize almak için GitHub'a gidin ve depoyu klonlayın/indirin. Veritabanının altında 2.sql dosyası bulacaksınız. Bunları PhpMyAdmin veya MySQL tezgahında çalıştırın. Şimdi veritabanı RPI'nizde olmalıdır.
4. Adım: Arka uç
Henüz yapmadıysanız, GitHub'ıma gidin ve depoyu klonlayın/indirin. Arka Uç klasörü altında, proje için tam arka ucu bulacaksınız.
Klasör, /helpers altındaki sensörleri okumak için sınıfları, /repositories altındaki veritabanıyla iletişim kurmak için dosyaları içerir ve ana uygulama kökte app.py adı altında bulunur.
Python paketlerini yükleme
Herhangi bir şeyi çalıştırmaya çalışmadan önce, önce python için bazı paketler kurmamız gerekiyor. RPI'nizin terminaline gidin ve aşağıdaki komutları yazın:
Artık, RPi her önyüklendiğinde arka uç otomatik olarak başlayacaktır.
Adım 5: Ön Uç
Başlangıç aşamasıBaşlangıç aşaması
GitHub Repo'ya gidin. Ön Uç dizininin içeriğini /var/www/html içine kopyalayın.
Ön ucun çalışmasını sağlamak için yapmanız gereken tek şey bu. Bu klasör, web arayüzü için tüm web sayfalarını, stilleri ve komut dosyalarını içerir. Ayrıca arka uç ile iletişim kurar. Her şeyin olması gerektiği gibi çalışıp çalışmadığını test etmek için RPi'nize bağlı olduğunuzdan emin olun ve RPi'nin IP adresini bir tarayıcıya yazın. Web arayüzünün ana sayfasını görmelisiniz.
Not: Web sitesi duyarlıdır, bu nedenle masaüstünde olduğu gibi mobilde de kullanabilirsiniz.
Adım 6: Gösterge Tablosunu Ekranda Görüntüleme
Gösterge Tablosunu Ekranda Görüntüleme
Ön uç, yalnızca küçük ekran için kullanılan kendi gizli web sayfasına sahiptir. Pi'yi bu web sitesine tam ekran modunda otomatik olarak başlatacağız.
Önyükleme seçenekleri altında raspi-config'de RPi'nin masaüstü otomatik oturum açmaya ayarlandığından emin olun
sudo raspi yapılandırması
Şimdi gizli yapılandırma klasörüne gidin ve orada yeni bir dosya oluşturun
cd.config
sudo mkdir -p lxsession/LXDE-pi
sudo nano lxsession/LXDE-pi/otomatik başlatma
Bu dosyaya aşağıdaki satırları ekleyin ve kaydedin
Şimdi Pi her zaman bu web sayfasına önyükleme yapmalıdır
Adım 7: Elektroniği Lehimleme
Elektronik LehimlemeElektronik LehimlemeElektronik LehimlemeElektronik Lehimleme
Breakout board'u alın ve bileşenlerinizi yapılandırılmış bir şekilde üzerine yerleştirin. Üzerinde oldukça kötü bir iş yaptığım için bileşenleri nasıl lehimlediğimin düzenini tartışmayacağım. Kart üzerinde ayrı pin başlıkları kullandım, bu yüzden sadece sensörleri ve modülleri doğru pine bağlamam gerekiyordu. Hangi pinin ne için olduğunu bildiğinizden emin olun!
Lehimleme sırasında bazı ipuçları:
Daha büyük mesafelerden geçerken yalıtımlı teller kullanın. İstediğiniz son şey devrenizdeki kısa devre
Bir bileşeni veya teli lehimledikten sonra sürekliliğini bir multimetre ile kontrol edin. Ayrıca düzenli olarak kısa devre olup olmadığını kontrol edin.
Çok fazla veya çok az lehim kullanmayın!
Lehimlemeyi bilmiyorsanız, önce başka bir prototipleme panosunda alıştırma yapın. Lehimleme ile ilgili bir eğitim burada bulunabilir.
Şimdi telleri sensörlere yeterince uzun lehimleyin ve her şeyin kısa devre yapmadığından ve temiz olmadığından emin olmak için etrafına biraz küçülen sargı koyun.
Bitirdiğinizde, herhangi bir kısa devre veya kötü bağlantı olup olmadığını iki kez kontrol edin ve doğru bağlantı olup olmadığını elektrik şemasıyla olan her bağlantıyı kontrol edin. Her şeyin doğru yapıldığından emin olduktan sonra, devam edin ve devre kartını RPi'ye koyun, 2,5 mm'lik vidalar ve ayırıcılarla sıkıca vidalayın. Sensörleri doğru pimlere bağlayın ve web sitesini kullanarak hepsini test edin.
Adım 8: Güç Kaynağı
Raspberry Pi'ye güç sağlamak için bir 12V-5V usb adaptörü kullanacağız. Bu adaptör motosiklet aküsüne bağlanacaktır. Kontak açıldığında RPi'nin açıldığından emin olmak için bir röle kullanacağız. Röle, arka lambadan bir voltaj algıladığında RPi güç devresini kapatacaktır (kontak açıldığında arka lamba her zaman yanar).
Bununla ilgili daha ayrıntılı bir eğitim için şu sayfaya göz atın: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -kontrolörler.16921/
Adım 9: Konut
KonutKonutKonut
Ekran Muhafazası
Ekran için kendinize ekran boyutunda sert bir plastik kutu alın. Ekran kadar büyük bir kare delik açın ve ekranı vidalamak için uygun delikler açın. Önde RGB LED ve LDR için 2 delik daha açmanız gerekir.
Bu kutuyu bir cıvata kullanarak akıllı telefon tutucusunun üstüne monte ettim.
Sıcaklık sensörü
Sıcaklık sensörünü yerleştirmek için motosikletime uyan bir yağ göstergesini 3D Bastırdım.
Ahududu Pi
Ahududu Pi'yi motosikletin içinde güvenli bir yere monte edin, cırt bantlar kullanarak çamurluklardan birinin altına yerleştirdim. Ve bir mahfaza ve biraz plastik kullanarak onu elementlerden korudu.
ivmeölçer
İvmeölçeri güvenli bir yere, tercihen motosiklet çerçevesine monte edin.
Not:
Benimle aynı yuvaya sahip olmanıza gerek yok, istediğiniz gibi bitirmekte özgürsünüz. Sadece elektronik bileşenlerin yağmur ve tozdan korunduğundan emin olun.
Kablosuz Bildiri Panosu (Bluetooth): Her şeyin dijitalleştiği bu modern dünyada, neden geleneksel Bildiri panosu yeni bir görünüm kazanmasın. Öyleyse, Bluetooth kontrollü bir Bildiri Panosu yapalım çok basit. Bu kurulum statik bildirim yerine kullanılabilir. kolejlerde olduğu gibi yönetim kurulu /
MXY Kartı - Düşük Bütçeli XY Plotter Çizim Robotu Kartı: Amacım, XY çizici çizim makinesini düşük bütçeli yapmak için mXY kartını tasarlamaktı. Ben de bu projeyi yapmak isteyenlerin işini kolaylaştıran bir pano tasarladım. Bir önceki projede 2 adet Nema17 step motor kullanılırken bu kart u
Dark Sky API'sini Kullanarak Bir Hava Durumu Panosu Oluşturun: Dark Sky, hava tahmini ve görselleştirme konusunda uzmanlaşmıştır. Dark Sky'ın en havalı yönü, dünyanın neredeyse her yerinden hava durumu verilerini almak için kullanabileceğimiz hava durumu API'sidir. Sadece hava yağmurlu veya güneşli değil, aynı zamanda sıcaklık
IoT RPi LED Mesaj Panosu: Bu Instructable'da, bir Raspberry Pi (RPi) kullanarak wifi bağlantılı bir LED mesaj panosu yaptım. Kullanıcılar, 8x8 LED ekranda görünecek kısa mesajları göndermek için tarayıcılarını kullanarak Raspberry Pi'nin web sunucusuna bağlanacaklar. Arayüzden beri
Stranger Things'den Esinlenen Uygulama Kontrollü Alfabe Panosu: Tüm bunlar birkaç hafta önce dokuz yaşındaki yeğenime Noel için ne alacağımı bulmaya çalışırken başladı. Ağabeyim sonunda Stranger Things'in büyük bir hayranı olduğunu söyledi. Ona ne almak istediğimi anında biliyordum, öyle bir şey ki