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

Πίνακας ελέγχου μοτοσικλέτας Raspberry Pi: 9 βήματα (με εικόνες)
Πίνακας ελέγχου μοτοσικλέτας Raspberry Pi: 9 βήματα (με εικόνες)

Βίντεο: Πίνακας ελέγχου μοτοσικλέτας Raspberry Pi: 9 βήματα (με εικόνες)

Βίντεο: Πίνακας ελέγχου μοτοσικλέτας Raspberry Pi: 9 βήματα (με εικόνες)
Βίντεο: BellaTube Live with Jamie & Nicole 2024, Ιούλιος
Anonim
Πίνακας ελέγχου μοτοσικλέτας Raspberry Pi
Πίνακας ελέγχου μοτοσικλέτας Raspberry Pi

Ως φοιτητής τεχνολογίας πολυμέσων & επικοινωνιών στο Howest Kortrijk, έπρεπε να κάνω το δικό μου έργο IoT. Αυτό θα συνδυάσει όλες τις ενότητες που ακολουθήθηκαν τον πρώτο χρόνο σε ένα μεγάλο έργο. Επειδή οδηγώ πολύ τη μοτοσικλέτα μου στον ελεύθερο χρόνο μου, αποφάσισα να χρησιμοποιήσω τις αποκτηθείσες δεξιότητές μου στο MCT tu build κάτι για τη μοτοσικλέτα μου: Ένα έξυπνο ταμπλό.

Το MotoDash είναι ένα ταμπλό Raspberry Pi που έχει σχεδιαστεί για φανατικούς μοτοσικλετιστές που δίνει στον αναβάτη τη δυνατότητα να παρακολουθεί τις επιδόσεις τους.

Ποια είναι τα χαρακτηριστικά αυτού του πίνακα ελέγχου;

  • Γωνία κλίσης ρεύματος προβολής
  • Προβολή τρέχουσας επιτάχυνσης
  • Δυνατότητα παρακολούθησης της θερμοκρασίας λαδιού
  • Αυτόματη εναλλαγή σε σκοτεινό θέμα όταν οδηγείτε στο σκοτάδι
  • Καταγράψτε τα δεδομένα των διαδρομών σας και δείτε τα δικά σας στατιστικά

Προμήθειες

Κύρια υπολογιστική μονάδα:

Raspberry Pi Αυτός είναι ο κύριος ελεγκτής του συστήματος

ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ:

  • Φορτιστής USB για μοτοσικλέτα 12V-5V Κύρια τροφοδοσία ρεύματος για το RPi
  • 4 Pin Fused Relay 12V Διακόπτης για ενεργοποίηση/απενεργοποίηση του κυκλώματος τροφοδοσίας του RPi
  • Breadboard με καλώδια jumper (προαιρετικά) Για δοκιμές και πρωτότυπα
  • Ένα σύνολο αντιστάσεων

    Διαφορετικά χρώματα καλωδίου 0,2mm

  • Breakout Pi plusΑυτός είναι ένας πίνακας πρωτοτύπων όπου μπορείτε να κολλήσετε όλα τα εξαρτήματά σας. Είναι φτιαγμένο για να ταιριάζει απευθείας πάνω στο Raspberry Pi, οπότε οι διαστάσεις του έργου παραμένουν στο ελάχιστο.

Αισθητήρες και μονάδες:

  • Αδιάβροχος αισθητήρας θερμοκρασίας 1-καλωδίου DS18B20 Αισθητήρας θερμοκρασίας λαδιού
  • 3 Axe Gyro Accelerometer MPU6050Tens/accel sensor
  • Αντίσταση εξαρτώμενη από το φως (LDR)
  • MCP3008-ADC 8 καναλιών 10-bit με διεπαφή SPI

    Οθόνη TFT SPI (ή οποιαδήποτε άλλη οθόνη LCD που ταιριάζει στις ανάγκες σας)

    RGB LED

Θήκη:

  • Πλαστικό κουτί
  • Θήκη Raspberry pi

Εργαλεία:

  • Συγκολλητικό σίδερο και συγκόλληση
  • Βίδες και αποστάτες 2,5 χιλιοστών
  • Αδιάβροχοι σύνδεσμοι καλωδίων
  • Υπερκόλλα

Βήμα 1: Πρωτοτυπία

Πρωτοτυπία
Πρωτοτυπία
Πρωτοτυπία
Πρωτοτυπία

Πριν τα κάνουμε όλα μόνιμα, θα βάλουμε μαζί το έργο σε μια σανίδα ψωμιού. Αυτό το βήμα μπορεί να παραλειφθεί εάν είστε απολύτως σίγουροι ότι δεν θα κάνετε λάθη. Το σχήμα ηλεκτρικού/ψωμιού μπορεί να βρεθεί στο παρακάτω PDF. Συνδέστε το κύκλωμα ακριβώς όπως περιγράφεται. Βεβαιωθείτε ότι χρησιμοποιείτε μόνο τον πείρο 3.3V και όχι τον ακροδέκτη 5V στο RPi. Επίσης, πριν ενεργοποιήσετε το raspberry Pi, ελέγξτε ξανά το κύκλωμά σας. Βεβαιωθείτε ότι δεν υπάρχουν σορτς!

Βήμα 2: Προετοιμασία του Raspberry Pi

Προετοιμασία του Raspberry Pi
Προετοιμασία του Raspberry Pi

Πρώτα απ 'όλα, πρόκειται να δημιουργήσουμε το Raspberry Pi. Το Raspberry Pi είναι ένας μίνι υπολογιστής ικανός να τρέχει το δικό του λειτουργικό σύστημα. Για αυτό το έργο, είναι υπεύθυνο για την επεξεργασία των sensordata, τη φιλοξενία του ιστότοπου, τη λειτουργία του backend και της βάσης δεδομένων,…

1. Εγκαταστήστε προσαρμοσμένη Raspbian Image

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

  • Apache για τον ιστότοπο frontend
  • MariaDB για τη βάση δεδομένων
  • PhpMyAdmin για χειρισμό της βάσης δεδομένων
  • Προσαρμοσμένα δικαιώματα για την αποφυγή προβλημάτων

Μπορείτε να κατεβάσετε την προσαρμοσμένη εικόνα από εδώ.

Ένα σεμινάριο για την εγκατάσταση εικόνων μπορείτε να βρείτε εδώ:

Μόλις εγκατασταθεί η εικόνα, συνδέστε το Raspberry Pi στον υπολογιστή σας με ένα καλώδιο ethernet. Τώρα μπορείτε να χρησιμοποιήσετε έναν πελάτη SSH για να συνδεθείτε σε αυτόν στη διεύθυνση IP 169.254.10.1

Είναι καλή πρακτική να ορίσετε αμέσως έναν νέο κωδικό πρόσβασης χρησιμοποιώντας την εντολή passwd

2. Διαμόρφωση ασύρματου AP

Όταν ολοκληρωθεί το έργο, θέλουμε να μπορούμε να συνδεθούμε στο RPi μέσω wifi, οπότε ας το μετατρέψουμε σε ασύρματο AP. Ένα σεμινάριο για αυτό μπορείτε να βρείτε εδώ.

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

3. Ενεργοποίηση διεπαφών

Μεταβείτε στο raspi-config

sudo raspi-config

Μεταβείτε στις επιλογές διασύνδεσης και ενεργοποιήστε το 1-wire, SPI και I2C και επανεκκινήστε το Pi

3. Ρύθμιση προγραμμάτων οδήγησης για την οθόνη

Αρχικοποίηση της οθόνης

Επεξεργαστείτε το αρχείο /etc /modules

sudo nano /etc /modules

Προσθέστε τις ακόλουθες 2 γραμμές

spi-bcm2835fbtft_device

Τώρα επεξεργαστείτε το /etc/modprobe.d/fbtft.conf

sudo nano /etc/modprobe.d/fbtft.conf

Προσθέστε την ακόλουθη γραμμή

επιλογές fbtft_device name = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 rotate = 90 speed = 80000000 fps = 60

Επανεκκινήστε το Pi. Αν δείτε ότι ο οπίσθιος φωτισμός της οθόνης ανάβει, όλα έχουν πάει καλά. Αυτό θα ενεργοποιήσει την οθόνη κάθε φορά που ξεκινά το Pi, ωστόσο τώρα θα εμφανίζει μόνο μια μαύρη οθόνη. Για να εμφανιστούν τα περιεχόμενα του Pi στην οθόνη, πρέπει να αντιγράψουμε τα περιεχόμενα της κύριας οθόνης στη μικρή οθόνη LCD. Θα χρησιμοποιήσουμε μια υπηρεσία που ονομάζεται "fbcp" για αυτό.

Εγκατάσταση υπηρεσίας fbcp

sudo apt-get install cmake

git κλώνος

cd rpi-fbcp

mkdir χτίζω

cd build/

cmake..

φτιαχνω, κανω

sudo install fbcp/usr/local/bin/fbcp

Τώρα έχουμε εγκαταστήσει την υπηρεσία. Ωστόσο, δεδομένου ότι χρησιμοποιούμε το Pi χωρίς ακέφαλο, δεν υπάρχει διαθέσιμη οθόνη για την αντιγραφή περιεχομένου. Για να αναγκάσετε το Pi να εξάγει περιεχόμενο οθόνης, επεξεργαστείτε /boot/config.txt

sudo nano /boot/config.txt

Βρείτε και σχολιάστε ή προσθέστε τις ακόλουθες γραμμές σε αυτό το αρχείο:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

Επανεκκινήστε το RPi και δοκιμάστε την υπηρεσία fbcp πληκτρολογώντας fbcp στην κονσόλα. Τώρα θα πρέπει να δείτε τα περιεχόμενα της οθόνης στην οθόνη LCD.

Εκτέλεση fbcp κατά την εκκίνηση

Επεξεργαστείτε το /etc/rc.local και προσθέστε την ακόλουθη γραμμή μεταξύ της διεύθυνσης IP και της γραμμής εξόδου

fbcp &

Τώρα η οθόνη πρέπει να ενεργοποιείται κάθε φορά που ξεκινάει το RPi

Βήμα 3: Βάση δεδομένων

Βάση δεδομένων
Βάση δεδομένων

Για να καταγράψω και να αποθηκεύσω sensordata έχω σχεδιάσει τη δική μου βάση δεδομένων που περιέχει 4 πίνακες. Το διάγραμμα EER φαίνεται στην παραπάνω εικόνα.

1. Συσκευές

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

2. Ενέργειες

Αυτός ο πίνακας αποθηκεύει ενέργειες για διαφορετικούς αισθητήρες. Μια ενέργεια συνδέεται πάντα με έναν συγκεκριμένο αισθητήρα. Για παράδειγμα: η ενέργεια "TEMP" συνδέεται με τη συσκευή που μετρά τη θερμοκρασία. Αυτός θα ήταν ο αισθητήρας θερμοκρασίας 1 καλωδίου.

3. Ιστορία

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

4. Βόλτες

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

Για να αποκτήσετε αυτήν τη βάση δεδομένων στο Raspberry Pi, μεταβείτε στο GitHub μου και κάντε κλωνοποίηση/λήψη του χώρου αποθήκευσης. Στη βάση δεδομένων θα βρείτε 2 αρχεία.sql. Εκτελέστε αυτά στον πάγκο εργασίας PhpMyAdmin ή MySQL. Τώρα η βάση δεδομένων θα πρέπει να βρίσκεται στο RPi σας.

Βήμα 4: Backend

Εάν δεν το έχετε κάνει ήδη, μεταβείτε στο GitHub και κλωνοποιήστε/κατεβάστε το αποθετήριο. Κάτω από το φάκελο Backend θα βρείτε το πλήρες backend για το έργο.

Ο φάκελος περιέχει κλάσεις για ανάγνωση αισθητήρων κάτω από /βοηθούς, αρχεία για επικοινωνία με τη βάση δεδομένων κάτω από /αποθετήρια και η κύρια εφαρμογή βρίσκεται στη ρίζα με το όνομα app.py.

Εγκατάσταση πακέτων Python

Πριν προσπαθήσουμε να εκτελέσουμε οτιδήποτε, πρέπει πρώτα να εγκαταστήσουμε κάποια πακέτα για python. Μεταβείτε στο τερματικό του RPi και πληκτρολογήστε τις ακόλουθες εντολές:

pip3 εγκαταστήστε mysql-connector-python

pip3 install flask-socketio

pip3 εγκαταστήστε φιάλη-κορμούς

pip3 εγκατάσταση gevent

pip3 εγκαταστήστε το gevent-websocket

ΣΗΜΑΝΤΙΚΗ ΣΗΜΕΙΩΣΗ: αν έχετε αλλάξει τον κωδικό σας Mariadb/Mysql, αλλάξτε τον κωδικό πρόσβασης στο config.py!

Δοκιμάστε το backend

Εκτελέστε το app.py χρησιμοποιώντας τον διερμηνέα python3 (/usr/bin/python3). Βεβαιωθείτε ότι δεν υπάρχουν σφάλματα.

Εκτέλεση του backend στην εκκίνηση

Επεξεργαστείτε το motoDash_backend.service και αλλάξτε το YOURFILEPATH στη διαδρομή όπου αποθηκεύεται το αποθετήριο.

Τώρα αντιγράψτε αυτό το αρχείο στο/etc/systemd/system/

sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.

Τώρα το backend ξεκινά αυτόματα κάθε φορά που ξεκινά το RPi.

Βήμα 5: Frontend

Frontend
Frontend
Frontend
Frontend

Μεταβείτε στο GitHub Repo. Αντιγράψτε τα περιεχόμενα του καταλόγου Frontend στο/var/www/html.

Αυτό είναι το μόνο που πρέπει να κάνετε για να λειτουργήσει το frontend. Αυτός ο φάκελος περιέχει όλες τις ιστοσελίδες, το στυλ και τα σενάρια για τη διεπαφή ιστού. Επίσης επικοινωνεί με το backend. Για να ελέγξετε αν όλα λειτουργούν όπως πρέπει, βεβαιωθείτε ότι είστε συνδεδεμένοι στο RPi και πληκτρολογήστε τη διεύθυνση IP του RPi σε ένα πρόγραμμα περιήγησης. Θα πρέπει να δείτε την αρχική σελίδα της διεπαφής ιστού.

Σημείωση: Ο ιστότοπος είναι αποκριτικός, επομένως μπορείτε να τον χρησιμοποιήσετε τόσο για κινητά όσο και για επιτραπέζιους υπολογιστές

Βήμα 6: Εμφάνιση του Πίνακα ελέγχου στην οθόνη

Εμφάνιση του Πίνακα ελέγχου στην οθόνη
Εμφάνιση του Πίνακα ελέγχου στην οθόνη

Το frontend έχει τη δική του κρυφή ιστοσελίδα που χρησιμοποιείται μόνο για τη μικρή οθόνη. Θα κάνουμε την εκκίνηση Pi αυτόματα σε αυτόν τον ιστότοπο σε λειτουργία πλήρους οθόνης.

Βεβαιωθείτε ότι το RPi έχει οριστεί σε αυτόματη σύνδεση σε επιτραπέζιους υπολογιστές με τις επιλογές εκκίνησης του raspi-config

sudo raspi-config

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

cd. διαμόρφωση

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Προσθέστε τις ακόλουθες γραμμές σε αυτό το αρχείο και αποθηκεύστε

@xscreensaver -όχι -παφλασμός

@xset s off

@xset -dpms

@xset s noblank

@chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito

Τώρα το Pi πρέπει να ξεκινά κάθε φορά σε αυτήν την ιστοσελίδα

Βήμα 7: Συγκόλληση των ηλεκτρονικών

Συγκόλληση των Ηλεκτρονικών
Συγκόλληση των Ηλεκτρονικών
Συγκόλληση των Ηλεκτρονικών
Συγκόλληση των Ηλεκτρονικών
Συγκόλληση των Ηλεκτρονικών
Συγκόλληση των Ηλεκτρονικών
Συγκόλληση των Ηλεκτρονικών
Συγκόλληση των Ηλεκτρονικών

Πάρτε τον πίνακα ξεμπλοκαρίσματος και απλώστε τα στοιχεία σας πάνω του με δομημένο τρόπο. Δεν θα συζητήσω τη διάταξη για το πώς κόλλησα τα εξαρτήματα σε αυτό, καθώς έκανα μια πολύ κακή δουλειά σε αυτό. Χρησιμοποίησα ξεχωριστές κεφαλίδες καρφιτσών στον πίνακα, έτσι ώστε να χρειαστεί να συνδέσω μόνο τους αισθητήρες και τις μονάδες στο δεξιό πείρο. Βεβαιωθείτε ότι γνωρίζετε ποια καρφίτσα είναι για τι!

Μερικές συμβουλές κατά τη συγκόλληση:

  • Χρησιμοποιήστε μονωμένα καλώδια όταν διασχίζετε μεγαλύτερες αποστάσεις. Το τελευταίο πράγμα που θέλετε είναι τα σορτς στο κύκλωμά σας
  • Αφού συγκολλήσετε ένα εξάρτημα ή σύρμα, ελέγξτε τη συνέχεια του με ένα πολύμετρο. Επίσης ελέγχετε τακτικά για βραχυκυκλώματα.
  • Μην χρησιμοποιείτε πολύ ή πολύ λίγη συγκόλληση!
  • Εάν δεν ξέρετε πώς να κολλήσετε, εξασκηθείτε πρώτα σε έναν άλλο πίνακα πρωτοτύπων. Ένα σεμινάριο για τη συγκόλληση μπορείτε να βρείτε εδώ.

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

Όταν τελειώσετε, ελέγξτε ξανά για τυχόν σορτς ή κακές συνδέσεις και ελέγξτε κάθε σύνδεση με το ηλεκτρικό σχήμα εάν είναι η σωστή σύνδεση. Μόλις είστε βέβαιοι ότι όλα έχουν γίνει σωστά, προχωρήστε και βάλτε την πλακέτα ξεμπλοκαρίσματος στο RPi, βιδώστε το τελείως με βίδες 2,5mm και στάσεις. Συνδέστε τους αισθητήρες στις σωστές ακίδες και δοκιμάστε τους όλους χρησιμοποιώντας τον ιστότοπο.

Βήμα 8: Τροφοδοσία

Για να τροφοδοτήσουμε το Raspberry Pi, θα χρησιμοποιήσουμε έναν προσαρμογέα USB 12V-5V. Αυτός ο προσαρμογέας θα συνδεθεί με την μπαταρία μοτοσικλέτας. Για να βεβαιωθείτε ότι το RPi ενεργοποιείται όταν ο διακόπτης ανάφλεξης είναι ενεργοποιημένος, θα χρησιμοποιήσουμε ένα ρελέ. Το ρελέ θα κλείσει το κύκλωμα ισχύος RPi όταν ανιχνεύσει τάση από το πίσω φως (το πίσω φως ανάβει πάντα κατά την ενεργοποίηση της ανάφλεξης).

Για ένα πιο λεπτομερές σεμινάριο σχετικά με αυτό, ανατρέξτε σε αυτήν τη σελίδα: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -ελεγκτές.16921/

Βήμα 9: Στέγαση

Στέγαση
Στέγαση
Στέγαση
Στέγαση
Στέγαση
Στέγαση

Οθόνη κατοικίας

Για την οθόνη, πιάστε ένα σκληρό πλαστικό κουτί από το μέγεθος της οθόνης. Κόψτε μια τετράγωνη τρύπα σε αυτήν όσο η οθόνη και αντίστοιχες τρύπες για να βιδώσετε την οθόνη. Στο μπροστινό μέρος πρέπει να ανοίξετε 2 ακόμη οπές για το LED RGB και το LDR.

Τοποθέτησα αυτό το κουτί πάνω από μια θήκη smartphone χρησιμοποιώντας ένα μπουλόνι.

Αισθητήρας θερμοκρασίας

Για τη στέγαση του αισθητήρα θερμοκρασίας, εκτύπωσα 3D ένα λιπαντικό που ταιριάζει στη μοτοσικλέτα μου.

Raspberry Pi

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

Επιταχυνσιόμετρο

Τοποθετήστε το επιταχυνσιόμετρο σε ασφαλές μέρος, κατά προτίμηση στο ίδιο το πλαίσιο μοτοσικλέτας.

Σημείωση:

Δεν χρειάζεται να έχετε το ίδιο ακριβώς περίβλημα με εμένα, είστε ελεύθεροι να το τελειώσετε όπως θέλετε. Απλά βεβαιωθείτε ότι τα ηλεκτρονικά εξαρτήματα προστατεύονται από τη βροχή και τη σκόνη.

Συνιστάται: