Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Prototyping
- Schritt 2: Vorbereitung des Raspberry Pi
- Schritt 3: Datenbank
- Schritt 4: Backend
- Schritt 5: Frontend
- Schritt 6: Anzeige des Dashboards auf dem Display
- Schritt 7: Löten der Elektronik
- Schritt 8: Netzteil
- Schritt 9: Gehäuse
Video: Raspberry Pi Motorrad-Dashboard - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Als Student Multimedia & Kommunikationstechnologie in Howest Kortrijk musste ich mein eigenes IoT-Projekt machen. Damit würden alle im ersten Jahr befolgten Module zu einem großen Projekt zusammengefasst. Da ich in meiner Freizeit viel Motorrad fahre, habe ich mich entschlossen, meine bei MCT erworbenen Fähigkeiten einzusetzen, um etwas für mein Motorrad zu bauen: Ein smartes Armaturenbrett.
MotoDash ist ein Raspberry Pi-betriebenes Dashboard, das für fanatische Motorradfahrer entwickelt wurde und dem Fahrer die Möglichkeit gibt, seine Leistung zu verfolgen.
Was sind die Funktionen dieses Dashboards?
- Anzeigen des aktuellen Neigungswinkels
- Aktuelle Beschleunigung anzeigen
- Möglichkeit, die Öltemperatur zu überwachen
- Beim Fahren im Dunkeln automatisch zum dunklen Thema wechseln
- Protokollieren Sie Daten Ihrer Fahrten und sehen Sie sich Ihre eigenen Statistiken an
Lieferungen
Hauptrechnereinheit:
Raspberry Pi Dies ist der Hauptcontroller des Systems
Elektronik:
- USB-Ladegerät für Motorrad 12V-5VHauptstromversorgung für den RPi
- 4-poliges abgesichertes Relais 12VSchalter zum Ein- und Ausschalten des Stromkreises des RPi
- Steckbrett mit Überbrückungsdrähten (optional)Zum Testen und Prototyping
-
Breakout Pi plusDies ist ein Prototyping-Board, auf dem Sie alle Ihre Komponenten löten können. Es passt direkt auf den Raspberry Pi, sodass die Abmessungen des Projekts auf ein Minimum beschränkt bleiben.
Ein Satz Widerstände
Verschiedene Farben von 0,2 mm Draht
Sensoren und Module:
- Wasserdichter DS18B20 1-Wire TemperatursensorÖltemperatursensor
- 3-Achsen-Gyro-Beschleunigungsmesser MPU6050Neigungs-/Beschleunigungssensor
- Lichtabhängiger Widerstand (LDR)
MCP3008 - 8-Kanal 10-Bit-ADC mit SPI-Schnittstelle
TFT-SPI-Display (oder jedes andere LCD-Display, das Ihren Anforderungen entspricht)
RGB-LED
Gehäuse:
- Kunststoff-Box
- Raspberry Pi-Gehäuse
Werkzeuge:
- Lötkolben und Lot
- 2,5 mm Schrauben und Distanzstücke
- Wasserdichte Kabelanschlüsse
- Sekundenkleber
- …
Schritt 1: Prototyping
Bevor wir alles dauerhaft machen, werden wir das Projekt auf einem Steckbrett zusammenstellen. Dieser Schritt kann übersprungen werden, wenn Sie absolut sicher sind, dass Sie keine Fehler machen. Das Elektro- / Steckbrett-Schema finden Sie im PDF unten. Bauen Sie die Schaltung genau wie beschrieben zusammen. Stellen Sie sicher, dass Sie nur den 3,3-V-Pin und nicht den 5-V-Pin des RPi verwenden. Auch bevor Sie den Raspberry Pi einschalten, überprüfen Sie Ihre Schaltung. Stellen Sie sicher, dass es keine Shorts gibt!
Schritt 2: Vorbereitung des Raspberry Pi
Als erstes richten wir den Raspberry Pi ein. Der Raspberry Pi ist ein Mini-Computer, der ein eigenes Betriebssystem ausführen kann. Für dieses Projekt ist es verantwortlich für die Verarbeitung von Sensordaten, das Hosten der Website, den Betrieb des Backends und der Datenbank, …
1. Installieren Sie ein benutzerdefiniertes Raspbian-Image
Das bereitgestellte Image enthält bereits die Softwarepakete, die zum Starten dieses Projekts erforderlich sind:
- Apache für das Website-Frontend
- MariaDB für die Datenbank
- PhpMyAdmin, um die Datenbank zu manipulieren
- Benutzerdefinierte Berechtigungen, um Probleme zu vermeiden
Das benutzerdefinierte Bild kann hier heruntergeladen werden.
Eine Anleitung zum Installieren von Images finden Sie hier:
Sobald das Image installiert ist, verbinden Sie den Raspberry Pi mit einem Ethernet-Kabel mit Ihrem PC. Jetzt können Sie sich über einen SSH-Client mit der IP-Adresse 169.254.10.1 verbinden
Es empfiehlt sich, mit dem Befehl passwd sofort ein neues Passwort zu setzen
2. WLAN-AP konfigurieren
Wenn das Projekt abgeschlossen ist, möchten wir uns über WLAN mit dem RPi verbinden können, also verwandeln wir es in einen drahtlosen AP. Eine Anleitung dazu finden Sie hier.
Sie müssen diesem Tutorial nur bis zu Schritt 7 folgen. Schritt 8 ist nicht erforderlich, da wir keine Internetverbindung überbrücken müssen, sondern ein eigenständiges Netzwerk erstellen.
3. Schnittstellen aktivieren
Gehe in die raspi-config
sudo raspi-config
Gehen Sie zu den Schnittstellenoptionen und aktivieren Sie 1-Wire, SPI und I2C und starten Sie den Pi. neu
3. Treiber für das Display einrichten
Anzeige initialisieren
Bearbeiten Sie die Datei /etc/modules
sudo nano /etc/modules
Fügen Sie die folgenden 2 Zeilen hinzu
spi-bcm2835fbtft_device
Bearbeiten Sie nun /etc/modprobe.d/fbtft.conf
sudo nano /etc/modprobe.d/fbtft.conf
Fügen Sie die folgende Zeile hinzu
Optionen fbtft_device name=tm022hdh26 gpios=reset:25, dc:24, led:18 rotieren=90 Geschwindigkeit=80000000 fps=60
Starten Sie den Pi neu. Wenn Sie sehen, dass die Hintergrundbeleuchtung des Displays aufleuchtet, ist alles gut gegangen. Dadurch wird die Anzeige jedes Mal initialisiert, wenn der Pi hochfährt, jedoch wird jetzt nur ein schwarzer Bildschirm angezeigt. Um den Inhalt des Pi auf das Display zu bekommen, müssen wir den Inhalt des Hauptbildschirms auf das kleine LCD kopieren. Dazu verwenden wir einen Dienst namens 'fbcp'.
fbcp-Dienst installieren
sudo apt-get install cmake
git-Klon
cd rpi-fbcp
mkdir-Build
CD-Build/
cmake..
machen
sudo install fbcp /usr/local/bin/fbcp
Jetzt haben wir den Dienst installiert. Da wir jedoch den Pi Headless verwenden, steht kein Bildschirm zum Kopieren von Inhalten zur Verfügung. Um den Pi zur Ausgabe von Bildschirminhalten zu zwingen, bearbeiten Sie /boot/config.txt
sudo nano /boot/config.txt
Suchen und auskommentieren oder folgende Zeilen zu dieser Datei hinzufügen:
hdmi_force_hotplug=1
hdmi_cvt=640 480 60 0 0 0 0
display_rotate=0
hdmi_group=2
hdmi_mode=87
Starten Sie das RPi neu und testen Sie den fbcp-Dienst, indem Sie fbcp in die Konsole eingeben. Jetzt sollten Sie den Inhalt des Bildschirms auf dem LCD sehen.
Ausführen von fbcp beim Start
Bearbeiten Sie /etc/rc.local und fügen Sie die folgende Zeile zwischen der IP-Adresse und der Exit-Zeile hinzu
fbcp&
Jetzt sollte sich das Display jedes Mal einschalten, wenn das RPi hochfährt
Schritt 3: Datenbank
Um Sensordaten zu protokollieren und zu speichern, habe ich meine eigene Datenbank entworfen, die 4 Tabellen enthält. Das EER-Diagramm ist im Bild oben gezeigt.
1. Geräte
Diese Tabelle enthält jeden Sensor. Es beschreibt den Sensornamen, die Beschreibung und die Maßeinheit. Diese Tabelle hat eine 1:n-Beziehung mit den Tabellenaktionen, da der Beschleunigungssensor in meinem Fall verschiedene Aufgaben ausführen kann.
2. Aktionen
In dieser Tabelle werden Aktionen für verschiedene Sensoren gespeichert. Eine Aktion ist immer mit einem bestimmten Sensor verknüpft. Beispiel: Die Aktion 'TEMP' ist mit dem Gerät verknüpft, das die Temperatur misst. Dies wäre der 1-Draht-Temperatursensor.
3. Geschichte
Diese Tabelle enthält alle Sensorprotokolle. Jedes Protokoll hat eine Aktions-ID, einen Wert, einen Zeitstempel und eine Fahrt-ID
4. Fahrten
Diese Tabelle speichert verschiedene Fahrten. Jedes Mal, wenn der Benutzer eine neue Fahrt beginnt, wird ein neuer Eintrag in dieser Tabelle erstellt
Um diese Datenbank auf Ihrem Raspberry Pi zu erhalten, gehen Sie zu meinem GitHub und klonen/laden Sie das Repository herunter. Unter Datenbank finden Sie 2.sql-Dateien. Führen Sie diese in PhpMyAdmin oder MySQL Workbench aus. Jetzt sollte sich die Datenbank auf Ihrem RPi befinden.
Schritt 4: Backend
Wenn Sie es noch nicht getan haben, gehen Sie zu meinem GitHub und klonen/laden Sie das Repository herunter. Unter dem Ordner Backend finden Sie das vollständige Backend für das Projekt.
Der Ordner enthält Klassen zum Auslesen von Sensoren unter /helpers, Dateien zur Kommunikation mit der Datenbank unter /repositories und die Hauptanwendung befindet sich im Root unter dem Namen app.py.
Python-Pakete installieren
Bevor wir versuchen, etwas auszuführen, müssen wir zuerst einige Pakete für Python installieren. Gehen Sie in das Terminal Ihres RPi und geben Sie die folgenden Befehle ein:
pip3 installiere mysql-connector-python
pip3 installflakon-socketio
pip3 install Flask-Cors
pip3 install gevent
pip3 install gevent-websocket
WICHTIGER HINWEIS: Wenn Sie Ihr Mariadb/Mysql-Passwort geändert haben, ändern Sie das Passwort in config.py!
Testen Sie das Backend
Führen Sie app.py mit dem Python3-Interpreter (/usr/bin/python3) aus. Stellen Sie sicher, dass keine Fehler vorliegen.
Ausführen des Backends beim Booten
Bearbeiten Sie motoDash_backend.service und ändern Sie YOURFILEPATH in den Pfad, in dem das Repository gespeichert ist.
Kopieren Sie nun diese Datei nach /etc/systemd/system/
sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.
Jetzt startet das Backend jedes Mal automatisch, wenn das RPi bootet.
Schritt 5: Frontend
Gehen Sie in das GitHub-Repository. Kopieren Sie den Inhalt des Frontend-Verzeichnisses nach /var/www/html.
Dies ist alles, was Sie tun sollten, damit das Frontend funktioniert. Dieser Ordner enthält alle Webseiten, Stylings und Skripte für das Webinterface. Es kommuniziert auch mit dem Backend. Um zu testen, ob alles wie gewünscht funktioniert, stellen Sie sicher, dass Sie mit Ihrem RPi verbunden sind, und geben Sie die IP-Adresse des RPi in einen Browser ein. Sie sollten die Startseite des Webinterface sehen.
Hinweis: Die Website ist responsive, sodass Sie sie sowohl auf Mobilgeräten als auch auf Desktops verwenden können
Schritt 6: Anzeige des Dashboards auf dem Display
Das Frontend hat eine eigene versteckte Webseite, die nur für das kleine Display verwendet wird. Wir werden den Pi automatisch im Vollbildmodus auf diese Website booten lassen.
Stellen Sie sicher, dass das RPi in raspi-config unter Boot-Optionen auf Desktop-Autologin eingestellt ist
sudo raspi-config
Gehen Sie nun in den versteckten Konfigurationsordner und erstellen Sie dort eine neue Datei
cd.config
sudo mkdir -p lxsession/LXDE-pi
sudo nano lxsession/LXDE-pi/autostart
Fügen Sie die folgenden Zeilen in diese Datei ein und speichern Sie
@xscreensaver -no-splash
@xset ist aus
@xset -dpms
@xset s noblank
@chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito
Jetzt sollte der Pi jedes Mal auf diese Webseite booten
Schritt 7: Löten der Elektronik
Nehmen Sie das Breakout-Board und legen Sie Ihre Komponenten strukturiert darauf an. Ich werde nicht auf das Layout eingehen, wie ich die Komponenten darauf gelötet habe, da ich einen ziemlich schlechten Job gemacht habe. Ich habe separate Stiftleisten auf der Platine verwendet, so dass ich nur die Sensoren und Module an den richtigen Pin anschließen musste. Stellen Sie sicher, dass Sie wissen, welcher Pin für was ist!
Einige Tipps beim Löten:
- Verwenden Sie isolierte Drähte, wenn Sie größere Entfernungen überqueren. Das Letzte, was Sie wollen, sind Kurzschlüsse in Ihrem Stromkreis
- Überprüfen Sie nach dem Löten eines Bauteils oder Kabels dessen Durchgang mit einem Multimeter. Kontrollieren Sie auch regelmäßig auf Kurzschlüsse.
- Verwenden Sie nicht zu viel oder zu wenig Lot!
- Wenn Sie nicht wissen, wie man lötet, üben Sie es zuerst auf einem anderen Prototyping-Board. Eine Anleitung zum Löten finden Sie hier.
Löten Sie nun Drähte lang genug an die Sensoren und legen Sie etwas Schrumpffolie um sie, um sicherzustellen, dass nicht alles kurzgeschlossen und sauber ist.
Wenn Sie fertig sind, überprüfen Sie noch einmal auf Kurzschlüsse oder schlechte Verbindungen und überprüfen Sie jede Verbindung mit dem Elektroschema, ob es die richtige Verbindung ist. Sobald Sie sicher sind, dass alles richtig gemacht wurde, setzen Sie das Breakout-Board auf das RPi, schrauben Sie es mit einigen 2,5-mm-Schrauben und Abstandshaltern fest. Schließen Sie die Sensoren an die richtigen Pins an und testen Sie sie alle über die Website.
Schritt 8: Netzteil
Um den Raspberry Pi mit Strom zu versorgen, verwenden wir einen 12V-5V USB-Adapter. Dieser Adapter wird an die Motorradbatterie angeschlossen. Um sicherzustellen, dass das RPi beim Einschalten der Zündung hochfährt, verwenden wir ein Relais. Das Relais schließt den RPi-Stromkreis, wenn es eine Spannung vom Rücklicht erkennt (das Rücklicht schaltet sich immer ein, wenn die Zündung eingeschaltet wird).
Ein ausführlicheres Tutorial dazu finden Sie auf dieser Seite: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -Controller.16921/
Schritt 9: Gehäuse
Displaygehäuse
Für das Display schnappen Sie sich eine Hartplastikbox von etwa der Größe des Displays. Schneiden Sie ein quadratisches Loch in der Größe des Displays und passende Löcher zum Verschrauben des Displays. An der Vorderseite müssen Sie 2 weitere Löcher für die RGB-LED und den LDR bohren.
Ich habe diese Box mit einer Schraube auf einem Smartphone-Halter montiert.
Temperatursensor
Für die Unterbringung des Temperatursensors habe ich eine Ölstandsanzeige 3D gedruckt, die zu meinem Motorrad passt.
Himbeer-Pi
Montieren Sie den Raspberry Pi selbst an einem sicheren Ort im Motorrad, ich habe ihn mit einigen Klettbändern unter einen der Kotflügel gelegt. Und mit einem Gehäuse und etwas Plastik vor Witterungseinflüssen geschützt.
Beschleunigungsmesser
Montieren Sie den Beschleunigungsmesser an einem sicheren Ort, vorzugsweise am Motorradrahmen selbst.
Notiz:
Sie müssen nicht genau das gleiche Gehäuse wie ich haben, Sie können es nach Belieben fertigstellen. Achten Sie nur darauf, dass die elektronischen Komponenten vor Regen und Staub geschützt sind.
Empfohlen:
So installieren Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone.: 6 Schritte
So installieren Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone.: Hallo zusammen! Heute zeige ich Ihnen in diesem Tutorial, wie Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone einfach installieren
Windows 10 auf einem Raspberry Pi zum Laufen bringen – wikiHow
So funktioniert Windows 10 auf einem Raspberry Pi
So richten Sie einen Raspberry Pi ein und verwenden ihn – wikiHow
So richten Sie einen Raspberry Pi ein und verwenden ihn: Für die Leser der Zukunft sind wir im Jahr 2020. Das Jahr, in dem Sie, wenn Sie das Glück haben, gesund zu sein und nicht mit Covid-19 infiziert sind, plötzlich , hat viel mehr Freizeit, als du dir jemals vorgestellt hast. Wie kann ich mich also nicht zu dumm beschäftigen? Oh ja
Einen Raspberry Pi Laptop herstellen – wikiHow
Wie man einen Raspberry Pi Laptop macht: In diesem Instructable zeige ich Ihnen, wie man einen Raspberry Pi Laptop mit einem Touchscreen-Display macht. Ich werde die gesamte Programmierung und Schritt-für-Schritt-Anleitung haben, um diesen einfach zu bedienenden Laptop zu erstellen. Dieses Tutorial zeigt Ihnen, wie Sie die Soft
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50