Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Ρύθμιση του Rasbian
- Βήμα 2: Πιάστε τον κώδικα και ρυθμίστε τον
- Βήμα 3: Επικοινωνία Arduino
- Βήμα 4: Εναλλαγή καλωδίωσης
- Βήμα 5: Εκτέλεση του κώδικα
- Βήμα 6: (ΠΡΟΑΙΡΕΤΙΚΑ) η στέγαση
Βίντεο: Αυτόματη, αυτόματη έξοδος με τρέχουσα μέτρηση σε πραγματικό χρόνο: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Μου αρέσει πολύ η αυτοματοποίηση, η δυνατότητα ελέγχου όταν κάτι πρέπει να συμβεί. Αυτό είναι που με έκανε να μου έρθει αυτή η ιδέα: μια αυτόματη, αυτόματη πρίζα. Μπορεί να χρησιμοποιηθεί για προγραμματισμό πότε πρέπει να ανάψουν τα φώτα, πότε πρέπει να φορτιστούν τα τηλέφωνα ή πότε πρέπει να τροφοδοτηθεί μια οθόνη. Εκτός από όλα αυτά, έχετε τη δυνατότητα να δείτε πόσο ρεύμα ρέει μέσω της πρίζας.
Τα συστατικά που απαιτούνται για αυτό το έργο είναι:
Προμήθειες
Πριν ξεκινήσουμε αυτά είναι τα πράγματα που σίγουρα θα χρειαστείτε για να δημιουργήσετε ένα κουτί Switch-IT όπως το δικό μου. Αυτές οι προμήθειες θα κοστίσουν περίπου 50 έως 100 ευρώ ανάλογα με την περιοχή σας και τις τρέχουσες τιμές.
Σκεύη, εξαρτήματα
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
- Βατόμουρο πι 4
- Κάρτα Micro SD 16 GB (ή περισσότερο)
- Arduino Uno
- Μετατροπέας στάθμης 5V-3.3V
- Μονάδα ρελέ 5V
- ACS712 20A - τρέχουσα μονάδα
- 1838 μονάδα δέκτη IR 37,9 kHz
- Τηλεχειριστήριο IR (χρησιμοποιώ ένα Elegoo)
- κοινή κάθοδος RGB
- 3 * 330Ω αντιστάσεις
- κουμπί
- RFID-RC522
- LCD 1602A-1
- Υποδοχή τοίχου Niko
- Δοχείο μετρητή 10K Ω
- Τροφοδοσία 230 έως 5V - 7A
Καλώδια
- Καλώδιο USB-B σε USB-A
- Καλώδιο τροφοδοσίας USB-C
- Καλώδιο Ethernet
Διάφορος
- Ανδρικά-θηλυκά Jumperwires
- Male-Male Jumperwires
- Συγκολλητικό κασσίτερο
- Συρρικνωμένος σωλήνας
Ειδικά μέρη θήκης (ΠΡΟΑΙΡΕΤΙΚΑ)
- 50 * καρύδια και έντονα
- μεταλλική θήκη 40x40x5 cm με καπάκι
- ταινία διπλής όψης
- Αποστάτες ύψους 6 * 1cm
- led-holder
- Ταινία Velcro
- οδηγούς καλωδίων
Λογισμικό
- balenaEtcher:
- Στόκος
- ράσμπιαν
- Κωδικός Visual Studio
- Arduino IDE
Βήμα 1: Ρύθμιση του Rasbian
Πρώτα απ 'όλα θα αναβοσβήσουμε το Rasbian στην κάρτα SD. Θα το κάνουμε χρησιμοποιώντας το balenaEtcher.
- Ανοίξτε το balenaEtcher
- Επιλέξτε την εικόνα Rasbian
- Επιλέξτε την κάρτα SD
- Πατήστε Flash για λίγα λεπτά μέχρι να αναβοσβήνει
Προσθήκη APIPA στον κατάλογο εκκίνησης: Θα χρησιμοποιήσουμε μια διεύθυνση APIPA για τον προγραμματισμό και τη διαμόρφωση των ρυθμίσεων στο RPI. Για να το κάνω αυτό:
- Μπαίνει στον κατάλογο εκκίνησης στην κάρτα SD
- Ανοίξτε το "cmdline.txt"
- Προσθέστε "169.254.10.1" στο τέλος του εγγράφου και αποθηκεύστε το
- Προσθέστε ένα αρχείο που ονομάζεται "ssh" στον κατάλογο εκκίνησης (ΜΗΝ ΔΩΣΕΤΕ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ ΕΠΕΚΤΑΣΗ)
- Αφού το κάνετε αυτό, μπορείτε να εξαγάγετε την κάρτα SD από τον υπολογιστή σας.
Έχει πρόσβαση στο RPI χρησιμοποιώντας το PuTTy
Τώρα μπορούμε να συνδέσουμε την κάρτα SD στο RPI μας, να συνδέσουμε το RPI στον υπολογιστή σας χρησιμοποιώντας ένα καλώδιο ethernet.
Για να συνδεθούμε στο RPI θα χρησιμοποιήσουμε το PuTTy με τη διεύθυνση APIPA.
- Ανοίξτε το PuTTy
- Συμπληρώστε τη διεύθυνση APIPA ως όνομα κεντρικού υπολογιστή (169.254.10.1)
- Βεβαιωθείτε ότι η θύρα είναι 22 και έχει επιλεγεί SSH
- Τώρα μπορείτε να ανοίξετε τη σύνδεση
- Το προεπιλεγμένο όνομα χρήστη είναι: pi
- Με προεπιλεγμένο κωδικό πρόσβασης: βατόμουρο
ρυθμίσεις raspi-config
Άνοιγμα raspi-config χρησιμοποιώντας:
sudo raspi-config
- Αλλάξτε τον κωδικό πρόσβασης χρήστη
- Στις επιλογές τοπικοποίησης επιλέξτε τη ζώνη ώρας
- Ρυθμίστε το WiFi χρησιμοποιώντας τις επιλογές δικτύου και μετά την επιλογή Wi-Fi όπου πρέπει να συμπληρώσετε το SSID και τον κωδικό πρόσβασής σας.
Εγκαταστήστε το Python 3
Σε αυτό το έργο χρησιμοποιούμε Python, οπότε θα ορίσουμε την προεπιλογή σε Python3 insteat του Python2, χρησιμοποιώντας τις ακόλουθες εντολές
update-alternatives --install/usr/bin/python python /usr/bin/python2.7 1
εναλλακτικές λύσεις ενημέρωσης-εγκατάσταση/usr/bin/python python/usr/bin/python3 2
Πακέτα Python
Θα χρειαστούμε μερικά πακέτα για να λειτουργήσουν όλα σωστά, κυρίως τα πακέτα Flask και ένα για να συνδεθούμε με τη βάση δεδομένων μας. Μπορούμε να εγκαταστήσουμε αυτά τα πακέτα χρησιμοποιώντας τις ακόλουθες εντολές:
pip εγκατάσταση Flask
pip install Flask_cors pip install Flask_socketio pip install python-mysql-connecton
Βάση δεδομένων
Στη συνέχεια, θα εγκαταστήσουμε το σύστημα διαχείρισης βάσης δεδομένων (MariaDB), θα το κάνουμε χρησιμοποιώντας:
sudo apt install mariadb-server
Πληκτρολογήστε "Y" και Enter για να συνεχίσετε. Μετά από μερικά δευτερόλεπτα, η διαδικασία εγκατάστασης έχει ολοκληρωθεί και το MariaDB είναι σχεδόν έτοιμο για χρήση.
Για να ορίσετε στη βάση δεδομένων έναν κωδικό πρόσβασης, χρησιμοποιήστε την εντολή:
sudo mysql_secure_installation
Στη συνέχεια, πατήστε Enter, καθώς ο τρέχων κωδικός πρόσβασης είναι κενός. Στη συνέχεια, πατήστε "Y" για να ορίσετε έναν κωδικό πρόσβασης, τώρα μπορείτε να συμπληρώσετε όποιον κωδικό θέλετε, φροντίστε να τον θυμάστε γιατί τον χρειαζόμαστε για να κάνουμε μια σωστή σύνδεση μεταξύ back-and front-end.
Τώρα, πατήστε "Y" 3 φορές για να: αφαιρέσετε ανώνυμους χρήστες, να μην επιτρέψετε τη σύνδεση root από απόσταση και να αφαιρέσετε τη δοκιμαστική βάση δεδομένων. Τέλος, πατήστε ξανά "Y" για να φορτώσετε ξανά τα προνόμια.
Τώρα το MariaDB και όλα τα απαραίτητα πακέτα έχουν εγκατασταθεί με επιτυχία.
Βήμα 2: Πιάστε τον κώδικα και ρυθμίστε τον
Τώρα που έχουμε όλα τα πακέτα εγκατεστημένα, μπορούμε να πάρουμε τον κώδικα.
Ο κωδικός είναι διαθέσιμος στο Github, ώστε να μπορείτε να τον κλωνοποιήσετε χρησιμοποιώντας:
git clone
Αυτή είναι η πρόσοψη
git clone
Αυτό είναι το backend
Εγκατάσταση της ίδιας της βάσης δεδομένων
Για να εγκαταστήσετε τη βάση δεδομένων, μεταβείτε στο αρχείο.sql που βρίσκεται στο φάκελο backend χρησιμοποιώντας τις ακόλουθες εντολές (φροντίστε να το ορίσετε στη δική σας διαδρομή.
mysql
δημιουργία βάσης δεδομένων switchit κλείσιμο mysql -u root -p switchit <Your_Path_to_Backend_Repo/switchit.sql
Εγκατάσταση του Apache
Τώρα που έχουμε όλο τον κώδικα και τη ρύθμιση της βάσης δεδομένων, μπορούμε να εγκαταστήσουμε το Apache και να τρέξουμε το backend μας σε αυτό. Θα το κάνουμε χρησιμοποιώντας:
apt -get install apache2 -y
Στη συνέχεια, αντικαταστήστε τα αρχεία στο/var/ww/html με αυτά του φακέλου από το φάκελο frontend.
Εάν όλα πήγαν καλά, θα πρέπει να μπορείτε να συνδεθείτε στον ιστότοπό σας χρησιμοποιώντας τη διεύθυνση APIPA: 169.254.10.1 στο πρόγραμμα περιήγησής σας.
Βήμα 3: Επικοινωνία Arduino
Για να διαβάσετε τον τρέχοντα αισθητήρα μας και τον αισθητήρα RFID χρησιμοποιούμε arduino, για να το κάνετε αυτό χρησιμοποιήστε τον παρακάτω κώδικα arduino. Ανεβάστε το χρησιμοποιώντας ένα καλώδιο USB-A σε USB-B και το λογισμικό arduino IDE. Όταν μεταφορτωθεί, το μέρος του arduino έχει ολοκληρωθεί.
Τώρα πρέπει να βρούμε το όνομα της σειριακής συσκευής στο PI. Για να το κάνετε αυτό, βεβαιωθείτε ότι στο /boot/config.txt "enable_uart = 1" έχει οριστεί σωστά. Βεβαιωθείτε επίσης ότι το "console = serial0, 115200" έχει αφαιρεθεί από το cmdline.txt.
Στη συνέχεια, ελέγξτε τις θύρες χρησιμοποιώντας
ls -l /dev
Τότε ένα από τα σειριακά ονόματα θα πρέπει να είναι το Arduino. Συμπληρώστε αυτό το όνομα στη συνάρτηση arduinocom στο app.py
ser = serial. Serial ('/dev/ttyS0', 9600)
Κάντε το μόνο εάν η σειριακή επικοινωνία δεν λειτουργεί.
Βήμα 4: Εναλλαγή καλωδίωσης
Η καλωδίωση των πάντων είναι αρκετά απλή, αν και θα πρέπει να έχετε κατά νου τα εξής:
- Να είστε προσεκτικοί με την πρίζα, τα 230 βολτ μπορεί να είναι θανατηφόρα.
- Βεβαιωθείτε ότι χρησιμοποιείτε μετατροπέα επιπέδου για επικοινωνία μεταξύ του RPI και του Arduino.
- Πριν από τη συγκόλληση του RGB, βεβαιωθείτε ότι χρησιμοποιείτε την κόκκινη και πράσινη καρφίτσα. Δοκιμάστε το εκ των προτέρων!
- Δοκιμάστε εάν τίποτα δεν βραχυκυκλώνεται ΠΡΙΝ τροφοδοτήσετε το κύκλωμα.
Βήμα 5: Εκτέλεση του κώδικα
Τώρα όλα είναι σωστά συνδεδεμένα μπορούμε να τρέξουμε το πρόγραμμά μας.
Για να εκτελεστεί αυτόματα κατά την εκκίνηση, δημιουργήστε ένα αρχείο χρησιμοποιώντας:
sudo nano myscript.service
Στη συνέχεια, επικολλήστε (βεβαιωθείτε ότι χρησιμοποιείτε τον δικό σας κατάλογο app.py:
[Unit] Description = Switchit After = network.target [Service] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory = // αλλαγή στον κατάλογο app.py // StandardOutput = κληρονομεί StandardError = κληρονομεί Επανεκκίνηση = πάντα User = pi [Εγκατάσταση] WantedBy = multi-user.target
Στη συνέχεια, πατήστε "ctrl + X" και αντιγράψτε το στο/etc/systemd/system.
Στη συνέχεια, η ακόλουθη εντολή για να εκτελεστεί αυτόματα:
sudo systemctl ενεργοποιήστε την υπηρεσία myscript.service
Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με αυτό στον ιστότοπο RaspBerry Pi.
Επανεκκίνηση και τέλος
Τώρα επανεκκινήστε το PI χρησιμοποιώντας:
sudo επανεκκίνηση -h τώρα
Έτσι φτιάχνετε το Switch-it!
Ευχαριστώ που ακολουθήσατε, ελπίζω να ήταν χρήσιμο. Εάν έχετε οποιεσδήποτε συμβουλές ή σχόλια, μη διστάσετε να αφήσετε ένα σχόλιο.
Βήμα 6: (ΠΡΟΑΙΡΕΤΙΚΑ) η στέγαση
Μπορείτε να χτίσετε το περίβλημα εξ ολοκλήρου σύμφωνα με τις προτιμήσεις σας. Χρησιμοποίησα μεταλλική θήκη που είναι 40x40x5 cm με καπάκι. Δεδομένου ότι χρησιμοποίησα ένα μεταλλικό, έπρεπε να ανοίξω τρύπες και να χρησιμοποιήσω αποστάτες για να βγάλω τα πάντα από το έδαφος. Επέλεξα να χρησιμοποιήσω ένα κεντρικό σημείο όπου είναι διαθέσιμα τα 5V, 3.3V και gnd. Κάθε ηλεκτρική σύνδεση συγκολλάται με ένα κομμάτι συρρικνωμένου σωλήνα στο πάνω μέρος του. Για να κάνω τη διαχείριση καλωδίων χρησιμοποίησα τακάκια με ιμάντες μεταφοράς.
Συνιστάται:
Πώς να χρησιμοποιήσετε μια μονάδα ρολογιού σε πραγματικό χρόνο (DS3231): 5 βήματα
Πώς να χρησιμοποιήσετε μια μονάδα ρολογιού σε πραγματικό χρόνο (DS3231): Το DS3231 είναι ένα χαμηλού κόστους, εξαιρετικά ακριβές ρολόι I2C σε πραγματικό χρόνο (RTC) με ενσωματωμένο κρυσταλλικό ταλαντωτή με αντιστάθμιση θερμοκρασίας (TCXO) και κρύσταλλο. Η συσκευή ενσωματώνει μια είσοδο μπαταρίας και διατηρεί ακριβή χρονομέτρηση όταν η κύρια τροφοδοσία
Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: 4 βήματα
Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: Αυτή είναι η 2η έκδοση του εργαλείου κύβου του Rubik που έχει δημιουργηθεί για επίλυση με δεμένα μάτια. Η 1η έκδοση αναπτύχθηκε από javascript, μπορείτε να δείτε το έργο RubiksCubeBlindfolded1 Σε αντίθεση με την προηγούμενη, αυτή η έκδοση χρησιμοποιεί βιβλιοθήκη OpenCV για τον εντοπισμό των χρωμάτων και
Μετρητής στάθμης νερού σε πραγματικό χρόνο: 6 βήματα (με εικόνες)
Ένας μετρητής στάθμης νερού σε πραγματικό χρόνο: Αυτές οι οδηγίες περιγράφουν τον τρόπο κατασκευής ενός μετρητή στάθμης νερού χαμηλού κόστους σε πραγματικό χρόνο για χρήση σε σκαμμένα πηγάδια. Ο μετρητής στάθμης νερού έχει σχεδιαστεί για να κρέμεται μέσα σε ένα σκαμμένο πηγάδι, να μετρά τη στάθμη του νερού μία φορά την ημέρα και να στέλνει τα δεδομένα μέσω WiFi ή κυψελοειδούς σύνδεσης
Μετρητής θερμοκρασίας νερού, αγωγιμότητας και στάθμης νερού σε πραγματικό χρόνο: 6 βήματα (με εικόνες)
Μετρητής θερμοκρασίας νερού, αγωγιμότητας και στάθμης νερού σε πραγματικό χρόνο: Αυτές οι οδηγίες περιγράφουν πώς να φτιάξετε ένα μετρητή νερού χαμηλού κόστους, σε πραγματικό χρόνο, για την παρακολούθηση της θερμοκρασίας, την ηλεκτρική αγωγιμότητα (EC) και τα επίπεδα νερού σε σκαμμένα πηγάδια. Ο μετρητής έχει σχεδιαστεί για να κρέμεται μέσα σε ένα σκαμμένο πηγάδι, να μετρά τη θερμοκρασία του νερού
Σχεδιάζοντας γράφημα σε πραγματικό χρόνο στο Android από το Arduino μέσω HC-05: 3 βήματα
Σχεδιάζοντας γράφημα σε πραγματικό χρόνο στο Android από το Arduino μέσω του HC-05: Γεια σας, εδώ είναι ένα σεμινάριο για το πώς να σχεδιάσετε ένα γράφημα τιμών σε πραγματικό χρόνο από έναν μικροελεγκτή όπως ένα Arduino στην εφαρμογή. Χρησιμοποιεί μια μονάδα Bluetooth όπως το HC-05 για να λειτουργήσει ως συσκευή ανταλλαγής μηνυμάτων για τη μετάδοση και λήψη των δεδομένων μεταξύ του Ar