Inhaltsverzeichnis:

Skate-o-Meter - Gunook
Skate-o-Meter - Gunook

Video: Skate-o-Meter - Gunook

Video: Skate-o-Meter - Gunook
Video: Dual Skate-o-meter 2024, Juli
Anonim
Skate-o-Meter
Skate-o-Meter

Ich bin Student bei Howest Kortrijk. Um den Lektoren, die wir für ein Projekt brauchten, unsere Fähigkeiten zu zeigen, entschied ich mich, einen Kilometerzähler und einen Tachometer für mein Skateboard mit einem RFID-Scanner zu entwickeln. In diesem instructable bin ich goig zu sagen, wie ich dieses Projekt gemacht habe.

Ich bin auf diese Idee gekommen, weil ich gerne skaten und cruisen möchte. Während ich fahre, wäre es praktisch zu sehen, wie viel Entfernung ich zurückgelegt habe und meine Geschwindigkeit.

Denken Sie daran, dass dies ein Prototyp ist.

Schritt 1: Komponenten

Komponenten

Ich habe die folgenden Komponenten verwendet, um dieses Projekt zu erstellen:

  • Skateboard
  • Potentiometer
  • LCD
  • Hall-Effekt-Sensor
  • 10k Ohm Widerstand
  • Himbeer-Pi
  • Arduino Nano
  • Überbrückungskabel (weiblich zu männlich)
  • Überbrückungskabel (Raspberry Pi)
  • Überbrückungskabel (männlich zu männlich)
  • PCB
  • RFID-Scanner
  • RFID-Ausweis
  • Powerbank

Siehe BillOfMaterials für Links und Preise

Schritt 2: Verkabelung

Verdrahtung
Verdrahtung

Die Halle hat 3 Pins: einen VCC, einen GND und einen Ausgang. Die Masse geht an einen GND. Die VCC auf 3,3 V und der Ausgang in diesem Beispiel geht an GPIO 26. Ein 10K Ohm Widerstand zieht den Ausgang hoch.

Ich verwende die serielle Kommunikation über den USB zwischen dem Himbeer-Pi und dem Arduino-Nano, um die Abzeichen zu lesen. Dies ist nicht auf dem Bild, aber erforderlich!

D9 RST (Reset)D10 SDA(SS) (SPI SS)D11 MOSI (SPI MOSI)D12 MISO (SPI MISO)D13 SCK (SPI SCK)GND GND3.3V 3.3V

Schritt 3: Datenbankschema

Datenbankschema
Datenbankschema

Meine Datenbank hat 3 Tabellen:

  • Benutzer
  • Sitzung
  • Daten

Jeder Benutzer kann Daten separat verfolgen. Eine Sitzung enthält Daten, damit Sie wissen, wie schnell Sie bestimmte Punkte während der Sitzung erreicht haben.

Schritt 4: Konfigurieren Sie Arduino Nano

Arduino Nano konfigurieren
Arduino Nano konfigurieren
Arduino Nano konfigurieren
Arduino Nano konfigurieren
Arduino Nano konfigurieren
Arduino Nano konfigurieren

Stecken Sie zuerst Ihr Arduino Nano über das USB-Kabel in Ihren PC. Wählen Sie das richtige Arduino und den richtigen USB-Port zum Hochladen aus.

Als nächstes müssen wir die Bibliothek hinzufügen, die ich zum Lesen des RFID-Abzeichens verwende. Laden Sie 'rfid-master' herunter und gehen Sie zur Skizze, fügen Sie die Bibliothek ein und fügen Sie dann die. ZIP-Bibliothek hinzu. Gehen Sie zu der soeben heruntergeladenen Zip-Datei und verwenden Sie diese, sie wird automatisch installiert. Nachdem Sie meine bearbeitete 'RFID_Read.ino' heruntergeladen haben, drücken Sie Strg + O, fügen Sie gleichzeitig hinzu und gehen Sie zu dieser Datei und öffnen Sie sie.

Wenn Sie alle oben genannten Schritte ausgeführt haben, können Sie die Datei überprüfen. Wenn es beim ersten Mal fehlschlägt, versuchen Sie es einfach noch einmal. Wenn dies erfolgreich ist, können Sie es auf Ihr Arduino hochladen. Mit der Tastenkombination Strg+Umschalt+M können Sie den seriellen Monitor öffnen. Hier können Sie die Datei testen. Wenn der Test erfolgreich ist, können Sie das Arduino ausstecken und an einen USB-Port des Himbeer-Pi anschließen

Schritt 5: Konfigurieren Sie den Raspberry Pi

In diesen Schritten richten wir den Raspberry Pi als Datenbank und Webserver ein.

IN DIESEM BEISPIEL VERWENDE ICH DEN BENUTZER 'me' WENN SIE EINEN ANDEREN BENUTZER VERWENDEN, MÜSSEN SIE DIE KONFIGURATIONSDATEIEN ÄNDERN, BEACHTEN SIE DIES!

1. Erstellen Sie einen Benutzer:

Erstellen Sie eine Variable

pieter@rpipieter:~ $ user=me

Den Benutzer sudo machen und zu allen Gruppen hinzufügen

groups=$(id pi -Gn | sed 's/^pi //g' | sed 's/ /, /g')sudo useradd ${user} -s /bin/bash -m -G ${groups} sudo sed "s/^pi/${user}/" /etc/sudoers.d/010_pi-nopasswd | sudo tee "/etc/sudoers.d/011_${user}-nopasswd" sudo passwd ${user}

Melden Sie sich beim Konto an

pieter@rpipieter:~ $ su - me

Passwort: me@my-rpi:~$

2. Verbinden Sie sich mit dem WLAN

me@rpipieter:~ $ sudo -iroot@rpipieter:~# echo 'Passwort' | wpa_passphrase 'Netzwerkname' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter:~# wpa_cli -i wlan0 reconfigure root@rpipieter:~# logout

Überprüfen Sie, ob das Internet funktioniert

root@rpipieter:~# wget google.com

3. Den Raspberry Pi auf den neuesten Stand bringen und die benötigten Pakete installieren

me@my-rpi:~$ sudo apt update

me@my-rpi:~$ sudo apt upgrade me@rpipieter:~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3 gitme@my-rpi:~$ sudo Neustart -h jetzt

4. Mein Github-Repository klonen

me@rpipieter:~ $ git clone

me@rpipieter:~ $ cd skate-o-meter/skateometer/

5. Erstellen der virtuellen Umgebung

Während Sie diese Befehle ausführen, werden viele Pakete installiert, dies kann einige Zeit dauern.

me@rpipieter:~/skate-o-meter/skateometer $ python3 -m pip install --upgrade pip setuptools wheel virtualenv

me@rpipieter:~/skate-o-meter/skateometer $ python3 -m venv --system-site-packages env (env) me@rpipieter:~/skate-o-meter/skateometer $ python -m pip install mysql- Connector-Python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib pyserial pyjwt RPi. GPIO

6. Datenbank und Benutzer anlegen

Wir verwenden die MySQL-Datenbank

pieter@rpipieter:~/skate-o-meter/skateometer $ cd

pieter@rpipieter:~ $ sudo mysql

Dann kopieren, einfügen

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'som-data'@'localhost';SET PASSWORD FOR 'som-data'@'localhost' = PASSWORD('sensor9810'); Wählen Sie * aus mysql.user; BENUTZER ERSTELLEN 'som-admin'@'localhost' IDENTIFIZIERT VON 'admin9810'; BENUTZER 'som-web'@'localhost' ERSTELLEN, IDENTIFIZIERT VON 'web9810'; BENUTZER 'som-sensor'@'localhost' ERSTELLEN, IDENTIFIZIERT VON 'sensor9810'; DATENBANK ERSTELLEN skateometerdb; GEWÄHLE ALLE PRIVILEGIEN AUF skateometerdb.* an 'som-admin'@'localhost' MIT GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-sensor'@'localhost'; Flush-Privilegien;

Als nächstes fügen wir das vorhandene Datenbankschema mit Beziehungen hinzu.

me@rpipieter:~/skate-o-meter/skateometer $ sudo mysql < sql/skateometerdb_dump-withoutdata.sql

7. Dienstleistungen

Hier kopieren wir unsere Konfigurationsdateien und laden den Ordner neu, damit wir die Dienste aktivieren können

me@rpipieter:~/skate-o-meter/skateometer $ sudo cp conf/som-*.service /etc/systemd/systemme@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl daemon-reload

Jetzt werden wir die Dienste aktivieren, damit diese jedes Mal, wenn wir den Himbeer-Pi starten, automatisch damit gestartet werden.

me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl enable som-flask.service

Symlink /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service erstellt. me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl enable som-data.service Symlink erstellt /etc/systemd/system/multi-user.target.wants/som-data.service → /etc/systemd/ system/som-data.service. me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl starte som-data.service me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl starte som-flask.service

8. NGINX

me@rpipieter:~/skate-o-meter/skateometer $ sudo cp conf/nginx /etc/nginx/sites-available/skateometerme@rpipieter:~/skate-o-meter/skateometer $ sudo rm /etc/nginx/sites -enabled/default me@rpipieter:~/skate-o-meter/skateometer $ sudo ln -s /etc/nginx/sites-available/skateometer /etc/nginx/sites-enabled/skateometerme@rpipieter:~/skate-o -meter/skateometer $ sudo systemctl restart nginx.service

Schritt 6: Gehäuse + Halle

Wohnen + Halle
Wohnen + Halle

Gehäuse

Zuerst machte ich ein Loch in mein Skateboard für das LCD, das Potentiometer und den Summer. Danach habe ich das LCD, das Potentiometer und den Summer auf der Platine gelötet. Dann habe ich einen Jumperdraht für das RPI verwendet, den mit 40 Pins. Ich lege eine Seite in den Himbeer-Pi und die andere Hälfte schneide ich, diese Seite werden wir zum Löten verwenden. In der Datei 'rpi-cable' sehen Sie, wo Sie welchen Draht löten müssen.

Für das Gehäuse habe ich eine alte Curve-Box verwendet, in die ich einige Löcher für ein Ethernetkabel und für den Jumperwire gesetzt habe, um in die Box zu kommen.

Ich halte die Kiste mit einer Schraube unter dem Skateboard. In der Box habe ich alles so angeordnet, dass es passt und habe auch Schrauben und einige Gummis verwendet, um alles an Ort und Stelle zu halten. Dies erleichtert das Herausnehmen von Gegenständen.

Der RFID ist an der Beleuchtung der Box befestigt und wird mit Reißverschlüssen an Ort und Stelle gehalten. Ein Problem, auf das ich gestoßen bin, war, dass es manchmal nicht scannte, aber mit einigen Änderungen funktionierte es.

Hall-Effekt-Sensor

Zuerst habe ich ein Loch in mein Rad gebohrt und einen Magneten hineingesteckt.

Für die Halle werden 3 Jumperdrähte (männlich zu männlich) verwendet, die ich sowohl auf meiner Platine als auch auf der Halle selbst gelötet habe. Ich habe den Hallsensor an meinem LKW mit einigen Zipreifen montiert. Stellen Sie sicher, dass Magnet und Sensor gut ausgerichtet sind, da er sonst den Impuls nicht immer registriert.

Schritt 7: Starten der App

Schritt 1:

Schließen Sie die Himbeere und die Powerbank an.

Schritt 2:

Warten Sie bis das Programm startet, Sie können dies auf dem LCD verfolgen. Sie sehen die IP-Adresse, gehen Sie zu dieser IP-Adresse.

Schritt 3:

Erstellen Sie einen Benutzer, indem Sie sich registrieren. Sie müssen den Ausweis scannen, um Ihre UID des Ausweises auf dem LCD zu sehen.

Schritt 4:

Wenn Sie einen Benutzer erstellt haben, können Sie Ihren Ausweis scannen und eine Sitzung wird gestartet.

Schritt 5:

Gehen Sie eine Kreuzfahrt durch die Gegend

Schritt 6:

Scannen Sie das Abzeichen erneut, um die Sitzung zu beenden

Schritt 7:

Melden Sie sich an, um Ihre Sitzung und detaillierte Daten der Sitzung anzuzeigen