Taula de continguts:
- Pas 1: Comenceu
- Pas 2: aplicació Hue
- Pas 3: connecteu el pont
- Pas 4: adreça IP
- Pas 5:
- Pas 6: depureu la vostra tonalitat
- Pas 7: Comencem
- Pas 8:
- Pas 9: fem alguna cosa amb les llums
- Pas 10:
- Pas 11: controlem la llum
- Pas 12:
- Pas 13:
- Pas 14:
- Pas 15:
- Pas 16:
- Pas 17:
- Pas 18:
- Pas 19:
Vídeo: Projecte IoT School Philips Hue: 19 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Aquest és un manual que vaig haver d’escriure per a l’escola. No està complet i no estic segur de si fins i tot el podeu utilitzar. El meu coneixement de les API és mínim. Volíem fer un mirall interactiu amb llums a la part posterior que reaccionessin a la intempèrie, llum de fora, etc.
Vaig mirar com podia programar un llum Philips Hue amb un Arduino. En això, explico tots els meus passos i fins on he arribat. No he aconseguit programar el Hue amb l'Arduino, però crec que és un bon començament.
Ho he necessitat: un llum Arduino a Hue, un pont de compte de desenvolupador de Philips Hue
Fonts: https://www.developers.meethue.com/documentation/g…https://github.com/bsalinas/ArduinoHuehttps://arduino-esp8266.readthedocs.io/en/latest/e…https:// www.makeuseof.com/tag/control-philips-hue-…
Pas 1: Comenceu
Abans d’accedir a la documentació de l’API, us heu de registrar com a desenvolupador. És gratuït, però heu d’acceptar els termes i condicions. Podeu fer-ne un aquí>
Pas 2: aplicació Hue
Descarregueu l'aplicació oficial Philips Hue. Connecteu el telèfon a la xarxa que vulgueu que estigui activat el pont Hue.
Pas 3: connecteu el pont
Connecteu el vostre pont amb la vostra xarxa i funcioni correctament. Comproveu que l'aplicació per a telèfons intel·ligents pugui controlar els llums de la mateixa xarxa. Ha de ser a la mateixa xarxa Wi-Fi.
Pas 4: adreça IP
A continuació, haureu de descobrir l'adreça IP del pont a la vostra xarxa. Premeu l'enllaç per connectar-vos al pont de l'aplicació i proveu de controlar els llums.
Pas 5:
Si tot funciona, aneu al menú de configuració de l'aplicació. Més que anar a "El meu pont", anar a "Configuració de xarxa". Apagueu el commutador DHCP i veureu l'adreça IP del pont. Tingueu en compte l'adreça IP i torneu a activar DHCP.
Pas 6: depureu la vostra tonalitat
Quan ho vau escriure, heu de depurar el vostre Hue. Necessiteu l'adreça IP per a aquest pas. Heu de visitar el següent lloc.
/debug/clip.html
La interfície es veurà així a la imatge. Aquesta és la base de tot el trànsit web i de la interfície RESTful de tonalitat.
He obtingut aquesta informació sobre la interfície Restful del lloc de Philips Hue.
URL: en realitat és l'adreça local d'un recurs (cosa) específic dins del sistema de tonalitats. Podria ser llum, un grup de llums o moltes coses més. Aquest és l'objecte que interactuareu amb aquesta ordre.
Un cos: és la part del missatge que descriu què voleu canviar i com. Aquí introduïu, en format JSON, el nom i el valor del recurs que voleu canviar / afegir.
Un mètode: aquí podeu triar els 4 mètodes HTTP que pot utilitzar la trucada Hue.
GET: és l'ordre per obtenir tota la informació sobre el recurs adreçat
PUT: és l'ordre per modificar un recurs adreçat
POST: aquesta és l'ordre per crear un recurs nou dins del recurs adreçat
ELIMINA: aquesta és l'ordre per suprimir el recurs adreçat Resposta: en aquesta àrea, veureu la resposta al vostre comandament. També en format JSON.
Pas 7: Comencem
Ara necessitem un nom d'usuari generat aleatòriament que el pont us creï. N’obtindreu un omplint aquest.
Introduïu l'URL:
/ api /
Posa al cos:
i premeu GET
Aquesta ordre diu bàsicament "si us plau, creeu un recurs nou dins / api" (on es troben els noms d'usuari) amb les propietats següents. Al principi, obtindreu un error, i això és perquè és el pas de seguretat de Philips Hue. Prement el botó demostren que teniu accés físic al pont.
Pas 8:
Ara premeu el botó del pont i torneu a fer clic a POST.
Ara obtindreu un nom d’usuari que el pont us ha creat.
Pas 9: fem alguna cosa amb les llums
Copieu el vostre nom d'usuari i poseu-lo a la línia següent.
Introduïu-ho al vostre URL
/ api / / lights
Premeu GET
Hauríeu d'obtenir una resposta JSON amb totes les llums del vostre sistema i els seus noms.
Pas 10:
Vaig agafar prestades algunes llums Hue Lights de l’escola, la que faig servir és la que té l’identificador 3. Vull informació específica sobre aquesta llum.
Poseu-lo al costat de l'URL que ja teníeu:
/ api / / lights / 3
Premeu GET
Ara obtindreu tota la informació sobre Led 3 (si teniu un altre número com 1, en veureu informació).
Pas 11: controlem la llum
Veu en "estat" que el meu led està "activat". Volem controlar la llum en "estat".
Poseu-lo al costat de l'URL que ja teníeu: https:// / api / / lights / 3 / state
Posa la següent línia al cos
Premeu PUT
Ara la llum s’apagarà. Canvieu el valor del cos a true i la llum es tornarà a encendre.
Pas 12:
Ara tot funciona. Vull fer-ho amb el meu Arduino. Vaig mirar l'enllaç que Philips Hue va donar per canviar el color de la llum. Però necessiteu Python per a això, mai he treballat amb Python, així que he buscat una altra cosa.
Si voleu veure aquest codi, tinc l'enllaç Github aquí:
github.com/bsalinas/ArduinoHue
Pas 13:
Vaig mirar com podia obtenir informació d’aquest lloc de desenvolupadors al meu arduino. La majoria de les vegades no entenia l’idioma. Però vaig trobar algun codi en un lloc web de James Bruce.
Aquest és l’enllaç al lloc web.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Pas 14:
Primer vaig veure que feia servir un cable Ethernet. Només tenia una bombeta Hue i un Bridge Arduino i poca comprensió del codi. Vaig trigar una estona a entendre el seu codi, però encara no ho entenc realment.
Primer vaig afegir aquesta biblioteca per Internet.
#incloure
Això és per a la vostra xarxa (ha de ser el mateix que la bombeta Hue)
const char * ssid = ""; // posa aquí la teva xarxa WiFi SSIDconst char * password = ""; // posa aquí la contrasenya de la teva xarxa WiFi
Aquests són l’identificador del vostre pont i el nom d’usuari que us va donar el vostre pont. (No sé on volen representar els 80, però quan vaig investigar vaig veure que s'utilitzava per a xarxes).
// Constants de tonalitat const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue nom d’usuari const int hueHubPort = 80;
// Variables de tonalitat bool hueOn; // on / off int hueBri; // valor de brillantor llarg matís; // hue value String hueCmd; // Ordre Hue
buffer llarg sense signar = 0; // memòria intermèdia per a emmagatzematge de dades rebudes sense signar addr llarg;
Pas 15:
Per a la configuració del buit, he fet el màxim per la connexió a Internet. En aquest codi, l'Arduino busca si pot connectar-se amb la xarxa.
configuració nul·la () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Connexió a% s", ssid);
WiFi.begin (ssid, contrasenya);
while (WiFi.status ()! = WL_CONNECTED) {
retard (500);
Serial.print ("."); }
Serial.println ("connectat"); }
Pas 16:
Al bucle de James, vaig veure que tenia una declaració If and else. Però això era pel cable ethernet, així que vaig intentar deixar això fora. De vegades també intentava ajustar-lo, però encara no ho sabia amb moltes dades. Algunes coses del codi que he entès, a la cadena hi ha les dades que es donen a la llum Hue.
bucle buit () {
// Una sèrie de quatre ordres de mostra, que el color difuminen dues llums entre el vermell i el rosa. Llegiu la documentació de l’API Hue // per obtenir més informació sobre les ordres exactes que s’utilitzaran, però tingueu en compte que s’han d’escapar les cometes.
String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + String (random (15, 25)) + "}"; setHue (1, ordre);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + String (random (15, 25)) + "}"; setHue (2, ordre);
command = "{" tonalitat / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + Cadena (aleatòria (15, 25)) + "}"; setHue (1, ordre);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + String (random (15, 25)) + "}"; setHue (2, ordre);
}
Pas 17:
El següent codi era un booleà, però a Arduino heu d’escriure Bool. Al principi, vaig tenir molts errors a causa de la paraula client. Així que el vaig mirar i vaig veure que algun codi feia servir la línia "client WifiClient;". Així que ho vaig fer servir i va funcionar.
A la declaració if, sovint veieu client.print. Si mireu el codi, veureu que l’URL que heu introduït anteriorment es divideix en trossos. Ara introduïu el vostre propi codi. Vaig haver de triar la meva tercera llum LED.
/ * setHue () és la nostra funció d’ordres principal, que necessita passar un número clar i una cadena d’ordres * formatada correctament en format JSON (bàsicament una matriu d’estil Javascript de variables * i valors. A continuació, fa una senzilla sol·licitud HTTP PUT a el pont a la IP especificada a l'inici. * /
bool setHue (int lightNum, ordre de cadena) {
Client WiFiClient;
if (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print ("PUT / api /"); client.print (hueUsername); client.print ("/ lights /"); client.print (lightNum); // hueLight zero based, afegir 1 client.println ("3 / state"); // aquí he canviat el nom de tonalitat i stateclient.print ("Amfitrió:"); client.println (hueHubIP); client.print ("Longitud del contingut:"); client.println (command.length ()); client.println ("Tipus de contingut: text / normal; conjunt de caràcters = UTF-8"); client.println (); // línia en blanc abans del cos client.println (ordre); // Ordre Hue
} client.stop (); tornar cert; // ordre executat}
en cas contrari, torneu a fals; // l'ordre ha fallat}
Pas 18:
Al segon booleà, vaig fer el mateix amb canviar algunes paraules. El vaig penjar per veure si funcionava.
/ * Una funció d’ajuda per si la vostra lògica depèn de l’estat actual de la llum. * Això estableix una sèrie de variables globals que podeu comprovar per esbrinar si una llum està encesa o no * i el to, etc. No cal només per enviar ordres * /
bool getHue (int lightNum) {
Client WiFiClient;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET / api /"); client.print (hueUsername); client.print ("/ lights /"); client.print (lightNum); client.println ("3 / estat"); client.print ("Amfitrió:"); client.println (hueHubIP); client.println ("Tipus de contingut: aplicació / json"); client.println ("keep-alive"); client.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "true"); // si la llum està activada, configureu la variable com a true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // estableix la variable al valor de brillantor client.findUntil ("\" tonalitat / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // estableix la variable a la ruptura del valor de tonalitat; // encara no es capturen altres atributs lleugers}} client.stop (); tornar cert; // capturat el, bri, tonalitat} else return false; // error en llegir, bri, matís}
Pas 19:
Crec que podria establir una connexió amb el Philips Hue. Rebo informació, però encara cal fer-la servir.
Malauradament, això va més enllà del que puc codificar. Si coneixeu la resposta o si hi ha errors reals que cal corregir, m'encantaria escoltar-la.:-)
Recomanat:
Dividiu i amplieu la tira de llum Philips Hue: 8 passos (amb imatges)
Dividiu i amplieu la tira de llum Philips Hue: he anat afegint més " casa intel·ligent " escriviu aparells a casa meva i una de les coses amb què he estat jugant és el Philips Hue Lightstrip. És una tira de llums LED que es poden controlar des d’una aplicació o des d’un assistent intel·ligent com Alexa o
Gledopto: alternativa de tira de llum Philips Hue barata: 3 passos
Gledopto: alternativa de tira de llum Philips Hue barata: Philips Hue està venent les seves tires de llum Philips Hue per només 71-90 dòlars per només 2 metres. Vaig trobar un preu molt absurd, així que vaig començar a buscar alternatives. Vaig creuar una marca anomenada Gledopto que fa que els controladors de tires LED siguin
Braç de dibuix controlat pel so - Projecte Arduino School: 4 passos (amb imatges)
Dibuixant el braç controlat pel so - Projecte Arduino School: Aquesta és la meva primera vegada que treballo amb Arduino i treballo amb alguna cosa així, així que ho sento si he comès cap error. Vaig tenir aquesta idea quan vaig pensar en les meves aficions, que són el dibuix i la música. Així que vaig intentar combinar-los en això! Un sel
Llum de panell Philips Hue de bricolatge: 4 passos (amb imatges)
Llum de panell Philips Hue de bricolatge: recentment he comprat alguns llums Philips Hue per al meu dormitori. Són genials! Els puc controlar amb la meva veu mitjançant Alexa i també controlar-los mitjançant el meu telèfon. Vaig intentar trobar una llum de panell que canviés de color, però, com és possible, Philips Hue no veu
Gravador USB Aquest projecte es pot cremar a través de plàstics / fusta / paper (el divertit projecte també ha de ser fusta molt fina): 3 passos
Gravador alimentat per USB. Aquest projecte pot cremar-se a través de plàstics / fusta / paper (el divertit projecte també ha de ser fusta molt fina): NO FEREU AIX US mitjançant USB !!!! He descobert que pot fer malbé el vostre ordinador per tots els comentaris. el meu ordinador està bé. Utilitzeu un carregador de telèfon de 600 ma 5 v. He utilitzat això i funciona bé i res es pot danyar si utilitzeu un endoll de seguretat per aturar l'alimentació