Πίνακας περιεχομένων:

Skate-o-Meter: 7 βήματα (με εικόνες)
Skate-o-Meter: 7 βήματα (με εικόνες)

Βίντεο: Skate-o-Meter: 7 βήματα (με εικόνες)

Βίντεο: Skate-o-Meter: 7 βήματα (με εικόνες)
Βίντεο: Διάσημοι που ΥΠΟΣΤΗΡΙΖΟΥΝ Το 🏳️‍🌈 (Part 2) 2024, Ιούλιος
Anonim
Skate-o-Meter
Skate-o-Meter

Είμαι μαθητής στο Howest Kortrijk. Για να δείξουμε τις ικανότητές μας στους διδάσκοντες που χρειαζόμασταν για την κατασκευή ενός έργου, επέλεξα να δημιουργήσω ένα οδόμετρο και ταχύμετρο για το skateboard μου με έναν σαρωτή RFID. Σε αυτό το διδακτικό θα ήθελα να πω πώς έφτιαξα αυτό το έργο.

Μου ήρθε αυτή η ιδέα επειδή μου αρέσει να κάνω πατινάζ και να κάνω κρουαζιέρα. Ενώ ταξιδεύω θα ήταν βολικό να δω πόση απόσταση έχω διανύσει και να δω την ταχύτητά μου.

Λάβετε υπόψη ότι αυτό είναι ένα πρωτότυπο.

Βήμα 1: Στοιχεία

Συστατικά

Χρησιμοποίησα τα ακόλουθα στοιχεία για να δημιουργήσω αυτό το έργο:

  • Skateboard
  • Ποτενσιόμετρο
  • οθόνη υγρού κρυστάλλου
  • Αισθητήρας εφέ Hall
  • Αντίσταση 10k Ohm
  • Βατόμουρο πι
  • Arduino Nano
  • Καλώδιο βραχυκυκλωτήρα (θηλυκό σε αρσενικό)
  • Jumper wire (Raspberry Pi)
  • Καλώδιο άλτη (αρσενικό σε αρσενικό)
  • PCB
  • Σαρωτής RFID
  • Σήμα RFID
  • ΑΠΟΘΗΚΗ ΕΝΕΡΓΕΙΑΣ

Ανατρέξτε στο BillOfMaterials για συνδέσμους και τιμή

Βήμα 2: Καλωδίωση

Καλωδίωση
Καλωδίωση

Η αίθουσα έχει 3 ακίδες: ένα VCC, ένα GND και μια έξοδο. Το έδαφος πηγαίνει σε ένα GND. Το VCC στα 3.3V και η έξοδος σε αυτό το παράδειγμα πηγαίνει στο GPIO 26. Μια αντίσταση 10K Ohm τραβάει την έξοδο ψηλά.

Χρησιμοποιώ σειριακή επικοινωνία μέσω USB μεταξύ του raspberry pi και του arduino nano για να διαβάσω τα σήματα. Αυτό δεν φαίνεται στην εικόνα, αλλά απαιτείται!

D9 RST (Επαναφορά) D10 SDA (SS) (SPI SS) D11 MOSI (SPI MOSI) D12 MISO (SPI MISO) D13 SCK (SPI SCK) GND GND3.3V 3.3V

Βήμα 3: Σχέδιο βάσης δεδομένων

Σχέδιο βάσης δεδομένων
Σχέδιο βάσης δεδομένων

Η βάση δεδομένων μου έχει 3 πίνακες:

  • Χρήστες
  • Συνεδρία
  • Δεδομένα

Κάθε χρήστης μπορεί να παρακολουθεί τα δεδομένα χωριστά. Μια συνεδρία έχει δεδομένα, ώστε να γνωρίζετε πόσο γρήγορα προχωρήσατε σε ορισμένα σημεία ενώ η συνεδρία ήταν σε εξέλιξη.

Βήμα 4: Διαμόρφωση Arduino Nano

Διαμορφώστε το Arduino Nano
Διαμορφώστε το Arduino Nano
Διαμορφώστε το Arduino Nano
Διαμορφώστε το Arduino Nano
Διαμορφώστε το Arduino Nano
Διαμορφώστε το Arduino Nano

Βάλτε πρώτα το arduino nano στον υπολογιστή σας μέσω του καλωδίου usb. Επιλέξτε το σωστό arduino και τη σωστή θύρα usb για μεταφόρτωση.

Στη συνέχεια πρέπει να προσθέσουμε τη βιβλιοθήκη που χρησιμοποιώ για την ανάγνωση του σήματος RFID. Κατεβάστε το 'rfid-master' και μεταβείτε στο σκίτσο, συμπεριλάβετε τη βιβλιοθήκη και, στη συνέχεια, προσθέστε βιβλιοθήκη. ZIP. Μεταβείτε στο zip που μόλις κατεβάσατε και χρησιμοποιήστε αυτό, θα εγκατασταθεί αυτόματα. Μετά από αυτό, κατεβάστε το επεξεργασμένο 'RFID_Read.ino' πατήστε ctrl + O προσθέστε την ίδια ώρα και μεταβείτε σε αυτό το αρχείο και ανοίξτε το.

Εάν κάνατε όλα αυτά τα βήματα παραπάνω, μπορείτε να επαληθεύσετε το αρχείο. Εάν παρουσιάσει σφάλματα για πρώτη φορά, απλώς δοκιμάστε το ξανά. Εάν αυτό είναι επιτυχές, μπορείτε να το ανεβάσετε στο arduino σας. Χρησιμοποιώντας τη συντόμευση ctrl+shift+m μπορείτε να ανοίξετε τη σειριακή οθόνη. Μπορείτε να δοκιμάσετε το αρχείο εδώ. Εάν η δοκιμή είναι επιτυχής, μπορείτε να αποσυνδέσετε το arduino και να το συνδέσετε σε μια θύρα usb του raspberry pi

Βήμα 5: Διαμορφώστε το Raspberry Pi

Σε αυτά τα βήματα θα ρυθμίσουμε το raspberry pi ως βάση δεδομένων και διακομιστή ιστού.

ΣΕ ΑΥΤΟ ΤΟ ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΙΜΟΠΟΙΩ ΤΟ ΧΡΗΣΤΗ «εγώ» ΕΑΝ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ ΑΛΛΟ ΧΡΗΣΤΗ ΠΟΥ ΧΡΕΙΑΖΕΤΑΙ ΝΑ ΑΛΛΑΞΕΤΕ ΑΡΧΕΙΑ ΔΙΑΜΟΡΦΩΣΗΣ, ΚΡΑΤΗΣΤΕ ΤΟ ΣΚΕΗ!

1. Δημιουργήστε έναν χρήστη:

Δημιουργήστε μια μεταβλητή

pieter@rpipieter: ~ $ user = εγώ

Κάντε το χρήστη sudo και προσθέστε σε όλες τις ομάδες

ομάδες = $ (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}

Συνδεθείτε στο λογαριασμό

pieter@rpipieter: ~ $ su - εγώ

Κωδικός πρόσβασης: me@my-rpi: ~ $

2. Συνδεθείτε με το WiFi

me@rpipieter: ~ $ sudo -iroot@rpipieter: ~# echo 'Password' | wpa_passphrase 'Networkname' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter:# wpa_cli -i wlan0 αναδιαμόρφωση root@rpipieter: ~# αποσύνδεση

Ελέγξτε αν λειτουργεί το διαδίκτυο

root@rpipieter: ~# wget google.com

3. Ενημέρωση του raspberry pi και εγκατάσταση των απαραίτητων πακέτων

me@my-rpi: su $ 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 επανεκκίνηση -h τώρα

4. Κλωνοποίηση του αποθετηρίου μου github

me@rpipieter: ~ $ git clone

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

5. Κάνοντας το εικονικό περιβάλλον

Ενώ κάνετε αυτές τις εντολές, θα εγκατασταθούν πολλά πακέτα, αυτό μπορεί να διαρκέσει λίγο.

me@rpipieter: ~/skate-o-meter/skateometer $ python 3 -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. Δημιουργία βάσης δεδομένων και χρηστών

Χρησιμοποιούμε βάση δεδομένων mysql

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

pieter@rpipieter: su $ sudo mysql

Στη συνέχεια, αντιγράψτε, επικολλήστε αυτό

GRANT SELECT, INSERT, UPDATE, DELETE ON *. * TO 'som-data'@'localhost'; SET PASSWORD FOR 'som-data'@'localhost' = PASSWORD ('sensor9810'); επιλέξτε * από το mysql.user; ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ 'som-admin'@'localhost' IDENTIFIED BY 'admin9810'; ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ 'som-web'@'localhost' IDENTIFIED BY 'web9810'? ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ 'som-sensor'@'localhost' IDENTIFIED BY 'sensor9810'; ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ skateometerdb; ΧΟΡΗΓΗΣΗ ΟΛΩΝ ΤΩΝ ΠΡΟΤΙΜΙΣΜΑΤΩΝ ΣΤΟ skateometerdb.* Στο 'som-admin'@'localhost' WITH GRANT OPTION. GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* ΣΤΟ 'som-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-sensor'@'localhost'? ΠΡΟΣΦΟΡΕΣ ΠΡΟΣΦΟΡΑΣ;

Στη συνέχεια, θα προσθέσουμε το υπάρχον σχήμα βάσης δεδομένων με σχέσεις.

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

7. Υπηρεσίες

Εδώ αντιγράφουμε τα αρχεία διαμόρφωσής μας και φορτώνουμε ξανά το φάκελο, ώστε να μπορέσουμε να ενεργοποιήσουμε τις υπηρεσίες

me@rpipieter:/skate-o-meter/skateometer $ sudo cp conf/som-*. service/etc/systemd/systemme@rpipieter:/skate-o-meter/skateometer $ sudo systemctl δαίμονας-επαναφόρτωση

Τώρα θα ενεργοποιήσουμε τις υπηρεσίες έτσι ώστε κάθε φορά που ξεκινάμε το raspberry pi να ξεκινούν αυτόματα με αυτό.

me@rpipieter:/skate-o-meter/skateometer $ sudo systemctl ενεργοποίηση som-flask.service

Δημιουργήθηκε symlink /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service. me@rpipieter:/skate-o-meter/skateometer $ sudo systemctl ενεργοποίηση som-data.service Δημιουργήθηκε symlink /etc/systemd/system/multi-user.target.wants/som-data.service →/etc/systemd/ system/som-data.service. me@rpipieter:/skate-o-meter/skateometer $ sudo systemctl start som-data.service me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl start 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 -ενεργοποιημένο/προεπιλεγμένο 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 επανεκκίνηση nginx.service

Βήμα 6: Στέγαση + αίθουσα

Στέγαση + αίθουσα
Στέγαση + αίθουσα

Στέγαση

Πρώτα έκανα μια τρύπα στο skateboard μου για την οθόνη LCD, το ποτενσιόμετρο και το βομβητή. Μετά από αυτό, κόλλησα την οθόνη LCD, το ποτενσιόμετρο και το βομβητή στο PCB. Στη συνέχεια χρησιμοποίησα ένα jumperwire για το RPI, αυτό με 40 ακίδες. Βάζω τη μία πλευρά στο πιπέρι βατόμουρου και την άλλη μισή την κόβω, αυτή την πλευρά που πρόκειται να χρησιμοποιήσουμε για συγκόλληση. Στο αρχείο 'rpi-cable' μπορείτε να δείτε πού πρέπει να κολλήσετε ποιο σύρμα.

Για το περίβλημα χρησιμοποίησα ένα παλιό κουρτίνα, έβαλα μερικές τρύπες για μια καλωδίωση και για να μπει το jumperwire στο κουτί.

Κρατάω το κουτί κάτω από το skateboard με κάποια βίδα. Μέσα στο κουτί τακτοποίησα τα πάντα, ώστε να ταιριάζει και επίσης χρησιμοποίησα βίδες και μερικά λάστιχα για να κρατήσω τα πάντα στη θέση τους. Αυτό διευκολύνει την αφαίρεση των αντικειμένων.

Το RFID είναι τοποθετημένο στο φως του κουτιού και κρατιέται στη θέση του με ziptires, ένα πρόβλημα που συνάντησα ήταν ότι μερικές φορές δεν σάρωσε, αλλά με κάποιες αλλαγές το έκανα να λειτουργήσει.

Αισθητήρας εφέ Hall

Πρώτα άνοιξα μια τρύπα στον τροχό μου και έβαλα έναν μαγνήτη σε αυτόν.

Για την αίθουσα χρησιμοποιούνται 3 jumperwires (αρσενικά σε αρσενικά) τα έκανα συγκόλληση στο PCB μου, καθώς και στην ίδια την αίθουσα. Τοποθέτησα τον αισθητήρα του χώρου στο φορτηγό μου με μερικά φερμουάρ. Βεβαιωθείτε ότι ο μαγνήτης και ο αισθητήρας είναι ευθυγραμμισμένοι καλά, διαφορετικά δεν θα καταγράφει πάντα τον παλμό.

Βήμα 7: Εκκίνηση της εφαρμογής

Βήμα 1:

Συνδέστε το βατόμουρο και το power bank.

Βήμα 2:

Περιμένετε μέχρι να ξεκινήσει το πρόγραμμα, μπορείτε να το ακολουθήσετε στην οθόνη LCD. Θα δείτε τη διεύθυνση IP, μεταβείτε σε αυτήν τη διεύθυνση IP.

Βήμα 3:

Δημιουργήστε έναν χρήστη, μπορείτε να το κάνετε κάνοντας εγγραφή. Πρέπει να σαρώσετε το σήμα για να δείτε το UID του σήματος στην οθόνη LCD.

Βήμα 4:

Εάν δημιουργήσατε έναν χρήστη, μπορείτε να σαρώσετε το σήμα σας και θα ξεκινήσει μια περίοδος σύνδεσης.

Βήμα 5:

Πηγαίνετε κρουαζιέρα

Βήμα 6:

Σαρώστε ξανά το σήμα για να σταματήσετε τη συνεδρία

Βήμα 7:

Συνδεθείτε για να δείτε τη συνεδρία σας και λεπτομερή δεδομένα από τη συνεδρία

Συνιστάται: