Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02
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
-
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.
Zestaw rezystorów
Różne kolory drutu 0,2 mm
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
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
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
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
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
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
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
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:
ZRÓB WŁASNĄ CYFROWĄ TABLICĘ ROZDZIELCZĄ NA PODSTAWIE GPS DLA MOTOCYKLA ELEKTRYCZNEGO LUB MOTOCYKLOWEGO: 13 kroków
ZRÓB WŁASNY CYFROWY DASHBOARD OPARTY NA GPS DLA EBIKE LUB MOTOCYKLA ELEKTRYCZNEGO: CZEŚĆ WSZYSTKOTym razem wymyśliłem nową instrukcję zawierającą zarówno samodzielny wyświetlacz, jak i rejestrator za pomocą wyświetlacza arduino mega 2560 i Nextion Lcd. W celu śledzenia można również rejestrować zdania NMEA z GPS w sdcard i oczywiście projekt
Jak zrobić zdalnie sterowane urządzenie do usuwania kolców lub tablicę rozdzielczą za pomocą samodzielnego Atmega328P: 6 kroków (ze zdjęciami)
Jak zrobić zdalnie sterowany Spike Buster lub Switch Board przy użyciu samodzielnego Atmega328P: W tym projekcie pokażę, jak zbudować zdalnie sterowany Spike Buster lub Switch Board przy użyciu samodzielnego Atmega328P. Ten projekt jest zbudowany na niestandardowej płytce PCB z bardzo małą liczbą komponentów. Jeśli wolisz oglądać wideo, umieściłem to samo lub
Modulator reflektorów Arduino dla bezpieczeństwa motocykla: 20 kroków (ze zdjęciami)
Modulator reflektorów Arduino dla bezpieczeństwa motocykla: Motocykle są trudne do zobaczenia na drodze przede wszystkim dlatego, że mają tylko około jednej czwartej szerokości samochodu lub ciężarówki. Od 1978 roku w USA producenci motocykli są zobowiązani do zwiększania widoczności motocykli poprzez okablowanie reflektorów
Deska rozdzielcza roweru elektrycznego (EBike) i monitor akumulatora: 12 kroków (ze zdjęciami)
Deska rozdzielcza roweru elektrycznego (EBike) i monitor akumulatora: Ten projekt to obwód Arduino, który monitoruje napięcie i prąd akumulatora za pomocą modułu ACS 712. Pomiary są przesyłane przez Bluetooth za pomocą modułu HC-05 do urządzenia z systemem Android. Zasadniczo zmieniasz połączenie ujemne między y
Napraw Radio Aux Jack / Add Media Bluetooth Receiver za deską rozdzielczą: 6 kroków (ze zdjęciami)
Napraw Radio Aux Jack / Add Media Bluetooth Receiver za deską rozdzielczą: Niedawno zauważyłem, że moje gniazdo AUX Silverado z 2013 roku było luźne. Nie było to zaskoczeniem, ponieważ często go używam i po prostu zostawiam przewód aux zwisający z gniazda. Aby to naprawić, wystarczyło zdjąć kilka paneli z deski rozdzielczej, zdjąć i zabrać apa