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

Ισχυρό αυτόνομο σύστημα αυτοματισμού σπιτιού - Pi, Sonoff, ESP8266 και Node -Red: 9 βήματα (με εικόνες)
Ισχυρό αυτόνομο σύστημα αυτοματισμού σπιτιού - Pi, Sonoff, ESP8266 και Node -Red: 9 βήματα (με εικόνες)

Βίντεο: Ισχυρό αυτόνομο σύστημα αυτοματισμού σπιτιού - Pi, Sonoff, ESP8266 και Node -Red: 9 βήματα (με εικόνες)

Βίντεο: Ισχυρό αυτόνομο σύστημα αυτοματισμού σπιτιού - Pi, Sonoff, ESP8266 και Node -Red: 9 βήματα (με εικόνες)
Βίντεο: Φωτόδεντρο LOR: Συλλογή ΕΠΑΛ Ηλεκτρολογία: Αυτόνομο σύστημα φωτοβολταϊκών 2024, Ιούλιος
Anonim
Ισχυρό αυτόνομο σύστημα αυτοματισμού σπιτιού - Pi, Sonoff, ESP8266 και Node -Red
Ισχυρό αυτόνομο σύστημα αυτοματισμού σπιτιού - Pi, Sonoff, ESP8266 και Node -Red

Αυτός ο οδηγός θα σας οδηγήσει στην πρώτη βάση όπου μπορείτε να ενεργοποιήσετε/απενεργοποιήσετε ένα φως ή μια συσκευή μέσω οποιασδήποτε συσκευής που μπορεί να συνδεθεί στο τοπικό σας δίκτυο και με μια εξαιρετική προσαρμόσιμη διεπαφή ιστού. Το πεδίο για την επέκταση/ προσθήκη λειτουργιών είναι τεράστιο, συμπεριλαμβανομένης της αποστολής email, μηνυμάτων twitter, αισθητήρων ανάγνωσης (π.χ. θερμοκρασίας). Μπορείτε εύκολα να ορίσετε κανόνες π.χ. - εάν η θερμοκρασία είναι κάτω από τους 15C στις 11μμ, ενεργοποιήστε την ηλεκτρική κουβέρτα για 30 λεπτά. Το σύστημα χρησιμοποιεί το πρωτόκολλο MQTT με TCP που είναι σημαντικά πιο αξιόπιστο από το UDP - το οποίο χρησιμοποιείται εκπληκτικά από ορισμένες εμπορικές συσκευές οικιακού αυτοματισμού. Μόλις ολοκληρωθεί η σκληρή δουλειά για τη ρύθμιση του συστήματος, που περιγράφεται εδώ, μπορεί να ξεκινήσει η διασκέδαση. Το Node Red παρέχει μια φανταστική διεπαφή χρήστη που είναι διαισθητική, γρήγορη και εύκολη στη ρύθμιση και παρέχει εκπληκτική δυνατότητα.

Το αποτέλεσμα είναι ένα ισχυρό σύστημα αυτοματισμού σπιτιού που βρίσκεται πλήρως υπό τον δικό του έλεγχο και βρίσκεται εξ ολοκλήρου σε τοπικό δίκτυο. Πολλά από τα συστήματα που εμφανίζονται στο Instructables λειτουργούν με διακομιστές που βασίζονται σε cloud και ως εκ τούτου αποτελούν κίνδυνο ασφάλειας και μπορεί να απαιτούν συνδρομή. Αυτά είναι ευκολότερα στη ρύθμιση, αλλά έχουν μεγαλύτερο κίνδυνο ασφάλειας και δυνητικά υψηλότερο κόστος. Πρέπει να προσθέσω ότι μπορεί κανείς να ρυθμίσει ένα VPN (εικονικό ιδιωτικό δίκτυο) στο Pi για να ενεργοποιήσει την ασφαλή σύνδεση στο οικιακό δίκτυο/σύστημα, εάν η πρόσβαση από έξω θα ήταν χρήσιμη (Google Pi OpenVPN για οδηγίες).

Αυτό το σύστημα απαιτεί επαναπρογραμματισμό συσκευών Sonoff με ένα υπέροχο σύστημα ανοιχτού κώδικα που ονομάζεται Sonoff-Tasmoda. Αυτό μπορεί να γίνει χρησιμοποιώντας μια ειδική ρύθμιση Arduino και έναν μετατροπέα USB σε σειριακό. Οι συσκευές Sonoff χρησιμοποιούν το τσιπ Wi-Fi ESP8266, ώστε να μπορείτε επίσης να φτιάξετε τις δικές σας συσκευές χρησιμοποιώντας μονάδες ESP8266 ή να τις προσαρμόσετε σε άλλα στοιχεία για να παρέχετε ασύρματη συνδεσιμότητα.

Το μεγαλύτερο καθήκον είναι η δημιουργία ενός Raspberry Pi ως κόμβου. Αυτό τρέχει τον μεσίτη MQTT (ή διακομιστή) που διαχειρίζεται την επικοινωνία με τις συνδεδεμένες συσκευές. Το Pi τρέχει επίσης ένα σύστημα που ονομάζεται Node-Red και μπορεί να υποκλέψει μηνύματα και δεδομένα και να εξάγει εντολές-όπως πότε πρέπει να ενεργοποιηθεί η ηλεκτρική κουβέρτα. Το Node-Red παρέχει επίσης μια διεπαφή για την εξυπηρέτηση της ιστοσελίδας στην οποία μπορείτε να συνδεθείτε μέσω smartphone/tablet/PC/Laptop, για να δείτε τι συμβαίνει και να ενεργοποιήσετε τη χειροκίνητη εναλλαγή φώτων κ.ο.κ.

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

Τα βήματα είναι:

  • Φορτώστε ένα Pi με Rasbian Stretch
  • Ενημερώστε και προσθέστε δυνατότητες στο Node-Red
  • Εγκαταστήστε τον μεσίτη Mosquitto MQTT
  • Ρυθμίστε το περιβάλλον Arduino για τη μεταφόρτωση του υλικολογισμικού Sonoff-Tasmota
  • Επαναπρογραμματίστε έναν διακόπτη Sonoff
  • Ρυθμίστε τη διεπαφή Node-Red
  • Δοκιμάστε όλα λειτουργούν.

Υλικό που θα χρειαστείτε:

  • Raspberry Pi και τροφοδοτικό (και πληκτρολόγιο και οθόνη για την αρχική ρύθμιση) (το μοντέλο Β χρησιμοποιείται εδώ)
  • Διακόπτης Sonoff
  • Σειριακός μετατροπέας USB
  • Προαιρετικά - πίνακας ανάπτυξης ESP, όπως το NodeMCU.

Η εμπειρία μου με το Raspberry Pi είναι ότι η εγκατάσταση οτιδήποτε φαίνεται να συνεπάγεται πολύ περισσότερο πόνο από ό, τι θα μπορούσε κανείς να φανταστεί ότι δεν μπορεί να λειτουργήσει ή να κολλήσει σε κάποιο ασήμαντο βήμα όπου η εξήγηση θα μπορούσε να ήταν καλύτερη. Τα φόρουμ δεν λαμβάνουν πάντα συμβουλές που λειτουργούν! Βρήκα αρκετές διαδρομές που απλά δεν λειτουργούσαν για τον έναν ή τον άλλο λόγο. Αυτό κοστίζει 3 ημέρες! Στη συνέχεια σκούπισα τα πάντα και ξεκίνησα από την αρχή και ολοκλήρωσα σε λιγότερο από μια (μεγάλη) μέρα. Αυτό όμως χρησιμοποίησε την παλαιότερη Raspian Jessie. Μετά από αυτό βρήκα έναν τρόπο να χρησιμοποιήσω την τρέχουσα και πρόσφατα κυκλοφορημένη έκδοση (Stretch) και τα έκανα όλα ξανά. Αυτός ο οδηγός επιτρέπει την αντιγραφή και επικόλληση οδηγιών στο Pi. Οπότε θα πρέπει να τελειώσετε σε λίγες ώρες. Τέλος πάντων, ελπίζω ότι αυτό θα σας ανεβάσει πιο γρήγορα στην καμπύλη μάθησης και με πολύ λιγότερο πόνο. Πιστέψτε με αξίζει τον κόπο για το τελικό αποτέλεσμα.

Βήμα 1: Φορτώστε ένα Pi με Rasbian Stretch

Αυτό πρέπει να είναι αρκετά απλό. Ξεκινήστε με μια κάρτα SD 8Gb ή 16Gb. Κατεβάστε την τελευταία έκδοση από:

www.raspberrypi.org/downloads/

Το κύριο νήμα εδώ υποθέτει ότι έχει φορτωθεί η πλήρης έκδοση. Ωστόσο, μπορείτε να χρησιμοποιήσετε την lite έκδοση για να εξοικονομήσετε χώρο. Εάν χρησιμοποιείτε το Raspbian Stretch Lite, προχωρήστε σε αυτό το βήμα και, στη συνέχεια, μεταβείτε στο Βήμα 9 στο τέλος.

Η αποσυμπίεση του ληφθέντος αρχείου δίνει έναν φάκελο με το αρχείο.img. Το 7Zip συνιστάται για Windows (και The Unarchiver Mac). Η εικόνα πρέπει να εγγραφεί στην κάρτα SD - αλλά πρέπει να χρησιμοποιηθεί ένα ειδικό πρόγραμμα καθώς το σύστημα αρχείων δεν είναι συμβατό με τα Windows. Το προτεινόμενο λογισμικό ονομάζεται Etcher και μπορείτε να το κατεβάσετε από:

etcher.io/

Οι οδηγίες για το Etcher βρίσκονται στον ιστότοπό τους και δύσκολα θα μπορούσαν να είναι απλούστερες. Επιλέξτε την εικόνα και τη μονάδα δίσκου και κάντε κλικ στο Flash.

Τώρα με την αναβοσβήνει κάρτα SD μας με μπορεί να πάρει το Pi σε λειτουργία.

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

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

Υπάρχει ένας οδηγός για ένα μεγάλο μέρος της εργασίας σε ένα βίντεο YouTube. Εδώ ξεκίνησα. Μπορείτε να εκτελέσετε το βίντεο ακολουθώντας αυτές τις οδηγίες. Ωστόσο, όταν έτρεχα ξανά τη διαδικασία ενώ το έγραφα αυτό, μου φάνηκε πιο εύκολο να ακολουθήσω τις οδηγίες εδώ. Υπάρχουν σημαντικές αποκλίσεις. Υπάρχουν επίσης ορισμένες ενότητες όπου σας συμβουλεύω να ακολουθήσετε το βίντεο και όχι να αναφέρετε τα βήματα εδώ. Θα συνιστούσα ωστόσο να το δείτε για να κατανοήσετε το MQTT, το Node-Red και την ευρεία διαδικασία εγκατάστασης. Το βίντεο έχει διάρκεια 38 λεπτά, οπότε χαλαρώστε. Το βίντεο ξεκινά με την εμφάνιση του τι μπορεί να κάνει το Node Red και στη συνέχεια καλύπτει την εγκατάσταση και τη ρύθμιση Pi, ακολουθούμενη από αναβάθμιση του Node Red και τελευταία εγκατάσταση Mosquitto. Βασικοί χρόνοι σε περίπτωση που θέλετε να επιστρέψετε σε μια ενότητα:

00:00 Εισαγωγή στο βίντεο

03:00 Επίδειξη Κόμβου Κόκκινου

14:14 Εισαγωγή στοιχείων πίνακα ελέγχου στο Κόμβο Κόκκινο

21:05 Αρχική ρύθμιση Pi, συμπεριλαμβανομένου του SSH

23:35 Εγκατάσταση κώδικα υποστήριξης Node Red

27:00 Εισαγωγή στο MQTT

29:12 Εγκατάσταση Mosquitto (MQTT) (Η σημείωση λειτουργεί μόνο για Raspian Jessie)

33:00 Παραδείγματα Κόμβου Κόκκινου

Θα παραθέσω τις εντολές με έντονη πλάγια γραφή (αντί να χρησιμοποιώ ""). Αυτή η μορφοποίηση αγνοείται όταν τα αντιγράφετε και τα επικολλάτε στο Pi.

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

Το βίντεο του YouTube βρίσκεται στη διεύθυνση:

Ακολουθήστε τη διαδικασία εγκατάστασης από τις 21:05 έως τις 23:35. Σημειώστε ότι η προεπιλεγμένη σύνδεση είναι χρήστη: pi και κωδικός πρόσβασης: βατόμουρο. Πριν από την επανεκκίνηση, βρείτε τη διεύθυνση IP του pi. Κάντε κλικ στο εικονίδιο «πάνω+κάτω βέλος» στην επάνω γραμμή της επιφάνειας εργασίας ή εισαγάγετε την ακόλουθη οδηγία στο παράθυρο τερματικού/τερματικού:

sudo ifconfig διεύθυνση

Στη συνέχεια, σημειώστε τη διεύθυνση IP μετά από: inet addr:. Θα έχει τη μορφή 192.168.x.y

Σημειώστε αυτήν τη διεύθυνση και κάντε επανεκκίνηση (εισαγάγετε: sudo shutdown –r now)

Το κλειδί σε αυτό το σημείο είναι ότι το SSH έχει ενεργοποιηθεί και μπορεί κανείς να ρυθμίσει έναν σύνδεσμο προς το Pi από έναν υπολογιστή (Mac και Linux περιλαμβάνουν διεπαφές SSH). Ένα καλό πρόγραμμα για να το κάνετε αυτό είναι μια δωρεάν λήψη που ονομάζεται PuTTY και μπορεί επίσης να χρησιμοποιηθεί ως σειριακή διεπαφή και μπορεί να κάνει Telnet. Ο στόκος διατίθεται από:

www.chiark.greenend.org.uk/~sgtatham/putty…

Κατεβάστε και εγκαταστήστε το PuTTY.

Τώρα, με την επανεκκίνηση του Pi, ξεκινήστε το PuTTY και εισαγάγετε τη διεύθυνση IP που σημειώθηκε νωρίτερα. Δείτε το παράδειγμα παρακάτω:

Τώρα κάντε κλικ στο Άνοιγμα

Μετά την είσοδο ως: πληκτρολογήστε pi

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

Ακολουθήστε τώρα τις οδηγίες εδώ και προαιρετικά ξεκινήστε το βίντεο από τις 23:35. Μπορείτε στις περισσότερες περιπτώσεις να αντιγράψετε και να επικολλήσετε. Επισημάνετε το κείμενο και χρησιμοποιήστε ctrl+C για αντιγραφή. Στη συνέχεια, κάντε δεξί κλικ στο PuTTY για επικόλληση. Μερικές φορές το κείμενο δεν εμφανίζεται αμέσως, οπότε περιμένετε μερικά δευτερόλεπτα. Εάν εισαγάγετε δύο φορές, χρησιμοποιήστε το Backspace για να διαγράψετε τη δεύτερη καταχώρηση. Πατήστε enter για να εκτελέσετε κάθε εντολή.

sudo raspi-ενημέρωση

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

sudo shutdown -r τώρα

sudo apt -get -y ενημέρωση

sudo apt -get -y αναβάθμιση

Αυτό διαρκεί λίγο ……

sudo apt-get αυτόματη μετακίνηση

sudo apt -get -y ενημέρωση

sudo shutdown -r τώρα

Σε αυτό το σημείο έχουμε το λειτουργικό σύστημα Pi φορτωμένο και ενημερωμένο, έτοιμο για το επόμενο βήμα.

Βήμα 2: Ενημέρωση και προσθήκη λειτουργιών στο Κόμβο-Κόκκινο

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

Έχω περάσει σε μια απλούστερη και πιο αξιόπιστη μέθοδο φόρτωσης του Node-Red-ακολουθώντας την προσέγγιση στη διεύθυνση https://nodered.org/docs/hardware/raspberrypi. Αυτό χρησιμοποιεί ένα σενάριο και θα εγκαταστήσει ή θα αναβαθμίσει το Node-Red-έτσι η προσέγγιση είναι η ίδια από τις πλήρεις ή lite εκδόσεις του Raspbian Stretch. Εισάγετε λοιπόν:

bash <(curl -sL

Εισαγάγετε το Y όταν σας ζητηθεί (δύο φορές). Αυτό το σενάριο φορτώνει επίσης αρχεία που απαιτούνται για την ενεργοποίηση της αυτόματης εκκίνησης του Node-Red.

Σε αυτό το σημείο έχουμε το pi μας φορτωμένο και ενημερωμένο και με τις απαραίτητες ενημερώσεις για το Node Red. Δεν είναι κακό να κάνετε επανεκκίνηση πριν από το επόμενο στάδιο.

sudo shutdown -r τώρα

Βήμα 3: Εγκατάσταση Mosquitto MQTT

Εάν δεν το έχετε κάνει ήδη, αξίζει να δείτε την εισαγωγή βίντεο στο MQTT στο βίντεο από τις 27:00.

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

Συνδεθείτε χρησιμοποιώντας το PuTTY και εισαγάγετε τα ακόλουθα:

sudo apt-get ενημέρωση

sudo apt-get install mosquitto mosquitto-clients

Υ

sudo /etc/init.d/mosquitto στάση

sudo /etc/init.d/mosquitto εκκίνηση

Οι δύο τελευταίες οδηγίες σταματούν και ξεκινούν το κουνούπι και δείχνουν ότι ο μεσίτης MQTT λειτουργεί.

Για μια γρήγορη δοκιμή ανοίξτε δύο ακόμη συνεδρίες PuTTY και συνδεθείτε σε κάθε μία.

Μέχρι τώρα θα γνωρίζετε ότι το MQTT λειτουργεί από τη συσκευή και χρειάζεται δεδομένα εγγραφής σε ένα «θέμα». Ο μεσίτης θα στείλει οποιαδήποτε δεδομένα με το ίδιο «θέμα». Στη συνέχεια, η συσκευή που θέλει να στείλει δεδομένα/οδηγίες το δημοσιεύει στον μεσίτη χρησιμοποιώντας το ίδιο «θέμα».

Επομένως, σε μια συνεδρία PuTTY εισάγετε:

mosquitto_sub -d -t γεια/κόσμο

Αυτή είναι μια οδηγία εγγραφής στο θέμα: γεια/κόσμο.

Στο άλλο εισάγετε:

mosquitto_pub -d -t hello/world -m "Γεια σας από το τερματικό παράθυρο 2!"

Αυτή είναι μια οδηγία δημοσίευσης με το ίδιο θέμα με ένα μήνυμα. Το κείμενο: "Γεια σας από το παράθυρο του τερματικού 2!" θα πρέπει τώρα να εμφανίζεται στο άλλο τερματικό.

Μπράβο που φτάσαμε ως εδώ. Τώρα έχουμε το Pi φορτωμένο και ενημερωμένο με ενημερώσεις που απαιτούνται για το Node-Red και με τον μεσίτη MQTT κουνουπιών εγκατεστημένο και δοκιμασμένο. Από εδώ και πέρα η ζωή γίνεται πιο εύκολη και πιο διασκεδαστική. Κλείστε τις δύο συνεδρίες PuTTY που χρησιμοποιήθηκαν για τη δοκιμή MQTT.

Βήμα 4: Ρύθμιση της διεπαφής Κόμβου Κόκκινου

Πρώτα πρέπει να ξεκινήσουμε το Node Red. Εισαγάγετε την οδηγία:

node-red-pi-max-old-space-size = 256

Περιμένετε να ξεκινήσει και βλέπετε το κείμενο «Ξεκινούν ροές».

Τώρα ανοίξτε ένα πρόγραμμα περιήγησης, χρησιμοποιώ το Chrome και εισαγάγετε τη διεύθυνση IP pi που σημειώθηκε νωρίτερα, ακολουθούμενη από: 1880, δηλαδή κάτι σαν 192.168.0.8:1880

Θα πρέπει τώρα να βλέπετε τη σελίδα προγραμματισμού Node Red όπως παρακάτω:

Τώρα μπορείτε να ακολουθήσετε τα παραδείγματα του Κόμβου Κόκκινου ξεκινώντας στις 33:00 ή να προχωρήσετε κατευθείαν σε ένα μικρό κομμάτι πρόσθετης ρύθμισης και να φορτώσετε την πρώτη ροή που θα εμφανίσει τη σύνδεση με το MQTT και να είστε έτοιμοι να οδηγήσετε το διακόπτη μας.

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

Αυτά φαίνονται στο βίντεο στις 14:14.

Ακολουθήστε τις οδηγίες για να φορτώσετε τον κόμβο-κόκκινο-ταμπλό.

Τώρα μπορούμε να παίξουμε και να δείξουμε το MQTT να λειτουργεί και να οδηγείται από το Node-Red. Αυτό δεν υπάρχει στο βίντεο, αλλά είναι το κλειδί για αυτό το έργο. Μπορείτε είτε να ακολουθήσετε τις οδηγίες μου ή/και να εισαγάγετε τις ροές από το συνημμένο αρχείο NRtest1.txt.

Προσθέστε πρώτα έναν κόμβο εισόδου εισόδου και έναν κόμβο εξόδου mqtt και συνδέστε τους μεταξύ τους.

Κάντε διπλό κλικ στον κόμβο ένεσης (που αρχικά φέρει την ένδειξη χρονική σήμανση). Στην ενότητα Payload χρησιμοποιήστε το twiddly για να αλλάξετε σε συμβολοσειρά και εισαγάγετε: Γεια από εμένα. Αφήστε το θέμα κενό καθώς μπορούμε να το εισάγουμε στον κόμβο MQTT. Κάντε κλικ στο κουμπί Τέλος

Τώρα κάντε διπλό κλικ στον κόμβο MQTT. Κάντε κλικ στο εικονίδιο με το μολύβι στα δεξιά της ενότητας διακομιστή. Αυτό ανοίγει ένα νέο διάλογο. Εισαγάγετε: localhost στην ενότητα Διακομιστής. Κάντε κλικ στην Προσθήκη. Τώρα, πίσω στον κόμβο Επεξεργασία mqtt out, εισάγετε το θέμα μας στην ενότητα Θέμα: γεια/κόσμο. Ορίστε το QoS σε 1. Κάντε κλικ στο κουμπί Τέλος. Τώρα κάντε κλικ στην επιλογή Ανάπτυξη. Θα πρέπει να δείτε μια πράσινη σταγόνα και να "συνδεθεί" κάτω από τον κόμβο mqtt.

Τώρα προσθέστε δύο ακόμη κόμβους - εισαγωγή mqtt και έξοδο εντοπισμού σφαλμάτων και συνδέστε τους μαζί. Τώρα κάντε διπλό κλικ στον κόμβο εισόδου mqtt και πληκτρολογήστε hello/world στην ενότητα θέματος. Ο διακομιστής πρέπει να εμφανίζει ήδη localhost: 1883. Ορίστε το QoS σε 1. Κάντε κλικ στο κουμπί Τέλος. Στη συνέχεια, κάντε κλικ στην επιλογή Ανάπτυξη και κάντε κλικ στην καρτέλα εντοπισμού σφαλμάτων στο δεξιό τμήμα του παραθύρου. Τώρα κάντε κλικ στο γκρι τετράγωνο στα αριστερά του κόμβου ένεσης «Γεια από εμένα». Αυτό αποστέλλει το ωφέλιμο κείμενο στον μεσίτη MQTT με το θέμα γεια/κόσμο. Ο μεσίτης γνωρίζει ότι ο κόμβος εισόδου mqtt έχει εγγραφεί στο ίδιο θέμα και έτσι προωθεί το ωφέλιμο φορτίο. Ο κόμβος εισόδου mqtt το στέλνει στη συνέχεια στην καρτέλα εντοπισμού σφαλμάτων (RHS) και πρέπει να εμφανιστεί το κείμενο "Hello from me".

Αυτό επιλέγει ένα άλλο πλαίσιο καθώς έχουμε το Node Red να μιλά με τον μεσίτη MQTT. Σημειώστε ότι το Node Red είναι απλώς ένας πελάτης στον μεσίτη - όπως οι συσκευές Sonoff που θα συνδέσουμε αργότερα. Ωστόσο, επιτρέπει την εκλεπτυσμένη αυτοματοποίηση και παρέχει μια εξαιρετική διεπαφή χρήστη.

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

Διαγράψτε λοιπόν τον κόμβο εισαγωγής εισόδου (κάντε κλικ για επισήμανση και πατήστε το πλήκτρο διαγραφής). Τώρα προσθέστε έναν διακόπτη από την ενότητα ταμπλό και συνδέστε τον στην έξοδο mqtt. Διακόπτης διπλού κλικ. Κάντε κλικ στο μολύβι στα δεξιά της ομάδας. Εισαγάγετε το όνομα: Light. Στη συνέχεια, κάντε κλικ στο μολύβι στα δεξιά της καρτέλας και εισαγάγετε την ενότητα Όνομα: Σαλόνι. Κάντε κλικ στην επιλογή Προσθήκη/Ενημέρωση και Προσθήκη/Ενημέρωση ξανά. Τώρα, πίσω στον κόμβο διακόπτη Επεξεργασία, ορίστε το Ενεργοποιημένο και απενεργοποιημένο Ωφέλιμο φορτίο. Χρησιμοποιήστε τα twidlys για να επιλέξετε συμβολοσειρά και εισαγάγετε ON για το φορτίο On και OFF για το ωφέλιμο φορτίο OFF. Κάντε κλικ στο κουμπί Τέλος

Τώρα μεταβείτε σε κάθε έναν από τους κόμβους mqtt και αλλάξτε το θέμα σε cmnd/sonoff/POWER. Εάν κάνετε αντιγραφή και επικόλληση, ελέγξτε ότι δεν έχετε συμπεριλάβει κενό στο τέλος. Αυτό είναι διαφορετικό θέμα και δεν θα λειτουργήσει με τον Sonoff. Η εύρεση ενός αδέσποτου χώρου μπορεί να διαρκέσει περίπου μία ώρα - πιστέψτε με! Πήγα επίσης στον πίνακα ελέγχου> Θέμα και επέλεξα: Σκούρο. Κάντε κλικ στην επιλογή Ανάπτυξη και επιλέξτε την καρτέλα εντοπισμού σφαλμάτων.

Τώρα ανοίξτε μια νέα περίοδο λειτουργίας προγράμματος περιήγησης σε ένα νέο παράθυρο και μεγεθύνετε την ως κινητό τηλέφωνο κατά τη διάρκεια της περιόδου σύνδεσης Node Red. Εισαγάγετε τη διεύθυνση: τη διεύθυνση IP Pi σας: 1880/ui/#/0, δηλαδή κάτι σαν 192.168.0.8:1880/ui/#/0. Θα πρέπει να δείτε μια οθόνη με Lounge και Light και διακόπτη. Κάντε κλικ στο διακόπτη ενεργοποιημένο και στη συνέχεια απενεργοποιημένο. Το παράθυρο εντοπισμού σφαλμάτων πρέπει να εμφανίζει το φορτίο ON και OFF. Τώρα, αν θέλετε, συνδεθείτε επίσης μέσω κινητού. Σημειώστε ότι η θέση του διακόπτη είναι συγχρονισμένη. Δεν έχει σημασία ότι ο Sonoff μας δεν είναι ακόμη συνδεδεμένος. Όταν είναι, με την εγγραφή σας στο Θέμα, θα πάρει το μήνυμα/ωφέλιμο φορτίο και θα το εφαρμόσει.

Ένα τελευταίο μικρό βήμα είναι να κάνετε το Node Red να ξεκινά αυτόματα μετά την εκκίνηση του Pi.

Το Node Red διαθέτει έναν οδηγό στη διεύθυνση:

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

Για να ενεργοποιήσετε στη συνέχεια το Node-RED να εκτελείται αυτόματα σε κάθε εκκίνηση και κατά τη διακοπή εισόδου (ανοίξτε τη συνεδρία PuTTY):

sudo systemctl ενεργοποιήστε την υπηρεσία nodered.service

Εάν χρειαστεί ποτέ να το απενεργοποιήσετε, πληκτρολογήστε:

sudo systemctl απενεργοποίηση nodered.service

Τώρα κλείστε το pi με τερματισμό λειτουργίας sudo τώρα και διακόψτε την τροφοδοσία.

Αυτό έχει πλέον το Pi μας κλειδωμένο και φορτωμένο έτοιμο για δράση. Έχουμε τον υπολογιστή/το κινητό μας τηλέφωνο που συνδέεται με το Node Red και αυτό μιλά με τον διακομιστή MQTT. Beenταν μια μεγάλη απόσταση και αξίζει ένα μεγάλο χτύπημα στην πλάτη. Μπράβο. Βρήκα το επόμενο, Arduino bit, αρκετά πιο εύκολο!

Βήμα 5: Ρύθμιση του συστήματος Arduino για επαναπρογραμματισμό συσκευών Sonoff

Όλες οι πληροφορίες για να το κάνετε αυτό βρίσκονται στο Sonoff-Tasmota GitHub. Το μόνο μέρος με το οποίο δυσκολεύτηκα ήταν το κείμενο του θέματος - αλλά σας έκανα πονηρά να το εισάγετε ήδη!

Μεταβείτε στη διεύθυνση

Θα βρείτε τις οδηγίες ρύθμισης στην καρτέλα Wiki στην ενότητα Εργαλεία μεταφόρτωσης:

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

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

Ακολούθησα τη σύσταση για μια εντελώς ξεχωριστή ρύθμιση Arduino. Δημιούργησα έναν νέο φάκελο που ονομάζεται "ArduinoSonoff", ο οποίος είναι ξεχωριστός από τον υπάρχοντα φάκελό μου Arduino. Η ρύθμιση είναι αρκετά προχωρημένη και ως εκ τούτου η διατήρησή της είναι πολύ καλή ιδέα. Εάν αυτή είναι η πρώτη σας ρύθμιση Arduino, βεβαιωθείτε ότι το εγκαταστήσατε για δεύτερη φορά σε ένα ‘Arduino’ ή σε άλλο φάκελο για οποιαδήποτε άλλη εργασία Arduino, συμπεριλαμβανομένης της εργασίας σε ESP8266s.

Κατεβάστε το πιο πρόσφατο Arduino IDE από τη διεύθυνση https://www.arduino.cc/en/Main/Software. Αποσυμπιέστε το αρχείο στο νέο σας φάκελο.

Οι οδηγίες περιλαμβάνουν τη λήψη του συστήματος Sonoff-Tasmoda από την https://github.com/arendst/Sonoff-Tasmota κύρια σελίδα μέσω: Κλωνοποίηση ή Λήψη> Λήψη ZIP. Αποσυμπιέστε το αρχείο στο νέο σας φάκελο.

Ακολουθήστε τις οδηγίες προσεκτικά. Δεν έκανα την ενότητα Προαιρετικό: Προετοιμασία για μεταφόρτωση OTA. Θα το αφήσουμε για άλλη μέρα.

Τώρα ξεκινήστε το Arduino IDE (διπλό κλικ στο arduino.exe). Φορτώστε το σκίτσο Sonoff-Tasmota μέσω Αρχείου> Sketchbook> sonoff. Δεν χρειάζεται να κάνετε αλλαγές. Όλες οι ρυθμίσεις γίνονται μέσω σειριακής σύνδεσης μετά τη φόρτωση του υλικολογισμικού. Αυτά αποθηκεύονται στο EEPROM. Ως εκ τούτου, το υλικολογισμικό μπορεί να ενημερωθεί και να διατηρηθούν όλες οι ρυθμίσεις. Αυτά είναι αρκετά έξυπνα πράγματα. Ωστόσο, μπορείτε να αποφύγετε την ανάγκη για μερικά βήματα εδώ πηγαίνοντας στο αρχείο user-config.h και εισαγάγοντας το wifi SSID και τον κωδικό πρόσβασής σας και το MQTT_HOST (αντικαταστήστε το «domus1»-δεύτερη αναφορά, με τη διεύθυνση IP Pi σας). Αργότερα μπορεί να θέλετε να εισαγάγετε επίσης έναν χρήστη και κωδικό πρόσβασης MQTT. Πριν από τη λήψη, ελέγξτε τις ρυθμίσεις του πίνακα στην ενότητα Εργαλεία. Αυτά θα χρειαστούν μερικές αλλαγές για να ταιριάζουν με τις απαιτήσεις που καθορίζονται στο Wiki. Τώρα κάντε κλικ στη μεταγλώττιση (εικονίδιο επιλογής). Θα πρέπει να μεταγλωττιστεί ΟΚ. Εάν δεν το κάνει ή εάν οι απαιτούμενες ρυθμίσεις του πίνακα δεν είναι διαθέσιμες, επιστρέψτε και ελέγξτε κάθε βήμα της εγκατάστασης.

Βήμα 6: Επαναπρογραμματισμός ενός διακόπτη Sonoff

Είμαστε τώρα έτοιμοι για λήψη. Σε αυτό το στάδιο μπορεί κανείς είτε να προχωρήσει κατευθείαν και να αναβοσβήνει έναν διακόπτη Sonoff είτε να αναβοσβήνει πρώτα μια μονάδα ESP8266. Έκανα το τελευταίο, εν μέρει επειδή οι διακόπτες μου δεν είχαν φτάσει ακόμα (μόλις έφτασαν καθώς το πληκτρολογώ!), Αλλά και προληπτικά καθώς το αναβοσβήσιμο του διακόπτη Sonoff είναι μονόδρομο, καθώς το αρχικό υλικολογισμικό δεν είναι δημόσια διαθέσιμο Γνωρίζω. Έχω μερικές πλακέτες NodeMCU. Αυτά είναι εύκολο να συνδεθούν, έχοντας τον ενσωματωμένο μετατροπέα USB σε σειριακό. Ωστόσο, η μέθοδος επαναφοράς nodemcu δεν λειτουργεί με αυτό το σύστημα. Αφήστε λοιπόν τα εργαλεία> Επαναφορά μεθόδου ρυθμισμένα σε "ck". Κάντε την κανονική χειροκίνητη ρύθμιση φλας κρατώντας πατημένο το κουμπί Flash (GPIO 0 στη γείωση) πατώντας και αφήνοντας το Reset (Reset to ground). Δεν είμαι σίγουρος αν αυτό έχει χρονικό όριο ή ίσως δεν κράτησα το GPIO 0 αρκετά χαμηλά για αρκετό καιρό, αλλά χρειάστηκα αρκετές προσπάθειες, συμπεριλαμβανομένου του να το κάνω αυτό κατά την κατάρτιση του Arduino IDE!

Εάν θέλετε να ελέγξετε τις απαντήσεις - η έξοδος ρελέ είναι D6 στους πίνακες NodeMCU. Στα ESP12 είναι GPIO 12. Η έξοδος LED είναι D7 (NodeMCU) ή GPIO 13 (ESP12).

Διακόπτης Sonoff.

ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Πρέπει να πω "μην συνδέεστε σε ρεύμα σε καμία περίπτωση όταν το περίβλημα είναι ανοιχτό". Σημειώστε ότι το PCB (τουλάχιστον στο Sonoff Basic (διακόπτης γραμμής) έχει μόνο αποστάσεις "μονής απομόνωσης" μεταξύ του τμήματος χαμηλής τάσης και του δικτύου. Έτσι, θα πρέπει να αντιμετωπίζετε οποιοδήποτε μέρος του κυκλώματος Sonoff ως τάση δικτύου. Το Tasmota GitHub δείχνει σύνδεση αισθητήρα θερμοκρασίας και υγρασίας σε Sonoff S20. Δεν θα το έκανα λόγω προβλημάτων απομόνωσης. ή γειωμένο τροφοδοτικό.

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

Σειριακός μετατροπέας USB

Ο αγαπημένος μου μετατροπέας είναι η έκδοση FTDI. Ωστόσο, αυτό δεν έχει επαρκή δυνατότητα να καλύψει τις ανάγκες του Sonoff 3.3v. Η προδιαγραφή FTDI λέει μέγιστο 50ma. Η επόμενη καλύτερη εναλλακτική λύση είναι αυτή που χρησιμοποιεί το τσιπ CP2102. Ωστόσο, αυτό έχει όριο 100 μέτρων που δεν είναι ακόμα αρκετό. Σαφώς πολλοί χρησιμοποιούν αυτόν τον μετατροπέα απευθείας, αλλά υπάρχουν επίσης αναφορές για αποτυχία φόρτωσης. Θα περιόριζα τον χρόνο σύνδεσης καθώς θα ζεσταθεί κάτω από το φορτίο. Κάντε το με δική σας ευθύνη. Η ιδανική λύση είναι να έχετε επίσης ρυθμιστή 3.3v, π.χ. ένα AMS1117 3.3. Δημιούργησα ένα μικρό PCB για να το ενεργοποιήσω. Ανατρέξτε στην ενότητα Προγραμματιστής για συσκευές Sonoff.

Η σειρά μου για προγραμματισμό έχει ως εξής:

Ανοίξτε το Arduino IDE.

Στην ενότητα Εργαλεία, ελέγξτε ότι οι ρυθμίσεις είναι όπως στο Wiki.

Πραγματοποιήστε τυχόν αλλαγές που απαιτούνται στο user_config.h. Ορίζω το Wifi SSID και τον κωδικό πρόσβασης και τη διεύθυνση μεσίτη MQTT και τις λεπτομέρειες της ζώνης ώρας/της θερινής ώρας.

Κάντε κλικ στο «επαλήθευση» για να ελέγξετε ότι μεταγλωττίζεται ΟΚ.

Συνδέστε τον σειριακό μετατροπέα USB (μόνος του) στον υπολογιστή. Σημειώστε τον αριθμό θύρας.

Τώρα αποσυνδέστε το σειριακό καλώδιο USB από τον υπολογιστή και συνδέστε το στο διακόπτη Sonoff. Ελέγξτε τη γείωση και οι συνδέσεις 3v3 είναι σωστές (η γείωση συνδέεται με το επίπεδο γείωσης στο PCB Sonoff).

Κρατήστε τον προγραμματιστή έτσι ώστε οι επαφές να είναι ασφαλείς ενώ πατάτε επίσης το κουμπί.

Τώρα συνδέστε το καλώδιο USB στον υπολογιστή, ελέγξτε ότι ο αριθμός θύρας είναι σωστός (στα Εργαλεία) και, στη συνέχεια, κάντε κλικ στη λήψη.

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

Όταν τελειώσετε, θα πρέπει να δείτε μια οθόνη όπως παρακάτω:

Εικόνα
Εικόνα

Το Sonoff χρειάζεται μερικά κομμάτια πληροφοριών για να συνδεθεί στο σύστημά μας: το τοπικό δίκτυο wifi SSID και τον κωδικό πρόσβασης και τη διεύθυνση IP Pi. Υπάρχουν διάφοροι τρόποι για να το κάνετε αυτό, ένας από τους οποίους είναι η τροποποίηση του αρχείου config.ino όπως σημειώθηκε νωρίτερα. Εάν διαθέτετε smartphone, μπορείτε (μετά την επανασυναρμολόγηση του διακόπτη) να πατήσετε το κουμπί Sonoff 4 φορές αρκετά γρήγορα για να το θέσετε σε λειτουργία διακομιστή ιστού. Το LED θα αναβοσβήνει. Έπρεπε να προσπαθήσω αρκετές φορές για να λειτουργήσει αυτό. Στη συνέχεια, στο smartphone σας αναζητήστε το νέο δίκτυο Sonoff και συνδεθείτε. Θα εμφανιστεί μια ιστοσελίδα όπου μπορείτε να ορίσετε τα απαιτούμενα δεδομένα. Η διεύθυνση IP Pi μπαίνει στο όνομα κεντρικού υπολογιστή. Άλλαξα επίσης το δεύτερο SSID και τον κωδικό πρόσβασης σε κάτι μακρύ και βασικά άχρηστο.

Εναλλακτικά, μπορεί να ρυθμιστεί μέσω της σειριακής σύνδεσης αμέσως μετά τη φόρτωση. Ανοίξτε το Arduino Serial Monitor (στην ενότητα Εργαλεία).

Εντολές για εισαγωγή:

SSId yourWiFiSSID

Κωδικός πρόσβασης στοWiFiPassword

MqttHost 192.168.x.y (διεύθυνση IP PI)

Μπορείτε επίσης να εισαγάγετε SSId1 και Password1 ακολουθούμενο από κάτι μακρύ και άχρηστο για να το απενεργοποιήσετε αποτελεσματικά.

Τώρα μπορείτε να ενεργοποιήσετε τον διακόπτη Sonoff, να ανοίξετε το Node-Red και τον πίνακα ελέγχου Node-red και να κάνετε κλικ στο κουμπί διακόπτη και να δείτε την καρτέλα εντοπισμού σφαλμάτων που θα πρέπει τώρα να περιλαμβάνει τις απαντήσεις από το Sonoff. Έχουμε, λοιπόν, ένα ακόμη σημαντικό βήμα - ο πρώτος μας διακόπτης οδηγείται από υπολογιστή/smartphone.

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

Βήμα 7: Ασφάλεια

Το MQTT επιτρέπει ονόματα χρήστη και κωδικούς πρόσβασης για κάθε πελάτη. Αυτό είναι εύκολο στη ρύθμιση. Probablyσως είναι ευκολότερο να μετονομάσετε πρώτα κάθε συσκευή και στη συνέχεια να ορίσετε τα ονόματα χρήστη και τους κωδικούς πρόσβασής τους. Αυτό μπορεί να γίνει μέσω εντολών MQTT και το Node-Red είναι ίσως ο ευκολότερος τρόπος αποστολής αυτών. Πρώτα αποφασίστε για μια σύμβαση ονομασίας. Μια επιλογή είναι να βασίσετε τα ονόματα στη θέση και τη λειτουργία. Στη συνέχεια, θα θέλετε να καταγράψετε το όνομα χρήστη και τον κωδικό πρόσβασης (Θέμα) μαζί με το αναπληρωματικό θέμα. Σημειώστε ότι υπάρχει επίσης μια «επιλογή επαναφοράς» για την επαναφορά των ρυθμίσεων Sonoff στην αρχική λήψη (ανατρέξτε στην ενότητα Χρήση Wiki> Λειτουργικότητα κουμπιού).

Ενεργοποιήστε το pi και μετά από μερικά δευτερόλεπτα ανοίξτε ένα πρόγραμμα περιήγησης στο Node-Red (διεύθυνση IP: 1880).

Στο Node-Red ρυθμίστε έναν κόμβο ένεσης και συνδέστε τον σε μια έξοδο mqtt και ορίστε τον διακομιστή mqtt στο localhost. Αφήστε κενό το θέμα, τον χρήστη και τον κωδικό πρόσβασης καθώς θα τα ορίσουμε στον κόμβο ένεσης. Ρυθμίστε επίσης έναν κόμβο εισόδου mqtt και συνδέστε τον σε έναν κόμβο εντοπισμού σφαλμάτων, ώστε να βλέπουμε τις απαντήσεις. Ορίστε τη σημείωση εισαγωγής mqtt σε localhost (θα πρέπει να έχει ήδη οριστεί) και εισαγάγετε+/+/+για το θέμα, ώστε να συλλαμβάνει όλη την επισκεψιμότητα.

Εισαγάγετε την ακόλουθη ακολουθία ρυθμίσεων στον κόμβο ένεσης.

Πρώτα ελέγξτε τη συνδεσιμότητα με

Θέμα: cmnd/sonoff/Κατάσταση

Μήνυμα: 6

κάντε κλικ στο «Έγχυση μία φορά στην αρχή». Παρατάσσω. Θα πρέπει να δούμε εντοπισμό σφαλμάτων που περιλαμβάνει 7 γραμμές δεδομένων από το stat/sonoff/STATUS6

Εισαγάγετε το θέμα: cmnd/sonoff/Θέμα και Μήνυμα: σαλόνι. Παρατάσσω. Αυτό αλλάζει το όνομα αλλαγής από sonoff σε lounge

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

Θέμα: cmnd/loungelight/MqttUser

Μήνυμα: σαλόνι

Κάντε κλικ στην ανάπτυξη. Θα πρέπει να δείτε έναν εντοπισμό σφαλμάτων από το stat/loungelight/RESULT με το {"MtqqUser": "loungelight"}

Θέμα: cmnd/loungelight/MqttPassword

Μήνυμα: loungelightPW (σημείωση να είναι πιο ευφάνταστο από αυτό!)

Διαγράψτε την καρτέλα εντοπισμού σφαλμάτων και αναπτύξτε.

Πρέπει να δείτε μια απάντηση από το stat/loungelight/RESULT με {"MqttPassword": "loungelightPW"}

Τώρα εισάγετε τα NodeRed και NodeRedPW ως όνομα χρήστη και κωδικό πρόσβασης στον κόμβο mqtt out. Αυτό γίνεται μέσω του εικονιδίου μολύβι διακομιστή και της καρτέλας ασφαλείας στο παράθυρο που ανοίγει. Αυτό αντιγράφεται αυτόματα στους άλλους κόμβους MQTT.

Ελέγξτε ξανά με

Θέμα: cmnd/loungelight/Κατάσταση και μήνυμα: 6. Παρατάσσω.

Και ότι η απάντηση αποστέλλεται.

Έτσι, σε αυτό το σημείο μετονομάσαμε τη συσκευή Sonof, ώστε να ακούει θέματα cmnd/loungelight/…… και να συνδεθεί στο διαχωριστικό MQTT με όνομα χρήστη loungelight και κωδικό πρόσβασης loungelightPW. Έχουμε επίσης ορίσει ένα όνομα χρήστη και έναν κωδικό πρόσβασης για το Node-Red.

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

Η διαδικασία είναι:

  • Σταματήστε το κουνούπι
  • Δημιουργήστε το δικό σας αρχείο διαμόρφωσης
  • Επεξεργασία αρχείου διαμόρφωσης
  • Δημιουργία αρχείου κωδικού πρόσβασης
  • Προσθήκη χρηστών/κωδικών πρόσβασης.

Συνδεθείτε λοιπόν με μια νέα περίοδο λειτουργίας PuTTY και εκτελέστε τις ακόλουθες εντολές:

sudo /etc/init.d/mosquitto στάση

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf Αυτό ξεκινά τον επεξεργαστή.

Προσθήκη γραμμών:

επιτρέψτε_ανώνυμο ψευδές

password_file /etc/mosquitto/conf.d/passwd

require_certificate false

Αποθήκευση και έξοδος (Ctrl+X), Y, εισαγωγή.

sudo touch passwd Αυτό δημιουργεί ένα αρχείο κωδικού πρόσβασης και οι ακόλουθες οδηγίες προσθέτουν ονόματα και κωδικούς πρόσβασης.

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight loungelightPW

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW

sudo /etc/init.d/mosquitto επανεκκίνηση

Σημείωση κατά την προσθήκη μιας νέας συσκευής θα πρέπει είτε να εισαγάγετε το χρήστη και τον κωδικό πρόσβασης μέσω της σειριακής θύρας και να τα προσθέσετε στο αρχείο κωδικού πρόσβασης είτε να αλλάξετε προσωρινά το αρχείο διαμόρφωσης του κουνουπιού και να σχολιάσετε (προσθέστε # στην αρχή της γραμμής) τις γραμμές "allow_anonymous false "και" password_file /etc/mosquitto/conf.d/passwd "και, στη συνέχεια, επαναφέρετε αυτά όταν τα στοιχεία έχουν σταλεί στη συσκευή και έχουν προστεθεί στο αρχείο κωδικού πρόσβασης όπως παραπάνω.

Αλλάξαμε το όνομα του sonoff σε lounge και έτσι ενημερώσαμε τον κόμβο εξόδου mqtt (συνδεδεμένος στον διακόπτη) για να χρησιμοποιήσουμε το θέμα cmnd/loungelight/POWER.

Κάντε κλικ στην επιλογή Ανάπτυξη και ελέγξτε τους κόμβους mqtt που εμφανίζονται "συνδεδεμένοι".

Στη συνέχεια δοκιμάστε το κουμπί εναλλαγής και αναζητήστε το σφάλμα που δείχνει τον διακόπτη Sonoff να αποκρίνεται. Θα παρατηρήσετε ότι η συσκευή εμφανίζει την αλλαγή με ένα θέμα: stat/loungelight/POWER. Έτσι, τώρα αλλάξτε τον κόμβο εισόδου που είχε οριστεί σε cmnd/sonoff/POWER σε stat/loungelight/POWER. Μπορούμε να χρησιμοποιήσουμε αυτό το κάλυμμα ένα κενό στη λειτουργικότητά μας. Το σύστημα όπως είχε αρχικά ρυθμιστεί θα συγχρονιστεί με όλους τους συνδεδεμένους χρήστες αλλά δεν θα συγχρονιστεί με τις αλλαγές διακόπτη που γίνονται πατώντας το κουμπί στο διακόπτη Sonoff. Έτσι, τώρα συνδέστε την έξοδο του κόμβου εισόδου stat/loungelight/POWER mqtt στην είσοδο διακόπτη (LHS). Τώρα κάντε διπλό κλικ στο διακόπτη και αποεπιλέξτε το "εάν το μήνυμα φτάσει στην είσοδο, περάστε στην έξοδο". Αυτό εμφανίζει ορισμένες νέες επιλογές - επιλέξτε "το εικονίδιο αλλαγής εμφανίζει την κατάσταση της εισόδου". Παρατάσσω. Έτσι, τώρα έχουμε έναν καλό βρόχο ανατροφοδότησης. Η θέση του διακόπτη του ταμπλό θα αλλάζει πάντα όταν αλλάζει ο διακόπτης Sonoff, ανεξάρτητα από το πού ξεκίνησε η αλλαγή.

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

Βήμα 8: Αρχικά βήματα για επέκταση

Έχω έναν άλλο πίνακα ανάπτυξης οδηγήσεων Sonoff-Tasmota Sensors για αυτοματισμούς στο σπίτι που δείχνει μερικές από τις περαιτέρω δυνατότητες του υλικολογισμικού Sonoff-Tasmota:

Μέτρηση θερμοκρασίας και υγρασίας

Ανίχνευση εισβολέα (είσοδος διακόπτη)

Τηλεχειριστήριο IR (για τηλεοράσεις κλπ)

Χορδές LED - τόσο RGB όσο και NeoPixel (μεμονωμένη διεύθυνση)

Αισθητήρες I2C

Για τα παραπάνω χρησιμοποιώ ESP12F και προσαρμοσμένο PCB. Ένα NodeMCU και ένα breadboard θα μπορούσαν να χρησιμοποιηθούν εξίσου. Αυτό επιτρέπει αυτές τις πρόσθετες λειτουργίες χωρίς καλωδίωση σε συσκευή Sonoff, και ως εκ τούτου είναι μια πολύ πιο ασφαλής προσέγγιση. Με την είσοδο θερμοκρασίας κατάφερα να ολοκληρώσω τον αυτοματισμό της ηλεκτρικής κουβέρτας μου.

Μπορείτε εύκολα να προσθέσετε μουσική και ραδιόφωνο στο Διαδίκτυο. Αυτό ανοίγει επιλογές για να εμφανίζονται συγκεκριμένοι σταθμοί ή άλμπουμ σε καθορισμένες ώρες ή ίσως σε απόκριση αν εντοπιστεί ένας επισκέπτης (τηλέφωνο). Αυτό το σχετικό διδακτικό είναι στο Music Player υψηλής ποιότητας και στο Internet Radio with Smartphone Control. Δεδομένου ότι αυτό οδηγείται επίσης από το Node-RED, θα πρέπει ακόμη να είναι δυνατό να υπάρχουν περισσότερα από ένα ηχοσυστήματα και να χρησιμοποιείται επικοινωνία MQTT για να τα οδηγήσει.

Έχω επίσης εξερευνήσει το Node-Red, συμπεριλαμβανομένης της αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου και της φωνητικής ειδοποίησης. Υπάρχει επίσης η δυνατότητα για το σύστημα να ανιχνεύσει πότε εισέρχεστε/βγαίνετε - πινγκάροντας τη διεύθυνση IP του κινητού σας τηλεφώνου. Το Node -Red μπορεί επίσης να έχει πρόσβαση στον καιρό και στις ειδήσεις - έτσι μπορεί κανείς να προσθέσει πληροφορίες καθώς και να κάνει αυτοματοποίηση.

Υπάρχουν μερικά κόλπα που πρέπει να μάθετε - αλλά αυτά γίνονται νεκρά για δεύτερη φορά.

Μια άλλη λεωφόρος είναι η προσθήκη οθόνης στο pi για εμφάνιση του ταμπλό. Αυτό είναι «έργο σε εξέλιξη» - ή με άλλα λόγια δεν είμαι πολύ ευχαριστημένος. Η οθόνη που πήρα είναι δύσκολο να περιστραφεί σε κατακόρυφη λειτουργία και το πρόγραμμα περιήγησης Chromium είναι οδυνηρά αργό. Μια εναλλακτική λύση θα ήταν να πάρετε ένα παλιό tablet στο ebay και να το χρησιμοποιήσετε. Μπορεί να προσπαθήσω με ένα Pi 2 και να δω αν αυτό προσφέρει αρκετή βελτίωση (το μοντέλο Β που χρησιμοποιείται για αυτήν την εξέλιξη).

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

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

Μικρόφωνο

Βήμα 9: Προσθήκη - Φόρτωση από το Raspbian Stretch Lite

Αυτή η επιλογή αποφεύγει το bloatware που συνοδεύει την πλήρη έκδοση Raspbian Stretch. Τα περισσότερα από αυτά δεν θα χρειαστούν όταν χρησιμοποιείτε ένα Pi για αυτοματισμό στο σπίτι. Ωστόσο, το Node-Red πρέπει να εγκατασταθεί.

Προχωρήστε όπως στο Βήμα 1 αλλά χρησιμοποιώντας το Raspbian Stretch Lite και όχι το Raspbian Stretch.

Αντί για το Step2 κάντε τα εξής:

sudo apt -y εγκατάσταση npm

npm -v θα πρέπει να επιστρέψει: 1.4.21 ή μεταγενέστερη

sudo npm install -g n

sudo n 8.9.0

Τώρα μπορούμε να χρησιμοποιήσουμε τον διαχειριστή πακέτων κόμβων για να εγκαταστήσουμε το Node-Red:

sudo npm install node-red --global --unsafe-perm

Αυτό θα δώσει μερικά μηνύματα σφάλματος λόγω εσφαλμένης διεύθυνσης. Ωστόσο, το σύστημα κάνει μια «μεταγλώττιση πηγής» για να διορθώσει αυτό το πρόβλημα. Εάν επαναλάβετε τις παραπάνω οδηγίες (δεν είναι απαραίτητες), τα σφάλματα δεν εμφανίζονται.

Τώρα έχουμε εγκατεστημένο το Node-Red και τα υποστηρικτικά του πακέτα και μπορούμε να προχωρήσουμε στο Βήμα 3, φορτώνοντας κουνούπι.

Διαγωνισμός ασύρματου δικτύου
Διαγωνισμός ασύρματου δικτύου
Διαγωνισμός ασύρματου δικτύου
Διαγωνισμός ασύρματου δικτύου

Επόμενοι στον διαγωνισμό ασύρματης σύνδεσης

Συνιστάται: