Tabla de contenido:
- Paso 1: Empiece
- Paso 2: Aplicación Hue
- Paso 3: conecte el puente
- Paso 4: dirección IP
- Paso 5:
- Paso 6: depura tu tono
- Paso 7: comencemos
- Paso 8:
- Paso 9: Hagamos algo con las luces
- Paso 10:
- Paso 11: controlemos la luz
- Paso 12:
- Paso 13:
- Paso 14:
- Paso 15:
- Paso 16:
- Paso 17:
- Paso 18:
- Paso 19:
Video: Proyecto de escuela de IoT Philips Hue: 19 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Este es un manual que tuve que escribir para la escuela. No está completo y no estoy seguro de que pueda usarlo. Mi conocimiento de las API es mínimo. Queríamos hacer un espejo interactivo con luces en la parte trasera que reaccionaran a la intemperie, luz del exterior, etc.
Miré cómo podría programar una lámpara Philips Hue con un Arduino. En esto, explico todos mis pasos y lo lejos que he llegado. No he logrado programar el Hue con el Arduino pero creo que es un buen comienzo.
Necesitaba esto: una lámpara Arduino a hue una cuenta de desarrollador puente Philips Hue
Fuentes: 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-…
Paso 1: Empiece
Antes de poder acceder a la documentación de la API, deberá registrarse como desarrollador. Es gratis, pero debes aceptar los términos y condiciones. Puedes hacer uno aquí>
Paso 2: Aplicación Hue
Descargue la aplicación oficial Philips Hue. Conecte su teléfono a la red en la que desea que esté activado el puente Hue.
Paso 3: conecte el puente
Conecte su puente con su red y está funcionando correctamente. Pruebe que la aplicación del teléfono inteligente pueda controlar las luces en la misma red. Tiene que estar en la misma red Wi-Fi.
Paso 4: dirección IP
Entonces necesita descubrir la dirección IP del puente en su red. Presione el enlace para conectarse al puente en la aplicación e intente controlar las luces.
Paso 5:
Si todo funciona, vaya al menú de configuración en la aplicación. Luego, vaya a "Mi puente", vaya a "Configuración de red". Apague la palanca DHCP y verá la dirección IP del puente. Anote la dirección IP y vuelva a activar DHCP.
Paso 6: depura tu tono
Cuando escribiste eso, necesitas depurar tu Hue. Necesita la dirección IP para este paso. Tienes que visitar el siguiente sitio.
/debug/clip.html
La interfaz se verá así en la imagen. Esta es la base de todo el tráfico web y de la interfaz RESTful de hue.
Obtuve esta información sobre la interfaz Restful del sitio de Philips Hue.
URL: esta es en realidad la dirección local de un recurso (cosa) específico dentro del sistema de tonos. Puede ser luz, un grupo de luces o muchas cosas más. Este es el objeto con el que interactuará dentro de este comando.
Un cuerpo: esta es la parte del mensaje que describe qué desea cambiar y cómo. Aquí ingresa, en formato JSON, el nombre del recurso y el valor que desea cambiar / agregar.
Un método: aquí puede elegir entre los 4 métodos HTTP que puede utilizar la llamada hue.
OBTENER: este es el comando para obtener toda la información sobre el recurso direccionado
PUT: este es el comando para modificar un recurso direccionado
POST: este es el comando para crear un nuevo recurso dentro del recurso direccionado
ELIMINAR: este es el comando para eliminar el recurso direccionado. Respuesta: En esta área, verá la respuesta a su comando. También en formato JSON.
Paso 7: comencemos
Ahora necesitamos un nombre de usuario generado aleatoriamente que el puente crea para usted. Obtendrá uno al completar este.
Ingrese la URL:
/ api /
Poner en el CUERPO:
y presione GET
Este comando básicamente dice "por favor cree un nuevo recurso dentro de / api" (donde se encuentran los nombres de usuario) con las siguientes propiedades. Al principio, obtendrá un error, y eso se debe a que es el paso de seguridad de Philips Hue. Al presionar el botón, demuestran que tienes acceso físico al puente.
Paso 8:
Ahora presione el botón en el puente y haga clic en POST nuevamente.
Ahora obtendrá un nombre de usuario que el puente creó para usted.
Paso 9: Hagamos algo con las luces
Copie su nombre de usuario y colóquelo en la siguiente línea.
Pon esto en tu URL
/ api / / luces
Presione OBTENER
Debería obtener una respuesta JSON con todas las luces de su sistema y sus nombres.
Paso 10:
Tomé prestadas algunas luces Hue de la escuela, la que uso es la que tiene la identificación 3. Quiero información específica sobre esta luz.
Coloque esto junto a la URL que ya tenía:
/ api / / lights / 3
Presione OBTENER
Ahora obtienes toda la información sobre el Led 3 (si tienes otro número como 1 verás información sobre ese).
Paso 11: controlemos la luz
Ves en "estado" que mi led está "encendido". Queremos controlar la luz en "estado".
Coloque esto junto a la URL que ya tenía: https:// / api / / lights / 3 / state
Pon la siguiente línea en el CUERPO
Presione PUT
¡Ahora tu luz se apagará! Cambie el valor en el cuerpo a verdadero y la luz se encenderá nuevamente.
Paso 12:
Ahora todo está funcionando, quiero hacer esto con mi Arduino. Miré el enlace que dio Philips Hue para hacer que el color de la luz cambiara. Pero necesitas Python para esto, nunca trabajé con Python, así que busqué otra cosa.
Si desea ver este código, tengo el enlace de Github aquí:
github.com/bsalinas/ArduinoHue
Paso 13:
Miré cómo podía obtener información de este sitio para desarrolladores en mi arduino. La mayor parte del tiempo no entendía el idioma. Pero encontré un código en un sitio web de James Bruce.
Este es el enlace al sitio web.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Paso 14:
Primero vi que estaba usando un cable Ethernet. Solo tenía una bombilla Hue Light y Bridge un Arduino, y poca comprensión del código. Me tomó un tiempo entender su código, pero todavía no lo entiendo realmente.
Primero agregué esta biblioteca para Internet.
#incluir
Esto es para su red (tiene que ser igual que la bombilla Hue)
const char * ssid = ""; // ponga aquí su red WiFi SSIDconst char * password = ""; // ponga aquí su contraseña de red WiFi
Estos son el ID de su puente y el nombre de usuario que le dio su puente. (No sé qué significa el 80, pero cuando investigué un poco, vi que se usaba para redes).
// Constantes de tono const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue nombre de usuario const int hueHubPort = 80;
// Variables de tono bool hueOn; // encendido / apagado int hueBri; // valor de brillo long hueHue; // valor de tono String hueCmd; // comando de tono
búfer largo sin firmar = 0; // búfer para el almacenamiento de datos recibidos unsigned long addr;
Paso 15:
Para la configuración vacía, hice más por la conexión a Internet. En este código, Arduino está buscando si puede conectarse a la red.
configuración vacía () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Conectando a% s", ssid);
WiFi.begin (ssid, contraseña);
while (WiFi.status ()! = WL_CONNECTED) {
retraso (500);
Serial.print ("."); }
Serial.println ("conectado"); }
Paso 16:
En el bucle de James, vi que tenía una declaración If y else. Pero eso era para el cable ethernet, así que traté de omitirlo. A veces también intenté ajustarlo, pero aún no lo sabía con muchos datos. Algunas cosas en el código que entendí, en la cadena son los datos que se le dan a la luz Hue.
bucle vacío () {
// Una serie de cuatro comandos de muestra, cuyo color difumina dos luces entre rojo y rosa. Lea la documentación de la API de Hue // para obtener más detalles sobre los comandos exactos que se utilizarán, pero tenga en cuenta que las comillas deben omitirse.
Comando de cadena = "{" en / ": verdadero, \" tono / ": 50100, \" sat / ": 255, \" bri / ": 255, \" tiempo de transición / ":" + Cadena (aleatorio (15, 25)) + "}"; setHue (1, comando);
comando = "{" en / ": verdadero, \" tono / ": 65280, \" sat / ": 255, \" bri / ": 255, \" tiempo de transición / ":" + Cadena (aleatorio (15, 25)) + "}"; setHue (2, comando);
comando = "{" tono / ": 65280, \" sat / ": 255, \" bri / ": 255, \" tiempo de transición / ":" + Cadena (aleatorio (15, 25)) + "}"; setHue (1, comando);
comando = "{" tono / ": 50100, \" sat / ": 255, \" bri / ": 255, \" tiempo de transición / ":" + Cadena (aleatorio (15, 25)) + "}"; setHue (2, comando);
}
Paso 17:
El siguiente código fue un booleano, pero en Arduino debes escribir Bool. Al principio, recibí muchos errores debido a la palabra cliente. Así que lo busqué y vi que algún código usaba la línea "Cliente WifiClient;". Así que lo usé y funcionó.
En la declaración if, a menudo ve client.print. Si observa el código, verá que la URL que ingresó anteriormente está dividida en partes. Ahora ingrese su propio código. Tuve que elegir mi tercera luz LED.
/ * setHue () es nuestra función de comando principal, a la que se le debe pasar un número ligero y una * cadena de comando con el formato adecuado en formato JSON (básicamente una matriz de estilo Javascript de variables * y valores. Luego realiza una simple solicitud HTTP PUT para el puente en la IP especificada al principio. * /
bool setHue (int lightNum, comando String) {
Cliente WiFiClient;
if (client.connect (hueHubIP, hueHubPort)) {
while (cliente.conectado ()) {
client.print ("PUT / api /"); client.print (hueUsername); client.print ("/ luces /"); client.print (lightNum); // hueLight basado en cero, agregue 1 cliente.println ("3 / estado"); // aquí cambié el nombre del tono y stateclient.print ("Host:"); client.println (hueHubIP); client.print ("Content-Length:"); client.println (command.length ()); client.println ("Tipo de contenido: texto / plano; juego de caracteres = UTF-8"); cliente.println (); // línea en blanco antes del cuerpo client.println (comando); // comando de tono
} client.stop (); devuelve verdadero; // comando ejecutado}
si no, devuelve falso; // Error de comando }
Paso 18:
En el segundo booleano, hice lo mismo cambiando algunas palabras. Lo subí para ver si funcionaba.
/ * Una función auxiliar en caso de que su lógica dependa del estado actual de la luz. * Esto establece una serie de variables globales que puede verificar para averiguar si una luz está encendida o no * y el tono, etc. No es necesario solo para enviar comandos * /
bool getHue (int lightNum) {
Cliente WiFiClient;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET / api /"); client.print (hueUsername); client.print ("/ luces /"); client.print (lightNum); client.println ("3 / estado"); client.print ("Host:"); client.println (hueHubIP); client.println ("Tipo de contenido: aplicación / json"); client.println ("mantener vivo"); cliente.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" en / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "verdadero"); // si la luz está encendida, establezca la variable en true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // establece la variable en el valor de brillo client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // establece la variable para romper el valor de tono; // todavía no captura otros atributos de luz}} client.stop (); devuelve verdadero; // capturado en, bri, hue} else return false; // error al leer en, bri, hue}
Paso 19:
Creo que podría hacer una conexión con Philips Hue. Recibo información pero aún es necesario utilizarla.
Desafortunadamente, esto va más allá de lo que puedo codificar. Si conoce la respuesta, o si hay errores reales que deben corregirse, me encantaría escucharla.:-)
Recomendado:
Divida y extienda la tira de luz Philips Hue: 8 pasos (con imágenes)
Divida y extienda la tira de luz Philips Hue: he estado agregando más " hogar inteligente " tipo dispositivos a mi casa, y una de las cosas con las que he estado jugando es Philips Hue Lightstrip. Es una tira de luces LED que se puede controlar desde una aplicación o desde un asistente inteligente como Alexa o
Gledopto: Alternativa barata de tira de luz Philips Hue: 3 pasos
Gledopto: Alternativa barata de tiras de luz Philips Hue: Philips Hue está vendiendo actualmente sus tiras Philips Hue Light por solo $ 71-90 por solo 2 metros. Me pareció un precio muy absurdo, así que comencé a buscar alternativas. Me encontré con una marca llamada Gledopto que fabrica controladores de tiras de LED que
Panel de luz DIY Philips Hue: 4 pasos (con imágenes)
Panel de luz DIY Philips Hue: Recientemente compré algunas luces Philips Hue para mi dormitorio. ¡Son grandiosos! Puedo controlarlos con mi voz usando Alexa y también controlarlos a través de mi teléfono. Intenté encontrar una luz de panel que cambiara de color, pero como ya sabrá, Philips Hue no ve
Proyector Mood (Philips Hue Light pirateado con GSR) TfCD: 7 pasos (con imágenes)
Mood Projector (Philips Hue Light pirateado con GSR) TfCD: Por Laura Ahsmann & Maaike Weber Propósito: Los estados de ánimo bajos y el estrés son una gran parte de la vida moderna y acelerada. También es algo invisible para el exterior. ¿Y si pudiéramos proyectar tanto visual como acústicamente nuestro nivel de estrés con
¡Quemador alimentado por USB! Este proyecto se puede quemar a través de plásticos / madera / papel (el proyecto divertido también tiene que ser de madera muy fina): 3 pasos
¡Quemador alimentado por USB! Este proyecto se puede quemar a través de plásticos / madera / papel (el proyecto divertido también tiene que ser de madera muy fina): ¡NO HAGA ESTO USANDO USB! Descubrí que puede dañar tu computadora por todos los comentarios. mi computadora está bien aunque. Utilice un cargador de teléfono de 600ma 5v. Usé esto y funciona bien y nada se puede dañar si usa un enchufe de seguridad para detener la energía