Spisu treści:

Deska rozdzielcza motocykla Raspberry Pi: 9 kroków (ze zdjęciami)
Deska rozdzielcza motocykla Raspberry Pi: 9 kroków (ze zdjęciami)

Wideo: Deska rozdzielcza motocykla Raspberry Pi: 9 kroków (ze zdjęciami)

Wideo: Deska rozdzielcza motocykla Raspberry Pi: 9 kroków (ze zdjęciami)
Wideo: Do you have a phone on your motorcycle dashboard? 2024, Lipiec
Anonim
Deska rozdzielcza motocykla Raspberry Pi
Deska rozdzielcza motocykla Raspberry Pi

Jako student technologii multimediów i komunikacji w Howest Kortrijk musiałem stworzyć własny projekt IoT. Połączyłoby to wszystkie moduły zrealizowane w pierwszym roku w jeden duży projekt. Ponieważ dużo jeżdżę na motocyklu w wolnym czasie, postanowiłem wykorzystać moje umiejętności nabyte w MCT tu zbudować coś dla mojego motocykla: inteligentną deskę rozdzielczą.

MotoDash to deska rozdzielcza z napędem Raspberry Pi zaprojektowana dla fanatycznych motocyklistów, która daje kierowcy możliwość śledzenia ich wydajności.

Jakie są funkcje tego pulpitu nawigacyjnego?

  • Wyświetlanie aktualnego kąta pochylenia
  • Wyświetlanie aktualnego przyspieszenia
  • Możliwość monitorowania temperatury oleju
  • Automatycznie przełącz się na ciemny motyw podczas jazdy w ciemności
  • Rejestruj dane swoich przejazdów i przeglądaj własne statystyki

Kieszonkowe dzieci

Główna jednostka obliczeniowa:

Raspberry Pi To jest główny kontroler systemu

Elektronika:

  • Ładowarka USB do motocykla 12V-5VZasilacz główny do RPi
  • 4-pinowy przekaźnik z bezpiecznikami 12VSwitch do włączania/wyłączania obwodu zasilania RPi
  • Płytka do krojenia chleba z przewodami połączeniowymi (opcjonalnie) Do testowania i prototypowania
  • Zestaw rezystorów

    Różne kolory drutu 0,2 mm

  • Breakout Pi plusJest to płytka do prototypowania, na której możesz przylutować wszystkie swoje komponenty. Został zaprojektowany tak, aby pasował bezpośrednio na Raspberry Pi, dzięki czemu wymiary projektu są minimalne.

Czujniki i moduły:

  • Wodoodporny czujnik temperatury DS18B20 1-WireCzujnik temperatury oleju
  • 3-osiowy żyroskop akcelerometr MPU6050Czujnik przechyłu/przyspieszenia
  • Rezystor światłozależny (LDR)
  • MCP3008 - 8-kanałowy 10-bitowy przetwornik ADC z interfejsem SPI

    Wyświetlacz TFT SPI (lub dowolny inny wyświetlacz LCD, który pasuje do Twoich potrzeb)

    LED RGB

Obudowa:

  • Plastikowe pudełko
  • Obudowa Raspberry pi

Narzędzia:

  • Lutownica i lut
  • Śruby i przekładki 2,5 mm
  • Wodoodporne złącza kablowe
  • Super klej

Krok 1: Prototypowanie

Prototypowanie
Prototypowanie
Prototypowanie
Prototypowanie

Zanim wszystko utrwalimy, ułożymy projekt na płytce prototypowej. Ten krok można pominąć, jeśli masz absolutną pewność, że nie popełnisz błędów. Schemat elektryczny/płytki stykowej można znaleźć w poniższym pliku PDF. Złóż obwód dokładnie tak, jak opisano. Upewnij się, że używasz tylko pinu 3.3V, a nie pinu 5V w RPi. Również przed włączeniem Raspberry Pi dokładnie sprawdź obwód. Upewnij się, że nie ma szortów!

Krok 2: Przygotowanie Raspberry Pi

Przygotowanie Raspberry Pi
Przygotowanie Raspberry Pi

Przede wszystkim skonfigurujemy Raspberry Pi. Raspberry Pi to minikomputer zdolny do uruchomienia własnego systemu operacyjnego. W przypadku tego projektu odpowiada za przetwarzanie danych z czujników, hosting strony internetowej, prowadzenie backendu i bazy danych, …

1. Zainstaluj niestandardowy obraz Raspbian

Dostarczony obraz zawiera już pakiety oprogramowania potrzebne do szybkiego rozpoczęcia tego projektu:

  • Apache dla frontendu strony
  • MariaDB dla bazy danych
  • PhpMyAdmin do manipulowania bazą danych
  • Uprawnienia niestandardowe, aby uniknąć problemów

Niestandardowy obraz można pobrać stąd.

Samouczek dotyczący instalowania obrazów można znaleźć tutaj:

Po zainstalowaniu obrazu podłącz Raspberry Pi do komputera za pomocą kabla Ethernet. Teraz możesz użyć klienta SSH, aby połączyć się z nim na adresie IP 169.254.10.1

Dobrą praktyką jest natychmiastowe ustawienie nowego hasła za pomocą polecenia passwd

2. Konfiguracja bezprzewodowego punktu dostępowego

Po zakończeniu projektu chcemy móc połączyć się z RPi przez Wi-Fi, więc zamieńmy go w bezprzewodowy AP. Samouczek na ten temat można znaleźć tutaj.

Musisz tylko postępować zgodnie z tym samouczkiem do kroku 7. Krok 8 nie jest wymagany, ponieważ nie musimy mostkować połączenia internetowego, ale stworzyć samodzielną sieć.

3. Włączanie interfejsów

Wejdź do raspi-config

sudo raspi-config

Przejdź do opcji interfejsu i włącz 1-wire, SPI i I2C, a następnie uruchom ponownie Pi

3. Konfigurowanie sterowników wyświetlacza

Inicjalizacja wyświetlacza

Edytuj plik /etc/modules

sudo nano /etc/moduły

Dodaj następujące 2 linie

spi-bcm2835fbtft_device

Teraz edytuj /etc/modprobe.d/fbtft.conf

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

Dodaj następującą linię

opcje fbtft_device name=tm022hdh26 gpios=reset:25, dc:24, led:18 obrót=90 prędkość=80000000 fps=60

Uruchom ponownie Pi. Jeśli widzisz podświetlenie wyświetlacza, wszystko poszło dobrze. Spowoduje to inicjalizację wyświetlacza przy każdym uruchomieniu Pi, jednak teraz wyświetli tylko czarny ekran. Aby wyświetlić zawartość Pi na wyświetlaczu, musimy skopiować zawartość głównego ekranu na mały LCD. Wykorzystamy do tego usługę o nazwie 'fbcp'.

Instalowanie usługi fbcp

sudo apt-get install cmake

klon git

cd rpi-fbcp

kompilacja mkdir

kompilacja cd/

cmak..

robić

sudo zainstaluj fbcp /usr/local/bin/fbcp

Teraz zainstalowaliśmy usługę. Ponieważ jednak używamy bezgłowego Pi, nie ma ekranu, z którego można skopiować zawartość. Aby zmusić Pi do wyświetlania zawartości ekranu, edytuj /boot/config.txt

sudo nano /boot/config.txt

Znajdź i odkomentuj lub dodaj następujące wiersze do tego pliku:

hdmi_force_hotplug=1

hdmi_cvt=640 480 60 0 0 0 0

obrót_wyświetlania=0

hdmi_group=2

hdmi_mode=87

Uruchom ponownie RPi i przetestuj usługę fbcp, wpisując w konsoli fbcp. Teraz powinieneś zobaczyć zawartość ekranu na LCD.

Uruchamianie fbcp podczas uruchamiania

Edytuj /etc/rc.local i dodaj następującą linię między adresem IP a linią wyjścia

fbcp&

Teraz wyświetlacz powinien włączać się przy każdym uruchomieniu RPi

Krok 3: Baza danych

Baza danych
Baza danych

Do logowania i przechowywania danych z czujników zaprojektowałem własną bazę danych zawierającą 4 tabele. Wykres EER pokazano na powyższym obrazku.

1. Urządzenia

Ta tabela zawiera każdy czujnik. Opisuje nazwę czujnika, opis i jednostkę miary. Ten stół ma związek jeden do wielu z akcjami stołu, tak jak w moim przypadku czujnik przyspieszenia może wykonywać różne zadania.

2. Działania

Ta tabela przechowuje działania dla różnych czujników. Jedna akcja jest zawsze powiązana z konkretnym czujnikiem. Na przykład: akcja „TEMP” jest powiązana z urządzeniem mierzącym temperaturę. Byłby to czujnik temperatury 1-wire.

3. Historia

Ta tabela zawiera wszystkie dzienniki czujników. Każdy dziennik ma identyfikator akcji, wartość, znacznik czasu i identyfikator jazdy

4. Przejażdżki

Ten stół przechowuje różne przejażdżki. Za każdym razem, gdy użytkownik rozpoczyna nową jazdę, tworzony jest nowy wpis w tej tabeli

Aby uzyskać tę bazę danych na swoim Raspberry Pi, przejdź do mojego GitHub i sklonuj/pobierz repozytorium. W bazie danych znajdziesz 2 pliki.sql. Uruchom je w środowisku roboczym PhpMyAdmin lub MySQL. Teraz baza danych powinna znajdować się na twoim RPi.

Krok 4: Backend

Jeśli jeszcze tego nie zrobiłeś, przejdź do mojego GitHub i sklonuj/pobierz repozytorium. W folderze Backend znajdziesz pełny backend projektu.

Folder zawiera klasy do odczytu sensorów w /helpers, pliki do komunikacji z bazą danych w /repositories, a główna aplikacja znajduje się w katalogu głównym pod nazwą app.py.

Instalowanie pakietów Pythona

Zanim spróbujemy cokolwiek uruchomić, musimy najpierw zainstalować kilka pakietów dla Pythona. Wejdź do terminala swojego RPi i wpisz następujące polecenia:

pip3 zainstaluj mysql-connector-python

pip3 zainstaluj kolbę-socketio

pip3 zainstaluj kolby-cors

pip3 instalacja gevent

pip3 zainstaluj gevent-websocket

WAŻNA UWAGA: jeśli zmieniłeś hasło Mariadb/Mysql, zmień hasło w config.py!

Przetestuj backend

Uruchom app.py za pomocą interpretera python3 (/usr/bin/python3). Upewnij się, że nie ma błędów.

Uruchamianie backendu podczas startu

Edytuj motoDash_backend.service i zmień YOURFILEPATH na ścieżkę, w której zapisane jest repozytorium.

Teraz skopiuj ten plik do /etc/systemd/system/

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

Teraz backend będzie uruchamiał się automatycznie przy każdym uruchomieniu RPi.

Krok 5: Frontend

Frontend
Frontend
Frontend
Frontend

Wejdź do repozytorium GitHub. Skopiuj zawartość katalogu Frontend do /var/www/html.

To wszystko, co powinieneś zrobić, aby frontend działał. Ten folder zawiera wszystkie strony internetowe, style i skrypty interfejsu internetowego. Komunikuje się również z backendem. Aby sprawdzić, czy wszystko działa tak, jak powinno, upewnij się, że jesteś podłączony do swojego RPi i wpisz adres IP RPi w przeglądarce. Powinieneś zobaczyć stronę główną interfejsu internetowego.

Uwaga: Strona jest responsywna, więc możesz z niej korzystać zarówno na urządzeniach mobilnych, jak i na komputerach stacjonarnych

Krok 6: Wyświetlanie deski rozdzielczej na wyświetlaczu

Wyświetlanie tablicy rozdzielczej na wyświetlaczu
Wyświetlanie tablicy rozdzielczej na wyświetlaczu

Frontend ma własną ukrytą stronę internetową używaną tylko do małego wyświetlacza. Spowodujemy automatyczne uruchomienie Pi na tej stronie w trybie pełnoekranowym.

Upewnij się, że RPi jest ustawione na automatyczne logowanie do pulpitu w raspi-config w opcjach rozruchu

sudo raspi-config

Teraz przejdź do ukrytego folderu konfiguracyjnego i utwórz tam nowy plik

cd.config

sudo mkdir -p lxsession/LXDE-pi

sudo nano lxsession/LXDE-pi/autostart

Dodaj następujące wiersze w tym pliku i zapisz

@xscreensaver - bez powitania

@xset s off

@xset -dpms

@xset s noblank

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

Teraz Pi powinno uruchamiać się za każdym razem na tej stronie

Krok 7: Lutowanie elektroniki

Lutowanie elektroniki
Lutowanie elektroniki
Lutowanie elektroniki
Lutowanie elektroniki
Lutowanie elektroniki
Lutowanie elektroniki
Lutowanie elektroniki
Lutowanie elektroniki

Weź tablicę zaciskową i ułóż na niej elementy w uporządkowany sposób. Nie będę omawiał układu, w jaki sposób lutowałem na nim elementy, ponieważ wykonałem na nim dość słabą robotę. Użyłem osobnych nagłówków pinów na płytce, więc wystarczyło podłączyć czujniki i moduły tylko do prawego pinu. Upewnij się, że wiesz, który pin jest do czego!

Kilka wskazówek podczas lutowania:

  • Przy pokonywaniu większych odległości należy używać izolowanych przewodów. Ostatnią rzeczą, jakiej pragniesz, są szorty w obwodzie
  • Po zlutowaniu elementu lub przewodu sprawdź jego ciągłość za pomocą multimetru. Regularnie sprawdzaj również, czy nie ma zwarć.
  • Nie używaj za dużo lub za mało lutu!
  • Jeśli nie wiesz, jak lutować, przećwicz to najpierw na innej płytce prototypowej. Samouczek dotyczący lutowania można znaleźć tutaj.

Teraz przylutuj przewody wystarczająco długo do czujników i obłóż je kurczliwą owijką, aby upewnić się, że wszystko nie jest zwarte i czyste.

Po zakończeniu sprawdź dokładnie, czy nie ma zwarć lub złych połączeń, i sprawdź każde połączenie ze schematem elektrycznym, jeśli jest to prawidłowe połączenie. Gdy masz pewność, że wszystko jest zrobione poprawnie, umieść płytkę zaciskową na RPi, przykręć ją na końcu za pomocą śrub 2,5 mm i wsporników. Podłącz czujniki do odpowiednich pinów i przetestuj je wszystkie za pomocą strony internetowej.

Krok 8: Zasilanie

Do zasilania Raspberry Pi użyjemy adaptera USB 12V-5V. Ten adapter zostanie podłączony do akumulatora motocykla. Aby upewnić się, że RPi włączy się po włączeniu zapłonu, użyjemy przekaźnika. Przekaźnik zamknie obwód zasilania RPi, gdy wykryje napięcie z tylnego światła (tylne światło zawsze włącza się po włączeniu zapłonu).

Aby uzyskać bardziej szczegółowy samouczek na ten temat, sprawdź tę stronę: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -kontrolery.16921/

Krok 9: Mieszkanie

Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania

Obudowa wyświetlacza

Aby wyświetlić wyświetlacz, chwyć twarde plastikowe pudełko o wielkości ekranu. Wytnij w nim kwadratowy otwór wielkości wyświetlacza i pasujące otwory do wkręcenia wyświetlacza. Z przodu musisz wywiercić jeszcze 2 otwory na diodę RGB LED i LDR.

Zamontowałem to pudełko na uchwycie smartfona za pomocą śruby.

Czujnik temperatury

Aby pomieścić czujnik temperatury, wydrukowałem w 3D wskaźnik poziomu oleju, który pasuje do mojego motocykla.

Malina Pi

Zamontuj sam Raspberry Pi w bezpiecznym miejscu wewnątrz motocykla, umieściłem go pod jednym z błotników za pomocą rzepów. I zabezpieczył go przed żywiołami za pomocą obudowy i trochę plastiku.

Akcelerometr

Zamontuj akcelerometr w bezpiecznym miejscu, najlepiej na samej ramie motocykla.

Notatka:

Nie musisz mieć dokładnie takiej samej obudowy jak ja, możesz ją dokończyć jak chcesz. Tylko upewnij się, że elementy elektroniczne są chronione przed deszczem i kurzem.

Zalecana: