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

Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας: 6 βήματα (με εικόνες)
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας: 6 βήματα (με εικόνες)

Βίντεο: Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας: 6 βήματα (με εικόνες)

Βίντεο: Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας: 6 βήματα (με εικόνες)
Βίντεο: Top 10 καλύτερα παιχνίδια PSP | Τα καλύτερα παιχνίδια στο Playstation Portable 2024, Ιούλιος
Anonim
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας
Προσομοιωτής οικιακής παρουσίας και συσκευή ελέγχου ασφαλείας

Αυτό το έργο μας επιτρέπει να προσομοιώσουμε την παρουσία και να ανιχνεύσουμε κινήσεις στο σπίτι μας.

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

Αυτό το έργο συνδυάζει αυτές τις δυνατότητες σε μία μόνο συσκευή (ΕΙΚΟΝΑ 1):

  1. Είναι ένας προσομοιωτής παρουσίας: η συσκευή ενεργοποιεί και απενεργοποιεί έναν λαμπτήρα (ΕΙΚΟΝΑ 1) και χρησιμοποιεί έναν πομπό IR (ΕΙΚΟΝΑ 2) για την αποστολή κωδικών ελέγχου IR 38 KHz σε ελεγχόμενες συσκευές IR (τηλεόραση, βίντεο, λάμπες,…)
  2. Είναι ανιχνευτής κίνησης: η συσκευή διαθέτει αισθητήρα PIR για τον εντοπισμό κινήσεων (ΕΙΚΟΝΑ 3)

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

Τα κύρια χαρακτηριστικά της κύριας συσκευής είναι τα ακόλουθα:

  • Χρησιμοποιεί μια προγραμματισμένη ασφάλεια των εντολών για τον έλεγχο κάθε υποτελούς συσκευής. Για παράδειγμα: το φως στο σκλάβο σταθμό 1 θα ανάβει κάθε μέρα κατά τη διάρκεια ενός τυχαίου χρονικού διαστήματος ή ο υποτελής σταθμός 2 θα ανάψει την τηλεόραση και θα αλλάξει κανάλι μετά από ένα χρονικό διάστημα.
  • Λαμβάνει τα σήματα από τους υποτελείς σταθμούς όταν εντοπιστεί μια κίνηση και στείλτε μας και e-mail
  • Διαμορφώνει έναν διακομιστή Web για τον έλεγχο και την ενημέρωση ολόκληρου του συστήματος από απόσταση από το Cloud

Ελπίζω να σας αρέσει και να είναι χρήσιμος για κάποιον.

Βήμα 1: Δημιουργία συσκευής σκλάβου

Δημιουργία συσκευής σκλάβου
Δημιουργία συσκευής σκλάβου
Δημιουργία συσκευής σκλάβου
Δημιουργία συσκευής σκλάβου
Δημιουργία συσκευής σκλάβου
Δημιουργία συσκευής σκλάβου

Για να φτιάξουμε μια υποτελή συσκευή θα χρειαστούμε τα εξής:

  • Ηλεκτρικό κουτί
  • ARDUINO NANO ή συμβατός μικροελεγκτής ARDUINO NANO
  • Protoboard 480
  • Αναμετάδοση
  • Πομπός IR 38 KHz
  • Αισθητήρας PIR
  • μονάδα nRF24L01 + κεραία
  • Προσαρμογέας για μονάδα nRF24L01
  • Τροφοδοσία 5V, 0,6 A
  • Κάτοχος λαμπτήρα
  • Λάμπα
  • Καλώδια
  • Μπλοκ ακροδεκτών

Τα βήματα για την τοποθέτησή του είναι τα ακόλουθα (δείτε το σχέδιο Fritzing για κάθε σύνδεση ακίδων):

  1. ΕΙΚΟΝΑ 1: ανοίξτε μια τρύπα στο ηλεκτρικό κουτί για τη βάση του λαμπτήρα
  2. ΕΙΚΟΝΑ 2: εγκαταστήστε το protoboard 480 με τον μικροελεγκτή NANO, τον πομπό IR και το τροφοδοτικό
  3. ΕΙΚΟΝΑ 3: συνδέστε τον αγωγό φάσης της θήκης λαμπτήρα στον ακροδέκτη NC του ρελέ και τον ουδέτερο αγωγό στην ουδέτερη είσοδο στο μπλοκ ακροδεκτών. Στη συνέχεια, συνδέστε τον κοινό ακροδέκτη του ρελέ στον αγωγό φάσης της εισόδου στο μπλοκ ακροδεκτών
  4. ΕΙΚΟΝΑ 4: συνδέστε τον πομπό IR και τον αισθητήρα PIR στον μικροελεγκτή NANO. Δείτε το βήμα 3 για να διαμορφώσετε τους κωδικούς IR για τη συσκευή που θέλετε να ελέγξετε
  5. ΕΙΚΟΝΑ 5: εγκαταστήστε τον προσαρμογέα nRF24L01 έξω από το ηλεκτρικό κουτί και συνδέστε τον στον μικροελεγκτή NANO. Όπως μπορείτε να δείτε σε αυτήν την εικόνα, τα καλώδια μπαίνουν στο ηλεκτρικό κουτί μέσω μιας τρύπας που επίσης χρησιμοποιείται για τη σύνδεση του καλωδίου προγραμματισμού USB στον μικροελεγκτή NANO

Βήμα 2: Δημιουργία της κύριας συσκευής

Δημιουργία της κύριας συσκευής
Δημιουργία της κύριας συσκευής
Δημιουργία της κύριας συσκευής
Δημιουργία της κύριας συσκευής
Δημιουργία της κύριας συσκευής
Δημιουργία της κύριας συσκευής

Για την κατασκευή της κύριας συσκευής θα χρειαστούμε τα εξής:

  • Ηλεκτρικό κουτί
  • Μικροελεγκτής ARDUINO MEGA 2560 R3 ή συμβατός ARDUINO MEGA 2560 R3
  • Μονάδα WiFi NodeMCU Lua Amica V2 ESP8266
  • RTC DS3231
  • Protoboard 170
  • Αναμετάδοση
  • Πομπός IR 38 KHz
  • Αισθητήρας PIR
  • μονάδα nRF24L01 + κεραία
  • Προσαρμογέας για μονάδα nRF24L01
  • Τροφοδοσία 5V, 0,6 A
  • Κάτοχος λαμπτήρα
  • Λάμπα
  • Καλώδια
  • Μπλοκ ακροδεκτών

Τα βήματα για την τοποθέτησή του μοιάζουν πολύ με το προηγούμενο, επειδή η κύρια συσκευή είναι ουσιαστικά μια βοηθητική συσκευή με περισσότερες δυνατότητες (δείτε το σχέδιο Fritzing για κάθε σύνδεση ακίδων):

  • ΕΙΚΟΝΑ 1: ανοίξτε μια τρύπα στο ηλεκτρικό κουτί για τη βάση του λαμπτήρα
  • ΕΙΚΟΝΑ 2, ΕΙΚΟΝΑ 3: εγκαταστήστε τη μονάδα ESP8266 στο protoboard 170 και τοποθετήστε την πάνω από τον μικροελεγκτή MEGA 2560 όπως μπορείτε να δείτε στις εικόνες
  • ΕΙΚΟΝΑ 4: επικολλήστε ένα κομμάτι ξύλου μέσα στο ηλεκτρικό κουτί. Πάνω από το ξύλο εγκαταστήστε τον μικροελεγκτή MEGA 2560 με το ESP8266, τη μονάδα ρολογιού DS3231 και τον προσαρμογέα nRF24L01
  • ΕΙΚΟΝΑ 5: εγκαταστήστε το τροφοδοτικό και πραγματικά. Συνδέστε τον αγωγό φάσης της θήκης λαμπτήρα στον ακροδέκτη NC του ρελέ και τον ουδέτερο αγωγό στην ουδέτερη είσοδο στο μπλοκ ακροδεκτών. Μετά από αυτό, συνδέστε τον κοινό ακροδέκτη του ρελέ στον αγωγό φάσης της εισόδου στο μπλοκ ακροδεκτών.

Βήμα 3: Διαμόρφωση της κύριας συσκευής και των υποτελών συσκευών

Διαμόρφωση των συσκευών Master και Slave
Διαμόρφωση των συσκευών Master και Slave

Για να διαμορφώσετε τις συσκευές, πρέπει να κάνετε τα ακόλουθα βήματα:

ΒΗΜΑ 3.1 (και οι δύο συσκευές)

Εγκαταστήστε τις βιβλιοθήκες IRremote, RF24Network, RF24, DS3231 και Time στο ARDUINO IDE

ΒΗΜΑ 3.2 (μόνο για υποτελή συσκευή)

Διαμορφώστε τη διεύθυνση στο δίκτυο. Απλώς αναζητήστε τον ακόλουθο κώδικα στο σκίτσο "present_slave.ino" και δώστε μια διεύθυνση σε οκταδική μορφή. Χρησιμοποιήστε μόνο διευθύνσεις μεγαλύτερες από 0 επειδή η διεύθυνση 0 προορίζεται για τη κύρια συσκευή

const uint16_t this_node = 01; // Διεύθυνση της δικής μας συσκευής σε οκταδική μορφή

Φορτώστε το σκίτσο "present_slave.ino" στον μικροελεγκτή.

ΒΗΜΑ 3.3 (μόνο για κύρια συσκευή) (ΕΙΣΑΓΩΓΗ ΚΩΔΙΚΩΝ IR ΕΛΕΓΧΟΥ)

Εάν πρόκειται να χρησιμοποιήσετε μια συσκευή που ελέγχεται από κωδικούς ελέγχου IR 38KHz για προσομοίωση παρουσίας, πρέπει να γνωρίζετε μερικούς από αυτούς.

Διαφορετικά, πρέπει να λάβετε τους κωδικούς ελέγχου IR από τη συσκευή σας.

Για να το κάνετε αυτό, θα χρειαστείτε έναν δέκτη IR 38KHz, φορτώστε σε ένα μικροελεγκτή NANO το σκίτσο "ir_codes.ino" και συνδέστε τα πάντα όπως μπορείτε να δείτε στην ΕΙΚΟΝΑ 1

Στη συνέχεια, δείξτε το τηλεχειριστήριό σας στον δέκτη IR, πατήστε οποιοδήποτε κουμπί και θα δείτε στη σειριακή οθόνη κάτι παρόμοιο με:

(12 bits) αποκωδικοποιημένο SONY: A90 (HEX), 101010010000 (BIN) // κουμπί POWER

(12 bit) Αποκωδικοποιημένο SONY: C10 (HEX), 110000010000 (BIN) // κουμπί 4 (12 bits) Αποκωδικοποιημένο SONY: 210 (HEX), 1000010000 (BIN) // 5 κουμπί

Σε αυτήν την περίπτωση το τηλεχειριστήριο χρησιμοποιεί το πρωτόκολλο SONY IR και όταν πατάμε το κουμπί λειτουργίας στο τηλεχειριστήριο λαμβάνουμε τον κωδικό IR "0xA90" μήκους 12 bits ή όταν πατάμε το κουμπί 4 στο τηλεχειριστήριο, λαμβάνουμε το IR κωδικός "0xC10".

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

Αφού λάβετε τους κωδικούς IR πριν, πρέπει να τους εισαγάγετε με τον ακόλουθο τρόπο:

ΠΡΩΤΟΣ ΤΡΟΠΟΣ

Εάν έχετε ρυθμίσει ένα δίκτυο wifi, μπορείτε να το κάνετε χρησιμοποιώντας την ιστοσελίδα (Δείτε το βήμα: Ο διακομιστής Web)

ΔΕΥΤΕΡΟΣ ΤΡΟΠΟΣ

Διαφορετικά, πρέπει να αναζητήσετε τον επόμενο κώδικα στο αρχείο "ir_codes.ino" και να ενημερώσετε τις πληροφορίες. Στον παρακάτω κώδικα μπορείτε να δείτε πώς μπορούμε να εισαγάγουμε τις παραπάνω πληροφορίες μόνο για την κύρια συσκευή (διεύθυνση = 0)

/******************************************/

/******* Κωδικοί ελέγχου IR ***************** / /******************* ** 0x210, 0, 0, 0, 0, 0, 0, //,, 0, 0, 0, //, 0, /, 10 κωδικοί ελέγχου υπέρυθρης ακτινοβολίας για τη βοηθητική συσκευή (διεύθυνση = 4) ΑΓΝΩΣΤΟΣ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /************ ******************************** / / ********* Τερματισμός κωδικών ελέγχου IR ** ************ / / ********************************* *********/

Το σκίτσο έχει διαμορφωθεί για να λειτουργεί με τα ακόλουθα πρωτόκολλα IR:

  • NEC
  • SONY
  • RC5
  • RC6
  • LG
  • JVC
  • ΓΙΑΤΙ
  • SAMSUNG
  • ΑΙΧΜΗΡΟΣ
  • ΠΙΑΤΟ
  • DENON
  • LEGO_PF

Στο αρχείο "ir_codes.ino" μπορείτε να βρείτε μερικούς κωδικούς ελέγχου IR για πρωτόκολλα SAMSUNG και SONY.

/***************************************************************************/

// ΜΕΡΙΚΑ IR_PROTOCOLS ΚΑΙ ΚΩΔΙΚΟΙ // (SAMSUNG, number_of_bits, κουμπί POWER, κουμπί 1, 2, 3) // SAMSUNG, 32, 0xE0E010EF, 0xE0E020DF, 0xE0E0609F, 0xE0E0A05_F, ΚΟΥΜΠΙ, 0, Κουμπί, SONY, πλήκτρο 1, SONY, κουμπί 0,, 3, 4, 5, 6, 7, 8, 9, 0) // SONY, 12, 0xA90, 0x010, 0x810, 0x410, 0xC10, 0x210, 0xA10, 0x610, 0xE10, 0x110, 0x910 /***** ********************************************** *******************/

ΣΗΜΑΝΤΙΚΟ: Ο πρώτος κωδικός ελέγχου IR που εισάγεται πρέπει να είναι ο κωδικός ελέγχου IR για να απενεργοποιήσετε τη συσκευή. Θα σταλεί από τον κύριο στους υποτελείς όταν δεν έχει προγραμματιστεί καμία ενέργεια για αυτήν τη συσκευή

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

ΒΗΜΑ 3.4 (μόνο για την κύρια συσκευή) (ΕΙΣΑΓΩΓΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΠΡΟΣΟΜΟΠΟΙΗΣΗΣ ΠΡΟΣΦΟΡΑΣ)

Μπορείτε να εισαγάγετε τον προγραμματισμό προσομοίωσης παρουσίας με τον ακόλουθο τρόπο:

ΠΡΩΤΟΣ ΤΡΟΠΟΣ

Εάν έχετε ρυθμίσει ένα δίκτυο wifi, μπορείτε να το κάνετε χρησιμοποιώντας την ιστοσελίδα (Δείτε το βήμα: Ο διακομιστής Web)

ΔΕΥΤΕΡΟΣ ΤΡΟΠΟΣ

Πρέπει να αναζητήσετε τον επόμενο κώδικα στο αρχείο "ir_codes.ino" και να ενημερώσετε τις πληροφορίες.

Η μορφή προγραμματισμού προσομοίωσης παρουσίας είναι η ακόλουθη:

(hour_init_interval1), (hour_end_interval1), (hour_init_interval2), (hour_end_interval2), (min_delay_ir), (max_delay_ir), (min_delay_light), (max_delay_light)

/************ ΣΧΕΔΙΑΣΜΟΣ ΠΡΟΣΟΜΟΠΟΙΗΣΗΣ ΠΑΡΟΥΣΙΑΣ ************/

7, 8, 17, 3, 5, 60, 10, 40, // κύρια συσκευή (διεύθυνση = 0) 0, 0, 17, 23, 3, 30, 5, 10, // συσκευή σκλάβων (διεύθυνση = 1) 0, 0, 0, 0, 0, 0, 0, 0, // slave device (address = 2) 0, 0, 0, 0, 0, 0, 0, 0, // slave device (address = 3) 0, 0, 0, 0, 0, 0, 0 0 **********/

Στο παραπάνω παράδειγμα, ο προγραμματισμός προσομοίωσης παρουσίας για την κύρια συσκευή είναι ο εξής:

  • (hour_init_interval1 = 7) Η πρώτη προσομοίωση διαστήματος θα ξεκινήσει στις 7:00 π.μ. καθημερινά
  • (hour_end_interval1 = 8) Η πρώτη προσομοίωση διαστήματος θα ολοκληρωθεί στις 8:00 π.μ. της ίδιας ημέρας
  • (hour_init_interval2 = 17) Η δεύτερη προσομοίωση διαστήματος θα ξεκινήσει στις 17:00 μ.μ. κάθε μέρα
  • (hour_end_interval2 = 3) Η προσομοίωση του δεύτερου διαστήματος θα ολοκληρωθεί στις 3:00 π.μ. της επόμενης ημέρας
  • (min_delay_ir = 5) (max_delay_ir = 60) Ο χρόνος καθυστέρησης σε λεπτά μεταξύ τυχαίων αποστολών κωδικών ελέγχου IR είναι ένας τυχαίος αριθμός μεταξύ 5 και 60
  • (min_delay_light = 10) (max_delay_light = 40) Ο χρόνος καθυστέρησης σε λεπτά μεταξύ της ενεργοποίησης και απενεργοποίησης του φωτισμού είναι ένας τυχαίος αριθμός μεταξύ 10 και 40

και ο προγραμματισμός προσομοίωσης παρουσίας για τη βοηθητική συσκευή με διεύθυνση 2 είναι ο ακόλουθος:

  • (hour_init_interval1

    = 0) Δεν έχει οριστεί η πρώτη προσομοίωση διαστήματος

  • (hour_end_interval1 = 0) Δεν έχει οριστεί η πρώτη προσομοίωση διαστήματος
  • (hour_init_interval2 = 17) Η προσομοίωση θα ξεκινήσει στις 17:00 μ.μ. κάθε μέρα
  • (hour_end_interval2 = 23) Η προσομοίωση θα ολοκληρωθεί στις 23:00 μ.μ. της ίδιας ημέρας
  • (min_delay_ir = 3)

    (max_delay_ir

    = 30) Ο χρόνος καθυστέρησης σε λεπτά μεταξύ τυχαίων αποστολών κωδικών ελέγχου IR είναι ένας τυχαίος αριθμός μεταξύ 3 και 30

    (min_delay_light = 5)

    (max_delay_light

    = 10) Ο χρόνος καθυστέρησης σε λεπτά μεταξύ του διακόπτη ενεργοποίησης και απενεργοποίησης είναι ένας τυχαίος αριθμός μεταξύ 5 και 10

ΒΗΜΑ 3.5 (μόνο για την κύρια συσκευή) (ΔΙΑΜΟΡΦΩΣΗ ΤΟΥ ΡΟΛΟΙ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ)

Ένα από τα κλειδιά αυτού του έργου είναι ο χρόνος. Πρέπει να ορίσουμε την ώρα του ARDUINO όταν αρχίσει να τρέχει το σκίτσο. Για να γίνει αυτό χρειαζόμαστε μια μονάδα ρολογιού σε πραγματικό χρόνο. Μια μονάδα ρολογιού είναι το DS3231, το οποίο υποστηρίζει έναν εφεδρικό φορτιστή μπαταρίας, ο οποίος μπορεί να χρησιμοποιηθεί εκτός εάν συνδεθεί με τον μικροελεγκτή με τρία καλώδια δεδομένων χρησιμοποιώντας το πρωτόκολλο I2C.

Προηγούμενο για να χρησιμοποιήσετε το DS3231 πρέπει να ορίσετε την ώρα σε αυτήν την ενότητα. Για να το κάνετε αυτό, πρέπει να εκτελέσετε στην κύρια συσκευή το σκίτσο "DS3231_set.ino".

ΒΗΜΑ 3.6 (μόνο για την κύρια συσκευή) (ΔΙΑΜΟΡΦΩΣΗ ΤΗΣ ΜΟΝΑΔΑΣ ESP8266)

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

Επομένως, πρέπει να ενημερώσουμε τις ακόλουθες πληροφορίες στο σκίτσο "present_web.ino" για πρόσβαση στο τοπικό δίκτυο wifi και τη διαμόρφωση της διεύθυνσης ηλεκτρονικού ταχυδρομείου Gmail από την οποία το ESP8266 πρόκειται να στείλει τις κινήσεις που εντοπίστηκαν από όλες τις συσκευές στο δίκτυο και τη διεύθυνση ηλεκτρονικού ταχυδρομείου όπου θέλετε να λαμβάνετε τις ειδοποιήσεις (ESP8266 Αποστολέας Gmail με οδηγίες)

const char* ssid = "ssid του τοπικού σας δικτύου wifi";

const char* password = "κωδικός πρόσβασης στο τοπικό σας δίκτυο wifi"; const char* to_email = "e-mail όπου θέλετε να λαμβάνετε ειδοποιήσεις για εντοπισμούς κινήσεων"; Διακομιστής WiFiServer (80). // η θύρα που χρησιμοποιείται για να ακούσετε

και τις ακόλουθες πληροφορίες στο σκίτσο "Gsender.h".

const char*EMAILBASE64_LOGIN = "*** η κωδικοποίηση της σύνδεσής σας στο Gmail στο BASE64 ***";

const char*EMAILBASE64_PASSWORD = "*** κωδικοποιείτε τον κωδικό πρόσβασής σας στο Gmail στο BASE64 ***"; const char*FROM = "*** η διεύθυνση gmail σας ***";

ΣΗΜΑΝΤΙΚΟ: αυτός ο κωδικός δεν λειτουργεί με τον πυρήνα ESP8266 για την έκδοση Arduino 2.5.0. Για προσωρινή λύση, χρησιμοποιήστε την βασική έκδοση 2.4.2

ΒΗΜΑ 3.7 (μόνο για την κύρια συσκευή)

Αφού πραγματοποιήσετε το προηγούμενο βήμα 3.3, 3.4, 3.5 και 3.6, φορτώστε το σκίτσο "present_master.ino" στον μικροελεγκτή NANO και το σκίτσο "present_web.ino" στη μονάδα ESP8266

Βήμα 4: Δοκιμή του συστήματος

Για να ελέγξουμε αν όλα λειτουργούν όπως θέλουμε, το σκίτσο "present_master.ino" μπορεί να εκτελεστεί σε δοκιμαστική λειτουργία.

Μπορείτε να δοκιμάσετε μια συγκεκριμένη συσκευή με δύο τρόπους:

ΠΡΩΤΟΣ ΤΡΟΠΟΣ: εάν δεν χρησιμοποιείτε δίκτυο wifi, πρέπει να αναζητήσετε τον επόμενο κώδικα στο αρχείο "present_master.ino", να αλλάξετε σε "true" την αρχική τιμή για τη μεταβλητή "bool_test_activated" και να ενημερώσετε τη διεύθυνση ενός συσκευή για δοκιμή στην επόμενη γραμμή κωδικών και φόρτωση του σκίτσου στον μικροελεγκτή ARDUINO στην κύρια συσκευή.

boolean bool_test_activated = false; // αλλαγή σε true σε λειτουργία δοκιμής init

int device_to_test = 0; // slave διεύθυνση συσκευής για δοκιμή

Μην ξεχάσετε να αλλάξετε την τιμή σε false όταν θέλετε να βγείτε από τη δοκιμαστική λειτουργία και να φορτώσετε ξανά το σκίτσο

ΔΕΥΤΕΡΟΣ ΤΡΟΠΟΣ: Εάν χρησιμοποιείτε δίκτυο wifi, μπορείτε να χρησιμοποιήσετε την ιστοσελίδα για να ενεργοποιήσετε τη δοκιμαστική λειτουργία. Δείτε το βήμα "Ο διακομιστής Ιστού"

Εάν η συσκευή προς δοκιμή πρόκειται να στείλει κωδικούς ελέγχου IR, τοποθετήστε την κύρια ή τη βοηθητική συσκευή μπροστά από τη συσκευή ελεγχόμενης με υπέρυθρο ακτινοβολία (τηλεόραση, ραδιόφωνο…).

Αυτή η λειτουργία λειτουργεί με τον ακόλουθο τρόπο:

  • ΔΟΚΙΜΑΣΤΕ ΤΟ ΦΩΣ. Το φως της συγκεκριμένης συσκευής πρέπει να ανάβει και να σβήνει κάθε 10 δευτερόλεπτα.
  • ΔΟΚΙΜΗ ΤΩΝ ΚΩΔΙΚΩΝ IR. Το σκίτσο θα επιλέξει τυχαία έναν κωδικό IR που είχε εισαχθεί προηγουμένως και θα αποστέλλεται στη συσκευή ελεγχόμενης με υπέρυθρο ακτίνα κάθε 10 δευτερόλεπτα. Επομένως, πρέπει να ελέγξετε εάν η συσκευή αυτή κάνει την ενέργεια που αντιστοιχεί στον κωδικό IR που έχει ληφθεί
  • ΔΟΚΙΜΗ ΤΟΥ ΑΝΙΧΝΕΥΤΗ ΚΙΝΗΣΗΣ. Εάν η συσκευή ανιχνεύσει κίνηση μπροστά από τον αισθητήρα PIR, θα στείλει το σήμα στην κύρια συσκευή και το φως της πρέπει να αρχίσει να αναβοσβήνει αρκετές φορές

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

Βήμα 5: Ο διακομιστής Ιστού

Ο Διακομιστής Ιστού
Ο Διακομιστής Ιστού
Ο Διακομιστής Ιστού
Ο Διακομιστής Ιστού
Ο Διακομιστής Ιστού
Ο Διακομιστής Ιστού

Για να ελέγξετε το σύστημα και να ελέγξετε αν όλα λειτουργούν σωστά, η μονάδα ESP8266 έχει διαμορφωθεί ως διακομιστής Web. Δεν χρειάζεστε κανένα άλλο πρόσθετο λογισμικό για απομακρυσμένη πρόσβαση στο δίκτυο, απλώς πληκτρολογήστε σε ένα πρόγραμμα περιήγησης ιστού τη διεύθυνση IP του δρομολογητή σας. Στο δρομολογητή σας έχετε διαμορφώσει προηγουμένως την προώθηση θυρών για πρόσβαση στην ενότητα ESP8266 χρησιμοποιώντας μια στατική τοπική IP που έχει διαμορφωθεί από εσάς.

Αυτή η μονάδα είναι συνδεδεμένη με τον μικροελεγκτή ARDUINO χρησιμοποιώντας το πρωτόκολλο I2C.

Μπορείτε να δείτε την αρχική ιστοσελίδα στην ΕΙΚΟΝΑ 1:

  • Η ενότητα SYSTEM STATE μας δείχνει πληροφορίες σχετικά με το σύστημα:

    • Ημερομηνία και ώρα του συστήματος. Είναι πολύ σημαντικό η ημερομηνία και η ώρα να είναι στην ώρα τους
    • Η κατάσταση του προσομοιωτή παρουσίας (ενεργοποιημένη ή απενεργοποιημένη), η ημερομηνία και η ώρα της τελευταίας ενέργειας παρουσίας και η διεύθυνση της συσκευής που έχει εκτελέσει την ενέργεια (ΕΙΚΟΝΑ 2)
    • Η κατάσταση του ανιχνευτή κίνησης (ενεργοποιημένο ή απενεργοποιημένο) και ένα ιστορικό ανιχνεύσεων κίνησης ανά συσκευή: μετρητής και ημερομηνία και ώρα τελευταίας ανίχνευσης κίνησης (ΕΙΚΟΝΑ 3) Σε αυτήν την εικόνα μπορούμε να δούμε ότι στη συσκευή με τη διεύθυνση 1 έχει εντοπιστεί 1 κίνηση και η τελευταία ήταν στις 16:50:34
  • Η ενότητα COMMANDS μας επιτρέπει να κάνουμε τα εξής:

    • Για να ενεργοποιήσετε τον προσομοιωτή παρουσίας
    • Για να ενεργοποιήσετε τον ανιχνευτή κίνησης
    • Για να επιλέξετε μια συσκευή για εκκίνηση και διακοπή της δοκιμής (ΕΙΚΟΝΑ 4)
  • Η ενότητα ΠΑΡΑΤΗΡΗΣΗ ΕΝΤΟΛΗ μας επιτρέπει να κάνουμε τα εξής:

    Εισαγωγή ή ενημέρωση του σχεδιασμού προσομοίωσης παρουσίας για μια συγκεκριμένη συσκευή. Στην ΕΙΚΟΝΑ 5 μπορείτε να δείτε πώς να ενημερώσετε τον προγραμματισμό προσομοίωσης παρουσίας για τη συσκευή διεύθυνσης 1. Η μορφή συμβολοσειράς είναι η ακόλουθη: (addr_device), (hour_init1), (end_init1), (hour_init2), (end_init2), (min_delay_ir), (max_delay_ir), (min_delay_light), (max_delay_light). Όλοι οι αριθμοί είναι ακέραιοι αριθμοί. Εάν έχετε εισαγάγει μια έγκυρη συμβολοσειρά, θα δείτε τον νέο προγραμματισμό προσομοίωσης παρουσίας πριν από το κείμενο "LAST", διαφορετικά θα δείτε το μήνυμα "LAST: NOT VALID"

  • Η ενότητα IR CODE COMMAND μας επιτρέπει να κάνουμε τα εξής:

    Για να εισαγάγετε ή να ενημερώσετε έναν κωδικό ελέγχου IR για μια συγκεκριμένη συσκευή. Στην ΕΙΚΟΝΑ 6 μπορείτε να δείτε πώς μπορείτε να ενημερώσετε ή να εισαγάγετε έναν νέο κωδικό ελέγχου IR για τη συσκευή διεύθυνσης 1. Η μορφή συμβολοσειράς είναι η ακόλουθη: (addr_device), (IR_protocol), (protocol_bits_length), (index_IR_control_code), (IR_control_code). Το (IR_protocol) είναι μια σειρά με διάκριση πεζών -κεφαλαίων που δέχεται μόνο τις επόμενες τιμές (SONY, NEC, RC5, RC6, LG, JVC, WHYNTER, SAMSUNG, DISH, DENON, SHARP, LEGO_PF) και ο (IR_control_code) είναι δεκαεξαδικός αριθμός. Επειδή το σύστημα έχει ρυθμιστεί ώστε να αποθηκεύει 10 κωδικούς ελέγχου IR, (index_IR_control_code) είναι ένας ακέραιος αριθμός μεταξύ 1 και 10. Όπως και πριν, εάν έχετε εισαγάγει μια έγκυρη μορφή συμβολοσειράς, θα δείτε τον νέο κωδικό ελέγχου IR πριν από το κείμενο "LAST", αλλιώς θα δείτε το μήνυμα "ΤΕΛΕΥΤΑΙΑ: ΟΧΙ ΙΣΧΥΕΙ"

Για να αποκτήσετε πρόσβαση σε αυτήν την ιστοσελίδα από το τοπικό σας δίκτυο wifi, απλώς πληκτρολογήστε την IP που έχει ορίσει ο δρομολογητής σας στο ESP8266 σε ένα πρόγραμμα περιήγησης ιστού. Σε όλες τις εικόνες μπορείτε να δείτε ότι η IP που έχει εκχωρηθεί από το δρομολογητή μου είναι 192.168.43.120.

Για να αποκτήσετε πρόσβαση εξ αποστάσεως εκτός του τοπικού σας δικτύου wifi, πρέπει να ρυθμίσετε στο δρομολογητή σας τη θύρα που πρόκειται να χρησιμοποιήσετε για να ακούσετε δεδομένα εισερχομένων και να τα ανακατευθύνετε στο ESP8266 στο τοπικό σας δίκτυο. Μετά απλώς πληκτρολογήστε την IP του δρομολογητή σας σε ένα πρόγραμμα περιήγησης ιστού.

Βήμα 6: Παράδειγμα για τη διευκρίνιση όλων

Image
Image
Παράδειγμα για τη διευκρίνιση όλων
Παράδειγμα για τη διευκρίνιση όλων

Έχω σχεδιάσει ένα συγκεκριμένο παράδειγμα για να τα ξεκαθαρίσω όλα

Έχω δημιουργήσει τις ακόλουθες συσκευές (ΕΙΚΟΝΑ 2)

  • Μία συσκευή IR που χρησιμοποιεί έναν μικροελεγκτή NANO, ένα RGB led μέσα σε μια μπάλα πινγκ πονγκ και μία μονάδα δέκτη IR (ΕΙΚΟΝΑ 1). Όταν πατάμε το κουμπί ελέγχου από το 1 έως το 7 του τηλεχειριστηρίου IR, η μπάλα του πινγκ πονγκ αλλάζει χρώμα.
  • Η κύρια συσκευή (διεύθυνση 0)
  • Μια συσκευή σκλάβου (διεύθυνση 1)

Με όλα τα παραπάνω θα δοκιμάσουμε όλα τα χαρακτηριστικά του έργου. Ο προγραμματισμός προσομοίωσης παρουσίας θα μπορούσε να είναι:

  1. Η μπάλα που ελέγχεται από τη συσκευή σκλάβων θα αλλάξει χρώματα από τις 17:00 μ.μ. έως 23:00 μ.μ. και το πρωί από τις 7:00 το πρωί έως τις 8:00 το πρωί κάθε τυχαίο διάστημα λεπτών μεταξύ 1 και 1.
  2. Το φως που ελέγχεται από τη συσκευή υποβοήθησης θα ανάψει και θα σβήσει από τις 17:00 μ.μ. έως 23:00 μ.μ. και το πρωί από τις 7:00 το πρωί έως τις 8:00 το πρωί κάθε τυχαίο διάστημα λεπτών μεταξύ 1 και 2
  3. Το φως που ελέγχεται από την κύρια συσκευή θα ανάψει και θα σβήσει από τις 16:00 μ.μ. έως τη 1:00 π.μ. της επόμενης ημέρας κάθε τυχαίο διάστημα λεπτών μεταξύ 1 και 2

Μετά την εκτέλεση του σκίτσου "ir_codes.ino" έχουμε πει ότι το πρωτόκολλο IR που χρησιμοποιείται από το τηλεχειριστήριο IR είναι "NEC", το μήκος των κωδικών IR είναι 32 bit και οι κωδικοί ελέγχου IR για τα κουμπιά μεταξύ 1 έως 7 σε δεκαεξαδική μορφή είναι:

ΚΟΥΜΠΙ 1 = FF30CF

ΚΟΥΜΠΙ 2 = FF18E7

ΚΟΥΜΠΙ 3 = FF7A85

ΚΟΥΜΠΙ 4 = FF10EF

ΚΟΥΜΠΙ 5 = FF38C7

ΚΟΥΜΠΙ 6 = FF5AA5

ΚΟΥΜΠΙ 7 = FF42BD

Μπορείτε να διαμορφώσετε το σύστημα με δύο τρόπους:

ΠΡΩΤΟΣ ΤΡΟΠΟΣ: χρήση της ιστοσελίδας (δείτε το βίντεο στο τέλος αυτού του οδηγού)

ΔΕΥΤΕΡΟΣ ΤΡΟΠΟΣ: ενημέρωση του αρχείου "ir_codes.ino" και μεταφόρτωση μετά από:

/******************************************/

/******* Κωδικοί ελέγχου IR ***************** / /******************* ** 0xFF7A85, 0xFF10EF, 0xFF38C7, 0xFF5AA5, 0xFF42BD, 0, 0, 0, /, 0, 0, 0, // // protocol_id, number_of_bits, 10 κωδικοί IR υπέρυθρης συσκευής (διεύθυνση = 2) ΑΓΝΩΣΤΟ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /, 10 κωδικοί ελέγχου υπέρυθρης ακτινοβολίας για τη βοηθητική συσκευή (διεύθυνση = 4) ΑΓΝΩΣΤΟΣ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /************ ******************************** / / ********* Τερματισμός κωδικών ελέγχου IR ** ************ / / ********************************* *********/

/************ ΣΧΕΔΙΑΣΜΟΣ ΠΡΟΣΟΜΟΠΟΙΗΣΗΣ ΠΑΡΟΥΣΙΑΣ ************/

0, 0, 16, 1, 0, 0, 1, 2, // κύρια συσκευή (διεύθυνση = 0) 7, 8, 17, 23, 1, 1, 1, 2, // συσκευή σκλάβου (διεύθυνση = 1) RGB μπάλα 0, 0, 0, 0, 0, 0, 0, 0, // συσκευή σκλάβων (διεύθυνση = 2) 0, 0, 0, 0, 0, 0, 0, 0, // συσκευή σκλάβων (διεύθυνση = 3) 0, 0, 0, 0, 0, 0, 0, 0 // συσκευή σκλάβου (διεύθυνση = 4) /************ ΤΕΛΟΣ ΠΡΟΟΔΟΣ ΠΡΟΣΟΜΟΠΟΙΗΤΗΣ ******** ************/

Συνιστάται: