Índice:
- Etapa 1: começar
- Etapa 2: aplicativo Hue
- Etapa 3: conectar a ponte
- Etapa 4: Endereço IP
- Etapa 5:
- Etapa 6: depure seu matiz
- Etapa 7: vamos começar
- Etapa 8:
- Etapa 9: vamos fazer algo com as luzes
- Etapa 10:
- Etapa 11: vamos controlar a luz
- Etapa 12:
- Etapa 13:
- Etapa 14:
- Etapa 15:
- Etapa 16:
- Etapa 17:
- Etapa 18:
- Etapa 19:
Vídeo: Projeto IoT School Philips Hue: 19 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Este é um manual que tive que escrever para a escola. Não está completo e não tenho certeza se você pode usá-lo. Meu conhecimento de APIs é o mínimo. Queríamos fazer um espelho interativo com luzes na parte de trás que reagissem ao clima, luz de fora, etc.
Eu vi como eu poderia programar uma lâmpada Philips Hue com um Arduino. Nisto, eu explico todos os meus passos e o quão longe eu vim. Não consegui programar o Hue com o Arduino, mas acho que é um bom começo.
Eu precisava disso: um Arduino, uma lâmpada hue, uma conta de desenvolvedor Philips Hue
Fontes: 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-…
Etapa 1: começar
Antes de acessar a documentação da API, você precisa se registrar como desenvolvedor. É gratuito, mas você precisa aceitar os termos e condições. Você pode fazer um aqui>
Etapa 2: aplicativo Hue
Baixe o aplicativo oficial Philips Hue. Conecte seu telefone à rede em que deseja que a ponte Hue esteja ativada.
Etapa 3: conectar a ponte
Conecte sua bridge com sua rede e esteja funcionando corretamente. Teste se o aplicativo do smartphone pode controlar as luzes na mesma rede. Tem que estar na mesma rede Wi-Fi.
Etapa 4: Endereço IP
Em seguida, você precisa descobrir o endereço IP da ponte em sua rede. Pressione o link para se conectar à ponte no aplicativo e tente controlar as luzes.
Etapa 5:
Se tudo estiver funcionando, vá para o menu de configurações no aplicativo. Em seguida, vá para “Minha ponte”, vá para “Configurações de rede”. Desligue a chave DHCP e você verá o endereço IP da ponte. Anote o endereço IP e ligue o DHCP novamente.
Etapa 6: depure seu matiz
Quando você escreveu isso, você precisa depurar seu Hue. Você precisa do endereço IP para esta etapa. Você tem que visitar o próximo site.
/debug/clip.html
A interface ficará assim na imagem. Esta é a base de todo o tráfego da web e da interface Hue RESTful.
Recebi essas informações sobre a interface Restful do site Philips Hue.
URL: este é realmente o endereço local de um recurso específico (coisa) dentro do sistema de matiz. Pode ser uma luz, um grupo de luzes ou muitas outras coisas. Este é o objeto com o qual você estará interagindo neste comando.
Um corpo: esta é a parte da mensagem que descreve o que você deseja mudar e como. Aqui você insere, no formato JSON, o nome do recurso e o valor que deseja alterar / adicionar.
Um método: aqui você tem uma escolha entre os 4 métodos HTTP que a chamada hue pode usar.
GET: este é o comando para buscar todas as informações sobre o recurso endereçado
PUT: este é o comando para modificar um recurso endereçado
POST: este é o comando para criar um novo recurso dentro do recurso endereçado
EXCLUIR: este é o comando para excluir o recurso endereçado. Resposta: Nesta área, você verá a resposta ao seu comando. Também em formato JSON.
Etapa 7: vamos começar
Agora precisamos de um nome de usuário gerado aleatoriamente que a ponte cria para você. Você obterá um preenchendo isto.
Coloque o URL:
/ api /
Coloque no CORPO:
e pressione GET
Este comando está basicamente dizendo "por favor, crie um novo recurso dentro de / api" (onde estão os nomes de usuário) com as seguintes propriedades. A princípio, você obterá um erro, porque é a etapa de segurança do Philips Hue. Ao pressionar o botão, eles comprovam que você tem acesso físico à ponte.
Etapa 8:
Agora pressione o botão no Bridge e clique em POST novamente.
Agora você receberá um nome de usuário que a ponte criou para você.
Etapa 9: vamos fazer algo com as luzes
Copie seu nome de usuário e coloque-o na linha a seguir.
Coloque isso no seu URL
/ api / / lights
Pressione GET
Você deve obter uma resposta JSON com todas as luzes em seu sistema e seus nomes.
Etapa 10:
Peguei emprestado algumas luzes de matiz da escola, a que uso é a que tem id 3. Quero informações específicas sobre esta luz.
Coloque ao lado do URL que você já tinha:
/ api / / lights / 3
Pressione GET
Agora você obtém todas as informações sobre o Led 3 (se você tiver outro número como 1, verá as informações sobre aquele).
Etapa 11: vamos controlar a luz
Você vê no "estado" que meu led está "ligado". Queremos controlar a luz no "estado".
Coloque ao lado do URL que você já tinha: https:// / api / / lights / 3 / state
Coloque a próxima linha no CORPO
Pressione PUT
Agora sua luz vai se apagar! Altere o valor no corpo para verdadeiro e a luz acenderá novamente.
Etapa 12:
Agora que tudo está funcionando, quero fazer isso com meu Arduino. Eu olhei para o link que Philips Hue deu para fazer a mudança de cor da luz. Mas você precisa do Python para isso, nunca trabalhei com Python, então procurei outra coisa.
Se você gosta de olhar este código, tenho o link do Github aqui:
github.com/bsalinas/ArduinoHue
Etapa 13:
Procurei como poderia obter informações deste site de desenvolvedor para o meu arduino. Na maioria das vezes eu não entendia o idioma. Mas eu encontrei um código em um site de James Bruce.
Este é o link para o site.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Etapa 14:
Primeiro vi que ele estava usando um cabo Ethernet. Eu só tinha uma lâmpada Hue Light e um Arduino, e pouco conhecimento de código. Demorou um pouco para eu entender seu código, mas ainda não o entendo de verdade.
Eu adicionei esta biblioteca pela primeira vez para a internet.
#incluir
Isso é para sua rede (tem que ser igual à lâmpada de matiz)
const char * ssid = ""; // coloque aqui sua rede WiFi SSIDconst char * password = ""; // coloque aqui sua senha de rede WiFi
Estes são o ID de sua ponte e o nome de usuário que sua ponte lhe deu. (Não sei o que significa 80, mas quando fiz algumas pesquisas vi que era usado para redes).
// Constantes de matiz const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue username const int hueHubPort = 80;
// Variáveis de matiz bool hueOn; // liga / desliga int hueBri; // valor do brilho long hueHue; // valor de matiz String hueCmd; // Comando Hue
buffer longo sem sinal = 0; // buffer para armazenamento de dados recebidos unsigned long addr;
Etapa 15:
Para a configuração do void, fiz o máximo para a conexão com a internet. Nesse código, o Arduino está procurando se consegue se conectar com a rede.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Conectando a% s", ssid);
WiFi.begin (ssid, senha);
enquanto (WiFi.status ()! = WL_CONNECTED) {
atraso (500);
Serial.print ("."); }
Serial.println ("conectado"); }
Etapa 16:
No loop de James, vi que ele tinha uma declaração If e else. Mas isso era para o cabo Ethernet, então tentei deixar isso de fora. Eu também tentei ajustar algumas vezes, mas ainda não sabia com muitos dados. Algumas coisas no código que eu entendi, na string estão os dados que são fornecidos para a luz Hue.
void loop () {
// Uma série de quatro comandos de amostra, cuja cor esmaece duas luzes entre vermelho e rosa. Leia a documentação da API do Hue // para obter mais detalhes sobre os comandos exatos a serem usados, mas observe que as aspas devem ser evitadas.
String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" tempo de transição / ":" + String (aleatório (15, 25)) + "}"; setHue (1, comando);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" tempo de transição / ":" + String (aleatório (15, 25)) + "}"; setHue (2, comando);
comando = "{" matiz / ": 65280, \" sat / ": 255, \" bri / ": 255, \" tempo de transição / ":" + String (aleatório (15, 25)) + "}"; setHue (1, comando);
comando = "{" matiz / ": 50100, \" sat / ": 255, \" bri / ": 255, \" tempo de transição / ":" + String (aleatório (15, 25)) + "}"; setHue (2, comando);
}
Etapa 17:
O próximo código foi um Booleano, mas no Arduino você deve escrever Bool. No início, recebi muitos erros por causa da palavra cliente. Então eu olhei e vi que algum código usava a linha "WifiClient client;". Então eu usei e funcionou.
Na instrução if, você costuma ver client.print. Se você olhar o código, verá que o URL inserido anteriormente está dividido em partes. Agora insira seu próprio código. Tive que escolher minha terceira luz LED.
/ * setHue () é nossa função de comando principal, que precisa receber um número leve e uma * string de comando formatada corretamente no formato JSON (basicamente uma matriz de variáveis * e valores no estilo Javascript. Em seguida, faz uma solicitação HTTP PUT simples para a ponte no IP especificado no início. * /
bool setHue (int lightNum, comando String) {
Cliente WiFiClient;
if (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print ("PUT / api /"); client.print (hueUsername); client.print ("/ lights /"); client.print (lightNum); // hueLight baseado em zero, adicione 1 client.println ("3 / state"); // aqui eu mudei o nome do matiz e stateclient.print ("Host:"); client.println (hueHubIP); client.print ("Content-Length:"); client.println (command.length ()); client.println ("Content-Type: text / plain; charset = UTF-8"); client.println (); // linha em branco antes do corpo client.println (command); // Comando Hue
} client.stop (); return true; // comando executado}
senão retorna falso; // comando falhou}
Etapa 18:
No segundo booleano, fiz a mesma coisa mudando algumas palavras. Eu carreguei para ver se funcionou.
/ * Uma função auxiliar caso sua lógica dependa do estado atual da luz. * Isso define uma série de variáveis globais que você pode verificar para descobrir se uma luz está acesa ou não * e o matiz etc. Não é necessário apenas para enviar comandos * /
bool getHue (int lightNum) {
Cliente WiFiClient;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET / api /"); client.print (hueUsername); client.print ("/ lights /"); client.print (lightNum); client.println ("3 / estado"); client.print ("Host:"); client.println (hueHubIP); client.println ("Tipo de conteúdo: aplicativo / json"); client.println ("keep-alive"); client.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "true"); // se a luz estiver acesa, defina a variável como true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // define a variável para o valor de brilho client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // define a variável para o valor de matiz break; // ainda não está capturando outros atributos de luz}} client.stop (); return true; // capturado em, bri, hue} else return false; // erro ao ler, bri, hue}
Etapa 19:
Acho que poderia fazer uma conexão com o Philips Hue. Recebo informações, mas ainda precisam ser usadas.
Infelizmente, isso vai além do que posso codificar. Se você souber a resposta ou se houver erros reais que precisam ser corrigidos, eu adoraria ouvir.:-)
Recomendado:
Divida e amplie o Philips Hue Lightstrip: 8 etapas (com imagens)
Divida e amplie o Philips Hue Lightstrip: venho adicionando mais " casa inteligente " digite gadgets na minha casa, e uma das coisas com que estou brincando é o Philips Hue Lightstrip. É uma faixa de luzes LED que pode ser controlada a partir de um aplicativo ou de um assistente inteligente como Alexa ou
Gledopto: alternativa barata para a faixa de luz Philips Hue: 3 etapas
Gledopto: Barata Philips Hue Light Strip Alternativa: A Philips Hue está vendendo suas fitas Philips Hue Light por meros US $ 71-90 por apenas 2 metros. Achei um preço muito absurdo e comecei a procurar alternativas. Eu descobri uma marca chamada Gledopto, que fabrica controladores de faixa de LED que
DIY Philips Hue Panel Light: 4 etapas (com fotos)
Luz de painel Hue Philips DIY: Recentemente comprei algumas luzes Philips Hue para meu quarto. Êles são ótimos! Posso controlá-los com minha voz usando Alexa e também por meio do meu telefone. Tentei encontrar uma luz de painel com mudança de cor, mas como você deve saber, a Philips Hue não vê
Projetor Mood (Hacked Philips Hue Light com GSR) TfCD: 7 etapas (com imagens)
Projetor Mood (Philips Hue Light com GSR hackeado) TfCD: Por Laura Ahsmann & Maaike Weber Objetivo: O baixo-astral e o estresse são uma grande parte da vida moderna e acelerada. Também é algo invisível do lado de fora. E se pudéssemos projetar visualmente e acusticamente nosso nível de estresse com
Gravador alimentado por USB! Este projeto pode queimar plásticos / madeira / papel (o projeto divertido também deve ser uma madeira muito fina): 3 etapas
Gravador alimentado por USB! Este projeto pode queimar através de plástico / madeira / papel (projeto divertido também deve ser madeira muito fina): NÃO FAÇA ISSO USANDO USB !!!! Eu descobri que isso pode danificar seu computador com todos os comentários. meu computador está bem tho. Use um carregador de telefone 600ma 5v. Eu usei isso e funciona bem e nada pode ser danificado se você usar um plugue de segurança para interromper a alimentação