Inhaltsverzeichnis:
- Schritt 1: Komponenten
- Schritt 2: Verkabelung
- Schritt 3: Datenbankschema
- Schritt 4: Konfigurieren Sie Arduino Nano
- Schritt 5: Konfigurieren Sie den Raspberry Pi
- Schritt 6: Gehäuse + Halle
- Gehäuse
- Hall-Effekt-Sensor
- Schritt 7: Starten der App
Video: Skate-o-Meter - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
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
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
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
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
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