İçindekiler:

Raspberry Pi Motosiklet Panosu: 9 Adım (Resimlerle)
Raspberry Pi Motosiklet Panosu: 9 Adım (Resimlerle)

Video: Raspberry Pi Motosiklet Panosu: 9 Adım (Resimlerle)

Video: Raspberry Pi Motosiklet Panosu: 9 Adım (Resimlerle)
Video: 2 Masal | Pinokyo + Fındıkkıran | Adisebaba Masallar 2024, Kasım
Anonim
Raspberry Pi Motosiklet Panosu
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ü
  • 3 Eksen Gyro İvmeölçer MPU6050Eğim/hızlanma sensörü
  • Işığa bağlı direnç (LDR)
  • MCP3008 - SPI Arayüzü ile 8 kanallı 10-Bit ADC

    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

prototipleme
prototipleme
prototipleme
prototipleme

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ı
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

sudo nano /etc/modprobe.d/fbtft.conf

Aşağıdaki satırı ekleyin

seçenekler fbtft_cihaz adı=tm022hdh26 gpios=reset:25, dc:24, led:18 döndürme=90 hız=80000000 fps=60

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ı
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:

pip3 mysql-connector-python'u kurun

pip3 yükleme şişesi-socketio

pip3 flask-cors yükleyin

pip3 kurulum geventi

pip3 kurulum gevent-websocket

ÖNEMLİ NOT: Mariadb/Mysql parolanızı değiştirdiyseniz, parolayı config.py'de değiştirin!

Arka ucu test edin

python3 yorumlayıcısını (/usr/bin/python3) kullanarak app.py'yi çalıştırın. Hata olmadığından emin olun.

Arka ucu önyüklemede çalıştırma

motoDash_backend.service dosyasını düzenleyin ve YOURFILEPATH dosyasını deponun kaydedildiği yola değiştirin.

Şimdi bu dosyayı /etc/systemd/system/ dizinine kopyalayın

sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.

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ı
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
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

@xscreensaver -sıçrama yok

@xset kapalı

@xset -dpms

@xset s boş

@chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito

Şimdi Pi her zaman bu web sayfasına önyükleme yapmalıdır

Adım 7: Elektroniği Lehimleme

Elektronik Lehimleme
Elektronik Lehimleme
Elektronik Lehimleme
Elektronik Lehimleme
Elektronik Lehimleme
Elektronik Lehimleme
Elektronik Lehimleme
Elektronik 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

Konut
Konut
Konut
Konut
Konut
Konut

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.

Önerilen: