Διαφήμιση

Η σειρά φώτων Philips Hue σίγουρα δεν είναι φθηνή (υπάρχουν κάποιες εναλλακτικές λύσεις Philips Hue Εναλλακτικές λύσεις που πραγματικά αξίζει τον κόποΤο σύστημα Hue της Philips οδηγεί τη φόρτιση όταν πρόκειται για έξυπνο φωτισμό, αλλά υπάρχουν μερικές αξιόλογες εναλλακτικές λύσεις. Έχουμε διαλέξει τρία που όλα προσφέρουν το ίδιο βασικό σύνολο χαρακτηριστικών και δυνατότητα προσαρμογής. Διαβάστε περισσότερα ), αλλά ένα πράγμα που εκτιμώ πραγματικά είναι το καλά τεκμηριωμένο API Ποια είναι τα API και πώς είναι τα ανοιχτά API αλλάζοντας το ΔιαδίκτυοΈχετε αναρωτηθεί ποτέ πώς τα προγράμματα στον υπολογιστή σας και στις ιστοσελίδες που επισκέπτεστε "μιλάνε" ο ένας στον άλλο; Διαβάστε περισσότερα για να δημιουργήσετε τις δικές σας εφαρμογές Hue. Σήμερα θα σας δείξω πώς να ελέγχετε τα φώτα Hue από ένα Arduino - προσθέτοντας στη συνέχεια έναν απλό αισθητήρα κίνησης.

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

instagram viewer
8 υπέροχες εφαρμογές Hue Οι 7 καλύτερες εφαρμογές Philips Hue για Android και iPhoneΨάχνετε για τις καλύτερες εφαρμογές Philips Hue για χρήση με τα έξυπνα φώτα σας; Εδώ είναι πολλές μεγάλες εφαρμογές για το iPhone και το Android. Διαβάστε περισσότερα αντι αυτου.

Το Σύστημα Hue

Ας πάρουμε τεχνικά για λίγο, ώστε να γνωρίζετε τα υποκείμενα συστήματα με τα οποία εργάζεστε. Τα φώτα απόχρωσης δημιουργούν ένα δικτύου Mesh Networks: Το μέλλον της επικοινωνίαςΤα δίκτυα ματιών είναι σχεδόν άτρωτα. Σε ένα δίκτυο ματιών, δεν υπάρχουν σημεία στραγγαλισμού μέσω των οποίων περνά όλη η κίνηση. Αντίθετα, οι πληροφορίες μεταφέρονται από τη μια συσκευή στην άλλη μέχρι να φτάσει στον προορισμό της. Διαβάστε περισσότερα , χρησιμοποιώντας ένα ασύρματο πρωτόκολλο μικρού εύρους που ονομάζεται ZigBee - συγκεκριμένα, είναι ZigBee Light Link πιστοποιημένο, πράγμα που σημαίνει ότι άλλα προϊόντα ZLL θα πρέπει επίσης να λειτουργούν μαζί με το Hue (θεωρητικά).

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

Το Zigbee είναι ένα εξαιρετικό πρωτόκολλο, αλλά είναι εντελώς διαφορετικό από το Wi-Fi ή ένα ενσύρματο δίκτυο υπολογιστών, οπότε χρειαζόμαστε τη γέφυρα Philips Hue για να ενώσουμε τα δύο μαζί. Η γέφυρα Hue τρέχει ένα τροποποιημένο firmware ανοιχτού κώδικα linux, το οποίο μεταδίδει έναν βασικό διακομιστή ιστού.

Αυτό θα δείτε αν πληκτρολογείτε ακριβώς τη διεύθυνση IP της γέφυρας Hue στο πρόγραμμα περιήγησής σας. Δεν μπορείτε να κάνετε πολλά από εδώ εν τούτοις.
Αυτό θα δείτε αν πληκτρολογείτε ακριβώς τη διεύθυνση IP της γέφυρας Hue στο πρόγραμμα περιήγησής σας. Δεν μπορείτε να κάνετε πολλά από εδώ εν τούτοις.

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

Είναι ένα όμορφα απλό σύστημα και ώριμο για έργα DIY. Kudos στη Philips για να κάνει αυτό το πράγμα τόσο αδιαφανή.

Αρχίζοντας

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

Όποιος είναι εξοικειωμένος με τις τυπικές υπηρεσίες ιστού ή τη Javascript πρέπει να μπορεί να συνεργάζεται με την Απόχρωση: όλα τα δεδομένα διαβιβάζονται και λαμβάνονται ως Πακέτα JSON Τι είναι το JSON; Μια επισκόπηση λαϊκώνΑν σκοπεύετε να είστε web developer ή όχι, είναι καλή ιδέα να ξέρετε τουλάχιστον τι είναι το JSON, γιατί είναι σημαντικό και γιατί χρησιμοποιείται σε όλο τον ιστό. Διαβάστε περισσότερα .

Για να ρίξετε μια ματιά σε αυτό σε δράση, θα πρέπει να γνωρίζετε τη διεύθυνση IP της γέφυρας Hue. Υπάρχουν μερικοί τρόποι για να το κάνετε αυτό:

  • Ανατρέξτε στον πίνακα αντιστοιχίας διευθύνσεων DHCP στη διεπαφή διαχείρισης του δρομολογητή
  • Εκτελέστε ένα πρόγραμμα χαρτογράφησης δικτύου όπως Αρχική σελίδα σαρωτή IP
  • Δοκιμάστε το Μέσο μεσολάβησης της UPnP της Philips
  • Ping "philips-hue.home"
χαρτογράφηση δικτύου για την εύρεση γέφυρας

Όταν τελειώσετε, προχωρήστε και πληκτρολογήστε τη στη γραμμή διευθύνσεων του προγράμματος περιήγησης debug / clip.html που επισυνάπτεται στη διεύθυνση URL. Στην περίπτωσή μου, αυτό ήταν:

http://192.168.1.216/debug/clip.html

Αυτό είναι ένα εργαλείο εντοπισμού σφαλμάτων που σας επιτρέπει να στέλνετε και να λαμβάνετε τα πακέτα JSON μέσω μιας απλής διεπαφής ιστού. Το πρώτο βήμα είναι να ενεργοποιήσετε το προφίλ προγραμματιστή στην ίδια τη γέφυρα Hue - η οποία είναι απενεργοποιημένη από προεπιλογή για λόγους ασφαλείας. Επικολλήστε τα παρακάτω στο πεδίο BODY, αφήστε τη διεύθυνση URL ως /api/, και στείλτε ένα αίτημα POST κάνοντας κλικ στο κουμπί μετά:

{"devicetype": "χρήστης δοκιμής", "username": "newdeveloper"}

Την πρώτη φορά που το κάνετε αυτό, θα δείτε ένα "κουμπί σύνδεσης που δεν πατήθηκε" κάπου στην απάντηση. Αυτό είναι ένα χαρακτηριστικό ασφαλείας που απαιτεί κάθε φυσική εξουσιοδότηση κάθε νέας εφαρμογής που χρησιμοποιείτε. Πηγαίνετε και βρείτε τη Γέφυρα σας, πατήστε το κουμπί και στείλτε ξανά το ίδιο αίτημα μέσα σε 30 δευτερόλεπτα. Αυτή τη φορά θα λάβετε μια διαφορετική απάντηση και ο χρήστης θα είναι εξουσιοδοτημένος. Αν θέλετε να χρησιμοποιήσετε διαφορετικό όνομα χρήστη, διαβάστε τα έγγραφα API δημιουργία χρηστών. Προς το παρόν, αυτό αρκεί.

Μόλις ο χρήστης σας ρυθμίσει, θα γίνει η βασική διεύθυνση URL με την οποία θα πρέπει να αλληλεπιδράσετε /api/newdeveloper/. Μπορείτε να στείλετε ένα αίτημα GET για να μάθετε όλα όσα γνωρίζει η Γέφυρα για τα συνδεδεμένα φώτα, τους συναγερμούς, τις σκηνές και ένα σύντομο ημερολόγιο εφαρμογών που έχουν χρησιμοποιηθεί. Ακολουθεί ένα δείγμα μερικών από τις πληροφορίες κατάστασης που περιέχονται για έναν μόνο λαμπτήρα.


"κατάσταση": {"σε": αληθής, "bri": 254, "χρώμα": 14910, "sat": 144, "effect": "none", "xy": [0.4596, 0.4105]: 369, "ειδοποίηση": "κανένας", "colormode": "ct", "προσβάσιμο": ψευδές}, "τύπος": "εκτεταμένο έγχρωμο φως", "όνομα": "Υπνοδωμάτιο 1", "μοντέλο": "LCT001", 

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

Ένα τελευταίο παράδειγμα πριν την ενσωμάτωσή μας στο Arduino: βεβαιωθείτε ότι ένα από τα φώτα σας είναι ορατό και επάνω, και ότι γνωρίζετε ποιος αριθμός είναι. Αλλάξτε τη διεύθυνση URL στο /api/newdevelopers/lights/1/state (αλλάζοντας τον αριθμό στο φως σας) και στείλετε ένα αίτημα PUT με τα ακόλουθα δεδομένα:

{"απόχρωση": 50100, "sat": 255, "bri": 255}

Θα πρέπει να δείτε ότι το φως σας αντιδρά όπως αυτό:

απόχρωση επίδειξης

Αυτό που κάνατε είναι να πιέσετε μια νέα κατάσταση στο βολβό. Μπορείτε επίσης να προσθέσετε το "transitiontime", το οποίο είναι μια πρωτότυπη μέθοδος κινούμενης εικόνας που δείχνει πόσα δευτερόλεπτα θέλετε να αλλάξει η πολιτεία.

Το χρώμα μπορεί να ρυθμιστεί με διάφορους τρόπους, αλλά δυστυχώς δεν υπάρχει απλός τρόπος για να στείλετε μια τιμή RGB. Στο παραπάνω παράδειγμα, στείλαμε απόχρωση, satκαι briγκους. Δοκιμάστε να αλλάξετε την τιμή απόχρωσης και να στείλετε ξανά το αίτημα PUT.

Εργασία από τον Arduino

Υπάρχει μια υπάρχουσα βιβλιοθήκη Hue / Arduino που ονομάζεται ArduinoHue την οποία η ίδια η Philips συνδέει με την τεκμηρίωση API, αλλά το πρόβλημα με αυτή τη βιβλιοθήκη είναι ότι είναι αυτό επικοινωνεί μέσω της σύνδεσης USB με τον υπολογιστή σας, ο οποίος χρειάζεται επίσης να εκτελεί μια εφαρμογή Python συνεχώς. Eugh. Μπορείτε επίσης να αφήσετε τον υπολογιστή σας να τρέξει ολόκληρο το σημείο εκείνο το σημείο και να κόψει το Arduino εξ ολοκλήρου.

Αντ 'αυτού, θα σας δείξω πώς να ελέγχετε το Hue από το Arduino χρησιμοποιώντας μια θύρα Ethernet. Το Arduino σας δεν χρειάζεται να είναι συνδεδεμένο με έναν υπολογιστή, έτσι ώστε να μπορεί να λειτουργεί ανεξάρτητα από όπου και αν μπορείτε να βάλετε ένα καλώδιο Ethernet. Στην πραγματικότητα, θα πρέπει επίσης να λειτουργήσει με μια ασπίδα Wi-Fi, αλλά δεν έχω να παίξει με.

ehternet-sheild-box

Αν θέλετε να προχωρήσετε μπροστά, ο κώδικας του πλήρους δείγματος είναι ενσωματωμένος παρακάτω, ή διατίθεται εδώ. Το έχω προσαρμόσει από ένα παράδειγμα που δημοσιεύτηκε από τον Gilson Oguime. Εάν δεν έχετε παίξει ποτέ με την ασπίδα Ethernet σας, ίσως να θέλετε να τρέξετε γρήγορα το web tutorial client - Θα υποθέσω κάποιο βαθμό εξοικείωσης με αυτό και δεν θα καλύψω τον κώδικα που χρησιμοποιείται για τη δημιουργία ενός IP δικτύου κλπ. Σας δείξαμε επίσης πώς να δημιουργήσετε ένα μίνι web-server με την θύρα Ethernet Δώστε το έργο Arduino του δικού του Mini-Webserver, με μια ασπίδα EthernetΠριν από λίγο καιρό, σας έδειξα πώς να ρυθμίσετε ένα σύστημα ελέγχου Internet για το Arduino σας - αλλά έπρεπε να παραμείνει συνδεδεμένο με έναν υπολογιστή μέσω USB για να διατηρήσει τη σύνδεση στο internet ... Διαβάστε περισσότερα .

Δημιουργία αλλαγών στο κράτος

Η δημιουργία μιας νέας κατάστασης που θα ωθήσει τους βολβούς είναι μια απλή περίπτωση δημιουργίας ενός νέου Σειρά μεταβλητή και διαφυγή όλων των διπλών εισαγωγικών. Έχω προσθέσει ένα τυχαίος() λειτουργούν εκεί και για να δημιουργήσουν μια κάπως δυναμική κινούμενη εικόνα. Προσπαθήστε να κάνετε την χρωματική μεταβλητή τυχαία και για διαφορετικά χρώματα.

Η εντολή συμβολοσειρά = "{\" σε ": true, \" hue \ ": 50100, \" sat \ ": 255, \" bri \ ": 255, \" transitiontime \ 25)) + "}".

Αποστολή της εντολής

Για να στείλετε στην πραγματικότητα την εντολή, έχετε μια βοηθητική λειτουργία που ονομάζεται setHue (), η οποία παίρνει τον αριθμό φωτός και την συμβολοσειρά εντολών ως ένα επιχείρημα, όπως έτσι:

setHue (1, εντολή);

Το μόνο που κάνει τότε είναι ότι συνδέεται με τη γέφυρα, εκτοξεύει την εντολή ως αίτημα PUT, μαζί με όλες τις άλλες ανοησίες που δημιουργεί ένα αίτημα HTTP συνεπάγεται.


client.print ("PUT / api /"); client.print (hueUsername); πελάτης.print ("/ lights /"); client.print (lightNum); client.println ("/ state HTTP / 1.1"); client.println ("κρατήστε-ζωντανός"); client.print ("Host:"); client.println (hueHubIP); client.print ("Περιεχόμενο-Μήκος:"); client.println (command.length ()); client.println ("Τύπος περιεχομένου: κείμενο / απλό; charset = UTF-8 "). client.println (); // κενή γραμμή πριν από το σώμα. client.println (εντολή); // Hue εντολή. 

Προσθήκη αισθητήρα κίνησης

Τέλος, έβαλα ένα απλό καλώδιο HC-SR501 αισθητήρας κίνησης στην ψηφιακή είσοδο / έξοδο 2. Όταν ανιχνεύεται κίνηση, μια σειρά καταστάσεων πιέζεται στη γέφυρα για 2 βολβοί για να δημιουργήσει ένα αργό, δυναμικό κινούμενο σχέδιο. Όταν ο αισθητήρας κίνησης απενεργοποιηθεί, αποστέλλεται μία και μοναδική εντολή εκτός λειτουργίας. Στην ιδανική περίπτωση, θα επανέλθουν στην κατάσταση στην οποία βρισκόταν πριν εντοπιστεί η κίνηση, αλλά η λογική δεν είναι τόσο έξυπνη - πρόκειται απλώς να τις ενεργοποιήσουμε και να την απενεργοποιήσουμε.

Περιορισμοί

Παρόλο που ο κώδικας είναι οπωσδήποτε μη εξειδικευμένος, χρειάζονται σχεδόν ένα δευτερόλεπτο για τη διασύνδεση δικτύου του Arduino να στείλει ένα μόνο αίτημα εντολής. Δοκίμασα την ίδια εντολή από ένα Mac, χρησιμοποιώντας την ίδια σύνδεση Ethernet και ήταν ικανή να φτάσει δέκα έως είκοσι φορές εκείνη την ταχύτητα (εδώ είναι το AppleScript σε περίπτωση που θέλετε να δοκιμάσετε). Κατά συνέπεια, κάθε είδους γρήγορη κινούμενη εικόνα (προσπαθούσα να δημιουργήσω μια φλεγόμενη κερί) απλά δεν είναι δυνατή από ένα Arduino. Αυτό δεν πρέπει να αποτελεί πρόβλημα για τα περισσότερα έργα, μόνο για κινούμενα σχέδια υψηλής ταχύτητας, αλλά είναι καλό να γνωρίζετε τον περιορισμό.

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

Hack Hue

Τώρα που είστε οπλισμένοι με τη γνώση του πώς να ελέγχετε την Hue εντελώς ανεξάρτητα, ανοίγει έναν κόσμο Hue αυτοματισμού σπίτι αυτοματισμούς. Το πραγματικό ερώτημα είναι: τι θα κάνετε;

Ο James έχει πτυχίο στην Τεχνητή Νοημοσύνη και είναι πιστοποιημένος με CompTIA A + και Network +. Είναι ο κύριος προγραμματιστής της MakeUseOf, και ξοδεύει τον ελεύθερο χρόνο του παίζοντας VR paintball και boardgames. Κατασκευάζει υπολογιστές από τότε που ήταν παιδί.