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

Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας: 5 βήματα (με εικόνες)
Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας: 5 βήματα (με εικόνες)

Βίντεο: Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας: 5 βήματα (με εικόνες)

Βίντεο: Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας: 5 βήματα (με εικόνες)
Βίντεο: 6ο Μαθητικο Συνέδριο Πληροφορικής - 1η Μέρα - 2η Συνεδρία 2024, Ιούλιος
Anonim
Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας
Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας
Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας
Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας
Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας
Δίκτυο σταθμών αισθητήρων για φωτισμό και έλεγχο ασφαλείας

Με αυτό το δίκτυο σταθμών αισθητήρων διαμορφωμένο σε λειτουργία κύριας/υποτελής, θα μπορείτε να κάνετε φωτισμό και έλεγχο ασφαλείας στο σπίτι σας. Αυτοί οι σταθμοί αισθητήρων (Node01, Node02 σε αυτό το έργο) συνδέονται με έναν κύριο σταθμό (Node00) συνδεδεμένο στο τοπικό σας δίκτυο wifi. Έχω εγκαταστήσει το Node01 στην αποθήκη μου και το Node02 στο γκαράζ που ελέγχει τα φώτα και τις κινήσεις. Ο κύριος σταθμός είναι εγκατεστημένος στο δωμάτιο μας, συνδεδεμένο με το δρομολογητή wifi. Έχω εγκαταστήσει το κουδούνι στο γκαράζ και ένα μικρό βομβητή στον κύριο σταθμό για να ακούγεται όταν ανιχνεύεται κίνηση από κάποιον σταθμό αισθητήρων στο δίκτυο.

Τα κύρια χαρακτηριστικά του δικτύου είναι:

  • Είναι δυνατή η διαμόρφωση ενός δικτύου με περισσότερους από δύο σταθμούς αισθητήρων (υποτελείς σταθμοί) (Node01, Node02, Node03,….)
  • Επειδή η χρήση ασύρματων πομποδεκτών με κεραία, το δίκτυο είναι σε θέση να καλύψει μια ευρεία περιοχή
  • Μπορείτε να ελέγξετε ολόκληρο το δίκτυο από ένα κινητό τηλέφωνο
  • Στείλτε ένα email (λογαριασμός Gmail) όταν εντοπιστεί κίνηση και είναι ενεργοποιημένη η κατάσταση συναγερμού. Έτσι, εάν ενεργοποιήσετε τις ειδοποιήσεις push Gmail στο κινητό σας, θα ξέρετε πότε ανιχνεύεται μια κίνηση στο δίκτυό σας

για εσωτερικούς σκοπούς:

  • Ενεργοποιήστε τα φώτα όταν ανιχνεύεται μια κίνηση
  • Αλλάξτε την ώρα σε λεπτά που ανάβουν τα φώτα αφού εντοπιστεί κίνηση για κάθε υποτελή σταθμό

για λόγους ασφαλείας:

  • Ενεργοποιήστε και απενεργοποιήστε τη λειτουργία συναγερμού
  • Κάθε υποτελής σταθμός είναι σε θέση να στείλει ένα σήμα σε έναν κύριο σταθμό (Node00) όταν είναι ενεργοποιημένη η κατάσταση συναγερμού και ανιχνευθεί μια κίνηση
  • Ο κύριος σταθμός είναι σε θέση να ενεργοποιήσει ένα κουδούνι και να στείλει ένα μήνυμα ηλεκτρονικού ταχυδρομείου όταν ληφθεί ένα από αυτά τα σήματα από οποιονδήποτε σταθμό υποβοήθησης και είναι ενεργοποιημένη η κατάσταση συναγερμού. Ο κύριος σταθμός (Node00) είναι συνδεδεμένος στο διαδίκτυο χρησιμοποιώντας μια σύνδεση wifi για τον έλεγχο ολόκληρου του συστήματος χρησιμοποιώντας ένα κινητό τηλέφωνο. Έχει ρυθμιστεί σαν WifiWebServer

Βήμα 1: Λίστα υλικού

Κατάλογος Υλικού
Κατάλογος Υλικού
Κατάλογος Υλικού
Κατάλογος Υλικού

Η λίστα υλικού που έχω χρησιμοποιήσει για την κατασκευή των Node01 και Node02 (slave station) είναι η ακόλουθη:

  • Πίνακας Mega 2560 R3
  • Πλαστική υποστήριξη για MEGA 2560 R3
  • Αισθητήρας HC-SR501 PIR
  • Πλαστική υποστήριξη για HC-SR501
  • Ρελέ 5V
  • Ασύρματη μονάδα πομποδέκτη 2.4G 1100m NRF24L01+PA+LNA με κεραία LKY67
  • Προσαρμογέας 8Pin NRF24L01 (για βελτίωση των χαρακτηριστικών του NRF24L01)
  • Μικρό τροφοδοτικό HLK-PM01 AC DC 220V έως 5V

Η λίστα υλικού για την κατασκευή του Node00 (κύριοι σταθμοί) είναι η ακόλουθη:

  • Πίνακας Mega 2560 R3
  • Πλαστική υποστήριξη για MEGA 2560 R3
  • Μονάδα WiFi NodeMCU Lua Amica V2 ESP8266
  • Ασύρματη μονάδα πομποδέκτη 2.4G 1100m NRF24L01+PA+LNA με κεραία LKY67
  • 5v-3.3v πλακέτα προσαρμογέα VCC για NRF24L01 (για βελτίωση των χαρακτηριστικών του NRF24L01)
  • Προσαρμογέας AC-DC, 9V, 1A (2, 1 mm x 5, 5mm)

Επιπλέον, χρησιμοποίησα το ακόλουθο υλικό:

  • 2 συνδετήρες PCB 5 mm 5 mm
  • Καλώδια βραχυκυκλωτήρων
  • Breadboard MB-102 (800 επαφές)
  • Μίνι Solderless Breadboard 170 επαφές
  • Σύνολο οδηγήσεων και αντιστάσεων
  • Πλακέτες PCB
  • Σετ συγκολλητικού σιδήρου από κασσίτερο
  • Όπλο κόλλας
  • Διαφανές μεθακρυλικό
  • Κουδούνι

Βήμα 2: Πώς να συνδεθείτε και να προγραμματίσετε τα Node01 και Node02 (Slave Stations)

Τρόπος σύνδεσης και προγραμματισμού των Node01 και Node02 (Slave Stations)
Τρόπος σύνδεσης και προγραμματισμού των Node01 και Node02 (Slave Stations)
Τρόπος σύνδεσης και προγραμματισμού των Node01 και Node02 (Slave Stations)
Τρόπος σύνδεσης και προγραμματισμού των Node01 και Node02 (Slave Stations)

Για να προγραμματίσω το σκίτσο "SlaveSation.ino" χρειαζόμουν τη βιβλιοθήκη RF24 και τη βιβλιοθήκη RF24 Network.

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

Πριν φορτώσετε το σκίτσο πρέπει να διαμορφώσετε τη διεύθυνση του σκλάβου κόμβου σε οκταδική μορφή

const uint16_t this_node = 01; // Διεύθυνση του κόμβου μας σε οκταδική μορφή (slave): 01, 02, 03…

Η έννοια των led σε κάθε σταθμό slave είναι η ακόλουθη:

  • Μπλε led. Θα ανάψει ενώ ο πείρος του αισθητήρα PIR είναι ψηλός.
  • Πράσινο led. Θα ανάψει όταν συνδεθεί ο συναγερμός.

Βήμα 3: Πώς να συνδεθείτε και να προγραμματίσετε το Node00 (Master Station)

Πώς να συνδεθείτε και να προγραμματίσετε το Node00 (Master Station)
Πώς να συνδεθείτε και να προγραμματίσετε το Node00 (Master Station)
Πώς να συνδεθείτε και να προγραμματίσετε το Node00 (Master Station)
Πώς να συνδεθείτε και να προγραμματίσετε το Node00 (Master Station)
Πώς να συνδεθείτε και να προγραμματίσετε το Node00 (Master Station)
Πώς να συνδεθείτε και να προγραμματίσετε το Node00 (Master Station)

Στο σταθμό Node00 μπορούμε να βρούμε δύο διαφορετικούς πίνακες:

  • MEGA 2560 R3 πλακέτα. Αυτή η συσκευή χρησιμοποιείται για τη λήψη μηνυμάτων από το σταθμό slaves όταν ανιχνεύεται κίνηση χρησιμοποιώντας ασύρματη επικοινωνία. Θα ενεργοποιήσει ένα κουδούνι όταν εντοπιστεί μια κίνηση και συνδεθεί ο συναγερμός. Για να σταματήσετε το κουδούνι, απλώς αποσυνδέστε τη λειτουργία συναγερμού. Επιπλέον, στέλνει στους υπαλλήλους σταθμούς μηνύματα από το NodeMCU για να ενεργοποιήσουν ή να απενεργοποιήσουν την ανίχνευση κίνησης, να ανάβουν πάντα τα φώτα, να σβήνουν πάντα τα φώτα,…
  • Πίνακας NodeMCU Lua Amica V2 ESP8266. Λειτουργεί σαν διακομιστής Wifi Web για τη μετάδοση και λήψη εντολών από απομακρυσμένο μέρος χρησιμοποιώντας μια ιστοσελίδα στο κινητό τηλέφωνο. Επιπλέον στέλνει μηνύματα e-mail όταν εντοπιστεί κίνηση και είναι ενεργοποιημένη η κατάσταση συναγερμού.

Και οι δύο συσκευές είναι προγραμματισμένες να επικοινωνούν μεταξύ τους σε διαμόρφωση Master (NodeMCU)/Slave (MEGA) μέσω του σύγχρονου σειριακού πρωτοκόλλου I2C χρησιμοποιώντας τη βιβλιοθήκη καλωδίων. Το πρωτόκολλο I2C περιλαμβάνει τη χρήση δύο γραμμών για την αποστολή και λήψη δεδομένων: ένα σειριακό pin ρολογιού (SCL) και ένα pin σειριακών δεδομένων (SDA) μέσω των οποίων τα δεδομένα αποστέλλονται μεταξύ των δύο συσκευών.

Όπως μπορείτε να δείτε στο σχέδιο, οι δύο ακίδες για την επικοινωνία I2C στον πίνακα MEGA 2560 R3 είναι:

  1. SDA -> pin 20 SDA
  2. SCL -> pin 21 SCL

και τα άλλα στο NodemMCU είναι:

  1. SDA -> ψηφιακή ακίδα 1
  2. SCL -> ψηφιακή ακίδα 2

Πριν φορτώσετε το σκίτσο για το ESP8266, πρέπει να εγκαταστήσετε τον πίνακα ESP8266. Για να το κάνετε αυτό, πρέπει να εισαγάγετε "https://arduino.esp8266.com/stable/package_esp8266com_index.json" στις "Πρόσθετες διευθύνσεις URL διαχειριστή πίνακα" στο παράθυρο προτιμήσεων στο IDE Arduino. Μετά από αυτό, πρέπει να ανοίξετε τον πίνακα διαχείρισης και να εγκαταστήσετε το "esp8266"

Χρησιμοποιώ έναν εξωτερικό προσαρμογέα τροφοδοσίας (9V, 1A) για την πλακέτα MEGA 2560 R3 (υποδοχή τροφοδοσίας DC, 2, 1mm x 5, 5 mm) και συνδέω την πλακέτα NodeMCU στην ακίδα 3V3 της πλακέτας MEGA.

Βήμα 4: WifiWebServer (NodeMCU στο Master Station)

WifiWebServer (NodeMCU στο Master Station)
WifiWebServer (NodeMCU στο Master Station)
WifiWebServer (NodeMCU στο Master Station)
WifiWebServer (NodeMCU στο Master Station)

Το σκίτσο που φορτώθηκε στο NodeMCU (Node00 ή κύριος σταθμός) έχει διαμορφωθεί σαν WebServer συνδεδεμένο στο οικιακό σας δίκτυο wifi. Είναι δυνατή η απομακρυσμένη πρόσβαση εάν διαμορφώσετε την προώθηση θυρών στο δρομολογητή σας.

Πριν φορτώσετε το σκίτσο του WifiWebServerV3.ino στο NodeMCU πρέπει να κάνετε τα εξής:

  1. Ενημερώστε τη θύρα που πρόκειται να ρυθμίσετε στο δρομολογητή σας (προώθηση θυρών) για απομακρυσμένη πρόσβαση στο NodeMCU
  2. Ενημερώστε τον χρήστη και τον κωδικό πρόσβασης για πρόσβαση στο οικιακό σας δίκτυο wifi
  3. Ενημερώστε τα στοιχεία σύνδεσης και τον κωδικό πρόσβασης του λογαριασμού σας Gmail για να στείλετε e-mail όταν εντοπιστεί κίνηση και συνδεθεί το ξυπνητήρι
  4. Ενημερώστε τη διεύθυνση e-mail όπου θα λάβετε τα e-mail

Για να ενημερώσετε τον χρήστη, τον κωδικό πρόσβασης και τη θύρα που θα χρησιμοποιήσει ο διακομιστής για να ακούσει, πρέπει να αναζητήσετε τον ακόλουθο κώδικα στο σκίτσο του WifiWebServerV3.ino και να τον ενημερώσετε:

const char*ssid = "*** το ssid σας ***";

const char*password = "*** ο κωδικός πρόσβασής σας ***"; Διακομιστής WiFiServer (80).

Για να ενημερώσετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου όπου θα λάβετε τα μηνύματα ηλεκτρονικού ταχυδρομείου, πρέπει να αναζητήσετε τον ακόλουθο κώδικα και να τον ενημερώσετε:

const char*to_email = "*** διεύθυνση e-mail όπου θα λάβετε το μήνυμα ***";

Για να ενημερώσετε τον χρήστη και τον κωδικό πρόσβασης του λογαριασμού σας Gmail για να λαμβάνετε μηνύματα ηλεκτρονικού ταχυδρομείου, πρέπει να αναζητήσετε τον ακόλουθο κώδικα στο αρχείο "Gsender.h" και να τον ενημερώσετε:

const char*EMAILBASE64_LOGIN = "*** η διεύθυνση ηλεκτρονικού ταχυδρομείου σας κωδικοποιεί στο BASE64 ***";

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

Για κωδικοποίηση ή αποκωδικοποίηση δεδομένων στο BASE64 έχω χρησιμοποιήσει το www.base64encode.org

Εάν χρειάζεστε περισσότερες πληροφορίες σχετικά με την αποστολή και λήψη μηνυμάτων ηλεκτρονικού ταχυδρομείου με το ESP8266, υπάρχει ένα "Εκπαιδευτικό" σχετικά με αυτό εδώ

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

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

Η ιστοσελίδα που σας εμφανίζω στις εικόνες είναι προγραμματισμένη να ελέγχει ένα δίκτυο με δύο υποτελείς σταθμούς.

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

#ορίστε τον αριθμό_max_slaves 5

Η ιστοσελίδα αρχικά χωρίζεται σε 4 ενότητες:

  1. Ενότητα "Κατάσταση" όπου σας δείχνει εάν ο συναγερμός είναι συνδεδεμένος ή όχι
  2. Ενότητα "Μετρητής συναγερμών" όπου σας δείχνει τον αριθμό ανίχνευσης κίνησης σε κάθε υποτελή σταθμό
  3. Ενότητα "Συναγερμός" όπου μπορείτε να συνδέσετε ή να αποσυνδέσετε (ΣΥΝΔΕΣΗ ΣΥΝΑΓΕΡΜΟΥ/ΔΙΑΚΟΠΤΗΣ ΣΥΝΑΓΕΡΜΟΣ) το ξυπνητήρι και επαναφέρετε τον μετρητή συναγερμών (ΕΠΑΝΑΦΟΡΑ ΚΟΥΝΤΕΡ)
  4. Ενότητα "Φωτισμός" όπου μπορείτε να ελέγχετε τα φώτα κάθε σταθμού υποτελών. Μπορείτε να ελέγξετε τα ακόλουθα:

    • Ενεργοποιήστε τα φώτα σε όλους τους υποτελείς σταθμούς / ανάψτε τα φώτα μόνο όταν ανιχνεύεται κίνηση σε όλους τους υποτελείς σταθμούς (ΔΙΚΤΥΟ ΠΑΝΤΑ ΕΝΕΡΓΟΠΟΙΗΜΕΝΟ / ΔΙΚΤΥΟ ΟΤΑΝ ΚΙΝΗΣΗ)
    • Αλλάξτε την ώρα σε λεπτά που ανάβουν τα φώτα για κάθε υποτελή σταθμό (NODExx ON 1 MINUTE/NODEXX ON 2 LINUTE)
    • Ανάψτε τα φώτα για κάθε υποτελή σταθμό (NODExx ΠΑΝΤΑ ΕΝΕΡΓΟΠΟΙΗΜΕΝΟ)
    • Ανάψτε τα φώτα για κάθε υποτελές σταθμό μόνο όταν εντοπιστεί κίνηση (NODExx_MOV)

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

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

Βήμα 5: Από την αρχή…

Εδώ είναι τα βήματα που πρέπει να ακολουθήσετε για να δημιουργήσετε το δίκτυό σας:

  1. Αγοράστε όλο το υλικό που ακολουθεί τη λίστα που σας δίνω στο "Βήμα 1"
  2. Συνδέστε τα στοιχεία που ακολουθούν το σχέδιο που μπορείτε να κατεβάσετε στα "Βήμα 2" και "Βήμα 3"
  3. Δημιουργήστε κουτιά για κάθε σκλάβο σταθμό και τον κύριο σταθμό. Έχω φτιάξει κουτιά μεθακρυλικού.
  4. Διαμορφώστε κάθε σταθμό υποτελών:

    Κατεβάστε και φορτώστε το σκίτσο "SlaveStation.ino" σε έναν πίνακα MEGA 2560 R3. Δεν έχετε παρά να επεξεργαστείτε το σκίτσο και να ενημερώσετε τη διεύθυνση του υποτελούς σταθμού, όπως μπορείτε να δείτε στο "Βήμα 2"

  5. Διαμορφώστε τον κύριο σταθμό:

    • Κατεβάστε και φορτώστε το σκίτσο "SlaveStation.ino" σε ένα MEGA 2560 R3. Δεν χρειάζεται να αλλάξετε τίποτα ανεξάρτητα από τον αριθμό των κόμβων σκλάβων του δικτύου σας. Αρχικά, το σκίτσο έχει ρυθμιστεί για έως και 5 υποτελείς σταθμούς.
    • Κατεβάστε και φορτώστε το σκίτσο "WifiServerV3.ino" στο NodeMCU. Πρέπει να ενημερώσετε το σκίτσο ακολουθώντας την οδηγία στο "Βήμα 4"
  6. Διαμορφώστε το δρομολογητή σας για πρόσβαση από απόσταση στο NodeMCU (προώθηση θυρών, στατική IP…)

Συνιστάται: