Πίνακας περιεχομένων:
- Βήμα 1: LED ευαίσθητο στο φως
- Βήμα 2: Mini Power Switch
- Βήμα 3: Δεύτερο Photocell
- Βήμα 4: LED RGB
- Βήμα 5: Αισθητήρας θερμοκρασίας
- Βήμα 6: DAGU Gearmotor
- Βήμα 7: Κωδικός
Βίντεο: EF230 Έργο Smart Home: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Απαιτούμενα μέρη και υλικά:
- 1 Arduino 1000 MKR
- 3 Breadboards
- 2 μίνι φωτοκύτταρα
- 1 τρανζίστορ NPN
- 1 Mini Power Switch
- 1 LED - RGB (4 ακροδέκτες)
- 1 LED (χρώμα της επιλογής σας)
- 1 Δίοδος 1N4148
- 1 αντιστάσεις 10K Ohm
- Αντίσταση 5 100 Ohm
- 1 Αισθητήρας θερμοκρασίας TMP36
- 1 DAGU 48: 1 Αναλογία Gearmotor
- 25 Jumper Wires
- Καλώδιο USB
- Πρόγραμμα MATLAB
-
Οδηγός πειράματος SIK για τον πίνακα Arduino 101/Genuino 101 - Σύνδεσμος οδηγού πειράματος SIK
Αυτό το έργο περιγράφει λεπτομερώς τον εννοιολογικό σχεδιασμό ενός συστήματος έξυπνου σπιτιού που θα χρησιμοποιούσε δεδομένα για να βοηθήσει τους ιδιοκτήτες σπιτιού να βελτιστοποιήσουν τη χρήση ενέργειας και την ασφάλειά τους. Περιλαμβάνει έναν αισθητήρα φωτός για να ανάβει τα εξωτερικά φώτα τη νύχτα, έναν αισθητήρα φωτός για ασφάλεια και έναν αισθητήρα θερμοκρασίας και έναν ανεμιστήρα για τον έλεγχο της εσωτερικής θερμοκρασίας.
Βήμα 1: LED ευαίσθητο στο φως
- Η φωτοευαίσθητη ρύθμιση LED προορίζεται να αντιπροσωπεύει τα εξωτερικά φώτα σε ένα σπίτι που ανάβει τη νύχτα.
- Όταν το μίνι φωτοκύτταρο αντιληφθεί μια μειωμένη ποσότητα φωτός, το LED θα ανάψει.
- Για ένα έξυπνο σπίτι αυτό έχει επιπτώσεις στην ενέργεια και την ασφάλεια. Θα εξοικονομήσει ενέργεια αφήνοντας τα φώτα σβηστά κατά τη διάρκεια της ημέρας και θα προσφέρει αυξημένη ασφάλεια τη νύχτα.
- Η ακριβής καλωδίωση και η ρύθμιση για αυτό το μέρος του έργου μπορείτε να βρείτε στο πείραμα 7 στον Οδηγό πειράματος SIK.
Βήμα 2: Mini Power Switch
- Ο διακόπτης είναι το πρώτο βήμα στη διαδικασία ασφάλειας του έξυπνου σπιτιού.
- Όταν είναι ενεργοποιημένος, ο διακόπτης θα ξεκινήσει μια απάντηση που θα ρωτάει τον χρήστη εάν επιθυμεί να εισέλθει στη λειτουργία «Σπίτι» ή «Εκτός».
- Εάν επιλεγεί η λειτουργία "Home", η ασφάλεια θεωρείται αφοπλισμένη, αλλά η επιλογή της λειτουργίας "Away" θα οπλίσει το σύστημα ασφαλείας.
- Η καλωδίωση για αυτό το τμήμα του έργου μπορεί να βρεθεί στο πείραμα 6 στον Οδηγό πειράματος. Για τους σκοπούς του έξυπνου σπιτιού, τα LED και τα καλώδια σύνδεσης που βρέθηκαν στο πείραμα 6 δεν χρειάζεται να συμπεριληφθούν.
Βήμα 3: Δεύτερο Photocell
- Το δεύτερο φωτοκύτταρο χρησιμεύει ως αισθητήρας κίνησης για το σύστημα ασφαλείας του έξυπνου σπιτιού.
- Ο αισθητήρας χρησιμοποιείται μόνο όταν το σύστημα τεθεί σε λειτουργία «Εκτός» όπως περιγράφεται στο προηγούμενο βήμα.
- Εάν το φωτοκύτταρο παρουσιάσει μείωση της ποσότητας φωτός που λαμβάνει, το αναγνωρίζει ως κίνηση μέσα στο σπίτι.
- Η ρύθμιση για αυτό το μέρος του έργου βρίσκεται στο πείραμα 7 στον Οδηγό πειράματος SIK. Ωστόσο, μόνο το φωτοκύτταρο και τα καλώδια σύνδεσής του πρέπει να συμπεριληφθούν στην καλωδίωση.
Βήμα 4: LED RGB
- Το LED RGB χρησιμοποιείται σε συνδυασμό με το μίνι διακόπτη τροφοδοσίας και το δεύτερο φωτοκύτταρο για το σύστημα ασφαλείας του έξυπνου σπιτιού.
- Τα τρία διαφορετικά χρώματα χρησιμοποιούνται ως δείκτες για τον έξυπνο σπίτι.
- Όταν το σύστημα τοποθετηθεί στη λειτουργία «Αρχική σελίδα», η λυχνία LED γίνεται μπλε. Όταν το σύστημα τοποθετηθεί στη λειτουργία «Εκτός», η λυχνία LED γίνεται πράσινη. Όταν το φωτοκύτταρο που χρησιμοποιείται ως αισθητήρας κίνησης σβήσει, το φως αναβοσβήνει κόκκινο.
- Η καλωδίωση για το LED RGB βρίσκεται στο πείραμα 3 του Οδηγού πειράματος SIK.
Βήμα 5: Αισθητήρας θερμοκρασίας
- Ο αισθητήρας θερμοκρασίας είναι το κύριο μέρος της εξοικονόμησης ενέργειας στο έξυπνο σπίτι.
- Ο κάτοικος μπορεί να εισάγει την επιθυμητή θερμοκρασία για το σπίτι του όταν χρησιμοποιείται το έξυπνο σπίτι.
- Ο αισθητήρας θερμοκρασίας είναι το πώς το σύστημα γνωρίζει πόσο μακριά είναι η πραγματική θερμοκρασία από την επιθυμητή θερμοκρασία.
- Η ρύθμιση για τον αισθητήρα θερμοκρασίας βρίσκεται στο πείραμα 9 του Οδηγού πειράματος SIK.
Βήμα 6: DAGU Gearmotor
- Ο κινητήρας επιτρέπει στο έξυπνο σπίτι να ρυθμίζει τη θερμοκρασία στο σπίτι με βάση την επιθυμητή θερμοκρασία και τις ενδείξεις του αισθητήρα θερμοκρασίας.
- Λειτουργώντας ως μονάδα εναλλασσόμενου ρεύματος στο σπίτι, ο κινητήρας περιστρέφεται με διαφορετικές ταχύτητες με βάση το πόσο υψηλότερη είναι η πραγματική θερμοκρασία από την επιθυμητή θερμοκρασία. Όσο μεγαλύτερη είναι η διαφορά, τόσο πιο γρήγορα γυρίζει ο κινητήρας.
- Η καλωδίωση για τον κινητήρα βρίσκεται στον Οδηγό πειράματος στο πείραμα 11.
Βήμα 7: Κωδικός
- Ο κωδικός για το έξυπνο σπίτι περιλαμβάνει πολλαπλές διεπαφές χρήστη που επιτρέπουν στον κάτοικο να καταλάβει εύκολα πώς λειτουργεί και να αλλάζει εύκολα τις ρυθμίσεις.
- Με το σύστημα έξυπνου σπιτιού, ο κάτοικος θα λαμβάνει ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου εάν ο αισθητήρας κίνησης είναι απενεργοποιημένος ενώ λείπουν.
- Η μόνη αλλαγή που πρέπει να γίνει είναι η εισαγωγή των πληροφοριών για το email του αποστολέα και τη διεύθυνση email του παραλήπτη.
σαφής α? σαφές s? σαφές m? clc? κλείσ'τα όλα; % Εκκαθάριση μεταβλητών arduino και servo, ώστε να μπορούν να επαναπροσδιορίζονται κάθε φορά, έτσι ώστε ο κώδικας να λειτουργεί αποτελεσματικά (το "clear m" είναι απαραίτητο για να λειτουργήσει σωστά ένας από τους βρόχους while) a = arduino (); % Ορίστε τη μεταβλητή arduino
s = servo (a, 'D6'); % Ορίστε τη σερβο μεταβλητή
% Αρχικοποίηση μεταβλητών email για προειδοποιητικό μήνυμα ηλεκτρονικού ταχυδρομείου συστήματος ασφαλείας
emails = {'εισαγωγή διεύθυνσης παραλήπτη'}; % Διάταξη μηνυμάτων ηλεκτρονικού ταχυδρομείου στα οποία πρέπει να σταλεί το email ασφαλείας
% Ρυθμίσεις προτίμησης email απαραίτητες για τη χρήση ενός Gmail για αποστολή μηνυμάτων από
setpref («Διαδίκτυο», «E_mail», «διεύθυνση ηλεκτρονικού ταχυδρομείου αποστολέα»)
setpref («Διαδίκτυο», «SMTP_Username», «όνομα χρήστη αποστολέα»)
setpref («Διαδίκτυο», «SMTP_Password», «κωδικός πρόσβασης αποστολέα»)
props = java.lang. System.getProperties;
props.setProperty ('mail.smtp.auth', 'true');
props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
% Μεταβλητές θέματος και κειμένου ηλεκτρονικού ταχυδρομείου
subj = 'Ειδοποίηση εισβολέα στο σπίτι σας';
text = 'Γεια σας, αυτό είναι το σύστημα ασφαλείας Smart Home που σας ενημερώνει ότι εντοπίστηκε κίνηση έξω από το σπίτι σας. Έχουμε λάβει τα απαραίτητα μέτρα και επικοινωνήσαμε με τις αρχές για εσάς. Μείνε ασφαλής.';
ενώ ισχύει
προτροπή = {'Εισαγάγετε την επιθυμητή θερμοκρασία στο σπίτι (μεταξύ 65F και 85F):'}; % Προτροπή για το μενού εισαγωγής χρήστη
dlgtitle = 'Επιλογή θερμοκρασίας'; % Τίτλος για το μενού εισαγωγής χρήστη
dims = [1 30]; % Διαστάσεις για το μενού εισαγωγής χρήστη
definput = {'72'}; % Προεπιλεγμένη είσοδος που εμφανίζεται κατά το πρώτο άνοιγμα του μενού
tempsel_array = inputdlg (προτροπή, dlgtitle, dims, definput); % Αναδυόμενο μενού εισαγωγής χρήστη που θα αποθηκεύσει τον εισαγόμενο αριθμό σε έναν πίνακα
εάν ~ isempty (tempsel_array) % Εάν ο πίνακας ΔΕΝ είναι κενός
tempsel_char = cell2mat (tempsel_array); % Μετατροπή του πίνακα σε συμβολοσειρά χαρακτήρων
tempsel = str2double (tempsel_char); % Μετατρέψτε τη συμβολοσειρά χαρακτήρων σε αριθμούς
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1)? % Γράψτε την επιλεγμένη θερμοκρασία στο κανάλι σας ThingSpeak
break % Διακοπή από το βρόχο while ώστε το μενού να μην εμφανίζεται πολλές φορές
else % Εάν ο χρήστης κάνει κλικ ακύρωση αντί να εισαγάγει μια θερμοκρασία
msg1 = msgbox ("Δεν έχει επιλεγεί θερμοκρασία, προεπιλογή σε 85F", "Προειδοποίηση!"); % Το μήνυμα εμφανίζεται στον χρήστη μετά το κλικ στο κουμπί Ακύρωση
waitfor (msg1); % Περιμένετε να κλείσει το πλαίσιο μηνυμάτων πριν συνεχίσετε
tempsel = 85; % Ρυθμίστε τη θερμοκρασία σε αυτό που αναφέρεται στο πλαίσιο μηνυμάτων
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Γράψτε την επιλεγμένη θερμοκρασία στο κανάλι σας ThingSpeak
break % Διακοπή από το βρόχο while ώστε το μενού να μην εμφανίζεται πολλές φορές
τέλος
τέλος
ενώ ισχύει
chID = 745517; % Αναγνωριστικό καναλιού ThingSpeak
writeKey = 'G9XOQTP8KOVSCT0N'; % Κλειδί για πρόσβαση στο κανάλι ThingSpeak
% Αρχικοποίηση αισθητήρων για ανάκτηση δεδομένων
tempread = readVoltage (a, 'A3'); % Διαβάστε την τάση του αισθητήρα θερμοκρασίας
lightl1 = readVoltage (a, 'A2'); % Επίπεδο φωτός για τη φωτοαντίσταση που πηγαίνει στην κόκκινη λυχνία LED
lightl2 = readVoltage (a, 'A5'); % Επίπεδο φωτός για τη φωτοαντίσταση που πηγαίνει στο σύστημα ασφαλείας
switchv = readVoltage (a, 'A0'); % Τιμή για τον διακόπτη
% Μετατρέψτε τα δεδομένα θερμοκρασίας από τάση σε βαθμούς Φαρενάιτ
tempC = (tempread - 0,5) * 100; % Μετατρέψτε την τάση σε θερμοκρασία σε Κελσίου
tempF = (tempC * 9/5) + 32; % Μετατρέψτε τη θερμοκρασία σε Κελσίου σε θερμοκρασία σε Φαρενάιτ
% Αρχικοποιήστε τους αριθμούς καρφιτσών για το πολύχρωμο LED
redp = 'D9'; % Καρφίτσα για κόκκινο φως από LED
greenp = 'D10'; % Καρφίτσα για πράσινο φως από LED
bluep = 'D11'; % Καρφίτσα για μπλε φως από LED
εάν tempsel <tempF % Εάν η επιλεγμένη θερμοκρασία είναι μεγαλύτερη από τη θερμοκρασία δωματίου
writePosition (s, 1); % Servo θα αρχίσει να κινείται
παύση (10) % Το Servo θα συνεχίσει να περιστρέφεται για 10 δευτερόλεπτα για να δηλώσει ότι το AC θα απενεργοποιηθεί μετά από ένα καθορισμένο χρονικό διάστημα
writePosition (s, 0); % Απενεργοποιήστε τον ανεμιστήρα για σκοπούς συνέχισης του κώδικα χωρίς ανεμιστήρα ενεργοποιημένο
tempsel = 150? % Αλλάξτε την τιμή θερμοκρασίας για να ξεφύγετε από τον βρόχο μετά την απενεργοποίηση του ανεμιστήρα, και πάλι μόνο με σκοπό τη συνέχιση του κωδικού
τέλος
αν lightl1 <= 3 % Εάν η πρώτη φωτοαντίσταση ανιχνεύσει χαμηλό επίπεδο φωτισμού
writeDigitalPin (a, 'A1', 1)? % Ενεργοποιήστε το κόκκινο LED που αντιπροσωπεύει τα φώτα εξωτερικού χώρου
else % Εάν το επίπεδο φωτισμού είναι και πάλι υψηλό
writeDigitalPin (a, 'A1', 0)? % Απενεργοποιήστε το κόκκινο LED όταν το επίπεδο φωτισμού είναι αρκετά υψηλό και πάλι
τέλος
εάν switchv> 3 % Εάν ο διακόπτης είναι ενεργοποιημένος
A = υπάρχει ('m', 'var'); % Ελέγξτε για την ύπαρξη της μεταβλητής 'm', αυτό θα αρχικοποιήσει για το βρόχο while και θα επιτρέψει να σπάσει όταν επιλέγεται ένα στοιχείο μενού (γι 'αυτό πρέπει να γίνει σαφές m στην αρχή του κώδικα)
ενώ το A == 0 % Loop θα εκτελεστεί έως ότου υπάρξει η μεταβλητή 'm'
menutext = 'Σε ποια λειτουργία ασφαλείας θα θέλατε να εισέλθετε;'; % Κείμενο για το αναδυόμενο μενού ασφαλείας
επιλογές = {'Σπίτι', 'Εκτός'}; % Επιλογές για το αναδυόμενο μενού ασφαλείας
m = μενού (menutext, επιλογές); % Αναδυόμενο μενού για λειτουργίες συστήματος ασφαλείας
break % Διασφαλίζει ότι ο βρόχος while είναι σπασμένος, ώστε το μενού να μην εμφανίζεται πολλές φορές
τέλος
αν m == 1 % Εάν έχει επιλεγεί η λειτουργία "Αρχική σελίδα"
writeDigitalPin (a, bluep, 1); % Ενεργοποιήστε μόνο το μπλε φως στο LED αλλαγής χρώματος
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
elseif m == 2 % Εάν έχει επιλεγεί η λειτουργία "Εκτός"
writeDigitalPin (a, bluep, 0);
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 1); % Ενεργοποιήστε μόνο το πράσινο φως στο LED αλλαγής χρώματος
αν lightl2 <= 3 % Εάν το επίπεδο φωτισμού στη δεύτερη φωτοαντίσταση είναι χαμηλό, αντιπροσωπεύει την κίνηση που ανιχνεύεται από το σύστημα ασφαλείας
sendmail (email, subj, κείμενο)? % Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου με τις προηγουμένως καθορισμένες ιδιότητες ηλεκτρονικού ταχυδρομείου writeDigitalPin (a, greenp, 0); % Αναβοσβήνει το κόκκινο χρώμα 2 φορές
writeDigitalPin (a, redp, 1);
παύση (0,3)
writeDigitalPin (a, redp, 0);
παύση (0,3)
writeDigitalPin (a, redp, 1);
παύση (0,3)
writeDigitalPin (a, redp, 0);
παύση (0,3)
writeDigitalPin (a, redp, 1); % Ολοκληρώστε με σταθερό κόκκινο μετά το αναβοσβήσιμο για να δείξετε ότι υπάρχει κίνηση μέχρι το επίπεδο φωτισμού να ανέβει ξανά
msg2 = msgbox ('Ο εισβολέας εντοπίστηκε από το σύστημα ασφαλείας, έχει σταλεί ένα email στους ιδιοκτήτες του σπιτιού για να τους ενημερώσει.', 'ΠΡΟΕΙΔΟΠΟΙΗΣΗ!'); % Κιβώτιο μηνυμάτων για ενημέρωση του χρήστη για κίνηση και για ενημέρωση σχετικά με το μήνυμα ηλεκτρονικού ταχυδρομείου που στάλθηκε waitfor (msg2) % Περιμένετε να κλείσει το πλαίσιο μηνυμάτων πριν συνεχίσετε
αλλού
writeDigitalPin (a, greenp, 1); % Μόλις ανέβει ξανά το επίπεδο φωτισμού, θα γίνει ξανά πράσινο
τέλος
τέλος
elseif switchv <3,3 % Εάν ο διακόπτης είναι απενεργοποιημένος
writeDigitalPin (a, bluep, 0); % Απενεργοποιήστε εντελώς τη λυχνία LED για να δείξετε ότι το σύστημα ασφαλείας είναι απενεργοποιημένο
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
τέλος
τέλος
Συνιστάται:
(Έργο IOT) Λάβετε δεδομένα καιρού χρησιμοποιώντας το ESP8266 και το Openweather API: 5 βήματα
(Έργο IOT) Λάβετε δεδομένα καιρού χρησιμοποιώντας το ESP8266 και το Openweather API: Σε αυτό το διδακτικό θα δημιουργήσουμε ένα απλό έργο IOT στο οποίο θα λαμβάνουμε τα δεδομένα καιρού της πόλης μας από το openweather.com/api και θα τα εμφανίζουμε χρησιμοποιώντας λογισμικό επεξεργασίας
CPE 133 Τελικό έργο Δεκαδικό σε δυαδικό: 5 βήματα
CPE 133 Final Project Decimal to Binary: Οι δυαδικοί αριθμοί είναι ένα από τα πρώτα πράγματα που έρχονται στο μυαλό όταν σκεφτόμαστε την ψηφιακή λογική. Ωστόσο, οι Δυαδικοί Αριθμοί μπορεί να είναι μια δύσκολη ιδέα για όσους είναι νέοι σε αυτό. Αυτό το έργο θα βοηθήσει όσους είναι νέοι και έμπειροι με δυαδικούς αριθμούς
Κουτί ντοπαμίνης - ένα έργο παρόμοιο με τον Mike Boyd - Not Being Mike Boyd's: 9 βήματα
Κουτί ντοπαμίνης | ένα έργο παρόμοιο με τον Mike Boyd - Not Being Mike Boyd's: Θέλω ένα! Χρειάζομαι ένα! Είμαι αναβλητικός! Λοιπόν, θέλω ένα κουτί ντοπαμίνης … Χωρίς να χρειάζεται να προγραμματίσω. Χωρίς ήχους, μόνο καθαρή θέληση
Bluetooth50g - ένα έργο ανακύκλωσης για μια σπασμένη αριθμομηχανή HP50G .: 7 βήματα
Bluetooth50g - Ένα έργο ανακύκλωσης για μια σπασμένη αριθμομηχανή HP50G .: Οι διαδρομές αγωγών στην οθόνη είναι σπασμένες λόγω διαρροής μπαταρίας. Η μπαταρία διέρρευσε και διέβρωσε τις διαδρομές. Ο υπολογιστής λειτουργεί από μόνος του, αλλά τα αποτελέσματα δεν εμφανίζονται στην οθόνη (μόνο κάθετες γραμμές). Το σύστημα μιμείται ένα πληκτρολόγιο bluetooth
Καυστήρας με τροφοδοσία USB! Αυτό το έργο μπορεί να καεί μέσω πλαστικών / ξύλου / χαρτιού (το διασκεδαστικό έργο πρέπει επίσης να είναι πολύ λεπτό ξύλο): 3 βήματα
Καυστήρας με τροφοδοσία USB! Αυτό το έργο μπορεί να καεί μέσω πλαστικών / ξύλου / χαρτιού (το διασκεδαστικό έργο πρέπει επίσης να είναι πολύ λεπτό ξύλο): ΜΗΝ ΚΑΝΕΤΕ ΑΥΤΟ ΧΡΗΣΙΜΟΠΟΙΗΣΤΕ USB !!!! διαπίστωσα ότι μπορεί να βλάψει τον υπολογιστή σας από όλα τα σχόλια. ο υπολογιστης μου ειναι μια χαρα Χρησιμοποιήστε φορτιστή τηλεφώνου 600ma 5v. το χρησιμοποίησα και δουλεύει μια χαρά και τίποτα δεν μπορεί να καταστραφεί αν χρησιμοποιήσετε βύσμα ασφαλείας για να διακόψετε την τροφοδοσία