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

Ασύρματο χειριστήριο κεφαλαριού MQTT κρεβατιού: 5 βήματα (με εικόνες)
Ασύρματο χειριστήριο κεφαλαριού MQTT κρεβατιού: 5 βήματα (με εικόνες)

Βίντεο: Ασύρματο χειριστήριο κεφαλαριού MQTT κρεβατιού: 5 βήματα (με εικόνες)

Βίντεο: Ασύρματο χειριστήριο κεφαλαριού MQTT κρεβατιού: 5 βήματα (με εικόνες)
Βίντεο: Σύνδεση ασύρματου χειριστηρίου σε εργάτη / Wireless controller connection to Winch 2024, Δεκέμβριος
Anonim
Ασύρματο χειριστήριο κεφαλαριού κρεβατιού MQTT
Ασύρματο χειριστήριο κεφαλαριού κρεβατιού MQTT
Ασύρματο χειριστήριο κεφαλαριού MQTT κρεβατιού
Ασύρματο χειριστήριο κεφαλαριού MQTT κρεβατιού

Πριν από μερικά χρόνια αγοράσαμε ένα νέο κρεβάτι αφρού μνήμης και, όπως συμβαίνει με τα περισσότερα κρεβάτια, έπρεπε επίσης να αγοράσετε μία από τις "εγκεκριμένες βάσεις" τους για να διατηρήσετε μια εγγύηση. Έτσι, επιλέξαμε τη φθηνότερη βάση που περιλάμβανε επίσης τη δυνατότητα ανύψωσης και χαμηλώματος του κεφαλιού του κρεβατιού. Λίγες ημέρες αργότερα το στρώμα μας και η φθηνή βάση American Adjustables με ενσύρματα χειριστήρια (ένα για κάθε πλευρά του κρεβατιού) παραδόθηκε και τοποθετήθηκε.

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

Παίρνεις ότι πληρώνεις

Μετά από περίπου 6 μήνες παρατηρούμε ότι τα περιλαίμια ανακούφισης της καταπόνησης σε έναν από τους μάρτυρες άρχισαν να σκίζονται. Λίγους μήνες αργότερα - γυμνό σύρμα. Γρήγορα προς τα εμπρός περίπου ένα χρόνο, το ένα από τα χειριστήρια δεν λειτουργεί πλέον και το άλλο γίνεται λίγο σπαστικό.

Και πάλι, κανείς δεν ενδιαφέρθηκε να μας πουλήσει αντικαταστάτες. Μετά με χτύπησε!

Περίμενε λίγο! Δεν χτίζω σύστημα αυτοματισμού και ΕΛΕΓΧΟΥ στο σπίτι;!;

Βήμα 1: Ανακάλυψη

Ανακάλυψη
Ανακάλυψη
Ανακάλυψη
Ανακάλυψη

Wantedθελα να δω τι μπορώ να κάνω με αυτό που είχα, έτσι πήρα το ελαττωματικό χειριστήριο και wow! υπήρχαν πολλά χάλια εκεί μέσα! Προς τι όλα αυτά τα πράγματα; Πήγα πίσω και κοίταξα τις γραμμές που μπαινοβγαίνουν. Μουν σε θέση να δω ότι υπήρχε μια γραμμή τροφοδοσίας 12 volt και μια γραμμή γείωσης. Οι άλλες δύο γραμμές έμοιαζαν με γραμμές σήματος για τα δύο κουμπιά πάνω και κάτω. Έτσι, πήρα την ευκαιρία και μόλις μπήκα στην τροφοδοσία 12v στη γραμμή σήματος "πάνω". Το κρεβάτι άρχισε να κουνιέται! Στη συνέχεια, μετακίνησα το καλώδιο με το βραχυκυκλωτήρα μου στη γραμμή σήματος "κάτω" και το κρεβάτι κατέβηκε!

Στο κουτί υπάρχουν επαφές για 4 ακόμη γραμμές σήματος και 4 ακόμη κουμπιά. Η καλύτερη εικασία μου είναι ότι αυτός ο πίνακας ελεγκτή χρησιμοποιείται σε όλα τα ενσύρματα βασικά μοντέλα τους και απλώς τοποθετούν διαφορετικές πλάκες προσώπου πάνω από τον πίνακα, όπως απαιτείται. Έτσι, είχα μια θεωρία εργασίας. Δοκίμασα τη γραμμή τροφοδοσίας για να δω αν έχει βουτήξει κατά τη χρήση ή έχει ακίδα ανά πάσα στιγμή - όχι. Υπήρχε πολύ μικρή ροή ρεύματος στις γραμμές σήματος, αλλά απαιτούσαν 12 βολτ για να ενεργοποιήσετε τον κινητήρα.

Βήμα 2: Σχεδιασμός

Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο

Επομένως, μια απλή σύνδεση επαφής μεταξύ του VCC και του ακροδέκτη σήματος είναι το μόνο που χρειάζεται, αλλά πώς γίνεται αυτό στο σύστημά μου. Θα απαιτούνται δύο ρελέ για τις επαφές και ένα ESP8266 θα λειτουργεί για τον ασύρματο ελεγκτή. Δεδομένου ότι τα ρελέ μπορούν να απαιτούν περισσότερο ρεύμα από ό, τι μπορούν να παρέχουν οι ψηφιακοί ακροδέκτες, είναι καλύτερο να χρησιμοποιείτε οπτικοαπομονωτή μεταξύ του ελεγκτή και του ρελέ. Αυτό θα επιτρέψει σε ένα μικρό σήμα να ενεργοποιήσει έναν διακόπτη υψηλότερου ρεύματος (στην περίπτωση αυτή ένα τρανζίστορ που κινείται με φως) και να ενεργοποιήσει με ασφάλεια το πηνίο του ρελέ. Επίσης, ένας οπτικοαπομονωτής απομονώνει τον ελεγκτή από τυχόν αιχμές που μπορούν να σχηματιστούν όταν το πηνίο του ρελέ απελευθερωθεί και το μαγνητικό πεδίο καταρρεύσει. Ευτυχώς, υπάρχουν μονάδες ρελέ που περιέχουν ήδη όλο αυτό το κύκλωμα και σε αρκετά χαμηλή τιμή.

Το κρεβάτι θα είναι το τροφοδοτικό για τον ελεγκτή και για να χειριστούμε τα 12 βολτ που παρέχονται, θα χρειαστούμε έναν μετατροπέα μεταβλητού buck. Ένα πολύ φθηνό έχει συνδεθεί παρακάτω και λειτουργεί υπέροχα. Οι γραμμές 12V και οι γραμμές GND συνδέονται με την πλευρά εισόδου του μετατροπέα και η ρυθμιζόμενη πλευρά 5 volt συνδέεται με το VCC του NodeMCU και τον πείρο VCC στη μονάδα ρελέ. Η γείωση (-) του μετατροπέα συνδέεται με τις ακίδες GND τόσο η μονάδα ρελέ όσο και το NodeMCU.

Το NodeMCU συνδέεται με IN1 χρησιμοποιώντας D1 (GPIO5) και IN2 χρησιμοποιώντας D2 (GPIO4). Η γραμμή σήματος επάνω στο κρεβάτι συνδέεται με τον κανονικά ανοικτό ακροδέκτη βιδών για το ρελέ 1 και η γραμμή σήματος κάτω συνδέεται με τον ρελέ 2 κανονικά ανοιχτό συνδετήρα μπλοκ ακροδεκτών. Θα χρειαστεί να συνδέσετε το καλώδιο 12v που είναι συνδεδεμένο στην πλευρά εισόδου του μετατροπέα buck επίσης στην άλλη σύνδεση μπλοκ ακροδεκτών και για τα δύο ρελέ 1 και 2.

Ανταλλακτικά

  • 1 - NodeMCU
  • 1 - Μονάδα αναμετάδοσης μονομαχίας με τρέχουσα απομόνωση
  • 1 - Μεταβλητός μετατροπέας κάδου εισόδου/εξόδου
  • 1 - PCB Breadboard
  • Σύρμα από χαλκό πυρήνα 22 εύκαμπτων
  • 2 - βίδες M3x 8

Βήμα 3: Περίβλημα

Περίφραξη
Περίφραξη

Το περίβλημα μπορεί να βρεθεί εδώ:

Σχεδίασα ένα απλό περίβλημα με Tinkercad που επιτρέπει στο καλώδιο ελέγχου κρεβατιού να εισέλθει στο κουτί ανάμεσα σε βραχίονες ανακούφισης της καταπόνησης μέσα στο κουτί. Υπάρχουν υποδοχές για φερμουάρ εδώ που θα βοηθούσαν να μην γλιστράει το καλώδιο, αλλά στην περίπτωσή μου η εφαρμογή ήταν πολύ άνετη και δεν το χρειαζόταν. Το κάλυμμα είναι βιδωμένο με 2 βίδες M3x 8. Θα συνιστούσα να ανεβάσετε τον κώδικα και να δοκιμάσετε το σύστημα πριν τον τοποθετήσετε στο κουτί.

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

Βήμα 4: Κωδικός

Μπορείτε να βρείτε τον κωδικό εδώ:

ΣΗΜΕΙΩΣΗ: Αυτό το έργο χρησιμοποιεί τη βιβλιοθήκη pubsubclient που μπορεί να προστεθεί στον Διαχειριστή βιβλιοθήκης στο Arduino IDE

Ο κώδικας εδώ είναι αρκετά βασικός και σχεδιάστηκε με βάση τον τύπο Cover MQTT στο Home Assistant. Η ιδέα εδώ είναι απλή: όταν πατάτε το κουμπί επάνω ή κάτω στον οικιακό βοηθό, το κατάλληλο ρελέ κλείνει έως ότου ληφθεί η εντολή διακοπής OR το σύστημα φτάνει στο μέγιστο χρόνο ενεργοποίησης και σταματά.

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

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

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

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

Βήμα 5: Παράδειγμα ενσωμάτωσης

Παράδειγμα Ενσωμάτωση
Παράδειγμα Ενσωμάτωση
Παράδειγμα Ενσωμάτωση
Παράδειγμα Ενσωμάτωση

Ο κώδικας που έγραψα χρησιμοποιεί MQTT για επικοινωνία μέσω WiFi και επομένως μπορεί να επικοινωνήσει με οποιονδήποτε κόμβο αυτοματισμού ή συσκευή που χρησιμοποιεί MQTT. Χρησιμοποιώ το Home Assistant που έχει ενσωματωμένο μεσίτη MQTT. Παρακάτω είναι ένα παράδειγμα της διαμόρφωσής μου HA.

Στο HA έχω ένα αρχείο covers.yaml με τον ακόλουθο ορισμό:

- πλατφόρμα: mqtt

όνομα: "Master Bed Headboard" command_topic: "master_bed_control/cmd" διαθεσιμότητα_topic: "master_bed_control/διαθεσιμότητα" qos: 0 retain: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_ εκτός σύνδεσης "αισιόδοξη: αληθινή

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

Επιπλέον, έχω ορίσει δύο κουμπιά στον πίνακα ελέγχου Bedside (Instructable / Blog Post) για να ανεβάσω και να κατεβάσω το κεφαλάρι. Τα κουμπιά στον πίνακα ελέγχου ορίζονται ως αισθητήρες MQTT:

- πλατφόρμα: mqtt

state_topic: "bedside_cp1/button5" name: "Bedside CP1 Button 5" icon: mdi: κύκλος

- πλατφόρμα: mqtt

state_topic: "bedside_cp1/button6" name: "Bedside CP1 Button 6" icon: mdi: κύκλος

… Και 4 κανόνες αυτοματισμού όταν πατάτε και αφήνετε κάθε κουμπί. Όταν πατηθεί, η εντολή επάνω ή κάτω αποστέλλεται στο κρεβάτι ανάλογα με το κουμπί που ενεργοποιήθηκε, όταν απελευθερωθεί το κουμπί, αποστέλλεται η εντολή διακοπής:

- id: '1548308650383'

ψευδώνυμο: MBR Bedside CP Button 5a trigger: - units_id: sensor.bedside_cp1_button_5 from: 'Off' platform: state to: 'On' condition: action: - data: units_id: 'cover.master_bed_headboard' service: cover.open_cover - id: '1548308758911' ψευδώνυμο: MBR Bedside CP Button 5b trigger: - units_id: sensor.bedside_cp1_button_5 from: 'On' platform: state to: 'Off' condition: action: - data: units_id: 'cover.master_bed_headboard' service: cover.stop_cover - id: '1548308863495' ψευδώνυμο: MBR Bedside CP Button 6a trigger: - units_id: sensor.bedside_cp1_button_6 from: 'Off' platform: state to: 'On' condition: action: - data: units_id: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'ψευδώνυμο: MBR Bedside CP Button 6b trigger: - units_id: sensor.bedside_cp1_button_6 from:' On 'platform: state to:' Off 'condition: action: - data: unit_id: 'cover.master_bed_headboard' υπηρεσία: cover.stop_cover

Συνιστάται: