Iluminação Inteligente: Acenda as Luzes ao Chegar em Casa com Arduino e iPhone
Componentes e Materiais
| Arduino Yun | × | 1 |
| LED (genérico) | × | 1 |
| Resistor 221 ohm | × | 1 |
| Protoboard (genérica) | × | 1 |
| Jumpers (genéricos) | × | 1 |
| Apple iPhone | × | 1 |
Aplicativos e Serviços Online
- Arduino Web Editor
- Blynk
Sobre o Projeto
Visão Geral
Você já sonhou com as luzes da sua casa acendendo quando você se aproxima dela, para nunca mais entrar em casa e ser cercado pela escuridão? Este dispositivo visa fazer exatamente isso por você, para que suas luzes estejam acesas quando você chegar perto de casa usando GPS. As luzes permanecerão acesas enquanto você estiver dentro de casa.

Funcionalidade
Este projeto utiliza o Blynk para operar. O Blynk requer dados móveis para funcionar em movimento, então eles devem estar habilitados para este projeto funcionar. Note que uma conta e app Blynk são necessários para executar este projeto. Este projeto funciona de forma bastante simples: o Blynk monitora a geolocalização do telefone e envia o feed para o Arduino Yún. O Arduino Yun compara a geolocalização do telefone com a localização da casa (Casa é definida pelo usuário manualmente). Quando o telefone é detectado dentro do alcance de casa, o Arduino Yun liga o LED. Aqui está uma imagem ilustrando isso.

O dispositivo monitorará constantemente a localização do telefone do usuário, sempre verificando se o usuário está dentro do alcance de casa. Aqui está uma imagem ilustrando a visão geral do código.

If(isInParameterverificará se o usuário está dentro do parâmetro da casa. Se estiver, a funçãoTurnLEDOncomeçará, ligando o LED.Elseexecutará a instruçãoTurnLEDOffque desligará o LED se o usuário não estiver dentro do parâmetro da casa.
O Arduino Yun definirá automaticamente os parâmetros da casa de acordo com as coordenadas da casa. O Yun criará um quadrado ao redor da casa, com 4 pontos em cada canto. Dessa forma, se o usuário estiver dentro do quadrado, o dispositivo liga o LED; se não, desliga. O alcance padrão para o quadrado é de cerca de 60 metros em todas as direções a partir do ponto de configuração.
Aqui estão algumas imagens mostrando o dispositivo em ação.


Benefícios
O usuário operando este projeto se beneficiará em:
- Ligar as luzes facilmente ao entrar em casa
- Notificar pessoas em casa que o usuário está chegando em breve
Construindo o Projeto
Passo 1: Aparelhos Necessários
Há algumas coisas necessárias neste projeto, a lista delas está abaixo.
- 1 Arduino Yun
- 1 Protoboard
- 1 Resistor (220Ω)
- 1 Smartphone
- Jumpers

Passo 2: Conectando o Circuito
Este projeto tem um circuito físico consistindo de um LED e resistor. Aqui está uma imagem do esquemático do projeto.

Passo 3: Obtenha sua Geolocalização
O próximo passo é descobrir as coordenadas de geolocalização da sua casa. As imagens abaixo ilustram este processo.




Passo 4: Configuração do Blynk
Uma conta Blynk é necessária para utilizar este projeto. Você precisará baixar o app Blynk na App Store ou Google Play para começar. Siga as imagens abaixo para configurar o Blynk.











Passo 5: Entendendo o Código
O código deste projeto tem 3 seções principais:
- Ler geolocalização
- Plotar localização
- Controle do LED
Estas seções serão explicadas abaixo.
- Ler Geolocalização
BLYNK_WRITE(V0) // armazena a geolocalização na variável
{
latitude = param[0].asFloat();
longitude = param[1].asFloat();
// debug? - Considere descomentar as linhas abaixo e testar manualmente
//latitude = 67.357899;
//longitude = -8.259199;
}
Esta seção do código lê a geolocalização do Pino Virtual Blynk e armazena os valores nas variáveis. A seção de debug permite depurar o dispositivo inserindo uma localização específica. Note que os valores lidos são as coordenadas do seu telefone.
- Plotar Localização
if(latitude <= maxLat && latitude <= minLat && // verifica se o telefone está dentro dos parâmetros
maxLng >= longitude && minLng >= longitude)
{
geolocation = 1;
}
else
{
geolocation = 0;
}
Esta parte do código verifica se a localização do telefone está dentro dos parâmetros definidos como casa. Note que um quadrado é formado automaticamente ao redor da geolocalização inserida, e o Arduino verifica se o telefone está dentro do quadrado.
- Controle do LED
if(geolocation == 1) // liga LED se o telefone está no parâmetro
{
digitalWrite(pinLED, HIGH);
}
else
{
digitalWrite(pinLED, LOW);
}
A simples última parte do código liga o LED se o usuário está se aproximando ou está em Casa e desliga se o usuário está longe.
Configurando as Variáveis
Há alguns valores a definir neste projeto. Para começar, insira seu Blynk Auth Token recebido por e-mail na etapa de Configuração do Blynk na variável auth[]. Em seguida, pegue a latitude e longitude da geolocalização da sua casa e insira-as nas variáveis myLocationLat e myLocationLng. O último passo é verificar se você está depurando. Se não estiver, considere definir proDebug como 0 para evitar prints seriais. Se estiver depurando, pode querer que o Arduino receba uma geolocalização fixa em vez da do seu telefone. Se for ao loop BLYNK_WRITE, há mais instruções lá.
Bibliotecas
- Bridge - copyright (c) Arduino LLC sob a GNU Lesser General Public Licence, esta biblioteca está em domínio público.
- Blynk - Esta biblioteca é lançada sob a Licença MIT (MIT)
Final
A etapa final é conectar seu Arduino Yun ao computador e fazer upload do código. Este projeto requer um Arduino Yun para funcionar. Com pequenas modificações no código, é possível rodar este projeto em qualquer microcontrolador que tenha WiFi embutido ou você poderia anexar um módulo WiFi a um dispositivo Arduino. Note que dados móveis são necessários para o projeto funcionar em movimento.
Histórico
Este é um projeto que eu queria implementar há muito tempo. Tem uma ideia básica por trás: quando o usuário se aproxima da Casa, as luzes da casa acendem. Não conectei este projeto às luzes da minha casa, mas usei um LED no lugar. Se você quiser conectar este projeto às luzes da sua casa, pode adicionar um relé e conectá-lo ao mesmo pino no Arduino do LED e também conectá-lo aos fios que ligam suas luzes à energia. Mas primeiro, teste o projeto para garantir que a fiação está correta e o projeto funciona. Boa sorte.

Código
lightsOnEnter
O código completo
lightsOnEnter (adaptação para ESP8266)
A adaptação do código para usar um ESP8266 em vez do Yún. Qualquer placa Arduino 5v poderá rodar o código.
Esquemáticos

schematics_J7lseyIN3G.fzz
Processo de manufatura
- Controle de Brilho de LED com PWM via Botão no Arduino Mega
- Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
- Construa um Homem de Ferro com Arduino: Componentes, Sensores e Guia Passo a Passo
- Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
- Monitore a Temperatura da Sua Casa de Qualquer Lugar com Integração Arduino Cloud
- Construa um Braço Robótico 3D Impresso Funcional com Arduino – Guia Passo a Passo
- Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
- Jogo Pong Neon em Matriz NeoPixel com Arduino Nano
- Volante Joystick Arduino Personalizado para Jogos
- Construa um Receptor FM Potente com Arduino e Módulo TEA5767