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

Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi: 6 βήματα
Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi: 6 βήματα

Βίντεο: Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi: 6 βήματα

Βίντεο: Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi: 6 βήματα
Βίντεο: Πώς να διορθώσετε γρήγορα τη σύνδεσή σας στο Διαδίκτυο Εξερευνήθηκαν τρεις επιλογές 2024, Ιούλιος
Anonim
Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi
Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi
Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi
Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi
Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi
Πώς να ελέγξετε τις πρίζες χρησιμοποιώντας ένα Raspberry Pi

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

Θα εργαστώ για να διατηρήσω αυτό το επίπεδο όσο το δυνατόν υψηλότερο και θα παράσχω κώδικα για να λειτουργήσει όλο αυτό. Για όλους εσάς τους πιθήκους που κωδικοποιείτε εκεί έξω, μη διστάσετε να ψάξετε τον κώδικα και να με ελέγξετε στα σχόλια! Πάντα ψάχνω να βελτιωθώ. Υπάρχουν αρκετά πράγματα που συμβαίνουν σε αυτό, οπότε αν έχετε ερωτήσεις για οποιοδήποτε βήμα, παρακαλώ αφήστε ένα σχόλιο για να ενημερώσω το Instructable με τις απαραίτητες λεπτομέρειες.

Αυτό το έργο χρησιμοποιεί πρίζες ελεγχόμενες με ραδιοσυχνότητα στα 433MHz σε συνδυασμό με έναν πομπό RF συνδεδεμένο στο raspberry pi σας. Οι πρίζες έρχονται με τηλεχειριστήρια που μπορούν να ενεργοποιήσουν/απενεργοποιήσουν πρίζες, αλλά αυτό δεν είναι διασκεδαστικό! Αντ 'αυτού, θα χρησιμοποιήσουμε έναν διακομιστή ιστού που λειτουργεί με το raspberry pi που επιτρέπει σε οποιονδήποτε είναι συνδεδεμένο στο δίκτυο να ενεργοποιεί ή να απενεργοποιεί ορισμένες πρίζες. Ένα web front-end σε αυτό το έργο είναι ιδανικό, καθώς οποιαδήποτε συνδεδεμένη στο διαδίκτυο συσκευή στο δίκτυό σας μπορεί να χρησιμοποιηθεί ως τηλεχειριστήριο.

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

Προμήθειες

  • Ένα Raspberry Pi (χρησιμοποίησα RPi 3 Model B+)
  • Πομπός και δέκτης 433MHz (χρησιμοποίησα αυτόν)
  • Πρίζες 433MHz (το χρησιμοποίησα αυτό)
  • Γυναικεία άλματα (αγόρασα αυτό το μάτσο)
  • Υπολογιστής ή φορητή συσκευή με δυνατότητα πρόσβασης στο διαδίκτυο

Βήμα 1: Ρυθμίστε το Raspberry Pi σας

Ρυθμίστε το Raspberry Pi σας
Ρυθμίστε το Raspberry Pi σας

Ξεκινήστε εγκαθιστώντας την πιο πρόσφατη έκδοση του Raspbian στο νέο σας Raspberry Pi. Εάν σκοπεύετε να χρησιμοποιήσετε ένα υπάρχον Pi (το οποίο μπορείτε να κάνετε εντελώς), το μόνο που χρειάζεται είναι να βεβαιωθείτε ότι έχετε Python 3 στο Pi σας, καθώς αυτό είναι γραμμένο σε όλο τον πηγαίο κώδικα που παρέχω. Για να το κάνετε αυτό, τύπος

python3

στη γραμμή εντολών. Εάν έχετε Python 3, θα πρέπει να δείτε το τερματικό του python ανοιχτό. Βγείτε από το τερματικό κλείνοντας ή πληκτρολογώντας

έξοδος()

Μόλις το επιβεβαιώσετε, πρέπει να εγκαταστήσετε τη φιάλη στο Pi σας. Το Flask μας επιτρέπει να δημιουργήσουμε τον διακομιστή ιστού μας. Από τη γραμμή εντολών Pi, πληκτρολογήστε

sudo pip3 φιάλη εγκατάστασης

Σε περίπτωση που δεν έχετε εγκαταστήσει pip στο Pi σας, θα πρέπει να πληκτρολογήσετε

sudo apt-get install python3-pip

Προτιμώ να αναπτύσσομαι στο Raspberry Pi από την άνεση του επιτραπέζιου υπολογιστή μου. Εάν προτιμάτε και εσείς αυτήν την επιλογή, πρέπει να εγκαταστήσετε κάποιο είδος περιβάλλοντος στο SSH στο Pi. Το PuTTY θα λειτουργήσει, αλλά προτιμώ να έχω GUI (γραφική διεπαφή χρήστη), κάτι που κάνει να φαίνεται ότι βρίσκεστε απευθείας στο Pi. Για την επιλογή GUI, θα θέλετε να εγκαταστήσετε το VNC Viewer στον υπολογιστή στον οποίο σκοπεύετε να εργαστείτε. Υπάρχουν επίσης ρυθμίσεις που θα χρειαστεί να προσαρμόσετε στο Pi σας. Οδηγίες για την τροποποίηση των ρυθμίσεων μπορείτε να βρείτε εδώ.

Βήμα 2: Συνδέστε το υλικό σας

Συνδέοντας το υλικό σας
Συνδέοντας το υλικό σας

Σε αυτό το σημείο, είναι καιρός να πραγματοποιήσετε όλες τις φυσικές συνδέσεις που θα χρειαστεί να κάνετε για να προετοιμαστείτε για τη ρύθμιση του πηγαίου κώδικα για αυτό το έργο. Θα συνδέσετε τις ακίδες του πομπού και του δέκτη με τις ακίδες GPIO του Pi σας. Θα θέλετε να αναφέρετε θρησκευτικά το διάγραμμα pinout των καρφιτσών GPIO. Για να το κάνετε αυτό, ανοίξτε το τερματικό στο Pi και πληκτρολογήστε

pinout

Ακολουθούν οι συνδέσεις που έκανα. Ενδέχεται να έχετε διαφορετική διαμόρφωση εάν αγοράσατε διαφορετικό υλικό πομπού/δέκτη από αυτό που έδειξα στην εισαγωγή. Εάν αποφασίσετε να επιλέξετε διαφορετικούς αριθμούς καρφιών από αυτούς που υποδεικνύω παρακάτω, μην φοβάστε! Όταν κατεβάζετε τον πηγαίο κώδικα, απλώς τροποποιήστε τους αριθμούς pin όπως απαιτείται στο αρχείο RxTx.py.

Δέκτης (μεγάλο τσιπ):

  • GND - Οποιοσδήποτε καθορισμένος πείρος γείωσης
  • ΔΕΔΟΜΕΝΑ - Καρφίτσα 11
  • DER - Δεν είναι συνδεδεμένο
  • +5V - Οποιαδήποτε καθορισμένη +5V ακίδα
  • ------
  • +5V - Οποιαδήποτε καθορισμένη +5V ακίδα
  • GND - Οποιοσδήποτε καθορισμένος πείρος γείωσης
  • GND - Δεν είναι συνδεδεμένο
  • ANT - Δεν είναι συνδεδεμένο

Σημείωση: Μπορείτε να συνδέσετε μια κεραία όπως απαιτείται, αλλά διαπίστωσα ότι δεν χρειάζεται. Αυτό το μικρό τσιπ ήταν εκπληκτικά ευαίσθητο και ανιχνεύει πιστά σήματα σε απόσταση τουλάχιστον 50 μέτρων από το σημείο που καθόταν και από τουλάχιστον δύο τοίχους.

Πομπός:

  • P - Ο πείρος 3.3V
  • DA - Pin 7
  • G - Οποιοσδήποτε καθορισμένος πείρος γείωσης
  • AN - δεν είναι συνδεδεμένο

Σημείωση: Και πάλι, μπορείτε να συνδέσετε μια κεραία στον πομπό όπως απαιτείται, αλλά διαπίστωσα ότι δεν χρειάζεται. Η εμβέλεια είναι υπεραρκετή (50+πόδια).

Βήμα 3: Προσθήκη κώδικα

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

Οι γλώσσες που εμπλέκονται εδώ είναι:

  • Πύθων
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Το Python χρησιμοποιείται στον διακομιστή φιάλης και στο

RxTx.py

αρχείο, το οποίο χειρίζεται τη μετάδοση και την παραλαβή του κωδικού. Το CSS χρησιμοποιείται για τη δημιουργία του στυλ της ιστοσελίδας. Ποιος θέλει έναν βαρετό ιστότοπο !; Το Javascript χρησιμοποιείται σε οποιονδήποτε χειρισμό εκδηλώσεων (πατώντας ένα κουμπί κ.λπ.). Το HTML είναι το βασικό δομικό στοιχείο της ιστοσελίδας. Τέλος, το JQuery/Ajax χρησιμοποιείται για την επικοινωνία μεταξύ της ιστοσελίδας και του πίσω μέρους Python.

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

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

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> ιστοσελίδα-στατική ----- favicon.ico ----- style.css-- πρότυπα ----- index.html ----- πρόγραμμα.html-- app.py-- data.file

Μπορείτε να βάλετε το φάκελο Outlet Switch οπουδήποτε στο Pi σας. Όταν είστε έτοιμοι να εκτελέσετε τον διακομιστή ιστού σας, ανοίξτε το τερματικό στο Pi σας και

CD

(αλλαγή καταλόγου) στον κατάλογο ιστοσελίδων. Στη συνέχεια πληκτρολογήστε

python3 app.py

στο τερματικό. Εάν δεν υπήρχαν σφάλματα, καλό θα ήταν να πάτε!

ΥΣΤΕΡΟΓΡΑΦΟ. Κάντε υπομονή εάν αντιμετωπίσετε τυχόν σφάλματα. Προσπάθησα να τα σπρώξω όλα πριν τα ανεβάσω.

Βήμα 4: Δώστε ένα πλάνο

Δώστε του ένα πλάνο!
Δώστε του ένα πλάνο!

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

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

Το παραπάνω βίντεο στο YouTube δείχνει πώς μπορείτε πραγματικά να προσθέσετε μια νέα πρίζα στη λίστα σας. Συνοψίζοντας τι δείχνει:

  • Καταχωρίστε πρώτα τον τίτλο της πρίζας στο πεδίο Τίτλος
  • Κάντε κλικ ή αγγίξτε έξω από το πεδίο Τίτλος για να επιτρέψετε στο πρόγραμμα να ελέγξει ότι ο τίτλος δεν υπάρχει ήδη. Δεν μπορείτε να έχετε τίτλους με το ίδιο όνομα
  • Μόλις επικυρωθεί, τα κουμπιά ON Code και OFF Code είναι ενεργοποιημένα.
  • Πατήστε παρατεταμένα το κουμπί ON στο παρεχόμενο τηλεχειριστήριο και κάντε γρήγορα κλικ στο κουμπί ON Code στη διεπαφή. Κρατήστε πατημένο το κουμπί στο τηλεχειριστήριο μέχρι ο δυαδικός κώδικας να συμπληρώσει το διπλανό πεδίο.
  • Επαναλάβετε το προηγούμενο βήμα για τον Κωδικό OFF.
  • Κάντε κλικ στο OK και τώρα είστε έτοιμοι να αλλάξετε αυτήν την πρίζα!

Όπως αναφέρθηκε στην εισαγωγή, το έργο δεν είναι 100% ολοκληρωμένο για δικές μου χρήσεις. Το μεγαλύτερο στοιχείο που έχω ακόμη να ολοκληρώσω και να εφαρμόσω είναι η δυνατότητα προγραμματισμού. Σκοπεύω να επιτρέψω στον χρήστη να δημιουργήσει ένα πρόγραμμα που θα επιτρέπει την αυτόματη ενεργοποίηση και απενεργοποίηση των πρίζων σε καθορισμένες ώρες αυτόματα.

Βήμα 5: Αποσφαλμάτωση και το αρχείο RxTx.py

Αποσφαλμάτωση και το αρχείο RxTx.py
Αποσφαλμάτωση και το αρχείο RxTx.py
Αποσφαλμάτωση και το αρχείο RxTx.py
Αποσφαλμάτωση και το αρχείο RxTx.py
Αποσφαλμάτωση και το αρχείο RxTx.py
Αποσφαλμάτωση και το αρχείο RxTx.py
Αποσφαλμάτωση και το αρχείο RxTx.py
Αποσφαλμάτωση και το αρχείο RxTx.py

Ο μόνος γνωστός περιορισμός του συστήματος είναι ότι υπάρχει πιθανότητα ασυμβατότητας μεταξύ διαφορετικών καταστημάτων προμηθευτών. Τα μηνύματα κώδικα ενεργοποίησης και απενεργοποίησης είναι 25 bit για το σύστημά μου και εάν ένα σύστημα έχει διαφορετικό μήκος μηνύματος, δεν είναι αμέσως συμβατό με αυτό το έργο. Εάν ακολουθήσατε ακριβώς τις οδηγίες και εξακολουθείτε να αντιμετωπίζετε προβλήματα για να λειτουργήσει αυτό, ο παρακάτω θα ήταν ο καλύτερος τρόπος για να διορθώσετε το πρόβλημα.

  • Βεβαιωθείτε ότι έχετε εγκαταστήσει το matplotlib στο Pi σας. Μπορείτε να το κάνετε αυτό πληκτρολογώντας τα ακόλουθα στο τερματικό του Pi:

    • python3

    • εισαγωγή matplotlib

    • Εάν λάβετε σφάλμα, τότε πρέπει να εγκαταστήσετε το matplotlib.
    • Βγείτε από το κέλυφος python χρησιμοποιώντας

      έξοδος()

  • Για να εγκαταστήσετε το matplotlib, πληκτρολογήστε

    sudo pip3 εγκαταστήστε το matplotlib

  • στο τερματικό
  • Κατεβάστε το συνημμένο αρχείο test.py και τοποθετήστε το δίπλα στο αρχείο RxTx.py στο Pi σας
  • Ανοίξτε το τερματικό python και αλλάξτε τον κατάλογο στον φάκελο comm.
  • Τύπος

    python3 test.py

  • Όταν λέει "** Έναρξη εγγραφής **", πατήστε και κρατήστε πατημένο το κουμπί ON ή OFF στο τηλεχειριστήριό σας μέχρι να τελειώσει η εγγραφή.
  • Το πρόγραμμα θα φορτώσει ένα σχήμα matplotlib που μοιάζει με το παραπάνω. Μεγεθύνετε μέχρι να δείτε το επαναλαμβανόμενο σήμα όπως φαίνεται στις παραπάνω φωτογραφίες.
  • Μετρήστε το συνολικό λογικό 1 και το λογικό 0 για κάθε μήνυμα, όπου ένα μήνυμα είναι μία επανάληψη του επαναλαμβανόμενου σήματος που φαίνεται παραπάνω. Εάν το σύνολο είναι 25, το αρχείο RxTx.py πιθανότατα δεν φταίει. Εάν συναντήσετε κάτι διαφορετικό από 25, φροντίστε να σχολιάσετε παρακάτω και θα επαναπροσδιορίσω το αρχείο RxTx.py για να είναι πιο ανοιχτού τύπου (ή μη διστάσετε να δοκιμάσετε τις δυνάμεις σας).

Τι γίνεται αν δεν βλέπω επαναλαμβανόμενο σήμα;

Εάν δεν βλέπετε ένα επαναλαμβανόμενο σήμα, ένα από τα δύο είναι λάθος. Αρχικά, βεβαιωθείτε ότι όλες οι συνδέσεις καλωδίων βραχυκυκλώματος έχουν γίνει σωστά. Εάν όλα φαίνονται καλά, μπορεί να έχετε κακό δέκτη. Αγόρασες αυτό που σου πρότεινα; Όταν αγόρασα το πρώτο μου τσιπ δέκτη, ήταν πολύ θορυβώδες. Τόσο θορυβώδες δεν μπορούσα να πάρω ένα σαφές σήμα. Στη συνέχεια επέστρεψα αυτό το τσιπ και πήρα αυτό που ένωσα και δεν θα μπορούσε να λειτουργήσει καλύτερα.

Βήμα 6: Απολαύστε

Γνωρίζετε ότι έχετε τη δυνατότητα να ενεργοποιήσετε/απενεργοποιήσετε πρίζες από το τηλέφωνό σας, το tablet, τον υπολογιστή ή άλλη συσκευή με δυνατότητα ιστού! Πείτε μου τι σκέφτεστε στα σχόλια!

Συνιστάται: